@testmuai/kane-cli 0.6.1 → 0.6.3
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/ChatSurface-J777M5WC.js +8 -0
- package/dist/{ChromeProfilePicker-BZKLIO2T.js → ChromeProfilePicker-UUGUMJPI.js} +1 -1
- package/dist/{CliFeedbackPrompt-3HYRBMXS.js → CliFeedbackPrompt-JZWESL7Z.js} +1 -1
- package/dist/{CliUploadProgress-OAPMO5I3.js → CliUploadProgress-62U3LAUU.js} +1 -1
- package/dist/{ConfigView-YIAAISLE.js → ConfigView-WHEFCVHR.js} +1 -1
- package/dist/EvidenceViewOffer-JQDEAE2T.js +2 -0
- package/dist/FolderPicker-HJUUHQEI.js +2 -0
- package/dist/{HelpView-HBQX64VR.js → HelpView-EWHP7LSJ.js} +1 -1
- package/dist/{InfoBox-DKJO73HM.js → InfoBox-GQQJVTI5.js} +1 -1
- package/dist/{LinksBox-44WCVBT4.js → LinksBox-EWCPAZFN.js} +1 -1
- package/dist/{ProfilesView-NVEDYU3H.js → ProfilesView-5FJNQMUW.js} +1 -1
- package/dist/{ProjectPicker-COBY7TCY.js → ProjectPicker-IN7GFN7I.js} +1 -1
- package/dist/{SaveSessionPrompt-O4ENMYHP.js → SaveSessionPrompt-ISODGFP7.js} +1 -1
- package/dist/SingleShotApp-QANGFAPO.js +2 -0
- package/dist/{SummaryBox-ROV7TNK4.js → SummaryBox-R6WHU7VD.js} +1 -1
- package/dist/TestMdRunView-74A3LCNE.js +2 -0
- package/dist/{WhoamiView-4QV3DPN2.js → WhoamiView-YRQNOSOH.js} +1 -1
- package/dist/{bind-RDTZZ6ZI.js → bind-FZ4X4SOK.js} +2 -2
- package/dist/{bridge-VY2Q3HQU.js → bridge-7UMWMIJJ.js} +1 -1
- package/dist/{changelog-JMFGVNEU.js → changelog-YQC2QDCO.js} +1 -1
- package/dist/{chat-committer-RTJCKQMM.js → chat-committer-GHDZY5XF.js} +1 -1
- package/dist/chat-controller-QXFAB2DK.js +3 -0
- package/dist/{chunk-N2ZW5635.js → chunk-2S4S2XJC.js} +3 -3
- package/dist/{chunk-BMSWIYYK.js → chunk-2TVRHXRK.js} +1 -1
- package/dist/{chunk-IRDMEYJB.js → chunk-326XAPMW.js} +2 -2
- package/dist/{chunk-47RNFG2V.js → chunk-53VDR5DN.js} +3 -3
- package/dist/{chunk-CP4XCWAJ.js → chunk-6RQAUK5F.js} +1 -1
- package/dist/{chunk-WAGJLR5X.js → chunk-7LFCSSPX.js} +10 -10
- package/dist/{chunk-2PDWMY2B.js → chunk-7MV5UF6O.js} +1 -1
- package/dist/{chunk-S74MQRDN.js → chunk-7YQW4TFI.js} +1 -1
- package/dist/{chunk-MMI3VSCA.js → chunk-ARS72637.js} +1 -1
- package/dist/{chunk-CB3TEWZJ.js → chunk-AV5SUGRY.js} +1 -1
- package/dist/{chunk-WRHZCHZY.js → chunk-B5LJCGAY.js} +1 -1
- package/dist/{chunk-FAIH2K2U.js → chunk-BFFCGEUH.js} +1 -1
- package/dist/{chunk-SQJWMOJQ.js → chunk-BGGNBWAJ.js} +1 -1
- package/dist/{chunk-Q4PUOA46.js → chunk-BO3JA2GS.js} +3 -3
- package/dist/{chunk-VXD5667K.js → chunk-C5POEXSX.js} +2 -2
- package/dist/{chunk-OBBXDBEE.js → chunk-CIW2KP4C.js} +1 -1
- package/dist/{chunk-R2K2SGGE.js → chunk-DEEBPSJN.js} +1 -1
- package/dist/{chunk-HMGNPFXP.js → chunk-E4OYR32M.js} +1 -1
- package/dist/{chunk-AAWRKFE4.js → chunk-EEO4XWY6.js} +1 -1
- package/dist/{chunk-SB6MBQKR.js → chunk-EWFFJBAM.js} +1 -1
- package/dist/{chunk-SUDAFBVD.js → chunk-F2K3XFFH.js} +2 -2
- package/dist/{chunk-FS4YJM22.js → chunk-F66SSA4C.js} +1 -1
- package/dist/{chunk-O4O4KL6Z.js → chunk-FFL2TQEJ.js} +1 -1
- package/dist/chunk-FTD3B7QA.js +2 -0
- package/dist/{chunk-7SUKUJO2.js → chunk-G6AF2JUA.js} +1 -1
- package/dist/{chunk-5UXL6RNG.js → chunk-ME5QSYWX.js} +1 -1
- package/dist/{chunk-MZ2PXBKK.js → chunk-NFGG5DA2.js} +1 -1
- package/dist/{chunk-WGG5XURS.js → chunk-OE7TVGNB.js} +3 -3
- package/dist/{chunk-2T4JPBB5.js → chunk-OGVIHL5G.js} +1 -1
- package/dist/{chunk-ISAE457F.js → chunk-P46TIMGQ.js} +1 -1
- package/dist/{chunk-YJ6AQ2KP.js → chunk-PJDOXRLB.js} +1 -1
- package/dist/{chunk-XDW2RGIL.js → chunk-Q4HLQOJI.js} +1 -1
- package/dist/chunk-RE3BZVGE.js +3 -0
- package/dist/{chunk-KGP7NSXH.js → chunk-RLG5NUTE.js} +1 -1
- package/dist/{chunk-Q4P2L7DY.js → chunk-RZFINU7J.js} +1 -1
- package/dist/{chunk-7DBQEOFL.js → chunk-SGU72YLH.js} +4 -4
- package/dist/{chunk-NSSKSXCT.js → chunk-SHSV64GX.js} +1 -1
- package/dist/{chunk-RH2OAIJI.js → chunk-SL7AJ7JQ.js} +1 -1
- package/dist/{chunk-ZA67EBYF.js → chunk-SQFNMZJ2.js} +1 -1
- package/dist/{chunk-5FD6ZXB5.js → chunk-TTSYHJLX.js} +1 -1
- package/dist/chunk-TY5LWU6I.js +14 -0
- package/dist/{chunk-4CRKK5WV.js → chunk-TZZYRDCF.js} +1 -1
- package/dist/{chunk-J5BUMF3G.js → chunk-UXJPCWGW.js} +1 -1
- package/dist/{chunk-KFAYCOTB.js → chunk-VXGOWBET.js} +1 -1
- package/dist/{chunk-ROPXE7TF.js → chunk-WFRL54GK.js} +1 -1
- package/dist/{chunk-HGL3RM7P.js → chunk-XBE7PGVY.js} +1 -1
- package/dist/{chunk-ZNANAARA.js → chunk-Y6LMHBLE.js} +1 -1
- package/dist/{chunk-QZWQCHXK.js → chunk-Y7KW5AEN.js} +1 -1
- package/dist/chunk-YKTYVJBN.js +3 -0
- package/dist/{chunk-37CI4EJX.js → chunk-YZKPZXHY.js} +1 -1
- package/dist/chunk-YZSYXNMB.js +2 -0
- package/dist/config-5OOP2BO3.js +2 -0
- package/dist/{credentials-L63BBW2S.js → credentials-XCP6DJZZ.js} +1 -1
- package/dist/{evidence-UAFPTHQX.js → evidence-AX67Q6RN.js} +1 -1
- package/dist/{evolve-cmd-2SPNVTT4.js → evolve-cmd-HR25DRTC.js} +1 -1
- package/dist/{extract-bind-DS4UP23P.js → extract-bind-ZDAXRQUS.js} +2 -2
- package/dist/{extract-cmd-PMZHMMU7.js → extract-cmd-5GGI6LAM.js} +1 -1
- package/dist/{generate-headless-C3UZKDS5.js → generate-headless-DRDE46ON.js} +2 -2
- package/dist/index.js +12 -12
- package/dist/{ingest-cmd-FJ3SLTT4.js → ingest-cmd-X7BWGIN7.js} +1 -1
- package/dist/{interactive-bind-SJLDJULN.js → interactive-bind-T6OBLZCT.js} +2 -2
- package/dist/{lifecycle-cmd-56OZT4LY.js → lifecycle-cmd-55NZL3UO.js} +1 -1
- package/dist/{list-commands-PGAX5HRB.js → list-commands-UDAL3SBY.js} +1 -1
- package/dist/{logical-ids-QRRUXV5E.js → logical-ids-ATVR6PF2.js} +1 -1
- package/dist/login-flow-LJ4BH3OS.js +2 -0
- package/dist/{persist-recorded-session-WFU4M4SQ.js → persist-recorded-session-BW3YSFMP.js} +1 -1
- package/dist/{pipeline-EYQUM27P.js → pipeline-TZJ652NT.js} +1 -1
- package/dist/{reconcile-cmd-TFFYCTCY.js → reconcile-cmd-242S7XNO.js} +2 -2
- package/dist/{recording-banner-PH2NND2X.js → recording-banner-6FVTCUWQ.js} +1 -1
- package/dist/{require-project-folder-RD2UAB7E.js → require-project-folder-AQUVEEJB.js} +1 -1
- package/dist/{review-cmd-SL52N4TM.js → review-cmd-RXPPC5GK.js} +1 -1
- package/dist/run-UGAOGR3B.js +2 -0
- package/dist/{run-test-md-I6O4H7B2.js → run-test-md-AUK7NGLL.js} +2 -2
- package/dist/{skill-installer-BJLHH3DW.js → skill-installer-2MNPCPRD.js} +1 -1
- package/dist/{spawner-UDCF35OA.js → spawner-XCOMTJJC.js} +1 -1
- package/dist/tcg-generate-E5X23RVP.js +2 -0
- package/dist/testmd-actions-TU4KTO32.js +2 -0
- package/dist/token-refresh-GGLARJV4.js +2 -0
- package/dist/{turn-preflight-I5SM4UIZ.js → turn-preflight-JGYT7LXP.js} +1 -1
- package/dist/{validate-basic-WILRWRRP.js → validate-basic-IYMPP7C7.js} +1 -1
- package/dist/{version-check-TXTCVX2N.js → version-check-MUPSKONS.js} +1 -1
- package/package.json +6 -6
- package/dist/ChatSurface-R55VO3VW.js +0 -9
- package/dist/EvidenceViewOffer-DBMZQ34Z.js +0 -2
- package/dist/FolderPicker-ILK4AIKL.js +0 -2
- package/dist/SingleShotApp-NA6A2S6I.js +0 -2
- package/dist/TestMdRunView-U5YTNLY6.js +0 -2
- package/dist/chat-controller-OTBYHB4Y.js +0 -3
- package/dist/chunk-5446YVGQ.js +0 -4
- package/dist/chunk-5ILXUQIX.js +0 -2
- package/dist/chunk-DM2GL24Z.js +0 -3
- package/dist/chunk-MJFYMMX2.js +0 -2
- package/dist/chunk-RY4OOGSC.js +0 -14
- package/dist/login-flow-4OJ34VDP.js +0 -2
- package/dist/run-NODOSQUL.js +0 -2
- package/dist/tcg-generate-E7H4LF7Y.js +0 -2
- package/dist/testmd-actions-FMVUXZGX.js +0 -2
- package/dist/token-refresh-OGBTJGZ2.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
-
import{a as da}from"./chunk-ZA67EBYF.js";import{a as zs,b as Vo,c as xn,d as Ys,e as vn,f as Ks,h as Js,i as Qs,j as Zs,k as ea,l as ta,m as St,n as ra,o as na,p as oa,q as bn,r as ia,s as Mo,t as sa,u as aa,v as ca}from"./chunk-R2K2SGGE.js";import{a as Io,b as Xi}from"./chunk-3MSXQU2C.js";import{a as la,b as ua}from"./chunk-MMI3VSCA.js";import{B as bt,E as Ws,a as rs,b as ns,d as ds,e as fs,f as ms,g as Rs,h as Ts,i as Es,j as $o,k as ks,m as Oo,n as Ns,o as No,q as js,r as Vs,s as Ms,t as Fs,u as jo,v as Us,w as qs,x as Hs}from"./chunk-Q4PUOA46.js";import{c as Ps,d as Ls,n as Xs}from"./chunk-SUDAFBVD.js";import{a as fa,b as Fo}from"./chunk-AAWRKFE4.js";import{b as _s,s as Bs}from"./chunk-RKWJG3WW.js";import{a as mn,b as Cs,c as Is}from"./chunk-S74MQRDN.js";import{a as zi,c as ko,d as Dt}from"./chunk-QZWQCHXK.js";import{c as pn}from"./chunk-2PDWMY2B.js";import{a as Ji,b as Qi,c as Zi,d as gs,e as As,g as $s}from"./chunk-J5BUMF3G.js";import{c as ps}from"./chunk-O4O4KL6Z.js";import{a as cr}from"./chunk-HGL3RM7P.js";import{a as gn,b as Ds,c as Do}from"./chunk-YJ6AQ2KP.js";import{a as Ao}from"./chunk-5Y2G4NC7.js";import{c as Os}from"./chunk-5UXL6RNG.js";import{a as hn}from"./chunk-MZ2PXBKK.js";import{c as Gs}from"./chunk-GIGD4M7V.js";import{a as ls}from"./chunk-BMSWIYYK.js";import{a as us}from"./chunk-FPFOW6BS.js";import{a as ys}from"./chunk-WRHZCHZY.js";import{F as hs,L as xs,M as Bo,N as vs,O as bs,R as Ss,T as ws}from"./chunk-WGG5XURS.js";import{c as Lo}from"./chunk-ROPXE7TF.js";import{b as sr}from"./chunk-KFAYCOTB.js";import{b as ar}from"./chunk-SQJWMOJQ.js";import{a as is,e as vt,f as Lr,g as Ot,h as lr}from"./chunk-M5JQXOCE.js";import{h as ss}from"./chunk-OBBXDBEE.js";import{a as Pr}from"./chunk-2WVKOZ6W.js";import{a as es}from"./chunk-NLCCBXXV.js";import{a as it,b as pt,c as os}from"./chunk-VE3SUJMA.js";import{a as cs}from"./chunk-ISAE457F.js";import{a as as}from"./chunk-RH2OAIJI.js";import{a as De}from"./chunk-KGP7NSXH.js";import{a as ts}from"./chunk-RZ4F3BHX.js";import{a as fn}from"./chunk-4CRKK5WV.js";import{a as _o}from"./chunk-SB6MBQKR.js";import{a as It,b as Yi}from"./chunk-NSSKSXCT.js";import{b as Ki}from"./chunk-DFS4RMVP.js";import{b as Po}from"./chunk-FAIH2K2U.js";import{a as ir}from"./chunk-CB3TEWZJ.js";import{a as ot,c as Xe,j as Eo,n as Wi,o as Co,x as l}from"./chunk-HMGNPFXP.js";import{a as M}from"./chunk-HCBYKLMW.js";import{a as b,b as s,i as Ie,j as Gi,k as or}from"./chunk-C44QQJR4.js";import{a as xe}from"./chunk-6YGTRKDT.js";import{c as z,e as k}from"./chunk-UR6MHSHU.js";var dr=z((nh,ga)=>{"use strict";var ud="2.0.0",dd=Number.MAX_SAFE_INTEGER||9007199254740991,fd=16,md=250,pd=["major","premajor","minor","preminor","patch","prepatch","prerelease"];ga.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:fd,MAX_SAFE_BUILD_LENGTH:md,MAX_SAFE_INTEGER:dd,RELEASE_TYPES:pd,SEMVER_SPEC_VERSION:ud,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Br=z((oh,ha)=>{"use strict";var gd=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};ha.exports=gd});var fr=z((wt,xa)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Uo,MAX_SAFE_BUILD_LENGTH:hd,MAX_LENGTH:xd}=dr(),vd=Br();wt=xa.exports={};var bd=wt.re=[],Sd=wt.safeRe=[],N=wt.src=[],wd=wt.safeSrc=[],j=wt.t={},yd=0,qo="[a-zA-Z0-9-]",Rd=[["\\s",1],["\\d",xd],[qo,hd]],Td=e=>{for(let[t,r]of Rd)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e},K=(e,t,r)=>{let n=Td(t),o=yd++;vd(e,o,t),j[e]=o,N[o]=t,wd[o]=n,bd[o]=new RegExp(t,r?"g":void 0),Sd[o]=new RegExp(n,r?"g":void 0)};K("NUMERICIDENTIFIER","0|[1-9]\\d*");K("NUMERICIDENTIFIERLOOSE","\\d+");K("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${qo}*`);K("MAINVERSION",`(${N[j.NUMERICIDENTIFIER]})\\.(${N[j.NUMERICIDENTIFIER]})\\.(${N[j.NUMERICIDENTIFIER]})`);K("MAINVERSIONLOOSE",`(${N[j.NUMERICIDENTIFIERLOOSE]})\\.(${N[j.NUMERICIDENTIFIERLOOSE]})\\.(${N[j.NUMERICIDENTIFIERLOOSE]})`);K("PRERELEASEIDENTIFIER",`(?:${N[j.NONNUMERICIDENTIFIER]}|${N[j.NUMERICIDENTIFIER]})`);K("PRERELEASEIDENTIFIERLOOSE",`(?:${N[j.NONNUMERICIDENTIFIER]}|${N[j.NUMERICIDENTIFIERLOOSE]})`);K("PRERELEASE",`(?:-(${N[j.PRERELEASEIDENTIFIER]}(?:\\.${N[j.PRERELEASEIDENTIFIER]})*))`);K("PRERELEASELOOSE",`(?:-?(${N[j.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${N[j.PRERELEASEIDENTIFIERLOOSE]})*))`);K("BUILDIDENTIFIER",`${qo}+`);K("BUILD",`(?:\\+(${N[j.BUILDIDENTIFIER]}(?:\\.${N[j.BUILDIDENTIFIER]})*))`);K("FULLPLAIN",`v?${N[j.MAINVERSION]}${N[j.PRERELEASE]}?${N[j.BUILD]}?`);K("FULL",`^${N[j.FULLPLAIN]}$`);K("LOOSEPLAIN",`[v=\\s]*${N[j.MAINVERSIONLOOSE]}${N[j.PRERELEASELOOSE]}?${N[j.BUILD]}?`);K("LOOSE",`^${N[j.LOOSEPLAIN]}$`);K("GTLT","((?:<|>)?=?)");K("XRANGEIDENTIFIERLOOSE",`${N[j.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);K("XRANGEIDENTIFIER",`${N[j.NUMERICIDENTIFIER]}|x|X|\\*`);K("XRANGEPLAIN",`[v=\\s]*(${N[j.XRANGEIDENTIFIER]})(?:\\.(${N[j.XRANGEIDENTIFIER]})(?:\\.(${N[j.XRANGEIDENTIFIER]})(?:${N[j.PRERELEASE]})?${N[j.BUILD]}?)?)?`);K("XRANGEPLAINLOOSE",`[v=\\s]*(${N[j.XRANGEIDENTIFIERLOOSE]})(?:\\.(${N[j.XRANGEIDENTIFIERLOOSE]})(?:\\.(${N[j.XRANGEIDENTIFIERLOOSE]})(?:${N[j.PRERELEASELOOSE]})?${N[j.BUILD]}?)?)?`);K("XRANGE",`^${N[j.GTLT]}\\s*${N[j.XRANGEPLAIN]}$`);K("XRANGELOOSE",`^${N[j.GTLT]}\\s*${N[j.XRANGEPLAINLOOSE]}$`);K("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Uo}})(?:\\.(\\d{1,${Uo}}))?(?:\\.(\\d{1,${Uo}}))?`);K("COERCE",`${N[j.COERCEPLAIN]}(?:$|[^\\d])`);K("COERCEFULL",N[j.COERCEPLAIN]+`(?:${N[j.PRERELEASE]})?(?:${N[j.BUILD]})?(?:$|[^\\d])`);K("COERCERTL",N[j.COERCE],!0);K("COERCERTLFULL",N[j.COERCEFULL],!0);K("LONETILDE","(?:~>?)");K("TILDETRIM",`(\\s*)${N[j.LONETILDE]}\\s+`,!0);wt.tildeTrimReplace="$1~";K("TILDE",`^${N[j.LONETILDE]}${N[j.XRANGEPLAIN]}$`);K("TILDELOOSE",`^${N[j.LONETILDE]}${N[j.XRANGEPLAINLOOSE]}$`);K("LONECARET","(?:\\^)");K("CARETTRIM",`(\\s*)${N[j.LONECARET]}\\s+`,!0);wt.caretTrimReplace="$1^";K("CARET",`^${N[j.LONECARET]}${N[j.XRANGEPLAIN]}$`);K("CARETLOOSE",`^${N[j.LONECARET]}${N[j.XRANGEPLAINLOOSE]}$`);K("COMPARATORLOOSE",`^${N[j.GTLT]}\\s*(${N[j.LOOSEPLAIN]})$|^$`);K("COMPARATOR",`^${N[j.GTLT]}\\s*(${N[j.FULLPLAIN]})$|^$`);K("COMPARATORTRIM",`(\\s*)${N[j.GTLT]}\\s*(${N[j.LOOSEPLAIN]}|${N[j.XRANGEPLAIN]})`,!0);wt.comparatorTrimReplace="$1$2$3";K("HYPHENRANGE",`^\\s*(${N[j.XRANGEPLAIN]})\\s+-\\s+(${N[j.XRANGEPLAIN]})\\s*$`);K("HYPHENRANGELOOSE",`^\\s*(${N[j.XRANGEPLAINLOOSE]})\\s+-\\s+(${N[j.XRANGEPLAINLOOSE]})\\s*$`);K("STAR","(<|>)?=?\\s*\\*");K("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");K("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var Sn=z((ih,va)=>{"use strict";var Ed=Object.freeze({loose:!0}),Cd=Object.freeze({}),Id=e=>e?typeof e!="object"?Ed:e:Cd;va.exports=Id});var Ho=z((sh,wa)=>{"use strict";var ba=/^[0-9]+$/,Sa=(e,t)=>{if(typeof e=="number"&&typeof t=="number")return e===t?0:e<t?-1:1;let r=ba.test(e),n=ba.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e<t?-1:1},kd=(e,t)=>Sa(t,e);wa.exports={compareIdentifiers:Sa,rcompareIdentifiers:kd}});var Oe=z((ah,Ra)=>{"use strict";var wn=Br(),{MAX_LENGTH:ya,MAX_SAFE_INTEGER:yn}=dr(),{safeRe:Rn,t:Tn}=fr(),Ad=Sn(),{compareIdentifiers:Go}=Ho(),_d=(e,t)=>{let r=t.split(".");if(r.length>e.length)return!1;for(let n=0;n<r.length;n++)if(Go(e[n],r[n])!==0)return!1;return!0},Wo=class e{constructor(t,r){if(r=Ad(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>ya)throw new TypeError(`version is longer than ${ya} characters`);wn("SemVer",t,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let n=t.trim().match(r.loose?Rn[Tn.LOOSE]:Rn[Tn.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>yn||this.major<0)throw new TypeError("Invalid major version");if(this.minor>yn||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>yn||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<yn)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(wn("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(wn("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 Go(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(wn("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 Go(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?Rn[Tn.PRERELEASELOOSE]:Rn[Tn.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]),_d(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}};Ra.exports=Wo});var Nt=z((ch,Ea)=>{"use strict";var Ta=Oe(),Pd=(e,t,r=!1)=>{if(e instanceof Ta)return e;try{return new Ta(e,t)}catch(n){if(!r)return null;throw n}};Ea.exports=Pd});var Ia=z((lh,Ca)=>{"use strict";var Ld=Nt(),Bd=(e,t)=>{let r=Ld(e,t);return r?r.version:null};Ca.exports=Bd});var Aa=z((uh,ka)=>{"use strict";var $d=Nt(),Dd=(e,t)=>{let r=$d(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null};ka.exports=Dd});var La=z((dh,Pa)=>{"use strict";var _a=Oe(),Od=(e,t,r,n,o)=>{typeof r=="string"&&(o=n,n=r,r=void 0);try{return new _a(e instanceof _a?e.version:e,r).inc(t,n,o).version}catch{return null}};Pa.exports=Od});var Da=z((fh,$a)=>{"use strict";var Ba=Nt(),Nd=(e,t)=>{let r=Ba(e,null,!0),n=Ba(t,null,!0),o=r.compare(n);if(o===0)return null;let i=o>0,a=i?r:n,u=i?n:r,f=!!a.prerelease.length;if(!!u.prerelease.length&&!f){if(!u.patch&&!u.minor)return"major";if(u.compareMain(a)===0)return u.minor&&!u.patch?"minor":"patch"}let w=f?"pre":"";return r.major!==n.major?w+"major":r.minor!==n.minor?w+"minor":r.patch!==n.patch?w+"patch":"prerelease"};$a.exports=Nd});var Na=z((mh,Oa)=>{"use strict";var jd=Oe(),Vd=(e,t)=>new jd(e,t).major;Oa.exports=Vd});var Va=z((ph,ja)=>{"use strict";var Md=Oe(),Fd=(e,t)=>new Md(e,t).minor;ja.exports=Fd});var Fa=z((gh,Ma)=>{"use strict";var Ud=Oe(),qd=(e,t)=>new Ud(e,t).patch;Ma.exports=qd});var qa=z((hh,Ua)=>{"use strict";var Hd=Nt(),Gd=(e,t)=>{let r=Hd(e,t);return r&&r.prerelease.length?r.prerelease:null};Ua.exports=Gd});var st=z((xh,Ga)=>{"use strict";var Ha=Oe(),Wd=(e,t,r)=>new Ha(e,r).compare(new Ha(t,r));Ga.exports=Wd});var Xa=z((vh,Wa)=>{"use strict";var Xd=st(),zd=(e,t,r)=>Xd(t,e,r);Wa.exports=zd});var Ya=z((bh,za)=>{"use strict";var Yd=st(),Kd=(e,t)=>Yd(e,t,!0);za.exports=Kd});var En=z((Sh,Ja)=>{"use strict";var Ka=Oe(),Jd=(e,t,r)=>{let n=new Ka(e,r),o=new Ka(t,r);return n.compare(o)||n.compareBuild(o)};Ja.exports=Jd});var Za=z((wh,Qa)=>{"use strict";var Qd=En(),Zd=(e,t)=>e.sort((r,n)=>Qd(r,n,t));Qa.exports=Zd});var tc=z((yh,ec)=>{"use strict";var ef=En(),tf=(e,t)=>e.sort((r,n)=>ef(n,r,t));ec.exports=tf});var $r=z((Rh,rc)=>{"use strict";var rf=st(),nf=(e,t,r)=>rf(e,t,r)>0;rc.exports=nf});var Cn=z((Th,nc)=>{"use strict";var of=st(),sf=(e,t,r)=>of(e,t,r)<0;nc.exports=sf});var Xo=z((Eh,oc)=>{"use strict";var af=st(),cf=(e,t,r)=>af(e,t,r)===0;oc.exports=cf});var zo=z((Ch,ic)=>{"use strict";var lf=st(),uf=(e,t,r)=>lf(e,t,r)!==0;ic.exports=uf});var In=z((Ih,sc)=>{"use strict";var df=st(),ff=(e,t,r)=>df(e,t,r)>=0;sc.exports=ff});var kn=z((kh,ac)=>{"use strict";var mf=st(),pf=(e,t,r)=>mf(e,t,r)<=0;ac.exports=pf});var Yo=z((Ah,cc)=>{"use strict";var gf=Xo(),hf=zo(),xf=$r(),vf=In(),bf=Cn(),Sf=kn(),wf=(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 gf(e,r,n);case"!=":return hf(e,r,n);case">":return xf(e,r,n);case">=":return vf(e,r,n);case"<":return bf(e,r,n);case"<=":return Sf(e,r,n);default:throw new TypeError(`Invalid operator: ${t}`)}};cc.exports=wf});var uc=z((_h,lc)=>{"use strict";var yf=Oe(),Rf=Nt(),{safeRe:An,t:_n}=fr(),Tf=(e,t)=>{if(e instanceof yf)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?An[_n.COERCEFULL]:An[_n.COERCE]);else{let f=t.includePrerelease?An[_n.COERCERTLFULL]:An[_n.COERCERTL],v;for(;(v=f.exec(e))&&(!r||r.index+r[0].length!==e.length);)(!r||v.index+v[0].length!==r.index+r[0].length)&&(r=v),f.lastIndex=v.index+v[1].length+v[2].length;f.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 Rf(`${n}.${o}.${i}${a}${u}`,t)};lc.exports=Tf});var fc=z((Ph,dc)=>{"use strict";var Ef=Nt(),Cf=dr(),If=Oe(),kf=(e,t,r)=>{if(!Cf.RELEASE_TYPES.includes(t))return null;let n=Af(e,r);return n&&_f(n,t)},Af=(e,t)=>{let r=e instanceof If?e.version:e;return Ef(r,t)},_f=(e,t)=>{if(Pf(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()},Pf=e=>e.startsWith("pre");dc.exports=kf});var pc=z((Lh,mc)=>{"use strict";var Ko=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}};mc.exports=Ko});var at=z((Bh,vc)=>{"use strict";var Lf=/\s+/g,Jo=class e{constructor(t,r){if(r=$f(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof Qo)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(Lf," "),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=>!hc(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&&qf(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(Uf,"");let n=((this.options.includePrerelease&&Mf)|(this.options.loose&&Ff))+":"+t,o=gc.get(n);if(o)return o;let i=this.options.loose,a=i?ze[Ne.HYPHENRANGELOOSE]:ze[Ne.HYPHENRANGE];t=t.replace(a,em(this.options.includePrerelease)),he("hyphen replace",t),t=t.replace(ze[Ne.COMPARATORTRIM],Nf),he("comparator trim",t),t=t.replace(ze[Ne.TILDETRIM],jf),he("tilde trim",t),t=t.replace(ze[Ne.CARETTRIM],Vf),he("caret trim",t);let u=t.split(" ").map(g=>Hf(g,this.options)).join(" ").split(/\s+/).map(g=>Zf(g,this.options));i&&(u=u.filter(g=>(he("loose invalid filter",g,this.options),!!g.match(ze[Ne.COMPARATORLOOSE])))),he("range list",u);let f=new Map,v=u.map(g=>new Qo(g,this.options));for(let g of v){if(hc(g))return[g];f.set(g.value,g)}f.size>1&&f.has("")&&f.delete("");let w=[...f.values()];return gc.set(n,w),w}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(n=>xc(n,r)&&t.set.some(o=>xc(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 Df(t,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(tm(this.set[r],t,this.options))return!0;return!1}};vc.exports=Jo;var Bf=pc(),gc=new Bf,$f=Sn(),Qo=Dr(),he=Br(),Df=Oe(),{safeRe:ze,src:Of,t:Ne,comparatorTrimReplace:Nf,tildeTrimReplace:jf,caretTrimReplace:Vf}=fr(),{FLAG_INCLUDE_PRERELEASE:Mf,FLAG_LOOSE:Ff}=dr(),Uf=new RegExp(Of[Ne.BUILD],"g"),hc=e=>e.value==="<0.0.0-0",qf=e=>e.value==="",xc=(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},Hf=(e,t)=>(e=e.replace(ze[Ne.BUILD],""),he("comp",e,t),e=zf(e,t),he("caret",e),e=Wf(e,t),he("tildes",e),e=Kf(e,t),he("xrange",e),e=Qf(e,t),he("stars",e),e),Ee=e=>!e||e.toLowerCase()==="x"||e==="*",Gf=(e,t,r)=>Ee(e)&&!Ee(t)||Ee(t)&&r&&!Ee(r),Wf=(e,t)=>e.trim().split(/\s+/).map(r=>Xf(r,t)).join(" "),Xf=(e,t)=>{let r=t.loose?ze[Ne.TILDELOOSE]:ze[Ne.TILDE];return e.replace(r,(n,o,i,a,u)=>{he("tilde",e,n,o,i,a,u);let f;return Ee(o)?f="":Ee(i)?f=`>=${o}.0.0 <${+o+1}.0.0-0`:Ee(a)?f=`>=${o}.${i}.0 <${o}.${+i+1}.0-0`:u?(he("replaceTilde pr",u),f=`>=${o}.${i}.${a}-${u} <${o}.${+i+1}.0-0`):f=`>=${o}.${i}.${a} <${o}.${+i+1}.0-0`,he("tilde return",f),f})},zf=(e,t)=>e.trim().split(/\s+/).map(r=>Yf(r,t)).join(" "),Yf=(e,t)=>{he("caret",e,t);let r=t.loose?ze[Ne.CARETLOOSE]:ze[Ne.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(o,i,a,u,f)=>{he("caret",e,o,i,a,u,f);let v;return Ee(i)?v="":Ee(a)?v=`>=${i}.0.0${n} <${+i+1}.0.0-0`:Ee(u)?i==="0"?v=`>=${i}.${a}.0${n} <${i}.${+a+1}.0-0`:v=`>=${i}.${a}.0${n} <${+i+1}.0.0-0`:f?(he("replaceCaret pr",f),i==="0"?a==="0"?v=`>=${i}.${a}.${u}-${f} <${i}.${a}.${+u+1}-0`:v=`>=${i}.${a}.${u}-${f} <${i}.${+a+1}.0-0`:v=`>=${i}.${a}.${u}-${f} <${+i+1}.0.0-0`):(he("no pr"),i==="0"?a==="0"?v=`>=${i}.${a}.${u} <${i}.${a}.${+u+1}-0`:v=`>=${i}.${a}.${u} <${i}.${+a+1}.0-0`:v=`>=${i}.${a}.${u} <${+i+1}.0.0-0`),he("caret return",v),v})},Kf=(e,t)=>(he("replaceXRanges",e,t),e.split(/\s+/).map(r=>Jf(r,t)).join(" ")),Jf=(e,t)=>{e=e.trim();let r=t.loose?ze[Ne.XRANGELOOSE]:ze[Ne.XRANGE];return e.replace(r,(n,o,i,a,u,f)=>{if(he("xRange",e,n,o,i,a,u,f),Gf(i,a,u))return e;let v=Ee(i),w=v||Ee(a),g=w||Ee(u),T=g;return o==="="&&T&&(o=""),f=t.includePrerelease?"-0":"",v?o===">"||o==="<"?n="<0.0.0-0":n="*":o&&T?(w&&(a=0),u=0,o===">"?(o=">=",w?(i=+i+1,a=0,u=0):(a=+a+1,u=0)):o==="<="&&(o="<",w?i=+i+1:a=+a+1),o==="<"&&(f="-0"),n=`${o+i}.${a}.${u}${f}`):w?n=`>=${i}.0.0${f} <${+i+1}.0.0-0`:g&&(n=`>=${i}.${a}.0${f} <${i}.${+a+1}.0-0`),he("xRange return",n),n})},Qf=(e,t)=>(he("replaceStars",e,t),e.trim().replace(ze[Ne.STAR],"")),Zf=(e,t)=>(he("replaceGTE0",e,t),e.trim().replace(ze[t.includePrerelease?Ne.GTE0PRE:Ne.GTE0],"")),em=e=>(t,r,n,o,i,a,u,f,v,w,g,T)=>(Ee(n)?r="":Ee(o)?r=`>=${n}.0.0${e?"-0":""}`:Ee(i)?r=`>=${n}.${o}.0${e?"-0":""}`:a?r=`>=${r}`:r=`>=${r}${e?"-0":""}`,Ee(v)?f="":Ee(w)?f=`<${+v+1}.0.0-0`:Ee(g)?f=`<${v}.${+w+1}.0-0`:T?f=`<=${v}.${w}.${g}-${T}`:e?f=`<${v}.${w}.${+g+1}-0`:f=`<=${f}`,`${r} ${f}`.trim()),tm=(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(he(e[n].semver),e[n].semver!==Qo.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 Dr=z(($h,Tc)=>{"use strict";var Or=Symbol("SemVer ANY"),ti=class e{static get ANY(){return Or}constructor(t,r){if(r=bc(r),t instanceof e){if(t.loose===!!r.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),ei("comparator",t,r),this.options=r,this.loose=!!r.loose,this.parse(t),this.semver===Or?this.value="":this.value=this.operator+this.semver.version,ei("comp",this)}parse(t){let r=this.options.loose?Sc[wc.COMPARATORLOOSE]:Sc[wc.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 yc(n[2],this.options.loose):this.semver=Or}toString(){return this.value}test(t){if(ei("Comparator.test",t,this.options.loose),this.semver===Or||t===Or)return!0;if(typeof t=="string")try{t=new yc(t,this.options)}catch{return!1}return Zo(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 Rc(t.value,r).test(this.value):t.operator===""?t.value===""?!0:new Rc(this.value,r).test(t.semver):(r=bc(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("=")||Zo(this.semver,"<",t.semver,r)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||Zo(this.semver,">",t.semver,r)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};Tc.exports=ti;var bc=Sn(),{safeRe:Sc,t:wc}=fr(),Zo=Yo(),ei=Br(),yc=Oe(),Rc=at()});var Nr=z((Dh,Ec)=>{"use strict";var rm=at(),nm=(e,t,r)=>{try{t=new rm(t,r)}catch{return!1}return t.test(e)};Ec.exports=nm});var Ic=z((Oh,Cc)=>{"use strict";var om=at(),im=(e,t)=>new om(e,t).set.map(r=>r.map(n=>n.value).join(" ").trim().split(" "));Cc.exports=im});var Ac=z((Nh,kc)=>{"use strict";var sm=Oe(),am=at(),cm=(e,t,r)=>{let n=null,o=null,i=null;try{i=new am(t,r)}catch{return null}return e.forEach(a=>{i.test(a)&&(!n||o.compare(a)===-1)&&(n=a,o=new sm(n,r))}),n};kc.exports=cm});var Pc=z((jh,_c)=>{"use strict";var lm=Oe(),um=at(),dm=(e,t,r)=>{let n=null,o=null,i=null;try{i=new um(t,r)}catch{return null}return e.forEach(a=>{i.test(a)&&(!n||o.compare(a)===1)&&(n=a,o=new lm(n,r))}),n};_c.exports=dm});var $c=z((Vh,Bc)=>{"use strict";var ri=Oe(),fm=at(),Lc=$r(),mm=(e,t)=>{e=new fm(e,t);let r=new ri("0.0.0");if(e.test(r)||(r=new ri("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 ri(a.semver.version);switch(a.operator){case">":u.prerelease.length===0?u.patch++:u.prerelease.push(0),u.raw=u.format();case"":case">=":(!i||Lc(u,i))&&(i=u);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${a.operator}`)}}),i&&(!r||Lc(r,i))&&(r=i)}return r&&e.test(r)?r:null};Bc.exports=mm});var Oc=z((Mh,Dc)=>{"use strict";var pm=at(),gm=(e,t)=>{try{return new pm(e,t).range||"*"}catch{return null}};Dc.exports=gm});var Pn=z((Fh,Mc)=>{"use strict";var hm=Oe(),Vc=Dr(),{ANY:xm}=Vc,vm=at(),bm=Nr(),Nc=$r(),jc=Cn(),Sm=kn(),wm=In(),ym=(e,t,r,n)=>{e=new hm(e,n),t=new vm(t,n);let o,i,a,u,f;switch(r){case">":o=Nc,i=Sm,a=jc,u=">",f=">=";break;case"<":o=jc,i=wm,a=Nc,u="<",f="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(bm(e,t,n))return!1;for(let v=0;v<t.set.length;++v){let w=t.set[v],g=null,T=null;if(w.forEach(c=>{c.semver===xm&&(c=new Vc(">=0.0.0")),g=g||c,T=T||c,o(c.semver,g.semver,n)?g=c:a(c.semver,T.semver,n)&&(T=c)}),g.operator===u||g.operator===f||(!T.operator||T.operator===u)&&i(e,T.semver))return!1;if(T.operator===f&&a(e,T.semver))return!1}return!0};Mc.exports=ym});var Uc=z((Uh,Fc)=>{"use strict";var Rm=Pn(),Tm=(e,t,r)=>Rm(e,t,">",r);Fc.exports=Tm});var Hc=z((qh,qc)=>{"use strict";var Em=Pn(),Cm=(e,t,r)=>Em(e,t,"<",r);qc.exports=Cm});var Xc=z((Hh,Wc)=>{"use strict";var Gc=at(),Im=(e,t,r)=>(e=new Gc(e,r),t=new Gc(t,r),e.intersects(t,r));Wc.exports=Im});var Yc=z((Gh,zc)=>{"use strict";var km=Nr(),Am=st();zc.exports=(e,t,r)=>{let n=[],o=null,i=null,a=e.sort((w,g)=>Am(w,g,r));for(let w of a)km(w,t,r)?(i=w,o||(o=w)):(i&&n.push([o,i]),i=null,o=null);o&&n.push([o,null]);let u=[];for(let[w,g]of n)w===g?u.push(w):!g&&w===a[0]?u.push("*"):g?w===a[0]?u.push(`<=${g}`):u.push(`${w} - ${g}`):u.push(`>=${w}`);let f=u.join(" || "),v=typeof t.raw=="string"?t.raw:String(t);return f.length<v.length?f:t}});var tl=z((Wh,el)=>{"use strict";var Kc=at(),ii=Dr(),{ANY:ni}=ii,oi=Nr(),si=st(),_m=(e,t,r={})=>{if(e===t)return!0;e=new Kc(e,r),t=new Kc(t,r);let n=!1;e:for(let o of e.set){for(let i of t.set){let a=Lm(o,i,r);if(n=n||a!==null,a)continue e}if(n)return!1}return!0},Pm=[new ii(">=0.0.0-0")],Jc=[new ii(">=0.0.0")],Lm=(e,t,r)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===ni){if(t.length===1&&t[0].semver===ni)return!0;r.includePrerelease?e=Pm:e=Jc}if(t.length===1&&t[0].semver===ni){if(r.includePrerelease)return!0;t=Jc}let n=new Set,o,i;for(let c of e)c.operator===">"||c.operator===">="?o=Qc(o,c,r):c.operator==="<"||c.operator==="<="?i=Zc(i,c,r):n.add(c.semver);if(n.size>1)return null;let a;if(o&&i){if(a=si(o.semver,i.semver,r),a>0)return null;if(a===0&&(o.operator!==">="||i.operator!=="<="))return null}for(let c of n){if(o&&!oi(c,String(o),r)||i&&!oi(c,String(i),r))return null;for(let m of t)if(!oi(c,String(m),r))return!1;return!0}let u,f,v,w,g=i&&!r.includePrerelease&&i.semver.prerelease.length?i.semver:!1,T=o&&!r.includePrerelease&&o.semver.prerelease.length?o.semver:!1;g&&g.prerelease.length===1&&i.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let c of t){if(w=w||c.operator===">"||c.operator===">=",v=v||c.operator==="<"||c.operator==="<=",o){if(T&&c.semver.prerelease&&c.semver.prerelease.length&&c.semver.major===T.major&&c.semver.minor===T.minor&&c.semver.patch===T.patch&&(T=!1),c.operator===">"||c.operator===">="){if(u=Qc(o,c,r),u===c&&u!==o)return!1}else if(o.operator===">="&&!c.test(o.semver))return!1}if(i){if(g&&c.semver.prerelease&&c.semver.prerelease.length&&c.semver.major===g.major&&c.semver.minor===g.minor&&c.semver.patch===g.patch&&(g=!1),c.operator==="<"||c.operator==="<="){if(f=Zc(i,c,r),f===c&&f!==i)return!1}else if(i.operator==="<="&&!c.test(i.semver))return!1}if(!c.operator&&(i||o)&&a!==0)return!1}return!(o&&v&&!i&&a!==0||i&&w&&!o&&a!==0||T||g)},Qc=(e,t,r)=>{if(!e)return t;let n=si(e.semver,t.semver,r);return n>0?e:n<0||t.operator===">"&&e.operator===">="?t:e},Zc=(e,t,r)=>{if(!e)return t;let n=si(e.semver,t.semver,r);return n<0?e:n>0||t.operator==="<"&&e.operator==="<="?t:e};el.exports=_m});var ci=z((Xh,ol)=>{"use strict";var ai=fr(),rl=dr(),Bm=Oe(),nl=Ho(),$m=Nt(),Dm=Ia(),Om=Aa(),Nm=La(),jm=Da(),Vm=Na(),Mm=Va(),Fm=Fa(),Um=qa(),qm=st(),Hm=Xa(),Gm=Ya(),Wm=En(),Xm=Za(),zm=tc(),Ym=$r(),Km=Cn(),Jm=Xo(),Qm=zo(),Zm=In(),ep=kn(),tp=Yo(),rp=uc(),np=fc(),op=Dr(),ip=at(),sp=Nr(),ap=Ic(),cp=Ac(),lp=Pc(),up=$c(),dp=Oc(),fp=Pn(),mp=Uc(),pp=Hc(),gp=Xc(),hp=Yc(),xp=tl();ol.exports={parse:$m,valid:Dm,clean:Om,inc:Nm,diff:jm,major:Vm,minor:Mm,patch:Fm,prerelease:Um,compare:qm,rcompare:Hm,compareLoose:Gm,compareBuild:Wm,sort:Xm,rsort:zm,gt:Ym,lt:Km,eq:Jm,neq:Qm,gte:Zm,lte:ep,cmp:tp,coerce:rp,truncate:np,Comparator:op,Range:ip,satisfies:sp,toComparators:ap,maxSatisfying:cp,minSatisfying:lp,minVersion:up,validRange:dp,outside:fp,gtr:mp,ltr:pp,intersects:gp,simplifyRange:hp,subset:xp,SemVer:Bm,re:ai.re,src:ai.src,tokens:ai.t,SEMVER_SPEC_VERSION:rl.SEMVER_SPEC_VERSION,RELEASE_TYPES:rl.RELEASE_TYPES,compareIdentifiers:nl.compareIdentifiers,rcompareIdentifiers:nl.rcompareIdentifiers}});var R=k(xe(),1);var ma=k(xe(),1);var ur=k(M(),1);function pa({path:e}){return e.length===0?null:(0,ur.jsx)(b,{children:e.map((t,r)=>(0,ur.jsxs)(ma.default.Fragment,{children:[r>0&&(0,ur.jsx)(s,{color:l.muted,children:" \u203A "}),(0,ur.jsx)(s,{color:l.dim,children:t})]},r))})}var il=k(ci(),1),vp=1,bp=new Set(["discover","workflow","nudge","recovery"]),Sp=new Set(["run","generate","both"]),wp=new Set(["banner","footer"]),Ln=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),mr=e=>typeof e=="string"&&e.length>0?e:void 0,pr=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0;function yp(e){if(!Ln(e))return{};let t={};return mr(e.run)&&(t.run=e.run),mr(e.generate)&&(t.generate=e.generate),mr(e.default)&&(t.default=e.default),t}function sl(e,t){return e.text[t]??e.text.default??(e.target!=="both"?e.text[e.target]:void 0)}function Rp(e,t){return t==="both"?!!e.default||!!e.run&&!!e.generate:t==="run"?!!e.run||!!e.default:!!e.generate||!!e.default}function Tp(e,t){if(!Ln(e))return;let r=pr(e.maxShows),n=mr(e.until),o=pr(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 Ep(e){if(!Ln(e))return null;let t=mr(e.id);if(!t)return null;let r=Sp.has(e.target)?e.target:void 0;if(e.target!==void 0&&r===void 0)return null;let n=r??"both",o=yp(e.text);if(!Rp(o,n))return null;let i=bp.has(e.category)?e.category:"nudge",a=wp.has(e.surface)?e.surface:void 0,u=pr(e.weight),f=u===void 0?1:Math.max(0,u),v=pr(e.cooldownSessions),w=v===void 0?0:Math.max(0,Math.floor(v)),g=mr(e.minVersion)&&il.default.coerce(e.minVersion)?e.minVersion:void 0,T=Array.isArray(e.relevance)?e.relevance.filter(D=>typeof D=="string"):[],c=pr(e.retireAfterShows),m=c!==void 0&&c>=1?Math.floor(c):void 0,$=Tp(e.boost,f);return{id:t,category:i,surface:a,target:n,text:o,weight:f,cooldownSessions:w,minVersion:g,relevance:T,retireAfterShows:m,boost:$}}function Bn(e){if(!Ln(e)||!Array.isArray(e.hints)||typeof e.enabled!="boolean")return{catalog:null,dropped:0};let t=pr(e.schemaVersion)??0;if(Math.floor(t)>vp)return{catalog:null,dropped:0};let r=0,n=new Set,o=[];for(let i of e.hints){let a=Ep(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 ll=k(M(),1),al="tip: ";function cl({hint:e,mode:t,termWidth:r}){if(e.target!=="both"&&e.target!==t)return null;let n=sl(e,t);if(!n)return null;let o=Math.max(8,r-al.length-2),i=n.length>o?n.slice(0,o-1)+"\u2026":n;return(0,ll.jsx)(s,{color:l.dim,children:al+i})}var J=k(M(),1);function ul({profile:e,environment:t,tokenValid:r,runCount:n,sessionId:o,viewMode:i,breadcrumb:a,chatMode:u,tcgRequestId:f,tcgStreamStatus:v,footerHint:w}){let{stdout:g}=or(),T=g?.columns??80,c=u??"run",m=t==="stage",$=t==="prod",D=c==="generate"?l.generateAccent:l.orange,V=v==="completed"?l.green:v==="failed"?l.red:l.generateAccent;return(0,J.jsxs)(b,{flexDirection:"column",children:[(0,J.jsx)(s,{color:l.muted,children:"\u2500".repeat(T)}),a&&a.length>0&&(0,J.jsx)(b,{paddingX:1,children:(0,J.jsx)(pa,{path:a})}),(0,J.jsxs)(b,{paddingX:1,gap:1,children:[(0,J.jsx)(s,{color:l.dim,children:"Mode:"}),(0,J.jsx)(s,{color:D,bold:!0,children:c==="generate"?"Generate":"Run"}),(0,J.jsx)(s,{color:l.muted,children:"|"}),c==="generate"?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:l.dim,children:"req"}),(0,J.jsx)(s,{color:l.dim,children:f??"\u2014"}),v&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:l.muted,children:"\xB7"}),(0,J.jsx)(s,{color:V,children:v})]})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:l.dim,children:"Session:"}),(0,J.jsx)(s,{color:l.dim,children:o})]}),(0,J.jsx)(s,{color:l.muted,children:"|"}),(0,J.jsx)(s,{color:r?l.green:l.red,children:"\u25CF"}),(0,J.jsx)(s,{color:l.dim,children:r?"authenticated":"not logged in"}),!$&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:l.muted,children:"|"}),m?(0,J.jsx)(s,{color:l.orange,bold:!0,children:"\u26A0 stage"}):(0,J.jsx)(s,{color:l.green,children:t})]})]}),(0,J.jsxs)(b,{paddingX:1,gap:1,children:[(0,J.jsx)(s,{color:l.dim,children:e??"no profile"}),c==="run"&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:l.muted,children:"|"}),(0,J.jsxs)(s,{color:l.dim,children:["runs: ",n]})]}),(0,J.jsx)(s,{color:l.muted,children:"|"}),(0,J.jsx)(s,{dimColor:!0,children:Xi()})]}),(0,J.jsx)(b,{paddingX:1,children:(0,J.jsx)(s,{dimColor:!0,children:i==="chat"?"ctrl+c cancel/exit":"\u2191\u2193 navigate \u21B5 select esc back"})}),w&&(0,J.jsx)(b,{paddingX:1,children:(0,J.jsx)(cl,{hint:w,mode:c,termWidth:T})})]})}var Kt=k(xe(),1);var jr=[[[" "],[" "],[" "],[" "],["\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 te=k(M(),1),$n="#af87d7",li="#875faf",dl="#5b3a7a",Cp="#ff9500",Ip="#ea580c";var ui="#666666",kp="#555555",Yt=[[$n,"\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"],[$n,"\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"],[$n,"\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"],[$n,"\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"],[li,"\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"],[li,"\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"],[li,"\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"]],di=Yt.map(([,e])=>[...e]);function fl({visibleRows:e=Yt.length}){let t=Math.min(e,Yt.length);return(0,te.jsxs)(b,{flexDirection:"column",children:[Yt.slice(0,t).map(([r,n],o)=>{let i=di[o];return(0,te.jsx)(s,{children:i.map((a,u)=>{if(a==="\u2588")return(0,te.jsx)(s,{color:r,children:"\u2588"},u);let f=u>0&&i[u-1]==="\u2588",v=o>0&&u>0&&di[o-1][u-1]==="\u2588";return f||v?(0,te.jsx)(s,{color:dl,children:"\u2592"},u):(0,te.jsx)(s,{children:" "},u)})},o)}),t>=Yt.length&&(0,te.jsxs)(s,{children:[" ",di[Yt.length-1].map((r,n)=>r==="\u2588"?(0,te.jsx)(s,{color:dl,children:"\u2580"},n):(0,te.jsx)(s,{children:" "},n))]})]})}function Ap({visibleRows:e=jr.length}){let t=Math.min(e,jr.length);return(0,te.jsx)(b,{flexDirection:"column",children:jr.slice(0,t).map((r,n)=>(0,te.jsx)(s,{children:r.map((o,i)=>{let a=o[0],u=o[1],f=o[2];return u?(0,te.jsx)(s,{color:u,backgroundColor:f,children:a},i):(0,te.jsx)(s,{children:a},i)})},n))})}function Dn({size:e="compact",helmetVisibleRows:t=jr.length,textVisibleRows:r=Yt.length,showMeta:n=!1,user:o=null,authenticated:i=!1,version:a=""}){return e==="compact"?(0,te.jsx)(fl,{}):(0,te.jsxs)(b,{flexDirection:"column",paddingX:1,paddingY:1,children:[(0,te.jsx)(s,{color:Cp,italic:!0,children:" Welcome to"}),(0,te.jsx)(s,{children:" "}),(0,te.jsxs)(b,{gap:2,children:[(0,te.jsx)(Ap,{visibleRows:t}),(0,te.jsxs)(b,{flexDirection:"column",children:[(0,te.jsx)(fl,{visibleRows:r}),(0,te.jsx)(b,{justifyContent:"flex-end",width:73,children:(0,te.jsx)(s,{color:Ip,italic:!0,children:"Command-line interface"})})]})]}),n&&(0,te.jsxs)(te.Fragment,{children:[(0,te.jsx)(s,{children:" "}),(0,te.jsxs)(s,{children:[(0,te.jsx)(s,{color:ui,children:" Browser automation powered by AI. "}),(0,te.jsx)(s,{color:kp,children:`v${a}`})]}),(0,te.jsx)(s,{children:" "}),(0,te.jsx)(s,{children:(0,te.jsx)(s,{color:ui,children:" KaneCLI can navigate websites, fill forms, test web UI, and extract"})}),(0,te.jsx)(s,{children:(0,te.jsx)(s,{color:ui,children:" data \u2014 right from your terminal."})}),(0,te.jsx)(s,{children:" "})]})]})}var pi=k(M(),1),fi=8,mi=7;function ml({onComplete:e}){let[t,r]=(0,Kt.useState)(0),[n,o]=(0,Kt.useState)(0),[i,a]=(0,Kt.useState)(!1),[u]=(0,Kt.useState)(()=>{let f=new fn,v=f.getActiveProfile(),w=f.getDefaultEnv(),g=v?f.loadCredentials(v,w):null,T=v?f.loadBasicAuth(v,w):null;return{authenticated:!!(g||T),user:T?.username??v??null}});return Ao(()=>{r(f=>Math.min(fi,f+1))},t<fi?60:null),Ao(()=>{o(f=>Math.min(mi,f+1))},n<mi?80:null),(0,Kt.useEffect)(()=>{t>=fi&&n>=mi&&!i&&(a(!0),e?.())},[t,n,i,e]),(0,pi.jsx)(b,{flexDirection:"column",children:(0,pi.jsx)(Dn,{size:"full",helmetVisibleRows:t,textVisibleRows:n,showMeta:i,user:u.user,authenticated:u.authenticated,version:ot})})}var kt=k(M(),1);function pl({entry:e}){return e.type==="input"?(0,kt.jsxs)(b,{children:[(0,kt.jsx)(s,{color:l.orange,children:"\u276F "}),(0,kt.jsx)(s,{children:e.text})]}):e.type==="error"?(0,kt.jsx)(b,{marginLeft:2,children:(0,kt.jsx)(s,{color:l.red,children:e.text})}):(0,kt.jsx)(b,{marginLeft:2,children:(0,kt.jsx)(s,{color:e.type==="info"?l.dim:void 0,children:e.text})})}var gi=k(M(),1);function gl({objective:e}){let{stdout:t}=or(),r=Math.max(24,(t?.columns??80)-4);return(0,gi.jsx)(It,{title:"run",width:r,children:(0,gi.jsx)(Yi,{label:"objective",value:e})})}var yt=k(xe(),1);var Ye=k(M(),1);function _p(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(f=>f.key.length)):0;for(let f of a.entries){let v="\xB7".repeat(Math.max(2,u-f.key.length+3)),w=`${f.key} ${v} ${f.value}`;r.push({type:"entry",text:w,color:f.color})}}return r.push({type:"footer",text:"esc back"}),r}function hl({data:e,width:t=60}){let r=_p(e,t);return(0,Ye.jsx)(b,{flexDirection:"column",borderStyle:"round",borderColor:l.orange,paddingX:2,paddingY:1,children:r.map((n,o)=>{if(n.type==="title")return(0,Ye.jsx)(s,{color:l.orange,bold:!0,children:n.text},o);if(n.type==="header")return(0,Ye.jsx)(b,{marginTop:1,children:(0,Ye.jsx)(s,{color:l.dim,children:n.text})},o);if(n.type==="divider")return(0,Ye.jsx)(b,{marginTop:1,marginBottom:0,children:(0,Ye.jsx)(s,{color:l.muted,children:n.text})},o);if(n.type==="footer")return(0,Ye.jsx)(b,{marginTop:1,children:(0,Ye.jsx)(s,{color:l.dim,children:n.text})},o);let i=n.text.match(/^(.+?) (·+) (.+)$/);return i?(0,Ye.jsxs)(s,{children:[(0,Ye.jsxs)(s,{color:l.secondary,children:[i[1]," "]}),(0,Ye.jsxs)(s,{color:l.muted,children:[i[2]," "]}),(0,Ye.jsx)(s,{color:n.color,children:i[3]})]},o):(0,Ye.jsx)(s,{color:n.color,children:n.text},o)})})}var je=k(M(),1);function hi(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 xi({items:e,onRunSelected:t,initialExpandedPath:r,onDismiss:n,renderLoginWizard:o,renderProfilesView:i,renderChromeProfilePicker:a,renderProjectPicker:u,renderFolderPicker:f,renderWindowSizePicker:v,onActiveViewChange:w}){let[g,T]=(0,yt.useState)(()=>{let O=r??[],H=hi(e,O),A=0;if(O.length>0){let F=H.findIndex(ee=>ee.item.id===O[0]);F>=0&&F+1<H.length&&(A=F+1)}return{expandedPath:O,selectedIndex:A,inputValue:"",isEditing:!1,isSelecting:!1,feedback:null,activeView:null,infoData:null}}),c=hi(e,g.expandedPath),m=c[g.selectedIndex]?.item,$=(0,yt.useRef)(null),D=(0,yt.useCallback)(O=>{T(H=>({...H,feedback:O})),$.current&&clearTimeout($.current),$.current=setTimeout(()=>{T(H=>({...H,feedback:null})),$.current=null},4e3)},[]);(0,yt.useEffect)(()=>()=>{$.current&&clearTimeout($.current)},[]),(0,yt.useEffect)(()=>{w?.(g.activeView)},[g.activeView,w]);let V=(0,yt.useCallback)(()=>{T(O=>({...O,activeView:null,infoData:null}))},[]);return Ie((O,H)=>{if(g.activeView==="infoView"){H.escape&&V();return}if(!(g.activeView==="loginWizard"||g.activeView==="profilesView"||g.activeView==="chromeProfilePicker"||g.activeView==="projectPicker"||g.activeView==="folderPicker"||g.activeView==="windowSizePicker")){if(g.isEditing){if(H.escape){T(A=>({...A,isEditing:!1,inputValue:""}));return}if(H.return){let A=g.inputValue.trim();if(m?.onValue&&A){let F=m.currentValue;m.onValue(A),D(F?`${m.label}: ${F} \u2192 ${A}`:`${m.label}: ${A}`)}T(F=>({...F,isEditing:!1,inputValue:""}));return}if(H.backspace||H.delete){T(A=>({...A,inputValue:A.inputValue.slice(0,-1)}));return}O&&!H.ctrl&&!H.meta&&T(A=>({...A,inputValue:A.inputValue+O}));return}if(g.isSelecting&&m?.options){let A=m.options;if(H.escape){T(F=>({...F,isSelecting:!1}));return}if(H.upArrow){T(F=>({...F,inputValue:String(Math.max(0,Number(F.inputValue||"0")-1))}));return}if(H.downArrow){T(F=>({...F,inputValue:String(Math.min(A.length-1,Number(F.inputValue||"0")+1))}));return}if(H.return){let F=Number(g.inputValue||"0"),ee=A[F];if(ee&&m.onValue){let re=m.currentValue;m.onValue(ee.value),D(re?`${m.label}: ${re} \u2192 ${ee.label}`:`${m.label}: ${ee.label}`)}T(re=>({...re,isSelecting:!1,inputValue:""}));return}return}if(H.upArrow){T(A=>({...A,selectedIndex:Math.max(0,A.selectedIndex-1)}));return}if(H.downArrow){T(A=>({...A,selectedIndex:Math.min(c.length-1,A.selectedIndex+1)}));return}if(H.escape){if(g.expandedPath.length===0){n?.();return}T(A=>{let F=A.expandedPath.slice(0,-1),ee=hi(e,F),re=A.expandedPath[A.expandedPath.length-1],fe=ee.findIndex(W=>W.item.id===re);return{...A,expandedPath:F,selectedIndex:fe>=0?fe:0}});return}if(H.return&&m){if(m.id==="run-start"){t();return}if(m.type==="submenu"){let A=c[g.selectedIndex]?.depth??0;T(F=>({...F,expandedPath:[...F.expandedPath.slice(0,A),m.id],selectedIndex:F.selectedIndex+1}));return}if(m.onInfo){let A=m.onInfo();T(F=>({...F,activeView:"infoView",infoData:A}));return}if(m.onLoginWizard){m.onLoginWizard(),T(A=>({...A,activeView:"loginWizard"}));return}if(m.onProfilesView){m.onProfilesView(),T(A=>({...A,activeView:"profilesView"}));return}if(m.onChromeProfilePicker){m.onChromeProfilePicker(),T(A=>({...A,activeView:"chromeProfilePicker"}));return}if(m.onProjectPicker){m.onProjectPicker(),T(A=>({...A,activeView:"projectPicker"}));return}if(m.onFolderPicker){m.onFolderPicker(),T(A=>({...A,activeView:"folderPicker"}));return}if(m.onWindowSizePicker){m.onWindowSizePicker(),T(A=>({...A,activeView:"windowSizePicker"}));return}if(m.type==="action"){m.onAction?.(),m.suppressFeedback||D(`${m.label} done`);return}if(m.type==="select"&&m.options){let A=m.options.findIndex(F=>F.value===m.currentValue);T(F=>({...F,isSelecting:!0,inputValue:String(Math.max(0,A))}));return}if(m.type==="text-input"){T(A=>({...A,isEditing:!0,inputValue:m.currentValue??""}));return}}}}),(0,je.jsx)(b,{flexDirection:"column",paddingX:1,children:g.activeView==="infoView"&&g.infoData?(0,je.jsx)(hl,{data:g.infoData}):g.activeView==="loginWizard"&&o?o(V):g.activeView==="profilesView"&&i?i(V):g.activeView==="chromeProfilePicker"&&a?a(V):g.activeView==="projectPicker"&&u?u(V):g.activeView==="folderPicker"&&f?f(V):g.activeView==="windowSizePicker"&&v?v(V):(0,je.jsxs)(je.Fragment,{children:[c.map(({item:O,depth:H},A)=>{let F=A===g.selectedIndex,ee=" ".repeat(H),re=F?"\u276F ":" ",fe=O.type==="submenu"?g.expandedPath.includes(O.id)?"\u25BC ":"\u25B6 ":" ",W=O.currentValue!=null?` [${O.currentValue}]`:"";if(F&&g.isSelecting&&O.options){let ie=Number(g.inputValue||"0");return(0,je.jsxs)(b,{flexDirection:"column",children:[(0,je.jsxs)(s,{color:l.orange,children:[ee,re,fe,O.label]}),O.options.map((ue,Ce)=>(0,je.jsxs)(s,{color:Ce===ie?l.orange:void 0,children:[ee," ",Ce===ie?"\u276F ":" ",ue.label]},ue.value))]},O.id)}return F&&g.isEditing?(0,je.jsxs)(s,{color:l.orange,children:[ee,re,fe,O.label,": ",g.inputValue,(0,je.jsx)(s,{color:l.dim,children:"\u2588"})]},O.id):(0,je.jsxs)(s,{color:F?l.orange:void 0,dimColor:!F&&H>0,children:[ee,re,fe,O.label,(0,je.jsx)(s,{dimColor:!0,children:W})]},O.id)}),g.feedback&&(0,je.jsx)(b,{marginTop:1,children:(0,je.jsxs)(s,{color:l.green,children:["\u2713 ",g.feedback]})}),(0,je.jsx)(ir,{bindings:[{keys:"\u2191\u2193",label:"navigate"},{keys:"\u21B5",label:"select"}],escBackLabel:"back"})]})})}var Vr=k(xe(),1);var Ue=k(M(),1),vi=800,bi=3840,Si=600,wi=2160;function xl(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<vi)return`Min ${vi}`;if(r>bi)return`Max ${bi}`}else{if(r<Si)return`Min ${Si}`;if(r>wi)return`Max ${wi}`}return null}function yi({currentWidth:e,currentHeight:t,onSelect:r,onCancel:n}){let[o,i]=(0,Vr.useState)("width"),[a,u]=(0,Vr.useState)(String(e)),[f,v]=(0,Vr.useState)(String(t)),[w,g]=(0,Vr.useState)(null);Ie((c,m)=>{if(m.escape){n();return}if(m.tab||m.rightArrow||m.leftArrow){i($=>$==="width"?"height":"width"),g(null);return}if(m.return){let $=xl("width",a);if($){i("width"),g(`Width: ${$}`);return}let D=xl("height",f);if(D){i("height"),g(`Height: ${D}`);return}r(Number(a),Number(f));return}if(m.backspace||m.delete){o==="width"?u($=>$.slice(0,-1)):v($=>$.slice(0,-1)),g(null);return}c&&/^\d$/.test(c)&&(o==="width"?u($=>$+c):v($=>$+c),g(null))});let T=(c,m,$)=>{let D=o===$,V=D?l.orange:l.secondary;return(0,Ue.jsxs)(b,{flexDirection:"column",children:[(0,Ue.jsxs)(s,{color:l.dim,children:[" ",c]}),(0,Ue.jsx)(b,{borderStyle:"round",borderColor:V,paddingX:1,width:10,children:(0,Ue.jsxs)(s,{color:D?void 0:l.dim,children:[m||" ",D?(0,Ue.jsx)(s,{color:l.dim,children:"\u2588"}):""]})}),(0,Ue.jsxs)(s,{color:l.dim,dimColor:!0,children:[" ",$==="width"?`${vi}\u2013${bi}`:`${Si}\u2013${wi}`]})]})};return(0,Ue.jsxs)(b,{flexDirection:"column",paddingX:1,children:[(0,Ue.jsx)(s,{color:l.orange,bold:!0,children:"Window Size"}),(0,Ue.jsxs)(b,{marginTop:1,gap:1,children:[T("Width",a,"width"),(0,Ue.jsx)(b,{alignItems:"center",marginTop:1,children:(0,Ue.jsx)(s,{color:l.dim,children:"x"})}),T("Height",f,"height")]}),w&&(0,Ue.jsx)(b,{marginTop:1,children:(0,Ue.jsx)(s,{color:l.red,children:w})}),(0,Ue.jsx)(ir,{bindings:[{keys:"tab/\u2190\u2192",label:"switch field"},{keys:"\u21B5",label:"save"}],escBackLabel:"cancel"})]})}var qe=k(xe(),1);async function vl(e,t,r){let n=e.loadCredentials(t,r),o=e.loadClient(t,r);if(n&&o){let a=new as(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 bl(){let[e]=(0,qe.useState)(()=>new fn),[t,r]=(0,qe.useState)(()=>{let m=e.resolveAuth();if(!m)return!1;if(m.method==="basic")return!0;let{credentials:$}=e.getActiveCredentials();return $?$.expires_at>Date.now()/1e3:!1}),n=(0,qe.useRef)(null),o=(0,qe.useRef)(null),i=(0,qe.useCallback)(()=>{let m=e.resolveAuth();return m?{method:m.method,profile:m.profile,env:m.env}:null},[e]),a=(0,qe.useCallback)(async()=>{let{credentials:m,profile:$,env:D}=e.getActiveCredentials();if(!m||!$||!D)return null;let V=m.expires_at,O=Date.now()/1e3;if(V-O<300){if(o.current)return o.current;let H=(async()=>{try{let A=await cs({creds:e,profile:$,env:D,credentials:m});return A?(r(!0),A.accessToken):null}catch{return r(!1),null}finally{o.current=null}})();return o.current=H,H}return r(!0),m.access_token},[e]),u=(0,qe.useCallback)(()=>{let m=e.resolveAuth();return!m||m.method!=="basic"?null:{username:m.username,access_key:m.access_key}},[e]),f=(0,qe.useCallback)((m,$)=>{n.current?.revoke();let D=De(m),V=u(),O=new us(D.controllerBaseUrl,a,V,$);return n.current=O,O},[u,a]),v=(0,qe.useCallback)(()=>n.current,[]),w=(0,qe.useCallback)(()=>{let m=u();if(m)return m;let $=n.current?.cached;return $?{username:$.username,access_key:$.access_key}:null},[u]),g=(0,qe.useCallback)(async()=>{let m=n.current;return m?m.resolve():null},[]),T=(0,qe.useCallback)(async(m="default")=>{let $=e.getDefaultEnv();await new ls(m,$,e).login(),e.setActiveProfile(m);try{let V=new cr;it(e,V,m,$)}catch{}r(!0)},[e]),c=(0,qe.useCallback)(async()=>{let m=e.getActiveProfile();if(!m)return null;let $=e.getDefaultEnv(),D=await vl(e,m,$);return r(!1),{profile:D.profile,env:D.env}},[e]);return{creds:e,tokenValid:t,setTokenValid:r,getToken:a,getBasicAuth:u,getAuthInfo:i,login:T,logout:c,initResolver:f,getResolver:v,getResolvedBasicAuth:w,resolveBasicAuth:g}}var At=k(xe(),1);import{mkdtempSync as Pp,rmSync as Lp}from"fs";import{join as Bp}from"path";import{tmpdir as $p}from"os";function Sl(){let[e]=(0,At.useState)(()=>new cr),t=(0,At.useRef)(null),r=(0,At.useRef)(null),n=(0,At.useRef)(null),o=(0,At.useCallback)(async a=>{if(t.current)return t.current;if(n.current)return n.current;let u=(async()=>{let f=e.load(),v;if(f.chrome_profile_path)v=f.chrome_profile_path.replace("~",process.env.HOME??"~");else{r.current&&(Ot("tempDir","Previous temp dir removed before retry"),r.current=null);let g=Pp(Bp($p(),"kane-clean-"));r.current=g,v=g,vt("tempDir",()=>{try{Lp(g,{recursive:!0,force:!0})}catch{}})}let w=await fs({userDataDir:v,width:f.window_size.width,height:f.window_size.height,startUrl:a??f.default_url??void 0});return t.current=w,vt("chrome",()=>{w.kill()}),w})();n.current=u;try{return await u}finally{n.current=null}},[e]),i=(0,At.useCallback)(()=>{Ot("chrome","Chrome killed"),Ot("tempDir","Temp dir removed"),t.current=null,r.current=null},[]);return{ensureChrome:o,killChrome:i}}var On=[{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|set-assertion-mode|set-network-ws|set-network-sse|set-bug-detection|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 Nn(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 f=u.slice(2),v=n[a+1];v&&!v.startsWith("--")?(i[f]=v.replace(/^"|"$/g,""),a+=2):(i[f]=void 0,a++)}else{let f=u.replace(/^"|"$/g,"");o==="run"?i.objective=f:o==="config"?i.action?i.value=f:i.action=f:o==="profiles"?i.action=f:o==="summary"&&(i.index=f),a++}}return{command:o,args:i,raw:t}}var ev=[{name:"Testing",commands:On.filter(e=>["run","cancel"].includes(e.name))},{name:"Auth",commands:On.filter(e=>["login","logout","whoami","balance","profiles"].includes(e.name))},{name:"Settings",commands:On.filter(e=>["config"].includes(e.name))},{name:"Session",commands:On.filter(e=>["new","name","summary","help","clear","exit"].includes(e.name))}];var wl=[{name:"testmd",description:"Browse & run saved tests under cwd"},{name:"auth",description:"Login, logout, profiles"},{name:"config",description:"Chrome, run & generate settings",args:""},{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"}],Dp={name:"cancel",description:"Abort current run"},Op={name:"cancel",description:"Cancel current generation"},gr=[{name:"generate",description:"Switch to Generate mode (test case generator)"},{name:"summary",description:"View run summaries",args:"[index]"},Dp,...wl],Mr=[{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>]"},Op,...wl],yl=gr;function jn(e,t="run"){let r=t==="generate"?Mr:gr,n=e.startsWith("/")?e.slice(1):e;return n?r.filter(o=>o.name.startsWith(n)):r}var Np=new Set([...gr,...Mr].map(e=>e.name));function Rl(e,t){let r=t==="generate"?Mr:gr;return Np.has(e)?r.some(n=>n.name===e):!0}function Tl(e,t){let r=t?.trim();return r?e==="generate"?{kind:"reject"}:{kind:"run",objective:r}:e==="generate"?{kind:"toggle"}:{kind:"already"}}var jt=k(M(),1);function Ri({flows:e,filterIndex:t}){let r=t!==void 0?e.filter(n=>n.index===t):e;return r.length===0?null:(0,jt.jsx)(b,{flexDirection:"column",children:r.map(n=>(0,jt.jsxs)(b,{flexDirection:"column",marginTop:1,children:[(0,jt.jsxs)(b,{marginLeft:1,children:[(0,jt.jsx)(s,{color:l.purple,bold:!0,children:"Flow "+n.index+": "}),(0,jt.jsx)(s,{color:l.purple,children:n.objective})]}),(0,jt.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 Vt=k(M(),1),jp={ok:"\u2713",error:"\u2717",cancelled:"\u2298"},Vp={ok:l.green,error:l.red,cancelled:l.dim};function El({status:e,command:t,message:r,details:n,accentColor:o}){let i=t.startsWith("/")?t.slice(1):t,a=o??Vp[e];return(0,Vt.jsxs)(b,{flexDirection:"column",marginLeft:2,marginTop:1,children:[(0,Vt.jsx)(b,{marginLeft:1,children:(0,Vt.jsxs)(s,{color:a,bold:!0,children:[jp[e]," ",i]})}),(0,Vt.jsxs)(b,{borderStyle:"round",borderColor:a,paddingX:2,flexDirection:"column",width:70,children:[(0,Vt.jsx)(s,{children:r}),n&&(0,Vt.jsx)(s,{color:l.dim,children:n})]})]})}var Hr=k(xe(),1);import{join as Ur}from"path";var Fr=k(M(),1);function Cl({tabs:e,activeIndex:t}){return(0,Fr.jsx)(b,{children:e.map((r,n)=>(0,Fr.jsx)(b,{marginRight:1,children:n===t?(0,Fr.jsx)(s,{color:l.orange,bold:!0,children:`[ ${r} ]`}):(0,Fr.jsx)(s,{color:l.dim,children:` ${r} `})},r))})}var I=k(M(),1),qr=["Commands","Shortcuts","Tests","Setup","About"],Vn=18,Mp="https://www.testmuai.com/support/docs/kane-cli-introduction",Fp="https://github.com/LambdaTest/kane-cli/issues";function Il({onClose:e,version:t,environment:r,sessionId:n,runUrl:o,mode:i="run"}){let[a,u]=(0,Hr.useState)(0),[f,v]=(0,Hr.useState)(0);(0,Hr.useEffect)(()=>{v(0)},[a]);let w=qr[a],g=w==="Commands"?Up(i):w==="Shortcuts"?qp():w==="Tests"?Hp():w==="Setup"?Gp():Wp({version:t,environment:r,sessionId:n,runUrl:o}),T=g.length,c=f>0,m=f+Vn<T,$=g.slice(f,f+Vn);Ie((V,O)=>{if(O.escape){e();return}if(O.rightArrow||O.tab){u(H=>(H+1)%qr.length);return}if(O.leftArrow){u(H=>(H-1+qr.length)%qr.length);return}if(O.upArrow){v(H=>Math.max(0,H-1));return}if(O.downArrow){v(H=>Math.min(Math.max(0,T-Vn),H+1));return}});let D=[{keys:"\u2190\u2192/tab",label:"switch tabs"}];return T>Vn&&D.push({keys:"\u2191\u2193",label:"scroll"}),(0,I.jsxs)(b,{flexDirection:"column",borderStyle:"round",borderColor:l.orange,paddingX:2,paddingY:1,children:[(0,I.jsx)(Cl,{tabs:[...qr],activeIndex:a,onChange:u}),c&&(0,I.jsx)(b,{marginTop:1,children:(0,I.jsx)(s,{color:l.dim,children:"\u25B2 more above"})}),(0,I.jsx)(b,{marginTop:c?0:1,flexDirection:"column",children:$}),m&&(0,I.jsx)(b,{children:(0,I.jsx)(s,{color:l.dim,children:"\u25BC more below"})}),(0,I.jsx)(ir,{bindings:D,escBackLabel:"back to chat"})]})}function Up(e){let t=e==="generate"?Mr:gr;return[(0,I.jsx)(s,{color:l.dim,children:"Type a natural-language objective and press \u21B5 to run, e.g."},"intro"),(0,I.jsx)(b,{marginLeft:2,children:(0,I.jsx)(s,{color:l.orange,children:'"search amazon for laptop"'})},"ex"),(0,I.jsx)(b,{marginBottom:1},"sp"),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"Slash commands"},"cmd-h"),...t.map(r=>(0,I.jsxs)(b,{marginLeft:2,children:[(0,I.jsx)(b,{width:14,children:(0,I.jsxs)(s,{color:l.orange,children:["/",r.name]})}),r.args&&(0,I.jsx)(b,{width:14,children:(0,I.jsx)(s,{color:l.dim,children:r.args})}),(0,I.jsx)(s,{color:l.dim,children:r.description})]},r.name)),(0,I.jsx)(b,{marginBottom:1},"sp2"),(0,I.jsx)(b,{marginLeft:2,children:(0,I.jsx)(s,{color:l.dim,children:"/auth submenu: login \xB7 logout \xB7 whoami \xB7 profiles \xB7 balance"})},"auth-sub"),(0,I.jsx)(b,{marginLeft:2,children:(0,I.jsx)(s,{color:l.dim,children:"/config submenu: show \xB7 run (mode \xB7 assertion-mode) \xB7 generate \xB7 chrome-profile \xB7 project \xB7 folder \xB7 window \xB7 hints"})},"config-sub")]}function Mn(e,t){return[(0,I.jsx)(s,{color:l.dim,bold:!0,children:e},`h-${e}`),...t.map(([r,n],o)=>(0,I.jsxs)(b,{marginLeft:2,children:[(0,I.jsx)(b,{width:26,children:(0,I.jsx)(s,{color:l.orange,children:r})}),(0,I.jsx)(s,{color:l.dim,children:n})]},`r-${e}-${o}`)),(0,I.jsx)(b,{marginBottom:1},`s-${e}`)]}function qp(){return[...Mn("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"]]),...Mn("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"]]),...Mn("Lists & menus",[["\u2191 \u2193","Navigate"],["type any char","Filter"],["\u21B5","Select"],["Tab","Create-new (in pickers)"],["Esc","Clear filter, then back"]]),...Mn("Global",[["Ctrl+C","Cancel run \xB7 twice exits"]]),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"Platform caveats"},"cv-h"),(0,I.jsx)(s,{color:l.dim,children:'\u2022 Mac Terminal.app: enable "Use Option as Meta key" (Profile \u2192 Keyboard)'},"cv-1"),(0,I.jsx)(s,{color:l.dim,children:"\u2022 Mac iTerm2: works by default (Esc+ mode)"},"cv-2"),(0,I.jsx)(s,{color:l.dim,children:"\u2022 Mac Mission Control may intercept Ctrl+arrow \u2014 use Option+arrow instead"},"cv-3"),(0,I.jsx)(s,{color:l.dim,children:"\u2022 Bare Forward Delete acts as Backspace (Ink can't disambiguate)"},"cv-4"),(0,I.jsx)(s,{color:l.dim,children:"\u2022 Shift+arrow is parsed but unbound (selection model is future)"},"cv-5"),(0,I.jsx)(s,{color:l.dim,children:"\u2022 Thousands of terminals exist \u2014 if a shortcut fails, run `cat` to see bytes"},"cv-6")]}function Hp(){return[(0,I.jsxs)(s,{color:l.dim,children:["Sessions you run here are saved as ",(0,I.jsx)(s,{color:l.orange,children:"*_test.md"})," files you can replay later."]},"t-intro"),(0,I.jsx)(b,{marginBottom:1},"t-sp1"),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"Auto-save"},"t-save-h"),(0,I.jsxs)(s,{color:l.dim,children:[" In ",(0,I.jsx)(s,{color:l.orange,children:"testing"})," mode, /exit prompts to save the session under a name (default: timestamp)."]},"t-save-1"),(0,I.jsxs)(s,{color:l.dim,children:[" In ",(0,I.jsx)(s,{color:l.orange,children:"action"})," mode, sessions are ephemeral unless launched with --name or set via /name."]},"t-save-2"),(0,I.jsxs)(s,{color:l.dim,children:[" Output: ",(0,I.jsx)(s,{color:l.orange,children:"<cwd>/.testmuai/tests/<name>_test.md"})," + sibling ",(0,I.jsx)(s,{color:l.orange,children:"output-<name>/"})," (Result.md + .internal/meta.json)."]},"t-save-3"),(0,I.jsx)(b,{marginBottom:1},"t-sp2"),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"Replay from a shell"},"t-run-h"),(0,I.jsxs)(s,{color:l.dim,children:[" ",(0,I.jsx)(s,{color:l.orange,children:"kane-cli testmd run path/to/foo_test.md"})," \xB7 ",(0,I.jsx)(s,{color:l.orange,children:"kane-cli testmd list"})," \xB7 bare ",(0,I.jsx)(s,{color:l.orange,children:"kane-cli testmd"})," opens a TTY picker."]},"t-run-1"),(0,I.jsx)(s,{color:l.dim,children:" The .md file carries its own config (mode, max_steps, variables, \u2026) so the replay is reproducible."},"t-run-2"),(0,I.jsx)(b,{marginBottom:1},"t-sp3"),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"Naming a session mid-run"},"t-name-h"),(0,I.jsxs)(s,{color:l.dim,children:[" Type ",(0,I.jsxs)(s,{color:l.orange,children:["/name ","<new-name>"]})," any time before /exit. Name allowed chars: letters, digits, _, -."]},"t-name-1"),(0,I.jsxs)(s,{color:l.dim,children:[" Discarding at the save prompt: press ",(0,I.jsx)(s,{color:l.orange,children:"N"})," (only key that discards \u2014 every other key saves with default)."]},"t-name-2")]}function Gp(){return[(0,I.jsx)(s,{color:l.dim,bold:!0,children:"1. Login"},"s1-h"),(0,I.jsx)(s,{color:l.dim,children:" /auth \u2192 login. OAuth opens browser; basic uses LambdaTest username + access key."},"s1-b"),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"2. Project & folder"},"s2-h"),(0,I.jsx)(s,{color:l.dim,children:" /config project / /config folder. Esc auto-picks KaneAI Generated / Untitled."},"s2-b"),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"3. Run settings (/config \u2192 Run)"},"s3-h"),(0,I.jsx)(s,{color:l.dim,children:" mode: testing = lenient, saves to TMS \xB7 action = hard-stop on errors (e.g. login w/o creds) so you can step in"},"s3-b"),(0,I.jsx)(s,{color:l.dim,children:" assertion-mode: visual (default) = read/assert via vision \xB7 dom = DOM-based extraction/assertions"},"s3-c"),(0,I.jsx)(b,{marginBottom:1},"spacer-1"),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"Variables (later wins)"},"v-h"),(0,I.jsxs)(s,{color:l.dim,children:[" ",`${Ur(Xe,"variables")}/*.json`," (global)"]},"v-1"),(0,I.jsxs)(s,{color:l.dim,children:[" ","{cwd}/.testmuai/variables/*.json"," (local) \xB7 --variables-file \xB7 --variables ","'{...}'"]},"v-2"),(0,I.jsx)(s,{color:l.dim,children:' Format: { "key": { "value": "...", "secret": false } } \xB7 ref via {{key}}'},"v-3"),(0,I.jsx)(b,{marginBottom:1},"spacer-2"),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"Context files"},"c-h"),(0,I.jsxs)(s,{color:l.dim,children:[" Global: ",Ur(Xe,"global-memory.md")]},"c-1"),(0,I.jsxs)(s,{color:l.dim,children:[" Local: ","{cwd}/.testmuai/context.md"," \xB7 CLI: --global-context, --local-context"]},"c-2"),(0,I.jsx)(b,{marginBottom:1},"spacer-3"),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"Paths"},"p-h"),(0,I.jsxs)(s,{color:l.dim,children:[" Config: ",Ur(Xe,"tui-config.json")," \xB7 Auth: ",Ur(Xe,"config.json")]},"p-1"),(0,I.jsxs)(s,{color:l.dim,children:[" Sessions: ",Ur(Xe,"sessions"),"/"]},"p-2")]}function Wp({version:e,environment:t,sessionId:r,runUrl:n}){return[(0,I.jsxs)(b,{children:[(0,I.jsx)(s,{color:l.orange,bold:!0,children:"kane-cli "}),(0,I.jsxs)(s,{color:l.muted,children:["v",e]})]},"title"),(0,I.jsx)(b,{marginBottom:1},"sp"),(0,I.jsxs)(b,{children:[(0,I.jsx)(b,{width:14,children:(0,I.jsx)(s,{color:l.dim,children:"Environment"})}),(0,I.jsx)(s,{children:t})]},"env"),(0,I.jsxs)(b,{children:[(0,I.jsx)(b,{width:14,children:(0,I.jsx)(s,{color:l.dim,children:"Session"})}),(0,I.jsx)(s,{children:r})]},"sess"),(0,I.jsxs)(b,{children:[(0,I.jsx)(b,{width:14,children:(0,I.jsx)(s,{color:l.dim,children:"Default URL"})}),(0,I.jsx)(s,{color:l.orange,children:n})]},"url"),(0,I.jsx)(b,{marginBottom:1},"sp2"),(0,I.jsxs)(b,{children:[(0,I.jsx)(b,{width:14,children:(0,I.jsx)(s,{color:l.dim,children:"Docs"})}),(0,I.jsx)(s,{color:l.orange,underline:!0,children:Mp})]},"docs"),(0,I.jsxs)(b,{children:[(0,I.jsx)(b,{width:14,children:(0,I.jsx)(s,{color:l.dim,children:"Bugs"})}),(0,I.jsx)(s,{color:l.orange,underline:!0,children:Fp})]},"bugs")]}var Fn=k(xe(),1);import{existsSync as kl,readFileSync as Rv,rmSync as Xp,unlinkSync as zp}from"fs";function Al(e){let t=_s(e);kl(t)&&Xp(t,{recursive:!0,force:!0}),kl(e)&&zp(e)}var Ti=k(M(),1);function _l({cwd:e,currentOrgId:t,onClose:r,onRun:n,onExport:o}){let[i,a]=(0,Fn.useState)("list"),[u,f]=(0,Fn.useState)(null),[v,w]=(0,Fn.useState)(0);return i==="inspect"&&u?(0,Ti.jsx)(Ls,{path:u.path,relPath:u.relPath,onBack:()=>a("list"),onAction:g=>{if(g==="run")n(u);else if(g==="export")o(u);else{try{Al(u.path)}catch{}f(null),a("list"),w(T=>T+1)}}}):(0,Ti.jsx)(Ps,{root:e,currentOrgId:t,onSelect:g=>{f(g),a("inspect")},onCancel:r},v)}var He=k(xe(),1);function Pl(e){let[t,r]=(0,He.useState)(null),[n,o]=(0,He.useState)(!1),[i,a]=(0,He.useState)(null),[u,f]=(0,He.useState)(null),[v,w]=(0,He.useState)(null),g=(0,He.useRef)(0),T=(0,He.useRef)([]),c=(0,He.useRef)(!1),m=(0,He.useRef)(null),$=(0,He.useRef)(e);$.current=e;let D=(0,He.useCallback)(async H=>{if(c.current)return null;c.current=!0;let A=++g.current,F=[];T.current=F;let ee=W=>`testmd-run-${A}-${W}`,re={register:(W,ie)=>{let ue=ee(W);F.push(ue),vt(ue,ie)},deregister:W=>Lr(ee(W)),cleanup:(W,ie)=>Ot(ee(W),ie),remoteLogger:$.current.remoteLogger},fe={runSteps:W=>new Promise(ie=>{let ue=()=>{m.current=null,ie()};m.current=ue,r({...W,exitOnComplete:!1,onAllComplete:()=>{W.onAllComplete?.(),ue()}})}),onLockState:W=>{},onRetryAttempt:W=>{},onSummary:async W=>{a(W)},onLinks:async W=>{f(W)},runUpload:W=>W.execute(),onAgentEvent:W=>{}};o(!0),a(null),f(null),w(null);try{let W=await $.current.buildInput(H),ie=await Ws(W,fe,re);return w(ie),ie}finally{c.current=!1,m.current=null,o(!1),r(null);for(let W of F)Ot(W,"run-finished");F.length=0}},[]),V=(0,He.useCallback)(()=>{for(let A of T.current)Ot(A,"cancelled");T.current=[];let H=m.current;m.current=null,H?.()},[]),O=(0,He.useCallback)(()=>{a(null),f(null),w(null)},[]);return{start:D,cancel:V,clearResult:O,running:n,runViewProps:t,summary:i,links:u,runSummary:v}}var Ve=k(xe(),1);function Ll(e={}){let[t,r]=(0,Ve.useState)(()=>xn({requestId:"",objective:""})),[n,o]=(0,Ve.useState)(!1),[i,a]=(0,Ve.useState)(null),u=(0,Ve.useRef)(null),f=(0,Ve.useRef)(!1),v=(0,Ve.useRef)(null),w=(0,Ve.useCallback)(async(D,V,O)=>{f.current=!1;let H=0,A=0,F=0;for await(let ee of D){if(f.current)break;switch(r(re=>Ks(re,ee)),ee.type){case"thinking_done":O?.("tcg_thinking",{tookMs:ee.tookMs});break;case"progress":{let re=Math.min(100,Math.floor(ee.pct/25)*25);re>F&&(F=re,O?.("tcg_progress",{pct:re}));break}case"snapshot":H=ee.data.scenarios.length,A=ee.data.scenarios.reduce((re,fe)=>re+(fe.test_cases?.length??0),0),O?.("tcg_snapshot",{scenarioCount:H,caseCount:A});break;case"clarification":O?.("tcg_clarification",{});break;case"done":O?.("tcg_request_done",{status:ee.status,scenarioCount:H,caseCount:A,durationMs:Date.now()-V});break;case"error":O?.("tcg_request_error",{errorCode:"tcg_request_failed",durationMs:Date.now()-V});break}}},[]),g=(0,Ve.useCallback)(async(D,V)=>{if(u.current)throw new Error("useTcgSession: a session is already active; call reset() or end() first");let O=e.makeClient??Js;u.current=O(D),v.current=new AbortController;let H=xn({requestId:"",objective:V.prompt});r(vn(H));let A;try{A=await u.current.start(V,v.current.signal)}catch(ee){throw u.current=null,v.current=null,r(re=>({...re,turnActive:!1})),ee}a(A.requestId),r(vn({...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 w(A.events,F,e.log)},[w,e.makeClient,e.log]),T=(0,Ve.useCallback)(async(D,V)=>{if(!u.current||!i)throw new Error("useTcgSession: chat() with no active request");r(O=>vn(Ys(O)));try{await u.current.chat(i,D,V)}catch(O){throw r(H=>({...H,turnActive:!1})),O}},[i]),c=(0,Ve.useCallback)(async()=>{if(!(!i||!u.current)){f.current=!0,v.current&&v.current.abort();try{await u.current.cancel(i)}catch{}u.current=null,a(null),r(D=>({...D,turnActive:!1}))}},[i]),m=(0,Ve.useCallback)(async()=>{if(!(!i||!u.current)){f.current=!0,v.current&&v.current.abort();try{await u.current.end(i)}catch{}u.current=null,a(null),r(D=>({...D,turnActive:!1}))}},[i]),$=(0,Ve.useCallback)(()=>{f.current=!0,v.current&&v.current.abort(),v.current=null,r(xn({requestId:"",objective:""})),a(null),o(!1),u.current=null},[]);return(0,Ve.useEffect)(()=>()=>{f.current=!0,v.current&&v.current.abort()},[]),{state:t,isStreaming:t.turnActive,isTerminal:zs(t.status),isReconnecting:n,turnActive:t.turnActive,inReview:t.scenarios.length>0&&!t.turnActive&&!Vo(t.status),isSessionClosed:Vo(t.status),requestId:i,startWith:g,chat:T,cancel:c,end:m,reset:$}}var Z=k(xe(),1);import{join as hr,resolve as ag}from"path";import{mkdirSync as Ci,writeFileSync as Xl,appendFileSync as cg}from"fs";function Bl(e){let t=De(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 $l(e){return e.turnActive?!0:e.requestId!=null&&!e.isSessionClosed&&!e.saved}function Dl(e){return e.isRunning||e.hasLiveResults}function Ol(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 Nl(e,t){return`S${e+1}.C${t+1}`}function jl(e,t){return e.reduce((r,n)=>r+(n.test_cases??[]).filter(o=>!t.has(o.id)).length,0)}function Vl(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 Gr=k(xe(),1);import{createHash as Yp}from"crypto";function Kp(e){return Yp("sha1").update(JSON.stringify({t:e.title,p:e.preconditions,m:e.manual_steps})).digest("hex")}var Un=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=Kp(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:Nl(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);vt(o,()=>i.abort());let u=Date.now();try{this.safeLog("tcg_bif_start",{caseId:t,ref:n.ref});let f=await a(ra(r),i.signal);if(!i.signal.aborted&&this.cache.get(t)===n){n.status="done",n.result=f;try{this.deps.persist?.(t,f,n.ref)}catch{}this.safeLog("tcg_bif_done",{caseId:t,ref:n.ref,total_flows:f.total_flows,is_single_flow:f.is_single_flow,estimated_steps_total:(f.sub_objectives??[]).reduce((v,w)=>v+(w.estimated_steps??0),0),credits_consumed:f.credits_consumed,durationMs:Date.now()-u})}}catch(f){!i.signal.aborted&&this.cache.get(t)===n&&(n.status="error",n.error=f.message,this.safeLog("tcg_bif_error",{caseId:t,ref:n.ref,errorCode:"bifurcation_failed",durationMs:Date.now()-u}))}finally{Lr(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=na({objective:t,model:this.deps.model,sessionId:this.deps.sessionId,auth:n});return oa(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(),Lr(`bifurcation-${t}`);this.cache.clear(),this.caseById.clear(),this.queue=[],this.active=0}};function Ml(e){let t=(0,Gr.useRef)(null);return(0,Gr.useEffect)(()=>{if(!e.enabled)return;let r=e.log,n=r?(o,i,a,u)=>r(i,u??{}):void 0;return t.current=new Un({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,Gr.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 ql,isAbsolute as Qp,extname as Zp}from"path";import{homedir as Ul}from"os";var Jp=/(?<=^|\s)@(?:"([^"]*)"|([^\s@]+))/g;function Fl(e){let t=[];for(let r of e.matchAll(Jp)){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 eg=/^s\d+(\.c\d+)?$/i;function tg(e){return e==="~"?Ul():e.startsWith("~/")?ql(Ul(),e.slice(2)):e}function rg(e){return/^https?:\/\//i.test(e)?!1:e.includes("/")?!0:bn.has(Zp(e).toLowerCase())}function Hl(e,t){let r=Fl(e),n=[],o=[];for(let a of r){let u=a.value,f=a.end;if(!a.raw.includes('"')){let g=u.match(/[.,;:!?]+$/);g&&(u=u.slice(0,-g[0].length),f-=g[0].length)}if(eg.test(u)||!rg(u))continue;let v=tg(u),w=Qp(v)?v:ql(t,v);n.push(w),o.push([a.start,f])}let i=e;for(let[a,u]of o.sort((f,v)=>v[0]-f[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 ng=["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"],og=new Set(ng);function Ei(e){let t={};for(let r of Object.keys(e))og.has(r)&&e[r]!==void 0&&(t[r]=e[r]);return t}import{mkdirSync as ig,appendFileSync as sg}from"fs";import{join as Gl}from"path";function Wl(e,t,r,n,o=Xe){let i=Gl(o,"tcg",e&&e.length>0?e:"pending"),a=Gl(i,"errors.log");try{let u=r instanceof Error?r.stack??r.message:String(r),f=`[${new Date().toISOString()}] phase=${t} ${u}${n?" "+JSON.stringify(n):""}
|
|
2
|
+
import{a as Io,b as Xi}from"./chunk-3MSXQU2C.js";import{a as da}from"./chunk-SQFNMZJ2.js";import{a as zs,b as Vo,c as xn,d as Ys,e as vn,f as Ks,h as Js,i as Qs,j as Zs,k as ea,l as ta,m as St,n as ra,o as na,p as oa,q as bn,r as ia,s as Mo,t as sa,u as aa,v as ca}from"./chunk-DEEBPSJN.js";import{a as la,b as ua}from"./chunk-ARS72637.js";import{B as bt,E as Ws,a as rs,b as ns,d as ds,e as fs,f as ms,g as Rs,h as Ts,i as Es,j as $o,k as ks,m as Oo,n as Ns,o as No,q as js,r as Vs,s as Ms,t as Fs,u as jo,v as Us,w as qs,x as Hs}from"./chunk-BO3JA2GS.js";import{c as Gs}from"./chunk-GIGD4M7V.js";import{c as Ps,d as Ls,n as Xs}from"./chunk-F2K3XFFH.js";import{a as fa,b as Fo}from"./chunk-EEO4XWY6.js";import{b as _s,s as Bs}from"./chunk-RKWJG3WW.js";import{a as mn,b as Cs,c as Is}from"./chunk-7YQW4TFI.js";import{a as zi,c as ko,d as Dt}from"./chunk-Y7KW5AEN.js";import{c as pn}from"./chunk-7MV5UF6O.js";import{a as Ji,b as Qi,c as Zi,d as gs,e as As,g as $s}from"./chunk-UXJPCWGW.js";import{c as ps}from"./chunk-FFL2TQEJ.js";import{a as cr}from"./chunk-XBE7PGVY.js";import{a as gn,b as Ds,c as Do}from"./chunk-PJDOXRLB.js";import{a as Ao}from"./chunk-5Y2G4NC7.js";import{c as Os}from"./chunk-ME5QSYWX.js";import{a as hn}from"./chunk-NFGG5DA2.js";import{a as cs}from"./chunk-P46TIMGQ.js";import{a as ls}from"./chunk-2TVRHXRK.js";import{a as as}from"./chunk-SL7AJ7JQ.js";import{a as us}from"./chunk-FPFOW6BS.js";import{a as ys}from"./chunk-B5LJCGAY.js";import{F as hs,L as xs,M as Bo,N as vs,O as bs,R as Ss,T as ws}from"./chunk-OE7TVGNB.js";import{c as Lo}from"./chunk-WFRL54GK.js";import{b as sr}from"./chunk-VXGOWBET.js";import{b as ar}from"./chunk-BGGNBWAJ.js";import{a as is,e as vt,f as Lr,g as Ot,h as lr}from"./chunk-M5JQXOCE.js";import{h as ss}from"./chunk-CIW2KP4C.js";import{a as Pr}from"./chunk-2WVKOZ6W.js";import{a as es}from"./chunk-NLCCBXXV.js";import{a as ts}from"./chunk-RZ4F3BHX.js";import{a as De}from"./chunk-RLG5NUTE.js";import{a as it,b as pt,c as os}from"./chunk-VE3SUJMA.js";import{a as fn}from"./chunk-TZZYRDCF.js";import{a as _o}from"./chunk-EWFFJBAM.js";import{a as It,b as Yi}from"./chunk-SHSV64GX.js";import{b as Ki}from"./chunk-DFS4RMVP.js";import{b as Po}from"./chunk-BFFCGEUH.js";import{a as ir}from"./chunk-AV5SUGRY.js";import{a as ot,c as Xe,j as Eo,n as Wi,o as Co,x as l}from"./chunk-E4OYR32M.js";import{a as M}from"./chunk-HCBYKLMW.js";import{a as b,b as s,i as Ie,j as Gi,k as or}from"./chunk-C44QQJR4.js";import{a as xe}from"./chunk-6YGTRKDT.js";import{c as z,e as k}from"./chunk-UR6MHSHU.js";var dr=z((nh,ga)=>{"use strict";var ud="2.0.0",dd=Number.MAX_SAFE_INTEGER||9007199254740991,fd=16,md=250,pd=["major","premajor","minor","preminor","patch","prepatch","prerelease"];ga.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:fd,MAX_SAFE_BUILD_LENGTH:md,MAX_SAFE_INTEGER:dd,RELEASE_TYPES:pd,SEMVER_SPEC_VERSION:ud,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Br=z((oh,ha)=>{"use strict";var gd=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};ha.exports=gd});var fr=z((wt,xa)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Uo,MAX_SAFE_BUILD_LENGTH:hd,MAX_LENGTH:xd}=dr(),vd=Br();wt=xa.exports={};var bd=wt.re=[],Sd=wt.safeRe=[],N=wt.src=[],wd=wt.safeSrc=[],j=wt.t={},yd=0,qo="[a-zA-Z0-9-]",Rd=[["\\s",1],["\\d",xd],[qo,hd]],Td=e=>{for(let[t,r]of Rd)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e},K=(e,t,r)=>{let n=Td(t),o=yd++;vd(e,o,t),j[e]=o,N[o]=t,wd[o]=n,bd[o]=new RegExp(t,r?"g":void 0),Sd[o]=new RegExp(n,r?"g":void 0)};K("NUMERICIDENTIFIER","0|[1-9]\\d*");K("NUMERICIDENTIFIERLOOSE","\\d+");K("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${qo}*`);K("MAINVERSION",`(${N[j.NUMERICIDENTIFIER]})\\.(${N[j.NUMERICIDENTIFIER]})\\.(${N[j.NUMERICIDENTIFIER]})`);K("MAINVERSIONLOOSE",`(${N[j.NUMERICIDENTIFIERLOOSE]})\\.(${N[j.NUMERICIDENTIFIERLOOSE]})\\.(${N[j.NUMERICIDENTIFIERLOOSE]})`);K("PRERELEASEIDENTIFIER",`(?:${N[j.NONNUMERICIDENTIFIER]}|${N[j.NUMERICIDENTIFIER]})`);K("PRERELEASEIDENTIFIERLOOSE",`(?:${N[j.NONNUMERICIDENTIFIER]}|${N[j.NUMERICIDENTIFIERLOOSE]})`);K("PRERELEASE",`(?:-(${N[j.PRERELEASEIDENTIFIER]}(?:\\.${N[j.PRERELEASEIDENTIFIER]})*))`);K("PRERELEASELOOSE",`(?:-?(${N[j.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${N[j.PRERELEASEIDENTIFIERLOOSE]})*))`);K("BUILDIDENTIFIER",`${qo}+`);K("BUILD",`(?:\\+(${N[j.BUILDIDENTIFIER]}(?:\\.${N[j.BUILDIDENTIFIER]})*))`);K("FULLPLAIN",`v?${N[j.MAINVERSION]}${N[j.PRERELEASE]}?${N[j.BUILD]}?`);K("FULL",`^${N[j.FULLPLAIN]}$`);K("LOOSEPLAIN",`[v=\\s]*${N[j.MAINVERSIONLOOSE]}${N[j.PRERELEASELOOSE]}?${N[j.BUILD]}?`);K("LOOSE",`^${N[j.LOOSEPLAIN]}$`);K("GTLT","((?:<|>)?=?)");K("XRANGEIDENTIFIERLOOSE",`${N[j.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);K("XRANGEIDENTIFIER",`${N[j.NUMERICIDENTIFIER]}|x|X|\\*`);K("XRANGEPLAIN",`[v=\\s]*(${N[j.XRANGEIDENTIFIER]})(?:\\.(${N[j.XRANGEIDENTIFIER]})(?:\\.(${N[j.XRANGEIDENTIFIER]})(?:${N[j.PRERELEASE]})?${N[j.BUILD]}?)?)?`);K("XRANGEPLAINLOOSE",`[v=\\s]*(${N[j.XRANGEIDENTIFIERLOOSE]})(?:\\.(${N[j.XRANGEIDENTIFIERLOOSE]})(?:\\.(${N[j.XRANGEIDENTIFIERLOOSE]})(?:${N[j.PRERELEASELOOSE]})?${N[j.BUILD]}?)?)?`);K("XRANGE",`^${N[j.GTLT]}\\s*${N[j.XRANGEPLAIN]}$`);K("XRANGELOOSE",`^${N[j.GTLT]}\\s*${N[j.XRANGEPLAINLOOSE]}$`);K("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Uo}})(?:\\.(\\d{1,${Uo}}))?(?:\\.(\\d{1,${Uo}}))?`);K("COERCE",`${N[j.COERCEPLAIN]}(?:$|[^\\d])`);K("COERCEFULL",N[j.COERCEPLAIN]+`(?:${N[j.PRERELEASE]})?(?:${N[j.BUILD]})?(?:$|[^\\d])`);K("COERCERTL",N[j.COERCE],!0);K("COERCERTLFULL",N[j.COERCEFULL],!0);K("LONETILDE","(?:~>?)");K("TILDETRIM",`(\\s*)${N[j.LONETILDE]}\\s+`,!0);wt.tildeTrimReplace="$1~";K("TILDE",`^${N[j.LONETILDE]}${N[j.XRANGEPLAIN]}$`);K("TILDELOOSE",`^${N[j.LONETILDE]}${N[j.XRANGEPLAINLOOSE]}$`);K("LONECARET","(?:\\^)");K("CARETTRIM",`(\\s*)${N[j.LONECARET]}\\s+`,!0);wt.caretTrimReplace="$1^";K("CARET",`^${N[j.LONECARET]}${N[j.XRANGEPLAIN]}$`);K("CARETLOOSE",`^${N[j.LONECARET]}${N[j.XRANGEPLAINLOOSE]}$`);K("COMPARATORLOOSE",`^${N[j.GTLT]}\\s*(${N[j.LOOSEPLAIN]})$|^$`);K("COMPARATOR",`^${N[j.GTLT]}\\s*(${N[j.FULLPLAIN]})$|^$`);K("COMPARATORTRIM",`(\\s*)${N[j.GTLT]}\\s*(${N[j.LOOSEPLAIN]}|${N[j.XRANGEPLAIN]})`,!0);wt.comparatorTrimReplace="$1$2$3";K("HYPHENRANGE",`^\\s*(${N[j.XRANGEPLAIN]})\\s+-\\s+(${N[j.XRANGEPLAIN]})\\s*$`);K("HYPHENRANGELOOSE",`^\\s*(${N[j.XRANGEPLAINLOOSE]})\\s+-\\s+(${N[j.XRANGEPLAINLOOSE]})\\s*$`);K("STAR","(<|>)?=?\\s*\\*");K("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");K("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var Sn=z((ih,va)=>{"use strict";var Ed=Object.freeze({loose:!0}),Cd=Object.freeze({}),Id=e=>e?typeof e!="object"?Ed:e:Cd;va.exports=Id});var Ho=z((sh,wa)=>{"use strict";var ba=/^[0-9]+$/,Sa=(e,t)=>{if(typeof e=="number"&&typeof t=="number")return e===t?0:e<t?-1:1;let r=ba.test(e),n=ba.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e<t?-1:1},kd=(e,t)=>Sa(t,e);wa.exports={compareIdentifiers:Sa,rcompareIdentifiers:kd}});var Oe=z((ah,Ra)=>{"use strict";var wn=Br(),{MAX_LENGTH:ya,MAX_SAFE_INTEGER:yn}=dr(),{safeRe:Rn,t:Tn}=fr(),Ad=Sn(),{compareIdentifiers:Go}=Ho(),_d=(e,t)=>{let r=t.split(".");if(r.length>e.length)return!1;for(let n=0;n<r.length;n++)if(Go(e[n],r[n])!==0)return!1;return!0},Wo=class e{constructor(t,r){if(r=Ad(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>ya)throw new TypeError(`version is longer than ${ya} characters`);wn("SemVer",t,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let n=t.trim().match(r.loose?Rn[Tn.LOOSE]:Rn[Tn.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>yn||this.major<0)throw new TypeError("Invalid major version");if(this.minor>yn||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>yn||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<yn)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(wn("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(wn("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 Go(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(wn("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 Go(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?Rn[Tn.PRERELEASELOOSE]:Rn[Tn.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]),_d(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}};Ra.exports=Wo});var Nt=z((ch,Ea)=>{"use strict";var Ta=Oe(),Pd=(e,t,r=!1)=>{if(e instanceof Ta)return e;try{return new Ta(e,t)}catch(n){if(!r)return null;throw n}};Ea.exports=Pd});var Ia=z((lh,Ca)=>{"use strict";var Ld=Nt(),Bd=(e,t)=>{let r=Ld(e,t);return r?r.version:null};Ca.exports=Bd});var Aa=z((uh,ka)=>{"use strict";var $d=Nt(),Dd=(e,t)=>{let r=$d(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null};ka.exports=Dd});var La=z((dh,Pa)=>{"use strict";var _a=Oe(),Od=(e,t,r,n,o)=>{typeof r=="string"&&(o=n,n=r,r=void 0);try{return new _a(e instanceof _a?e.version:e,r).inc(t,n,o).version}catch{return null}};Pa.exports=Od});var Da=z((fh,$a)=>{"use strict";var Ba=Nt(),Nd=(e,t)=>{let r=Ba(e,null,!0),n=Ba(t,null,!0),o=r.compare(n);if(o===0)return null;let i=o>0,a=i?r:n,u=i?n:r,f=!!a.prerelease.length;if(!!u.prerelease.length&&!f){if(!u.patch&&!u.minor)return"major";if(u.compareMain(a)===0)return u.minor&&!u.patch?"minor":"patch"}let w=f?"pre":"";return r.major!==n.major?w+"major":r.minor!==n.minor?w+"minor":r.patch!==n.patch?w+"patch":"prerelease"};$a.exports=Nd});var Na=z((mh,Oa)=>{"use strict";var jd=Oe(),Vd=(e,t)=>new jd(e,t).major;Oa.exports=Vd});var Va=z((ph,ja)=>{"use strict";var Md=Oe(),Fd=(e,t)=>new Md(e,t).minor;ja.exports=Fd});var Fa=z((gh,Ma)=>{"use strict";var Ud=Oe(),qd=(e,t)=>new Ud(e,t).patch;Ma.exports=qd});var qa=z((hh,Ua)=>{"use strict";var Hd=Nt(),Gd=(e,t)=>{let r=Hd(e,t);return r&&r.prerelease.length?r.prerelease:null};Ua.exports=Gd});var st=z((xh,Ga)=>{"use strict";var Ha=Oe(),Wd=(e,t,r)=>new Ha(e,r).compare(new Ha(t,r));Ga.exports=Wd});var Xa=z((vh,Wa)=>{"use strict";var Xd=st(),zd=(e,t,r)=>Xd(t,e,r);Wa.exports=zd});var Ya=z((bh,za)=>{"use strict";var Yd=st(),Kd=(e,t)=>Yd(e,t,!0);za.exports=Kd});var En=z((Sh,Ja)=>{"use strict";var Ka=Oe(),Jd=(e,t,r)=>{let n=new Ka(e,r),o=new Ka(t,r);return n.compare(o)||n.compareBuild(o)};Ja.exports=Jd});var Za=z((wh,Qa)=>{"use strict";var Qd=En(),Zd=(e,t)=>e.sort((r,n)=>Qd(r,n,t));Qa.exports=Zd});var tc=z((yh,ec)=>{"use strict";var ef=En(),tf=(e,t)=>e.sort((r,n)=>ef(n,r,t));ec.exports=tf});var $r=z((Rh,rc)=>{"use strict";var rf=st(),nf=(e,t,r)=>rf(e,t,r)>0;rc.exports=nf});var Cn=z((Th,nc)=>{"use strict";var of=st(),sf=(e,t,r)=>of(e,t,r)<0;nc.exports=sf});var Xo=z((Eh,oc)=>{"use strict";var af=st(),cf=(e,t,r)=>af(e,t,r)===0;oc.exports=cf});var zo=z((Ch,ic)=>{"use strict";var lf=st(),uf=(e,t,r)=>lf(e,t,r)!==0;ic.exports=uf});var In=z((Ih,sc)=>{"use strict";var df=st(),ff=(e,t,r)=>df(e,t,r)>=0;sc.exports=ff});var kn=z((kh,ac)=>{"use strict";var mf=st(),pf=(e,t,r)=>mf(e,t,r)<=0;ac.exports=pf});var Yo=z((Ah,cc)=>{"use strict";var gf=Xo(),hf=zo(),xf=$r(),vf=In(),bf=Cn(),Sf=kn(),wf=(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 gf(e,r,n);case"!=":return hf(e,r,n);case">":return xf(e,r,n);case">=":return vf(e,r,n);case"<":return bf(e,r,n);case"<=":return Sf(e,r,n);default:throw new TypeError(`Invalid operator: ${t}`)}};cc.exports=wf});var uc=z((_h,lc)=>{"use strict";var yf=Oe(),Rf=Nt(),{safeRe:An,t:_n}=fr(),Tf=(e,t)=>{if(e instanceof yf)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?An[_n.COERCEFULL]:An[_n.COERCE]);else{let f=t.includePrerelease?An[_n.COERCERTLFULL]:An[_n.COERCERTL],v;for(;(v=f.exec(e))&&(!r||r.index+r[0].length!==e.length);)(!r||v.index+v[0].length!==r.index+r[0].length)&&(r=v),f.lastIndex=v.index+v[1].length+v[2].length;f.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 Rf(`${n}.${o}.${i}${a}${u}`,t)};lc.exports=Tf});var fc=z((Ph,dc)=>{"use strict";var Ef=Nt(),Cf=dr(),If=Oe(),kf=(e,t,r)=>{if(!Cf.RELEASE_TYPES.includes(t))return null;let n=Af(e,r);return n&&_f(n,t)},Af=(e,t)=>{let r=e instanceof If?e.version:e;return Ef(r,t)},_f=(e,t)=>{if(Pf(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()},Pf=e=>e.startsWith("pre");dc.exports=kf});var pc=z((Lh,mc)=>{"use strict";var Ko=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}};mc.exports=Ko});var at=z((Bh,vc)=>{"use strict";var Lf=/\s+/g,Jo=class e{constructor(t,r){if(r=$f(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof Qo)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(Lf," "),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=>!hc(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&&qf(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(Uf,"");let n=((this.options.includePrerelease&&Mf)|(this.options.loose&&Ff))+":"+t,o=gc.get(n);if(o)return o;let i=this.options.loose,a=i?ze[Ne.HYPHENRANGELOOSE]:ze[Ne.HYPHENRANGE];t=t.replace(a,em(this.options.includePrerelease)),he("hyphen replace",t),t=t.replace(ze[Ne.COMPARATORTRIM],Nf),he("comparator trim",t),t=t.replace(ze[Ne.TILDETRIM],jf),he("tilde trim",t),t=t.replace(ze[Ne.CARETTRIM],Vf),he("caret trim",t);let u=t.split(" ").map(g=>Hf(g,this.options)).join(" ").split(/\s+/).map(g=>Zf(g,this.options));i&&(u=u.filter(g=>(he("loose invalid filter",g,this.options),!!g.match(ze[Ne.COMPARATORLOOSE])))),he("range list",u);let f=new Map,v=u.map(g=>new Qo(g,this.options));for(let g of v){if(hc(g))return[g];f.set(g.value,g)}f.size>1&&f.has("")&&f.delete("");let w=[...f.values()];return gc.set(n,w),w}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(n=>xc(n,r)&&t.set.some(o=>xc(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 Df(t,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(tm(this.set[r],t,this.options))return!0;return!1}};vc.exports=Jo;var Bf=pc(),gc=new Bf,$f=Sn(),Qo=Dr(),he=Br(),Df=Oe(),{safeRe:ze,src:Of,t:Ne,comparatorTrimReplace:Nf,tildeTrimReplace:jf,caretTrimReplace:Vf}=fr(),{FLAG_INCLUDE_PRERELEASE:Mf,FLAG_LOOSE:Ff}=dr(),Uf=new RegExp(Of[Ne.BUILD],"g"),hc=e=>e.value==="<0.0.0-0",qf=e=>e.value==="",xc=(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},Hf=(e,t)=>(e=e.replace(ze[Ne.BUILD],""),he("comp",e,t),e=zf(e,t),he("caret",e),e=Wf(e,t),he("tildes",e),e=Kf(e,t),he("xrange",e),e=Qf(e,t),he("stars",e),e),Ee=e=>!e||e.toLowerCase()==="x"||e==="*",Gf=(e,t,r)=>Ee(e)&&!Ee(t)||Ee(t)&&r&&!Ee(r),Wf=(e,t)=>e.trim().split(/\s+/).map(r=>Xf(r,t)).join(" "),Xf=(e,t)=>{let r=t.loose?ze[Ne.TILDELOOSE]:ze[Ne.TILDE];return e.replace(r,(n,o,i,a,u)=>{he("tilde",e,n,o,i,a,u);let f;return Ee(o)?f="":Ee(i)?f=`>=${o}.0.0 <${+o+1}.0.0-0`:Ee(a)?f=`>=${o}.${i}.0 <${o}.${+i+1}.0-0`:u?(he("replaceTilde pr",u),f=`>=${o}.${i}.${a}-${u} <${o}.${+i+1}.0-0`):f=`>=${o}.${i}.${a} <${o}.${+i+1}.0-0`,he("tilde return",f),f})},zf=(e,t)=>e.trim().split(/\s+/).map(r=>Yf(r,t)).join(" "),Yf=(e,t)=>{he("caret",e,t);let r=t.loose?ze[Ne.CARETLOOSE]:ze[Ne.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(o,i,a,u,f)=>{he("caret",e,o,i,a,u,f);let v;return Ee(i)?v="":Ee(a)?v=`>=${i}.0.0${n} <${+i+1}.0.0-0`:Ee(u)?i==="0"?v=`>=${i}.${a}.0${n} <${i}.${+a+1}.0-0`:v=`>=${i}.${a}.0${n} <${+i+1}.0.0-0`:f?(he("replaceCaret pr",f),i==="0"?a==="0"?v=`>=${i}.${a}.${u}-${f} <${i}.${a}.${+u+1}-0`:v=`>=${i}.${a}.${u}-${f} <${i}.${+a+1}.0-0`:v=`>=${i}.${a}.${u}-${f} <${+i+1}.0.0-0`):(he("no pr"),i==="0"?a==="0"?v=`>=${i}.${a}.${u} <${i}.${a}.${+u+1}-0`:v=`>=${i}.${a}.${u} <${i}.${+a+1}.0-0`:v=`>=${i}.${a}.${u} <${+i+1}.0.0-0`),he("caret return",v),v})},Kf=(e,t)=>(he("replaceXRanges",e,t),e.split(/\s+/).map(r=>Jf(r,t)).join(" ")),Jf=(e,t)=>{e=e.trim();let r=t.loose?ze[Ne.XRANGELOOSE]:ze[Ne.XRANGE];return e.replace(r,(n,o,i,a,u,f)=>{if(he("xRange",e,n,o,i,a,u,f),Gf(i,a,u))return e;let v=Ee(i),w=v||Ee(a),g=w||Ee(u),T=g;return o==="="&&T&&(o=""),f=t.includePrerelease?"-0":"",v?o===">"||o==="<"?n="<0.0.0-0":n="*":o&&T?(w&&(a=0),u=0,o===">"?(o=">=",w?(i=+i+1,a=0,u=0):(a=+a+1,u=0)):o==="<="&&(o="<",w?i=+i+1:a=+a+1),o==="<"&&(f="-0"),n=`${o+i}.${a}.${u}${f}`):w?n=`>=${i}.0.0${f} <${+i+1}.0.0-0`:g&&(n=`>=${i}.${a}.0${f} <${i}.${+a+1}.0-0`),he("xRange return",n),n})},Qf=(e,t)=>(he("replaceStars",e,t),e.trim().replace(ze[Ne.STAR],"")),Zf=(e,t)=>(he("replaceGTE0",e,t),e.trim().replace(ze[t.includePrerelease?Ne.GTE0PRE:Ne.GTE0],"")),em=e=>(t,r,n,o,i,a,u,f,v,w,g,T)=>(Ee(n)?r="":Ee(o)?r=`>=${n}.0.0${e?"-0":""}`:Ee(i)?r=`>=${n}.${o}.0${e?"-0":""}`:a?r=`>=${r}`:r=`>=${r}${e?"-0":""}`,Ee(v)?f="":Ee(w)?f=`<${+v+1}.0.0-0`:Ee(g)?f=`<${v}.${+w+1}.0-0`:T?f=`<=${v}.${w}.${g}-${T}`:e?f=`<${v}.${w}.${+g+1}-0`:f=`<=${f}`,`${r} ${f}`.trim()),tm=(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(he(e[n].semver),e[n].semver!==Qo.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 Dr=z(($h,Tc)=>{"use strict";var Or=Symbol("SemVer ANY"),ti=class e{static get ANY(){return Or}constructor(t,r){if(r=bc(r),t instanceof e){if(t.loose===!!r.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),ei("comparator",t,r),this.options=r,this.loose=!!r.loose,this.parse(t),this.semver===Or?this.value="":this.value=this.operator+this.semver.version,ei("comp",this)}parse(t){let r=this.options.loose?Sc[wc.COMPARATORLOOSE]:Sc[wc.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 yc(n[2],this.options.loose):this.semver=Or}toString(){return this.value}test(t){if(ei("Comparator.test",t,this.options.loose),this.semver===Or||t===Or)return!0;if(typeof t=="string")try{t=new yc(t,this.options)}catch{return!1}return Zo(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 Rc(t.value,r).test(this.value):t.operator===""?t.value===""?!0:new Rc(this.value,r).test(t.semver):(r=bc(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("=")||Zo(this.semver,"<",t.semver,r)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||Zo(this.semver,">",t.semver,r)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};Tc.exports=ti;var bc=Sn(),{safeRe:Sc,t:wc}=fr(),Zo=Yo(),ei=Br(),yc=Oe(),Rc=at()});var Nr=z((Dh,Ec)=>{"use strict";var rm=at(),nm=(e,t,r)=>{try{t=new rm(t,r)}catch{return!1}return t.test(e)};Ec.exports=nm});var Ic=z((Oh,Cc)=>{"use strict";var om=at(),im=(e,t)=>new om(e,t).set.map(r=>r.map(n=>n.value).join(" ").trim().split(" "));Cc.exports=im});var Ac=z((Nh,kc)=>{"use strict";var sm=Oe(),am=at(),cm=(e,t,r)=>{let n=null,o=null,i=null;try{i=new am(t,r)}catch{return null}return e.forEach(a=>{i.test(a)&&(!n||o.compare(a)===-1)&&(n=a,o=new sm(n,r))}),n};kc.exports=cm});var Pc=z((jh,_c)=>{"use strict";var lm=Oe(),um=at(),dm=(e,t,r)=>{let n=null,o=null,i=null;try{i=new um(t,r)}catch{return null}return e.forEach(a=>{i.test(a)&&(!n||o.compare(a)===1)&&(n=a,o=new lm(n,r))}),n};_c.exports=dm});var $c=z((Vh,Bc)=>{"use strict";var ri=Oe(),fm=at(),Lc=$r(),mm=(e,t)=>{e=new fm(e,t);let r=new ri("0.0.0");if(e.test(r)||(r=new ri("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 ri(a.semver.version);switch(a.operator){case">":u.prerelease.length===0?u.patch++:u.prerelease.push(0),u.raw=u.format();case"":case">=":(!i||Lc(u,i))&&(i=u);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${a.operator}`)}}),i&&(!r||Lc(r,i))&&(r=i)}return r&&e.test(r)?r:null};Bc.exports=mm});var Oc=z((Mh,Dc)=>{"use strict";var pm=at(),gm=(e,t)=>{try{return new pm(e,t).range||"*"}catch{return null}};Dc.exports=gm});var Pn=z((Fh,Mc)=>{"use strict";var hm=Oe(),Vc=Dr(),{ANY:xm}=Vc,vm=at(),bm=Nr(),Nc=$r(),jc=Cn(),Sm=kn(),wm=In(),ym=(e,t,r,n)=>{e=new hm(e,n),t=new vm(t,n);let o,i,a,u,f;switch(r){case">":o=Nc,i=Sm,a=jc,u=">",f=">=";break;case"<":o=jc,i=wm,a=Nc,u="<",f="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(bm(e,t,n))return!1;for(let v=0;v<t.set.length;++v){let w=t.set[v],g=null,T=null;if(w.forEach(c=>{c.semver===xm&&(c=new Vc(">=0.0.0")),g=g||c,T=T||c,o(c.semver,g.semver,n)?g=c:a(c.semver,T.semver,n)&&(T=c)}),g.operator===u||g.operator===f||(!T.operator||T.operator===u)&&i(e,T.semver))return!1;if(T.operator===f&&a(e,T.semver))return!1}return!0};Mc.exports=ym});var Uc=z((Uh,Fc)=>{"use strict";var Rm=Pn(),Tm=(e,t,r)=>Rm(e,t,">",r);Fc.exports=Tm});var Hc=z((qh,qc)=>{"use strict";var Em=Pn(),Cm=(e,t,r)=>Em(e,t,"<",r);qc.exports=Cm});var Xc=z((Hh,Wc)=>{"use strict";var Gc=at(),Im=(e,t,r)=>(e=new Gc(e,r),t=new Gc(t,r),e.intersects(t,r));Wc.exports=Im});var Yc=z((Gh,zc)=>{"use strict";var km=Nr(),Am=st();zc.exports=(e,t,r)=>{let n=[],o=null,i=null,a=e.sort((w,g)=>Am(w,g,r));for(let w of a)km(w,t,r)?(i=w,o||(o=w)):(i&&n.push([o,i]),i=null,o=null);o&&n.push([o,null]);let u=[];for(let[w,g]of n)w===g?u.push(w):!g&&w===a[0]?u.push("*"):g?w===a[0]?u.push(`<=${g}`):u.push(`${w} - ${g}`):u.push(`>=${w}`);let f=u.join(" || "),v=typeof t.raw=="string"?t.raw:String(t);return f.length<v.length?f:t}});var tl=z((Wh,el)=>{"use strict";var Kc=at(),ii=Dr(),{ANY:ni}=ii,oi=Nr(),si=st(),_m=(e,t,r={})=>{if(e===t)return!0;e=new Kc(e,r),t=new Kc(t,r);let n=!1;e:for(let o of e.set){for(let i of t.set){let a=Lm(o,i,r);if(n=n||a!==null,a)continue e}if(n)return!1}return!0},Pm=[new ii(">=0.0.0-0")],Jc=[new ii(">=0.0.0")],Lm=(e,t,r)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===ni){if(t.length===1&&t[0].semver===ni)return!0;r.includePrerelease?e=Pm:e=Jc}if(t.length===1&&t[0].semver===ni){if(r.includePrerelease)return!0;t=Jc}let n=new Set,o,i;for(let c of e)c.operator===">"||c.operator===">="?o=Qc(o,c,r):c.operator==="<"||c.operator==="<="?i=Zc(i,c,r):n.add(c.semver);if(n.size>1)return null;let a;if(o&&i){if(a=si(o.semver,i.semver,r),a>0)return null;if(a===0&&(o.operator!==">="||i.operator!=="<="))return null}for(let c of n){if(o&&!oi(c,String(o),r)||i&&!oi(c,String(i),r))return null;for(let m of t)if(!oi(c,String(m),r))return!1;return!0}let u,f,v,w,g=i&&!r.includePrerelease&&i.semver.prerelease.length?i.semver:!1,T=o&&!r.includePrerelease&&o.semver.prerelease.length?o.semver:!1;g&&g.prerelease.length===1&&i.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let c of t){if(w=w||c.operator===">"||c.operator===">=",v=v||c.operator==="<"||c.operator==="<=",o){if(T&&c.semver.prerelease&&c.semver.prerelease.length&&c.semver.major===T.major&&c.semver.minor===T.minor&&c.semver.patch===T.patch&&(T=!1),c.operator===">"||c.operator===">="){if(u=Qc(o,c,r),u===c&&u!==o)return!1}else if(o.operator===">="&&!c.test(o.semver))return!1}if(i){if(g&&c.semver.prerelease&&c.semver.prerelease.length&&c.semver.major===g.major&&c.semver.minor===g.minor&&c.semver.patch===g.patch&&(g=!1),c.operator==="<"||c.operator==="<="){if(f=Zc(i,c,r),f===c&&f!==i)return!1}else if(i.operator==="<="&&!c.test(i.semver))return!1}if(!c.operator&&(i||o)&&a!==0)return!1}return!(o&&v&&!i&&a!==0||i&&w&&!o&&a!==0||T||g)},Qc=(e,t,r)=>{if(!e)return t;let n=si(e.semver,t.semver,r);return n>0?e:n<0||t.operator===">"&&e.operator===">="?t:e},Zc=(e,t,r)=>{if(!e)return t;let n=si(e.semver,t.semver,r);return n<0?e:n>0||t.operator==="<"&&e.operator==="<="?t:e};el.exports=_m});var ci=z((Xh,ol)=>{"use strict";var ai=fr(),rl=dr(),Bm=Oe(),nl=Ho(),$m=Nt(),Dm=Ia(),Om=Aa(),Nm=La(),jm=Da(),Vm=Na(),Mm=Va(),Fm=Fa(),Um=qa(),qm=st(),Hm=Xa(),Gm=Ya(),Wm=En(),Xm=Za(),zm=tc(),Ym=$r(),Km=Cn(),Jm=Xo(),Qm=zo(),Zm=In(),ep=kn(),tp=Yo(),rp=uc(),np=fc(),op=Dr(),ip=at(),sp=Nr(),ap=Ic(),cp=Ac(),lp=Pc(),up=$c(),dp=Oc(),fp=Pn(),mp=Uc(),pp=Hc(),gp=Xc(),hp=Yc(),xp=tl();ol.exports={parse:$m,valid:Dm,clean:Om,inc:Nm,diff:jm,major:Vm,minor:Mm,patch:Fm,prerelease:Um,compare:qm,rcompare:Hm,compareLoose:Gm,compareBuild:Wm,sort:Xm,rsort:zm,gt:Ym,lt:Km,eq:Jm,neq:Qm,gte:Zm,lte:ep,cmp:tp,coerce:rp,truncate:np,Comparator:op,Range:ip,satisfies:sp,toComparators:ap,maxSatisfying:cp,minSatisfying:lp,minVersion:up,validRange:dp,outside:fp,gtr:mp,ltr:pp,intersects:gp,simplifyRange:hp,subset:xp,SemVer:Bm,re:ai.re,src:ai.src,tokens:ai.t,SEMVER_SPEC_VERSION:rl.SEMVER_SPEC_VERSION,RELEASE_TYPES:rl.RELEASE_TYPES,compareIdentifiers:nl.compareIdentifiers,rcompareIdentifiers:nl.rcompareIdentifiers}});var R=k(xe(),1);var ma=k(xe(),1);var ur=k(M(),1);function pa({path:e}){return e.length===0?null:(0,ur.jsx)(b,{children:e.map((t,r)=>(0,ur.jsxs)(ma.default.Fragment,{children:[r>0&&(0,ur.jsx)(s,{color:l.muted,children:" \u203A "}),(0,ur.jsx)(s,{color:l.dim,children:t})]},r))})}var il=k(ci(),1),vp=1,bp=new Set(["discover","workflow","nudge","recovery"]),Sp=new Set(["run","generate","both"]),wp=new Set(["banner","footer"]),Ln=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),mr=e=>typeof e=="string"&&e.length>0?e:void 0,pr=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0;function yp(e){if(!Ln(e))return{};let t={};return mr(e.run)&&(t.run=e.run),mr(e.generate)&&(t.generate=e.generate),mr(e.default)&&(t.default=e.default),t}function sl(e,t){return e.text[t]??e.text.default??(e.target!=="both"?e.text[e.target]:void 0)}function Rp(e,t){return t==="both"?!!e.default||!!e.run&&!!e.generate:t==="run"?!!e.run||!!e.default:!!e.generate||!!e.default}function Tp(e,t){if(!Ln(e))return;let r=pr(e.maxShows),n=mr(e.until),o=pr(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 Ep(e){if(!Ln(e))return null;let t=mr(e.id);if(!t)return null;let r=Sp.has(e.target)?e.target:void 0;if(e.target!==void 0&&r===void 0)return null;let n=r??"both",o=yp(e.text);if(!Rp(o,n))return null;let i=bp.has(e.category)?e.category:"nudge",a=wp.has(e.surface)?e.surface:void 0,u=pr(e.weight),f=u===void 0?1:Math.max(0,u),v=pr(e.cooldownSessions),w=v===void 0?0:Math.max(0,Math.floor(v)),g=mr(e.minVersion)&&il.default.coerce(e.minVersion)?e.minVersion:void 0,T=Array.isArray(e.relevance)?e.relevance.filter(D=>typeof D=="string"):[],c=pr(e.retireAfterShows),m=c!==void 0&&c>=1?Math.floor(c):void 0,$=Tp(e.boost,f);return{id:t,category:i,surface:a,target:n,text:o,weight:f,cooldownSessions:w,minVersion:g,relevance:T,retireAfterShows:m,boost:$}}function Bn(e){if(!Ln(e)||!Array.isArray(e.hints)||typeof e.enabled!="boolean")return{catalog:null,dropped:0};let t=pr(e.schemaVersion)??0;if(Math.floor(t)>vp)return{catalog:null,dropped:0};let r=0,n=new Set,o=[];for(let i of e.hints){let a=Ep(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 ll=k(M(),1),al="tip: ";function cl({hint:e,mode:t,termWidth:r}){if(e.target!=="both"&&e.target!==t)return null;let n=sl(e,t);if(!n)return null;let o=Math.max(8,r-al.length-2),i=n.length>o?n.slice(0,o-1)+"\u2026":n;return(0,ll.jsx)(s,{color:l.dim,children:al+i})}var J=k(M(),1);function ul({profile:e,environment:t,tokenValid:r,runCount:n,sessionId:o,viewMode:i,breadcrumb:a,chatMode:u,tcgRequestId:f,tcgStreamStatus:v,footerHint:w}){let{stdout:g}=or(),T=g?.columns??80,c=u??"run",m=t==="stage",$=t==="prod",D=c==="generate"?l.generateAccent:l.orange,V=v==="completed"?l.green:v==="failed"?l.red:l.generateAccent;return(0,J.jsxs)(b,{flexDirection:"column",children:[(0,J.jsx)(s,{color:l.muted,children:"\u2500".repeat(T)}),a&&a.length>0&&(0,J.jsx)(b,{paddingX:1,children:(0,J.jsx)(pa,{path:a})}),(0,J.jsxs)(b,{paddingX:1,gap:1,children:[(0,J.jsx)(s,{color:l.dim,children:"Mode:"}),(0,J.jsx)(s,{color:D,bold:!0,children:c==="generate"?"Generate":"Run"}),(0,J.jsx)(s,{color:l.muted,children:"|"}),c==="generate"?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:l.dim,children:"req"}),(0,J.jsx)(s,{color:l.dim,children:f??"\u2014"}),v&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:l.muted,children:"\xB7"}),(0,J.jsx)(s,{color:V,children:v})]})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:l.dim,children:"Session:"}),(0,J.jsx)(s,{color:l.dim,children:o})]}),(0,J.jsx)(s,{color:l.muted,children:"|"}),(0,J.jsx)(s,{color:r?l.green:l.red,children:"\u25CF"}),(0,J.jsx)(s,{color:l.dim,children:r?"authenticated":"not logged in"}),!$&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:l.muted,children:"|"}),m?(0,J.jsx)(s,{color:l.orange,bold:!0,children:"\u26A0 stage"}):(0,J.jsx)(s,{color:l.green,children:t})]})]}),(0,J.jsxs)(b,{paddingX:1,gap:1,children:[(0,J.jsx)(s,{color:l.dim,children:e??"no profile"}),c==="run"&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:l.muted,children:"|"}),(0,J.jsxs)(s,{color:l.dim,children:["runs: ",n]})]}),(0,J.jsx)(s,{color:l.muted,children:"|"}),(0,J.jsx)(s,{dimColor:!0,children:Xi()})]}),(0,J.jsx)(b,{paddingX:1,children:(0,J.jsx)(s,{dimColor:!0,children:i==="chat"?"ctrl+c cancel/exit":"\u2191\u2193 navigate \u21B5 select esc back"})}),w&&(0,J.jsx)(b,{paddingX:1,children:(0,J.jsx)(cl,{hint:w,mode:c,termWidth:T})})]})}var Kt=k(xe(),1);var jr=[[[" "],[" "],[" "],[" "],["\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 te=k(M(),1),$n="#af87d7",li="#875faf",dl="#5b3a7a",Cp="#ff9500",Ip="#ea580c";var ui="#666666",kp="#555555",Yt=[[$n,"\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"],[$n,"\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"],[$n,"\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"],[$n,"\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"],[li,"\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"],[li,"\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"],[li,"\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"]],di=Yt.map(([,e])=>[...e]);function fl({visibleRows:e=Yt.length}){let t=Math.min(e,Yt.length);return(0,te.jsxs)(b,{flexDirection:"column",children:[Yt.slice(0,t).map(([r,n],o)=>{let i=di[o];return(0,te.jsx)(s,{children:i.map((a,u)=>{if(a==="\u2588")return(0,te.jsx)(s,{color:r,children:"\u2588"},u);let f=u>0&&i[u-1]==="\u2588",v=o>0&&u>0&&di[o-1][u-1]==="\u2588";return f||v?(0,te.jsx)(s,{color:dl,children:"\u2592"},u):(0,te.jsx)(s,{children:" "},u)})},o)}),t>=Yt.length&&(0,te.jsxs)(s,{children:[" ",di[Yt.length-1].map((r,n)=>r==="\u2588"?(0,te.jsx)(s,{color:dl,children:"\u2580"},n):(0,te.jsx)(s,{children:" "},n))]})]})}function Ap({visibleRows:e=jr.length}){let t=Math.min(e,jr.length);return(0,te.jsx)(b,{flexDirection:"column",children:jr.slice(0,t).map((r,n)=>(0,te.jsx)(s,{children:r.map((o,i)=>{let a=o[0],u=o[1],f=o[2];return u?(0,te.jsx)(s,{color:u,backgroundColor:f,children:a},i):(0,te.jsx)(s,{children:a},i)})},n))})}function Dn({size:e="compact",helmetVisibleRows:t=jr.length,textVisibleRows:r=Yt.length,showMeta:n=!1,user:o=null,authenticated:i=!1,version:a=""}){return e==="compact"?(0,te.jsx)(fl,{}):(0,te.jsxs)(b,{flexDirection:"column",paddingX:1,paddingY:1,children:[(0,te.jsx)(s,{color:Cp,italic:!0,children:" Welcome to"}),(0,te.jsx)(s,{children:" "}),(0,te.jsxs)(b,{gap:2,children:[(0,te.jsx)(Ap,{visibleRows:t}),(0,te.jsxs)(b,{flexDirection:"column",children:[(0,te.jsx)(fl,{visibleRows:r}),(0,te.jsx)(b,{justifyContent:"flex-end",width:73,children:(0,te.jsx)(s,{color:Ip,italic:!0,children:"Command-line interface"})})]})]}),n&&(0,te.jsxs)(te.Fragment,{children:[(0,te.jsx)(s,{children:" "}),(0,te.jsxs)(s,{children:[(0,te.jsx)(s,{color:ui,children:" Browser automation powered by AI. "}),(0,te.jsx)(s,{color:kp,children:`v${a}`})]}),(0,te.jsx)(s,{children:" "}),(0,te.jsx)(s,{children:(0,te.jsx)(s,{color:ui,children:" KaneCLI can navigate websites, fill forms, test web UI, and extract"})}),(0,te.jsx)(s,{children:(0,te.jsx)(s,{color:ui,children:" data \u2014 right from your terminal."})}),(0,te.jsx)(s,{children:" "})]})]})}var pi=k(M(),1),fi=8,mi=7;function ml({onComplete:e}){let[t,r]=(0,Kt.useState)(0),[n,o]=(0,Kt.useState)(0),[i,a]=(0,Kt.useState)(!1),[u]=(0,Kt.useState)(()=>{let f=new fn,v=f.getActiveProfile(),w=f.getDefaultEnv(),g=v?f.loadCredentials(v,w):null,T=v?f.loadBasicAuth(v,w):null;return{authenticated:!!(g||T),user:T?.username??v??null}});return Ao(()=>{r(f=>Math.min(fi,f+1))},t<fi?60:null),Ao(()=>{o(f=>Math.min(mi,f+1))},n<mi?80:null),(0,Kt.useEffect)(()=>{t>=fi&&n>=mi&&!i&&(a(!0),e?.())},[t,n,i,e]),(0,pi.jsx)(b,{flexDirection:"column",children:(0,pi.jsx)(Dn,{size:"full",helmetVisibleRows:t,textVisibleRows:n,showMeta:i,user:u.user,authenticated:u.authenticated,version:ot})})}var kt=k(M(),1);function pl({entry:e}){return e.type==="input"?(0,kt.jsxs)(b,{children:[(0,kt.jsx)(s,{color:l.orange,children:"\u276F "}),(0,kt.jsx)(s,{children:e.text})]}):e.type==="error"?(0,kt.jsx)(b,{marginLeft:2,children:(0,kt.jsx)(s,{color:l.red,children:e.text})}):(0,kt.jsx)(b,{marginLeft:2,children:(0,kt.jsx)(s,{color:e.type==="info"?l.dim:void 0,children:e.text})})}var gi=k(M(),1);function gl({objective:e}){let{stdout:t}=or(),r=Math.max(24,(t?.columns??80)-4);return(0,gi.jsx)(It,{title:"run",width:r,children:(0,gi.jsx)(Yi,{label:"objective",value:e})})}var yt=k(xe(),1);var Ye=k(M(),1);function _p(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(f=>f.key.length)):0;for(let f of a.entries){let v="\xB7".repeat(Math.max(2,u-f.key.length+3)),w=`${f.key} ${v} ${f.value}`;r.push({type:"entry",text:w,color:f.color})}}return r.push({type:"footer",text:"esc back"}),r}function hl({data:e,width:t=60}){let r=_p(e,t);return(0,Ye.jsx)(b,{flexDirection:"column",borderStyle:"round",borderColor:l.orange,paddingX:2,paddingY:1,children:r.map((n,o)=>{if(n.type==="title")return(0,Ye.jsx)(s,{color:l.orange,bold:!0,children:n.text},o);if(n.type==="header")return(0,Ye.jsx)(b,{marginTop:1,children:(0,Ye.jsx)(s,{color:l.dim,children:n.text})},o);if(n.type==="divider")return(0,Ye.jsx)(b,{marginTop:1,marginBottom:0,children:(0,Ye.jsx)(s,{color:l.muted,children:n.text})},o);if(n.type==="footer")return(0,Ye.jsx)(b,{marginTop:1,children:(0,Ye.jsx)(s,{color:l.dim,children:n.text})},o);let i=n.text.match(/^(.+?) (·+) (.+)$/);return i?(0,Ye.jsxs)(s,{children:[(0,Ye.jsxs)(s,{color:l.secondary,children:[i[1]," "]}),(0,Ye.jsxs)(s,{color:l.muted,children:[i[2]," "]}),(0,Ye.jsx)(s,{color:n.color,children:i[3]})]},o):(0,Ye.jsx)(s,{color:n.color,children:n.text},o)})})}var je=k(M(),1);function hi(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 xi({items:e,onRunSelected:t,initialExpandedPath:r,onDismiss:n,renderLoginWizard:o,renderProfilesView:i,renderChromeProfilePicker:a,renderProjectPicker:u,renderFolderPicker:f,renderWindowSizePicker:v,onActiveViewChange:w}){let[g,T]=(0,yt.useState)(()=>{let O=r??[],H=hi(e,O),A=0;if(O.length>0){let F=H.findIndex(ee=>ee.item.id===O[0]);F>=0&&F+1<H.length&&(A=F+1)}return{expandedPath:O,selectedIndex:A,inputValue:"",isEditing:!1,isSelecting:!1,feedback:null,activeView:null,infoData:null}}),c=hi(e,g.expandedPath),m=c[g.selectedIndex]?.item,$=(0,yt.useRef)(null),D=(0,yt.useCallback)(O=>{T(H=>({...H,feedback:O})),$.current&&clearTimeout($.current),$.current=setTimeout(()=>{T(H=>({...H,feedback:null})),$.current=null},4e3)},[]);(0,yt.useEffect)(()=>()=>{$.current&&clearTimeout($.current)},[]),(0,yt.useEffect)(()=>{w?.(g.activeView)},[g.activeView,w]);let V=(0,yt.useCallback)(()=>{T(O=>({...O,activeView:null,infoData:null}))},[]);return Ie((O,H)=>{if(g.activeView==="infoView"){H.escape&&V();return}if(!(g.activeView==="loginWizard"||g.activeView==="profilesView"||g.activeView==="chromeProfilePicker"||g.activeView==="projectPicker"||g.activeView==="folderPicker"||g.activeView==="windowSizePicker")){if(g.isEditing){if(H.escape){T(A=>({...A,isEditing:!1,inputValue:""}));return}if(H.return){let A=g.inputValue.trim();if(m?.onValue&&A){let F=m.currentValue;m.onValue(A),D(F?`${m.label}: ${F} \u2192 ${A}`:`${m.label}: ${A}`)}T(F=>({...F,isEditing:!1,inputValue:""}));return}if(H.backspace||H.delete){T(A=>({...A,inputValue:A.inputValue.slice(0,-1)}));return}O&&!H.ctrl&&!H.meta&&T(A=>({...A,inputValue:A.inputValue+O}));return}if(g.isSelecting&&m?.options){let A=m.options;if(H.escape){T(F=>({...F,isSelecting:!1}));return}if(H.upArrow){T(F=>({...F,inputValue:String(Math.max(0,Number(F.inputValue||"0")-1))}));return}if(H.downArrow){T(F=>({...F,inputValue:String(Math.min(A.length-1,Number(F.inputValue||"0")+1))}));return}if(H.return){let F=Number(g.inputValue||"0"),ee=A[F];if(ee&&m.onValue){let re=m.currentValue;m.onValue(ee.value),D(re?`${m.label}: ${re} \u2192 ${ee.label}`:`${m.label}: ${ee.label}`)}T(re=>({...re,isSelecting:!1,inputValue:""}));return}return}if(H.upArrow){T(A=>({...A,selectedIndex:Math.max(0,A.selectedIndex-1)}));return}if(H.downArrow){T(A=>({...A,selectedIndex:Math.min(c.length-1,A.selectedIndex+1)}));return}if(H.escape){if(g.expandedPath.length===0){n?.();return}T(A=>{let F=A.expandedPath.slice(0,-1),ee=hi(e,F),re=A.expandedPath[A.expandedPath.length-1],fe=ee.findIndex(W=>W.item.id===re);return{...A,expandedPath:F,selectedIndex:fe>=0?fe:0}});return}if(H.return&&m){if(m.id==="run-start"){t();return}if(m.type==="submenu"){let A=c[g.selectedIndex]?.depth??0;T(F=>({...F,expandedPath:[...F.expandedPath.slice(0,A),m.id],selectedIndex:F.selectedIndex+1}));return}if(m.onInfo){let A=m.onInfo();T(F=>({...F,activeView:"infoView",infoData:A}));return}if(m.onLoginWizard){m.onLoginWizard(),T(A=>({...A,activeView:"loginWizard"}));return}if(m.onProfilesView){m.onProfilesView(),T(A=>({...A,activeView:"profilesView"}));return}if(m.onChromeProfilePicker){m.onChromeProfilePicker(),T(A=>({...A,activeView:"chromeProfilePicker"}));return}if(m.onProjectPicker){m.onProjectPicker(),T(A=>({...A,activeView:"projectPicker"}));return}if(m.onFolderPicker){m.onFolderPicker(),T(A=>({...A,activeView:"folderPicker"}));return}if(m.onWindowSizePicker){m.onWindowSizePicker(),T(A=>({...A,activeView:"windowSizePicker"}));return}if(m.type==="action"){m.onAction?.(),m.suppressFeedback||D(`${m.label} done`);return}if(m.type==="select"&&m.options){let A=m.options.findIndex(F=>F.value===m.currentValue);T(F=>({...F,isSelecting:!0,inputValue:String(Math.max(0,A))}));return}if(m.type==="text-input"){T(A=>({...A,isEditing:!0,inputValue:m.currentValue??""}));return}}}}),(0,je.jsx)(b,{flexDirection:"column",paddingX:1,children:g.activeView==="infoView"&&g.infoData?(0,je.jsx)(hl,{data:g.infoData}):g.activeView==="loginWizard"&&o?o(V):g.activeView==="profilesView"&&i?i(V):g.activeView==="chromeProfilePicker"&&a?a(V):g.activeView==="projectPicker"&&u?u(V):g.activeView==="folderPicker"&&f?f(V):g.activeView==="windowSizePicker"&&v?v(V):(0,je.jsxs)(je.Fragment,{children:[c.map(({item:O,depth:H},A)=>{let F=A===g.selectedIndex,ee=" ".repeat(H),re=F?"\u276F ":" ",fe=O.type==="submenu"?g.expandedPath.includes(O.id)?"\u25BC ":"\u25B6 ":" ",W=O.currentValue!=null?` [${O.currentValue}]`:"";if(F&&g.isSelecting&&O.options){let ie=Number(g.inputValue||"0");return(0,je.jsxs)(b,{flexDirection:"column",children:[(0,je.jsxs)(s,{color:l.orange,children:[ee,re,fe,O.label]}),O.options.map((ue,Ce)=>(0,je.jsxs)(s,{color:Ce===ie?l.orange:void 0,children:[ee," ",Ce===ie?"\u276F ":" ",ue.label]},ue.value))]},O.id)}return F&&g.isEditing?(0,je.jsxs)(s,{color:l.orange,children:[ee,re,fe,O.label,": ",g.inputValue,(0,je.jsx)(s,{color:l.dim,children:"\u2588"})]},O.id):(0,je.jsxs)(s,{color:F?l.orange:void 0,dimColor:!F&&H>0,children:[ee,re,fe,O.label,(0,je.jsx)(s,{dimColor:!0,children:W})]},O.id)}),g.feedback&&(0,je.jsx)(b,{marginTop:1,children:(0,je.jsxs)(s,{color:l.green,children:["\u2713 ",g.feedback]})}),(0,je.jsx)(ir,{bindings:[{keys:"\u2191\u2193",label:"navigate"},{keys:"\u21B5",label:"select"}],escBackLabel:"back"})]})})}var Vr=k(xe(),1);var Ue=k(M(),1),vi=800,bi=3840,Si=600,wi=2160;function xl(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<vi)return`Min ${vi}`;if(r>bi)return`Max ${bi}`}else{if(r<Si)return`Min ${Si}`;if(r>wi)return`Max ${wi}`}return null}function yi({currentWidth:e,currentHeight:t,onSelect:r,onCancel:n}){let[o,i]=(0,Vr.useState)("width"),[a,u]=(0,Vr.useState)(String(e)),[f,v]=(0,Vr.useState)(String(t)),[w,g]=(0,Vr.useState)(null);Ie((c,m)=>{if(m.escape){n();return}if(m.tab||m.rightArrow||m.leftArrow){i($=>$==="width"?"height":"width"),g(null);return}if(m.return){let $=xl("width",a);if($){i("width"),g(`Width: ${$}`);return}let D=xl("height",f);if(D){i("height"),g(`Height: ${D}`);return}r(Number(a),Number(f));return}if(m.backspace||m.delete){o==="width"?u($=>$.slice(0,-1)):v($=>$.slice(0,-1)),g(null);return}c&&/^\d$/.test(c)&&(o==="width"?u($=>$+c):v($=>$+c),g(null))});let T=(c,m,$)=>{let D=o===$,V=D?l.orange:l.secondary;return(0,Ue.jsxs)(b,{flexDirection:"column",children:[(0,Ue.jsxs)(s,{color:l.dim,children:[" ",c]}),(0,Ue.jsx)(b,{borderStyle:"round",borderColor:V,paddingX:1,width:10,children:(0,Ue.jsxs)(s,{color:D?void 0:l.dim,children:[m||" ",D?(0,Ue.jsx)(s,{color:l.dim,children:"\u2588"}):""]})}),(0,Ue.jsxs)(s,{color:l.dim,dimColor:!0,children:[" ",$==="width"?`${vi}\u2013${bi}`:`${Si}\u2013${wi}`]})]})};return(0,Ue.jsxs)(b,{flexDirection:"column",paddingX:1,children:[(0,Ue.jsx)(s,{color:l.orange,bold:!0,children:"Window Size"}),(0,Ue.jsxs)(b,{marginTop:1,gap:1,children:[T("Width",a,"width"),(0,Ue.jsx)(b,{alignItems:"center",marginTop:1,children:(0,Ue.jsx)(s,{color:l.dim,children:"x"})}),T("Height",f,"height")]}),w&&(0,Ue.jsx)(b,{marginTop:1,children:(0,Ue.jsx)(s,{color:l.red,children:w})}),(0,Ue.jsx)(ir,{bindings:[{keys:"tab/\u2190\u2192",label:"switch field"},{keys:"\u21B5",label:"save"}],escBackLabel:"cancel"})]})}var qe=k(xe(),1);async function vl(e,t,r){let n=e.loadCredentials(t,r),o=e.loadClient(t,r);if(n&&o){let a=new as(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 bl(){let[e]=(0,qe.useState)(()=>new fn),[t,r]=(0,qe.useState)(()=>{let m=e.resolveAuth();if(!m)return!1;if(m.method==="basic")return!0;let{credentials:$}=e.getActiveCredentials();return $?$.expires_at>Date.now()/1e3:!1}),n=(0,qe.useRef)(null),o=(0,qe.useRef)(null),i=(0,qe.useCallback)(()=>{let m=e.resolveAuth();return m?{method:m.method,profile:m.profile,env:m.env}:null},[e]),a=(0,qe.useCallback)(async()=>{let{credentials:m,profile:$,env:D}=e.getActiveCredentials();if(!m||!$||!D)return null;let V=m.expires_at,O=Date.now()/1e3;if(V-O<300){if(o.current)return o.current;let H=(async()=>{try{let A=await cs({creds:e,profile:$,env:D,credentials:m});return A?(r(!0),A.accessToken):null}catch{return r(!1),null}finally{o.current=null}})();return o.current=H,H}return r(!0),m.access_token},[e]),u=(0,qe.useCallback)(()=>{let m=e.resolveAuth();return!m||m.method!=="basic"?null:{username:m.username,access_key:m.access_key}},[e]),f=(0,qe.useCallback)((m,$)=>{n.current?.revoke();let D=De(m),V=u(),O=new us(D.controllerBaseUrl,a,V,$);return n.current=O,O},[u,a]),v=(0,qe.useCallback)(()=>n.current,[]),w=(0,qe.useCallback)(()=>{let m=u();if(m)return m;let $=n.current?.cached;return $?{username:$.username,access_key:$.access_key}:null},[u]),g=(0,qe.useCallback)(async()=>{let m=n.current;return m?m.resolve():null},[]),T=(0,qe.useCallback)(async(m="default")=>{let $=e.getDefaultEnv();await new ls(m,$,e).login(),e.setActiveProfile(m);try{let V=new cr;it(e,V,m,$)}catch{}r(!0)},[e]),c=(0,qe.useCallback)(async()=>{let m=e.getActiveProfile();if(!m)return null;let $=e.getDefaultEnv(),D=await vl(e,m,$);return r(!1),{profile:D.profile,env:D.env}},[e]);return{creds:e,tokenValid:t,setTokenValid:r,getToken:a,getBasicAuth:u,getAuthInfo:i,login:T,logout:c,initResolver:f,getResolver:v,getResolvedBasicAuth:w,resolveBasicAuth:g}}var At=k(xe(),1);import{mkdtempSync as Pp,rmSync as Lp}from"fs";import{join as Bp}from"path";import{tmpdir as $p}from"os";function Sl(){let[e]=(0,At.useState)(()=>new cr),t=(0,At.useRef)(null),r=(0,At.useRef)(null),n=(0,At.useRef)(null),o=(0,At.useCallback)(async a=>{if(t.current)return t.current;if(n.current)return n.current;let u=(async()=>{let f=e.load(),v;if(f.chrome_profile_path)v=f.chrome_profile_path.replace("~",process.env.HOME??"~");else{r.current&&(Ot("tempDir","Previous temp dir removed before retry"),r.current=null);let g=Pp(Bp($p(),"kane-clean-"));r.current=g,v=g,vt("tempDir",()=>{try{Lp(g,{recursive:!0,force:!0})}catch{}})}let w=await fs({userDataDir:v,width:f.window_size.width,height:f.window_size.height,startUrl:a??f.default_url??void 0});return t.current=w,vt("chrome",()=>{w.kill()}),w})();n.current=u;try{return await u}finally{n.current=null}},[e]),i=(0,At.useCallback)(()=>{Ot("chrome","Chrome killed"),Ot("tempDir","Temp dir removed"),t.current=null,r.current=null},[]);return{ensureChrome:o,killChrome:i}}var On=[{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|set-assertion-mode|set-network-ws|set-network-sse|set-bug-detection|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 Nn(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 f=u.slice(2),v=n[a+1];v&&!v.startsWith("--")?(i[f]=v.replace(/^"|"$/g,""),a+=2):(i[f]=void 0,a++)}else{let f=u.replace(/^"|"$/g,"");o==="run"?i.objective=f:o==="config"?i.action?i.value=f:i.action=f:o==="profiles"?i.action=f:o==="summary"&&(i.index=f),a++}}return{command:o,args:i,raw:t}}var ev=[{name:"Testing",commands:On.filter(e=>["run","cancel"].includes(e.name))},{name:"Auth",commands:On.filter(e=>["login","logout","whoami","balance","profiles"].includes(e.name))},{name:"Settings",commands:On.filter(e=>["config"].includes(e.name))},{name:"Session",commands:On.filter(e=>["new","name","summary","help","clear","exit"].includes(e.name))}];var wl=[{name:"testmd",description:"Browse & run saved tests under cwd"},{name:"auth",description:"Login, logout, profiles"},{name:"config",description:"Chrome, run & generate settings",args:""},{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"}],Dp={name:"cancel",description:"Abort current run"},Op={name:"cancel",description:"Cancel current generation"},gr=[{name:"generate",description:"Switch to Generate mode (test case generator)"},{name:"summary",description:"View run summaries",args:"[index]"},Dp,...wl],Mr=[{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>]"},Op,...wl],yl=gr;function jn(e,t="run"){let r=t==="generate"?Mr:gr,n=e.startsWith("/")?e.slice(1):e;return n?r.filter(o=>o.name.startsWith(n)):r}var Np=new Set([...gr,...Mr].map(e=>e.name));function Rl(e,t){let r=t==="generate"?Mr:gr;return Np.has(e)?r.some(n=>n.name===e):!0}function Tl(e,t){let r=t?.trim();return r?e==="generate"?{kind:"reject"}:{kind:"run",objective:r}:e==="generate"?{kind:"toggle"}:{kind:"already"}}var jt=k(M(),1);function Ri({flows:e,filterIndex:t}){let r=t!==void 0?e.filter(n=>n.index===t):e;return r.length===0?null:(0,jt.jsx)(b,{flexDirection:"column",children:r.map(n=>(0,jt.jsxs)(b,{flexDirection:"column",marginTop:1,children:[(0,jt.jsxs)(b,{marginLeft:1,children:[(0,jt.jsx)(s,{color:l.purple,bold:!0,children:"Flow "+n.index+": "}),(0,jt.jsx)(s,{color:l.purple,children:n.objective})]}),(0,jt.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 Vt=k(M(),1),jp={ok:"\u2713",error:"\u2717",cancelled:"\u2298"},Vp={ok:l.green,error:l.red,cancelled:l.dim};function El({status:e,command:t,message:r,details:n,accentColor:o}){let i=t.startsWith("/")?t.slice(1):t,a=o??Vp[e];return(0,Vt.jsxs)(b,{flexDirection:"column",marginLeft:2,marginTop:1,children:[(0,Vt.jsx)(b,{marginLeft:1,children:(0,Vt.jsxs)(s,{color:a,bold:!0,children:[jp[e]," ",i]})}),(0,Vt.jsxs)(b,{borderStyle:"round",borderColor:a,paddingX:2,flexDirection:"column",width:70,children:[(0,Vt.jsx)(s,{children:r}),n&&(0,Vt.jsx)(s,{color:l.dim,children:n})]})]})}var Hr=k(xe(),1);import{join as Ur}from"path";var Fr=k(M(),1);function Cl({tabs:e,activeIndex:t}){return(0,Fr.jsx)(b,{children:e.map((r,n)=>(0,Fr.jsx)(b,{marginRight:1,children:n===t?(0,Fr.jsx)(s,{color:l.orange,bold:!0,children:`[ ${r} ]`}):(0,Fr.jsx)(s,{color:l.dim,children:` ${r} `})},r))})}var I=k(M(),1),qr=["Commands","Shortcuts","Tests","Setup","About"],Vn=18,Mp="https://www.testmuai.com/support/docs/kane-cli-introduction",Fp="https://github.com/LambdaTest/kane-cli/issues";function Il({onClose:e,version:t,environment:r,sessionId:n,runUrl:o,mode:i="run"}){let[a,u]=(0,Hr.useState)(0),[f,v]=(0,Hr.useState)(0);(0,Hr.useEffect)(()=>{v(0)},[a]);let w=qr[a],g=w==="Commands"?Up(i):w==="Shortcuts"?qp():w==="Tests"?Hp():w==="Setup"?Gp():Wp({version:t,environment:r,sessionId:n,runUrl:o}),T=g.length,c=f>0,m=f+Vn<T,$=g.slice(f,f+Vn);Ie((V,O)=>{if(O.escape){e();return}if(O.rightArrow||O.tab){u(H=>(H+1)%qr.length);return}if(O.leftArrow){u(H=>(H-1+qr.length)%qr.length);return}if(O.upArrow){v(H=>Math.max(0,H-1));return}if(O.downArrow){v(H=>Math.min(Math.max(0,T-Vn),H+1));return}});let D=[{keys:"\u2190\u2192/tab",label:"switch tabs"}];return T>Vn&&D.push({keys:"\u2191\u2193",label:"scroll"}),(0,I.jsxs)(b,{flexDirection:"column",borderStyle:"round",borderColor:l.orange,paddingX:2,paddingY:1,children:[(0,I.jsx)(Cl,{tabs:[...qr],activeIndex:a,onChange:u}),c&&(0,I.jsx)(b,{marginTop:1,children:(0,I.jsx)(s,{color:l.dim,children:"\u25B2 more above"})}),(0,I.jsx)(b,{marginTop:c?0:1,flexDirection:"column",children:$}),m&&(0,I.jsx)(b,{children:(0,I.jsx)(s,{color:l.dim,children:"\u25BC more below"})}),(0,I.jsx)(ir,{bindings:D,escBackLabel:"back to chat"})]})}function Up(e){let t=e==="generate"?Mr:gr;return[(0,I.jsx)(s,{color:l.dim,children:"Type a natural-language objective and press \u21B5 to run, e.g."},"intro"),(0,I.jsx)(b,{marginLeft:2,children:(0,I.jsx)(s,{color:l.orange,children:'"search amazon for laptop"'})},"ex"),(0,I.jsx)(b,{marginBottom:1},"sp"),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"Slash commands"},"cmd-h"),...t.map(r=>(0,I.jsxs)(b,{marginLeft:2,children:[(0,I.jsx)(b,{width:14,children:(0,I.jsxs)(s,{color:l.orange,children:["/",r.name]})}),r.args&&(0,I.jsx)(b,{width:14,children:(0,I.jsx)(s,{color:l.dim,children:r.args})}),(0,I.jsx)(s,{color:l.dim,children:r.description})]},r.name)),(0,I.jsx)(b,{marginBottom:1},"sp2"),(0,I.jsx)(b,{marginLeft:2,children:(0,I.jsx)(s,{color:l.dim,children:"/auth submenu: login \xB7 logout \xB7 whoami \xB7 profiles \xB7 balance"})},"auth-sub"),(0,I.jsx)(b,{marginLeft:2,children:(0,I.jsx)(s,{color:l.dim,children:"/config submenu: show \xB7 run (mode \xB7 assertion-mode) \xB7 generate \xB7 chrome-profile \xB7 project \xB7 folder \xB7 window \xB7 hints"})},"config-sub")]}function Mn(e,t){return[(0,I.jsx)(s,{color:l.dim,bold:!0,children:e},`h-${e}`),...t.map(([r,n],o)=>(0,I.jsxs)(b,{marginLeft:2,children:[(0,I.jsx)(b,{width:26,children:(0,I.jsx)(s,{color:l.orange,children:r})}),(0,I.jsx)(s,{color:l.dim,children:n})]},`r-${e}-${o}`)),(0,I.jsx)(b,{marginBottom:1},`s-${e}`)]}function qp(){return[...Mn("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"]]),...Mn("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"]]),...Mn("Lists & menus",[["\u2191 \u2193","Navigate"],["type any char","Filter"],["\u21B5","Select"],["Tab","Create-new (in pickers)"],["Esc","Clear filter, then back"]]),...Mn("Global",[["Ctrl+C","Cancel run \xB7 twice exits"]]),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"Platform caveats"},"cv-h"),(0,I.jsx)(s,{color:l.dim,children:'\u2022 Mac Terminal.app: enable "Use Option as Meta key" (Profile \u2192 Keyboard)'},"cv-1"),(0,I.jsx)(s,{color:l.dim,children:"\u2022 Mac iTerm2: works by default (Esc+ mode)"},"cv-2"),(0,I.jsx)(s,{color:l.dim,children:"\u2022 Mac Mission Control may intercept Ctrl+arrow \u2014 use Option+arrow instead"},"cv-3"),(0,I.jsx)(s,{color:l.dim,children:"\u2022 Bare Forward Delete acts as Backspace (Ink can't disambiguate)"},"cv-4"),(0,I.jsx)(s,{color:l.dim,children:"\u2022 Shift+arrow is parsed but unbound (selection model is future)"},"cv-5"),(0,I.jsx)(s,{color:l.dim,children:"\u2022 Thousands of terminals exist \u2014 if a shortcut fails, run `cat` to see bytes"},"cv-6")]}function Hp(){return[(0,I.jsxs)(s,{color:l.dim,children:["Sessions you run here are saved as ",(0,I.jsx)(s,{color:l.orange,children:"*_test.md"})," files you can replay later."]},"t-intro"),(0,I.jsx)(b,{marginBottom:1},"t-sp1"),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"Auto-save"},"t-save-h"),(0,I.jsxs)(s,{color:l.dim,children:[" In ",(0,I.jsx)(s,{color:l.orange,children:"testing"})," mode, /exit prompts to save the session under a name (default: timestamp)."]},"t-save-1"),(0,I.jsxs)(s,{color:l.dim,children:[" In ",(0,I.jsx)(s,{color:l.orange,children:"action"})," mode, sessions are ephemeral unless launched with --name or set via /name."]},"t-save-2"),(0,I.jsxs)(s,{color:l.dim,children:[" Output: ",(0,I.jsx)(s,{color:l.orange,children:"<cwd>/.testmuai/tests/<name>_test.md"})," + sibling ",(0,I.jsx)(s,{color:l.orange,children:"output-<name>/"})," (Result.md + .internal/meta.json)."]},"t-save-3"),(0,I.jsx)(b,{marginBottom:1},"t-sp2"),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"Replay from a shell"},"t-run-h"),(0,I.jsxs)(s,{color:l.dim,children:[" ",(0,I.jsx)(s,{color:l.orange,children:"kane-cli testmd run path/to/foo_test.md"})," \xB7 ",(0,I.jsx)(s,{color:l.orange,children:"kane-cli testmd list"})," \xB7 bare ",(0,I.jsx)(s,{color:l.orange,children:"kane-cli testmd"})," opens a TTY picker."]},"t-run-1"),(0,I.jsx)(s,{color:l.dim,children:" The .md file carries its own config (mode, max_steps, variables, \u2026) so the replay is reproducible."},"t-run-2"),(0,I.jsx)(b,{marginBottom:1},"t-sp3"),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"Naming a session mid-run"},"t-name-h"),(0,I.jsxs)(s,{color:l.dim,children:[" Type ",(0,I.jsxs)(s,{color:l.orange,children:["/name ","<new-name>"]})," any time before /exit. Name allowed chars: letters, digits, _, -."]},"t-name-1"),(0,I.jsxs)(s,{color:l.dim,children:[" Discarding at the save prompt: press ",(0,I.jsx)(s,{color:l.orange,children:"N"})," (only key that discards \u2014 every other key saves with default)."]},"t-name-2")]}function Gp(){return[(0,I.jsx)(s,{color:l.dim,bold:!0,children:"1. Login"},"s1-h"),(0,I.jsx)(s,{color:l.dim,children:" /auth \u2192 login. OAuth opens browser; basic uses LambdaTest username + access key."},"s1-b"),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"2. Project & folder"},"s2-h"),(0,I.jsx)(s,{color:l.dim,children:" /config project / /config folder. Esc auto-picks KaneAI Generated / Untitled."},"s2-b"),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"3. Run settings (/config \u2192 Run)"},"s3-h"),(0,I.jsx)(s,{color:l.dim,children:" mode: testing = lenient, saves to TMS \xB7 action = hard-stop on errors (e.g. login w/o creds) so you can step in"},"s3-b"),(0,I.jsx)(s,{color:l.dim,children:" assertion-mode: visual (default) = read/assert via vision \xB7 dom = DOM-based extraction/assertions"},"s3-c"),(0,I.jsx)(b,{marginBottom:1},"spacer-1"),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"Variables (later wins)"},"v-h"),(0,I.jsxs)(s,{color:l.dim,children:[" ",`${Ur(Xe,"variables")}/*.json`," (global)"]},"v-1"),(0,I.jsxs)(s,{color:l.dim,children:[" ","{cwd}/.testmuai/variables/*.json"," (local) \xB7 --variables-file \xB7 --variables ","'{...}'"]},"v-2"),(0,I.jsx)(s,{color:l.dim,children:' Format: { "key": { "value": "...", "secret": false } } \xB7 ref via {{key}}'},"v-3"),(0,I.jsx)(b,{marginBottom:1},"spacer-2"),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"Context files"},"c-h"),(0,I.jsxs)(s,{color:l.dim,children:[" Global: ",Ur(Xe,"global-memory.md")]},"c-1"),(0,I.jsxs)(s,{color:l.dim,children:[" Local: ","{cwd}/.testmuai/context.md"," \xB7 CLI: --global-context, --local-context"]},"c-2"),(0,I.jsx)(b,{marginBottom:1},"spacer-3"),(0,I.jsx)(s,{color:l.dim,bold:!0,children:"Paths"},"p-h"),(0,I.jsxs)(s,{color:l.dim,children:[" Config: ",Ur(Xe,"tui-config.json")," \xB7 Auth: ",Ur(Xe,"config.json")]},"p-1"),(0,I.jsxs)(s,{color:l.dim,children:[" Sessions: ",Ur(Xe,"sessions"),"/"]},"p-2")]}function Wp({version:e,environment:t,sessionId:r,runUrl:n}){return[(0,I.jsxs)(b,{children:[(0,I.jsx)(s,{color:l.orange,bold:!0,children:"kane-cli "}),(0,I.jsxs)(s,{color:l.muted,children:["v",e]})]},"title"),(0,I.jsx)(b,{marginBottom:1},"sp"),(0,I.jsxs)(b,{children:[(0,I.jsx)(b,{width:14,children:(0,I.jsx)(s,{color:l.dim,children:"Environment"})}),(0,I.jsx)(s,{children:t})]},"env"),(0,I.jsxs)(b,{children:[(0,I.jsx)(b,{width:14,children:(0,I.jsx)(s,{color:l.dim,children:"Session"})}),(0,I.jsx)(s,{children:r})]},"sess"),(0,I.jsxs)(b,{children:[(0,I.jsx)(b,{width:14,children:(0,I.jsx)(s,{color:l.dim,children:"Default URL"})}),(0,I.jsx)(s,{color:l.orange,children:n})]},"url"),(0,I.jsx)(b,{marginBottom:1},"sp2"),(0,I.jsxs)(b,{children:[(0,I.jsx)(b,{width:14,children:(0,I.jsx)(s,{color:l.dim,children:"Docs"})}),(0,I.jsx)(s,{color:l.orange,underline:!0,children:Mp})]},"docs"),(0,I.jsxs)(b,{children:[(0,I.jsx)(b,{width:14,children:(0,I.jsx)(s,{color:l.dim,children:"Bugs"})}),(0,I.jsx)(s,{color:l.orange,underline:!0,children:Fp})]},"bugs")]}var Fn=k(xe(),1);import{existsSync as kl,readFileSync as Rv,rmSync as Xp,unlinkSync as zp}from"fs";function Al(e){let t=_s(e);kl(t)&&Xp(t,{recursive:!0,force:!0}),kl(e)&&zp(e)}var Ti=k(M(),1);function _l({cwd:e,currentOrgId:t,onClose:r,onRun:n,onExport:o}){let[i,a]=(0,Fn.useState)("list"),[u,f]=(0,Fn.useState)(null),[v,w]=(0,Fn.useState)(0);return i==="inspect"&&u?(0,Ti.jsx)(Ls,{path:u.path,relPath:u.relPath,onBack:()=>a("list"),onAction:g=>{if(g==="run")n(u);else if(g==="export")o(u);else{try{Al(u.path)}catch{}f(null),a("list"),w(T=>T+1)}}}):(0,Ti.jsx)(Ps,{root:e,currentOrgId:t,onSelect:g=>{f(g),a("inspect")},onCancel:r},v)}var He=k(xe(),1);function Pl(e){let[t,r]=(0,He.useState)(null),[n,o]=(0,He.useState)(!1),[i,a]=(0,He.useState)(null),[u,f]=(0,He.useState)(null),[v,w]=(0,He.useState)(null),g=(0,He.useRef)(0),T=(0,He.useRef)([]),c=(0,He.useRef)(!1),m=(0,He.useRef)(null),$=(0,He.useRef)(e);$.current=e;let D=(0,He.useCallback)(async H=>{if(c.current)return null;c.current=!0;let A=++g.current,F=[];T.current=F;let ee=W=>`testmd-run-${A}-${W}`,re={register:(W,ie)=>{let ue=ee(W);F.push(ue),vt(ue,ie)},deregister:W=>Lr(ee(W)),cleanup:(W,ie)=>Ot(ee(W),ie),remoteLogger:$.current.remoteLogger},fe={runSteps:W=>new Promise(ie=>{let ue=()=>{m.current=null,ie()};m.current=ue,r({...W,exitOnComplete:!1,onAllComplete:()=>{W.onAllComplete?.(),ue()}})}),onLockState:W=>{},onRetryAttempt:W=>{},onSummary:async W=>{a(W)},onLinks:async W=>{f(W)},runUpload:W=>W.execute(),onAgentEvent:W=>{}};o(!0),a(null),f(null),w(null);try{let W=await $.current.buildInput(H),ie=await Ws(W,fe,re);return w(ie),ie}finally{c.current=!1,m.current=null,o(!1),r(null);for(let W of F)Ot(W,"run-finished");F.length=0}},[]),V=(0,He.useCallback)(()=>{for(let A of T.current)Ot(A,"cancelled");T.current=[];let H=m.current;m.current=null,H?.()},[]),O=(0,He.useCallback)(()=>{a(null),f(null),w(null)},[]);return{start:D,cancel:V,clearResult:O,running:n,runViewProps:t,summary:i,links:u,runSummary:v}}var Ve=k(xe(),1);function Ll(e={}){let[t,r]=(0,Ve.useState)(()=>xn({requestId:"",objective:""})),[n,o]=(0,Ve.useState)(!1),[i,a]=(0,Ve.useState)(null),u=(0,Ve.useRef)(null),f=(0,Ve.useRef)(!1),v=(0,Ve.useRef)(null),w=(0,Ve.useCallback)(async(D,V,O)=>{f.current=!1;let H=0,A=0,F=0;for await(let ee of D){if(f.current)break;switch(r(re=>Ks(re,ee)),ee.type){case"thinking_done":O?.("tcg_thinking",{tookMs:ee.tookMs});break;case"progress":{let re=Math.min(100,Math.floor(ee.pct/25)*25);re>F&&(F=re,O?.("tcg_progress",{pct:re}));break}case"snapshot":H=ee.data.scenarios.length,A=ee.data.scenarios.reduce((re,fe)=>re+(fe.test_cases?.length??0),0),O?.("tcg_snapshot",{scenarioCount:H,caseCount:A});break;case"clarification":O?.("tcg_clarification",{});break;case"done":O?.("tcg_request_done",{status:ee.status,scenarioCount:H,caseCount:A,durationMs:Date.now()-V});break;case"error":O?.("tcg_request_error",{errorCode:"tcg_request_failed",durationMs:Date.now()-V});break}}},[]),g=(0,Ve.useCallback)(async(D,V)=>{if(u.current)throw new Error("useTcgSession: a session is already active; call reset() or end() first");let O=e.makeClient??Js;u.current=O(D),v.current=new AbortController;let H=xn({requestId:"",objective:V.prompt});r(vn(H));let A;try{A=await u.current.start(V,v.current.signal)}catch(ee){throw u.current=null,v.current=null,r(re=>({...re,turnActive:!1})),ee}a(A.requestId),r(vn({...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 w(A.events,F,e.log)},[w,e.makeClient,e.log]),T=(0,Ve.useCallback)(async(D,V)=>{if(!u.current||!i)throw new Error("useTcgSession: chat() with no active request");r(O=>vn(Ys(O)));try{await u.current.chat(i,D,V)}catch(O){throw r(H=>({...H,turnActive:!1})),O}},[i]),c=(0,Ve.useCallback)(async()=>{if(!(!i||!u.current)){f.current=!0,v.current&&v.current.abort();try{await u.current.cancel(i)}catch{}u.current=null,a(null),r(D=>({...D,turnActive:!1}))}},[i]),m=(0,Ve.useCallback)(async()=>{if(!(!i||!u.current)){f.current=!0,v.current&&v.current.abort();try{await u.current.end(i)}catch{}u.current=null,a(null),r(D=>({...D,turnActive:!1}))}},[i]),$=(0,Ve.useCallback)(()=>{f.current=!0,v.current&&v.current.abort(),v.current=null,r(xn({requestId:"",objective:""})),a(null),o(!1),u.current=null},[]);return(0,Ve.useEffect)(()=>()=>{f.current=!0,v.current&&v.current.abort()},[]),{state:t,isStreaming:t.turnActive,isTerminal:zs(t.status),isReconnecting:n,turnActive:t.turnActive,inReview:t.scenarios.length>0&&!t.turnActive&&!Vo(t.status),isSessionClosed:Vo(t.status),requestId:i,startWith:g,chat:T,cancel:c,end:m,reset:$}}var Z=k(xe(),1);import{join as hr,resolve as ag}from"path";import{mkdirSync as Ci,writeFileSync as Xl,appendFileSync as cg}from"fs";function Bl(e){let t=De(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 $l(e){return e.turnActive?!0:e.requestId!=null&&!e.isSessionClosed&&!e.saved}function Dl(e){return e.isRunning||e.hasLiveResults}function Ol(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 Nl(e,t){return`S${e+1}.C${t+1}`}function jl(e,t){return e.reduce((r,n)=>r+(n.test_cases??[]).filter(o=>!t.has(o.id)).length,0)}function Vl(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 Gr=k(xe(),1);import{createHash as Yp}from"crypto";function Kp(e){return Yp("sha1").update(JSON.stringify({t:e.title,p:e.preconditions,m:e.manual_steps})).digest("hex")}var Un=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=Kp(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:Nl(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);vt(o,()=>i.abort());let u=Date.now();try{this.safeLog("tcg_bif_start",{caseId:t,ref:n.ref});let f=await a(ra(r),i.signal);if(!i.signal.aborted&&this.cache.get(t)===n){n.status="done",n.result=f;try{this.deps.persist?.(t,f,n.ref)}catch{}this.safeLog("tcg_bif_done",{caseId:t,ref:n.ref,total_flows:f.total_flows,is_single_flow:f.is_single_flow,estimated_steps_total:(f.sub_objectives??[]).reduce((v,w)=>v+(w.estimated_steps??0),0),credits_consumed:f.credits_consumed,durationMs:Date.now()-u})}}catch(f){!i.signal.aborted&&this.cache.get(t)===n&&(n.status="error",n.error=f.message,this.safeLog("tcg_bif_error",{caseId:t,ref:n.ref,errorCode:"bifurcation_failed",durationMs:Date.now()-u}))}finally{Lr(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=na({objective:t,model:this.deps.model,sessionId:this.deps.sessionId,auth:n});return oa(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(),Lr(`bifurcation-${t}`);this.cache.clear(),this.caseById.clear(),this.queue=[],this.active=0}};function Ml(e){let t=(0,Gr.useRef)(null);return(0,Gr.useEffect)(()=>{if(!e.enabled)return;let r=e.log,n=r?(o,i,a,u)=>r(i,u??{}):void 0;return t.current=new Un({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,Gr.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 ql,isAbsolute as Qp,extname as Zp}from"path";import{homedir as Ul}from"os";var Jp=/(?<=^|\s)@(?:"([^"]*)"|([^\s@]+))/g;function Fl(e){let t=[];for(let r of e.matchAll(Jp)){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 eg=/^s\d+(\.c\d+)?$/i;function tg(e){return e==="~"?Ul():e.startsWith("~/")?ql(Ul(),e.slice(2)):e}function rg(e){return/^https?:\/\//i.test(e)?!1:e.includes("/")?!0:bn.has(Zp(e).toLowerCase())}function Hl(e,t){let r=Fl(e),n=[],o=[];for(let a of r){let u=a.value,f=a.end;if(!a.raw.includes('"')){let g=u.match(/[.,;:!?]+$/);g&&(u=u.slice(0,-g[0].length),f-=g[0].length)}if(eg.test(u)||!rg(u))continue;let v=tg(u),w=Qp(v)?v:ql(t,v);n.push(w),o.push([a.start,f])}let i=e;for(let[a,u]of o.sort((f,v)=>v[0]-f[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 ng=["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"],og=new Set(ng);function Ei(e){let t={};for(let r of Object.keys(e))og.has(r)&&e[r]!==void 0&&(t[r]=e[r]);return t}import{mkdirSync as ig,appendFileSync as sg}from"fs";import{join as Gl}from"path";function Wl(e,t,r,n,o=Xe){let i=Gl(o,"tcg",e&&e.length>0?e:"pending"),a=Gl(i,"errors.log");try{let u=r instanceof Error?r.stack??r.message:String(r),f=`[${new Date().toISOString()}] phase=${t} ${u}${n?" "+JSON.stringify(n):""}
|
|
3
3
|
`;ig(i,{recursive:!0}),sg(a,f)}catch{}return a}var ke=k(M(),1);async function lg(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 zl(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:f,rearmArtifactFreeze:v,initialGenerateLimits:w,ensureProjectAndFolder:g,config:T}=e,[c,m]=(0,Z.useState)(r??"run"),[$,D]=(0,Z.useState)(null),[V,O]=(0,Z.useState)(null),[H,A]=(0,Z.useState)(null),[F,ee]=(0,Z.useState)(0),[re,fe]=(0,Z.useState)(!1),W=(0,Z.useRef)(null),ie=(0,Z.useRef)(()=>{}),ue=(0,Z.useCallback)(()=>lg(o),[o]),Ce=(0,Z.useRef)(null);Ce.current=t.requestId;let Be=(0,Z.useCallback)((X,Q)=>{let Y=X.endsWith("_error")?"warn":"info",G=Ei({request_id:Ce.current??void 0,...Q});i.log(Y,X,JSON.stringify(G),G);try{let ce=typeof G.request_id=="string"&&G.request_id||Ce.current||"unknown",ye=hr(Xe,"tcg",ce);Ci(ye,{recursive:!0}),cg(hr(ye,"tcg_tui.log"),`[${new Date().toISOString()}] ${X} ${JSON.stringify(G)}
|
|
4
4
|
`)}catch{}},[i]),et=(0,Z.useCallback)((X,Q)=>{let Y=Wl(Ce.current,Q.phase,X),G=typeof X?.status=="number"?X.status:void 0;Be(`${Q.phase}_error`,{errorCode:`${Q.phase}_failed`,status:G});let ce=Q.phase==="upload"?"\u2717 Couldn't upload attachments \u2014 generation not started. Try again.":"\u2717 Generation failed \u2014 send another request.";a((0,ke.jsxs)(b,{flexDirection:"column",marginTop:1,marginBottom:1,children:[(0,ke.jsx)(s,{color:l.red,children:ce}),(0,ke.jsx)(s,{color:l.dim,children:`details: ${Y}`})]})),D(null)},[Be,a]),Ft=(0,Z.useRef)(0),tt=(0,Z.useCallback)((X,Q,Y)=>{try{let G=hr(Xe,"tcg",Ce.current??"unknown","bifurcation");Ci(G,{recursive:!0}),Xl(hr(G,`${X}.json`),JSON.stringify({request_id:Ce.current,ref:Y,...Q},null,2))}catch{}},[]),gt=Ml({scenarios:t.state?.scenarios??[],model:n.model,sessionId:i.sessionId,resolveAuth:ue,environment:o?.creds?.getDefaultEnv?.(),enabled:!!t.requestId&&!t.isSessionClosed,log:Be,persist:tt}),vr=(0,Z.useRef)(null);(0,Z.useEffect)(()=>{let X=t.requestId;if(!X||!t.isSessionClosed&&!t.isTerminal)return;let Q=t.state?.scenarios??[];if(Q.length!==0&&vr.current!==X){vr.current=X;try{let Y=hr(Xe,"tcg",X);Ci(Y,{recursive:!0}),Xl(hr(Y,"request.json"),JSON.stringify({request_id:X,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 br=(0,Z.useCallback)((X,Q=1500)=>{A(X),W.current&&clearTimeout(W.current),W.current=setTimeout(()=>{A(null),W.current=null},Q)},[]);(0,Z.useEffect)(()=>()=>{W.current&&clearTimeout(W.current)},[]);let Ge=(0,Z.useCallback)((X,Q)=>{let Y=o.getResolver();if(!Y)return{ok:!1,error:"Not logged in \u2014 use /login"};let G=Bl({env:o.creds.getDefaultEnv(),resolver:Y,projectId:X??n.project_id??void 0,folderId:Q??n.folder_id??void 0,log:(ce,ye,lt,We)=>i.log(ce,ye,"",Ei(We??{}))});return G.ok?{ok:!0,conn:G.conn}:{ok:!1,error:G.error}},[o,n,i]),Ke=(0,Z.useRef)(!1),$e=(0,Z.useRef)(null),[Wr,Jt]=(0,Z.useState)(!1),Ut=(0,Z.useCallback)((X,Q,Y,G,ce)=>{let ye=process.cwd(),{paths:lt,promptText:We}=Hl(X,ye);return sa({promptText:We,filePaths:lt,cwd:ye,scenarios:t.state?.scenarios??[],isRefine:Q,conn:Y,deps:{validate:ia,upload:(ae,Je,Zt)=>aa(ae,Je,Zt,{signal:ce}),buildMappings:ca},onValidated:G})},[t]),Sr=(0,Z.useRef)(!1);(0,Z.useEffect)(()=>{if(c!=="generate"){Sr.current=!1;return}Sr.current||n.project_id&&n.folder_id||g&&o.getResolver()&&(Sr.current=!0,g())},[c,n.project_id,n.folder_id,g,o]);let Xr=(0,Z.useCallback)(async X=>{D(null),O(null),fe(!1);let Q=X.trim();if(!Q)return;if(Q.startsWith("/")){ie.current(Q),ee(ae=>ae+1);return}let Y=n.project_id??null,G=n.folder_id??null;if(g){let ae=await g();if(ae)Y=ae.projectId,G=ae.folderId;else if(T){let Je=T.load();Y=Je.project_id??Y,G=Je.folder_id??G}}else if(T){let ae=T.load();Y=ae.project_id??Y,G=ae.folder_id??G}if(!Y||!G){O("Set a project and folder first \u2014 use /config");return}let ce=Ge(Y,G);if(!ce.ok){D(ce.error);return}if(Ke.current)return;Ke.current=!0;let ye=new AbortController;$e.current=ye;let lt=ce.conn,We;try{We=await Ut(Q,!1,lt,()=>{a((0,ke.jsx)(b,{marginTop:1,children:(0,ke.jsx)(s,{color:l.generateAccent,bold:!0,children:`\u276F ${Q}`})})),Jt(!0)},ye.signal)}catch(ae){if(ae instanceof Mo){O(ae.errors.join(`
|
|
5
5
|
`));return}if(zl(ae))return;et(ae,{phase:"upload"});return}finally{Ke.current=!1,Jt(!1),$e.current===ye&&($e.current=null)}if(!ye.signal.aborted){for(let ae of We.warnings)e.emitFeedback("ok","/generate",ae,void 0,l.generateAccent);f(),t.reset(),v();try{let ae=w??{};await t.startWith(lt,{prompt:We.promptText,attachments:We.attachments,scenarioLimit:ae.scenarioLimit??n.generate.scenario_limit,perScenarioLimit:ae.perScenarioLimit??n.generate.per_scenario_limit,memoryEnhancement:n.generate.memory_enabled})}catch(ae){et(ae,{phase:"generation"})}}},[n,t,Ge,Ut,e,g,T,w,a,f,v,et]),wr=(0,Z.useCallback)(()=>D(null),[]),zr=(0,Z.useCallback)(async X=>{let Q=Ge();if(!Q.ok){D(Q.error);return}if(Ke.current)return;Ke.current=!0;let Y=new AbortController;$e.current=Y;let G;try{G=await Ut(X,!0,Q.conn,()=>{a((0,ke.jsx)(s,{color:l.generateAccent,bold:!0,children:`\u276F ${X}`})),Ft.current+=1,Be("tcg_refine",{turnIndex:Ft.current}),Jt(!0)},Y.signal)}catch(ce){if(ce instanceof Mo){O(ce.errors.join(`
|
|
@@ -19,5 +19,5 @@ import{a as da}from"./chunk-ZA67EBYF.js";import{a as zs,b as Vo,c as xn,d as Ys,
|
|
|
19
19
|
`),screenshot_b64:u}}})},[e,t,r]);return{describe:r,onDescribe:o,creditsRef:n}}var ro=e=>({kind:"login",env:e}),_i=e=>({kind:"switch",env:e}),Ou=(e,t)=>e?{kind:"switch",env:t}:{kind:"logout"};async function Nu(e){await new Pr(e.tmsBaseUrl,e.username,e.accessKey).submitFeedback({instruction_id:"",test_id:e.testId,feedback_type:e.feedbackType,mode:e.mode??"human",...e.details?{details:e.details}:{}}),e.log("info","FEEDBACK_SUBMITTED","Feedback submitted",{type:e.feedbackType})}var y=k(M(),1);function dR({localMode:e=!1,codeExport:t,codeLanguage:r,skipCodeValidation:n,updatePromise:o,migrationResult:i,sessionName:a,initialChatMode:u,initialObjective:f,initialGenerateLimits:v}={}){Gi();let w=(0,R.useRef)(new pn),[g,T]=(0,R.useState)(0),c=w.current,[m]=(0,R.useState)(()=>new cr),$=(0,R.useRef)(0),D=(0,R.useCallback)(()=>`msg-${++$.current}`,[]),[V,O]=(0,R.useState)(!1),[H,A]=(0,R.useState)(null),[F,ee]=(0,R.useState)(!1),[re,fe]=(0,R.useState)(0),[W,ie]=(0,R.useState)(!1),[ue,Ce]=(0,R.useState)(null),[Be,et]=(0,R.useState)(null),Ft=(0,R.useRef)(null),[tt,gt]=(0,R.useState)(null),[vr,br]=(0,R.useState)(gn()),[Ge,Ke]=(0,R.useState)(null),[$e,Wr]=(0,R.useState)([]),[Jt,Ut]=(0,R.useState)(!1),[Sr,Xr]=(0,R.useState)(!1),[wr,zr]=(0,R.useState)(null),[qt,Qt]=(0,R.useState)(null),[Ht,yr]=(0,R.useState)(null),[Yr,no]=(0,R.useState)(null),X=(0,R.useRef)(null),Q=(0,R.useRef)(null),Y=(0,R.useRef)(0),G=(0,R.useRef)(null),ce=(0,R.useRef)(!1),ye=(0,R.useRef)(null),lt=(0,R.useRef)(Rs()),We=(0,R.useRef)(null),ae=(0,R.useRef)(!1),Je=(0,R.useRef)(""),Zt=(0,R.useRef)(null),Pt=(0,R.useRef)(null),Rr=(0,R.useRef)({}),Gt=(0,R.useRef)(null),{append:Re}=Ki(),le=(0,R.useCallback)(p=>Re((0,y.jsx)(b,{paddingX:1,children:p})),[Re]),[er,ht]=(0,R.useState)("booting"),[ju,Vu]=(0,R.useState)([]),[Mu,oo]=(0,R.useState)(!1),[Pi,Fu]=(0,R.useState)(!1),[Kr,Uu]=(0,R.useState)("chat"),[xt,Tr]=(0,R.useState)(null),[Jr,Li]=(0,R.useState)(null),[Er,Bi]=(0,R.useState)(!1),[Cr,Qr]=(0,R.useState)(!1),$i=(0,R.useRef)(()=>{}),qu=(0,R.useCallback)((p,x)=>$i.current(p,x),[]),ne=Ll({log:qu});Zl(ne.state,ne.turnActive,le);let io=(0,R.useRef)(!1),Lt=(0,R.useCallback)(()=>{io.current||ne.state.scenarios.length!==0&&(io.current=!0,le((0,y.jsx)(zn,{scenarios:ne.state.scenarios,activeSid:null})))},[ne.state.scenarios,le]);(0,R.useEffect)(()=>{ne.isSessionClosed&&Lt()},[ne.isSessionClosed,Lt]);let[Zr,Ir]=(0,R.useState)(null),[me,kr]=(0,R.useState)({headless:!1,maxSteps:50,timeout:0,cdpEndpoint:"",wsEndpoint:"",useCft:!1}),Hu=ko(),Gu=ko(zi),S=bl(),en=Sl(),nt=(0,R.useMemo)(()=>({auth:{initResolver:p=>S.initResolver(p,(x,d,h,E)=>w.current.log(x,d,h,E)),getResolver:()=>S.getResolver(),getBasicAuth:()=>S.getBasicAuth(),getToken:()=>S.getToken()},getSession:()=>w.current,log:(p,x,d,h)=>w.current.log(p,x,d,h),state:{getTmsCredsCache:()=>Ge,setTmsCredsCache:Ke,identityServicesRef:Q,screenshotQueueRef:X},exit:{registerCleanup:vt,setExitRemoteLogger:is},options:{skipScreenshotQueue:e}}),[S.initResolver,S.getResolver,S.getBasicAuth,S.getToken,Ge,e]),Wu=(0,R.useCallback)((p,x,d,h)=>{let E=X.current;if(!E)return;if(G.current&&h){lt.current.track(Ts(G.current.packTestDir,h,E,(U,q,oe,se)=>c.log(U,q,oe,se)));return}let B=Y.current+x;Es(c.sessionDir,B,p,E,(U,q,oe,se)=>c.log(U,q,oe,se),d)},[c]),Xu=(0,R.useCallback)((p,x,d)=>{c.logStep(p,x,d)},[c]),zu=(0,R.useCallback)(p=>Gt.current?.setStepText(p),[]),Yu=(0,R.useCallback)(()=>Gt.current?.setStepComplete(),[]),{describe:Ar,onDescribe:Ku,creditsRef:so}=Du({hostIsTTY:()=>!!process.stdout.isTTY,resolve:()=>{let p=S.getResolvedBasicAuth();if(!p)return null;let x=De(S.creds.getDefaultEnv());return{authHeader:es(p.username,p.access_key),sessionId:c.sessionId,controllerBaseUrl:x.controllerBaseUrl}}}),_=ps(Wu,Xu,zu,Yu,Ku);(0,R.useEffect)(()=>{_.isRunning||Ar.stop()},[_.isRunning,Ar.stop]);let[C,ge]=(0,R.useState)(()=>m.load()),[,Ju]=(0,R.useState)(0),Qe=(0,R.useCallback)(()=>Ju(p=>p+1),[]),[L,Te]=(0,R.useState)(null),tr=S.creds.getActiveProfile(),de=S.creds.getDefaultEnv(),ut=(0,R.useCallback)((p,x)=>{let d=p?S.creds.loadProfileConfig(p,x):null;m.save({project_id:d?.project_id??null,project_name:d?.project_name??null,folder_id:d?.folder_id??null,folder_name:d?.folder_name??null}),ge(m.load())},[S.creds,m]),ao=(0,R.useCallback)(async(p,x)=>{let d=S.getResolver();if(!d)return null;let h=d.cached??await d.resolve();if(!h)return null;let E=De(x),B=new Pr(E.tmsBaseUrl,h.username,h.access_key);try{let q=(await B.listProjects()).find(se=>se.name==="KaneAI Generated");if(q)return{id:q.project_id,name:q.name};let oe=await B.createProject("KaneAI Generated");return{id:oe.id,name:oe.name}}catch{return null}},[S]),co=(0,R.useCallback)(async(p,x)=>{let d=S.getResolver();if(!d)return null;let h=d.cached??await d.resolve();if(!h)return null;let E=De(p),B=new Pr(E.tmsBaseUrl,h.username,h.access_key);try{let q=(await B.listFolders(x)).find(se=>se.name==="Untitled");if(q)return{id:q.id,name:q.name};let oe=await B.createFolder(x,"Untitled");return{id:oe.id,name:oe.name}}catch{return null}},[S]);(0,R.useEffect)(()=>{F||(c.start({model:C.model,environment:de,profile:tr}),a&&c.setSessionName(a),ee(!0))},[c,F,C.model,de,tr,a]);let Di=(0,R.useRef)(!1);(0,R.useEffect)(()=>{if(!F||Di.current)return;Di.current=!0;let p=a?[{label:"session",value:a},{label:"test",value:Io(Mt(process.cwd(),".testmuai","tests",`${a}_test.md`))},{label:"output",value:Io(Mt(process.cwd(),".testmuai","tests",`output-${a}`))}]:[{label:"session",value:"ephemeral"},{label:"note",value:"use /name <name> to persist this session"}];le((0,y.jsx)(_o,{title:"Recording",titleColor:"#ff9500",rows:p}))},[F,a,le]);let Oi=(0,R.useRef)(!1);(0,R.useEffect)(()=>{if(!V||Oi.current||!F)return;Oi.current=!0;let p=nt.state.getTmsCredsCache();if(!p){c.log("warn","BOOT_RESOLVE_FAILED","Boot done but tmsCredsCache empty \u2014 non-controller APIs may fail");return}bt({kind:"boot",tmsCreds:p,env:de},nt).then(x=>{x&&(p.org_id!==void 0&&c.setOrgId(String(p.org_id)),c.setPlan(p.plan??null),c.setUserIdentity(p.username??null,p.email??null),c.log("info","BOOT_RESOLVE_OK","Boot identity attached",{username:p.username,org_id:p.org_id,plan:p.plan??null}))}).catch(x=>{c.log("error","BOOT_RESOLVE_ERROR","Boot identity attach error",{error:x instanceof Error?x.message:String(x)})})},[V,F,nt,de,c]);let Wt=(0,R.useCallback)(async()=>{if(Ge)return c.log("info","TMS_CREDS_CACHED","Using cached TMS credentials",{username:Ge.username,org_id:Ge.org_id}),Ge;let p=await S.resolveBasicAuth();return p?(c.log("info","TMS_CREDS_OK","TMS credentials resolved",{username:p.username,org_id:p.org_id,user_id:p.user_id}),Ke(p)):c.log("warn","TMS_CREDS_FAILED","No TMS credentials resolved"),p},[S,Ge,c]),tn=(0,R.useCallback)(p=>{le((0,y.jsx)(_o,{title:"\u24D8 Auto-configured",titleColor:l.orange,rows:[{label:"project",value:`${p.projectName} (${p.projectId})`},{label:"folder",value:`${p.folderName} (${p.folderId})`},{label:"change with",value:(0,y.jsxs)(b,{flexDirection:"column",children:[(0,y.jsx)(s,{color:l.dim,children:"kane-cli config project <id>"}),(0,y.jsx)(s,{color:l.dim,children:"kane-cli config folder <id>"})]})}]}))},[le]),rn=(0,R.useCallback)(async()=>{let p=await Wt();if(!p)return c.log("warn","PROJECT_FAILED","No TMS credentials for project/folder gate"),null;let x=S.creds.getActiveProfile()??"default",d=S.creds.getDefaultEnv(),h=await ss({creds:S.creds,config:m,profile:x,env:d,tmsCreds:{username:p.username,access_key:p.access_key},isLocal:e,log:(E,B,U,q)=>c.log(E,B,U,q),onAnnounce:tn});return h.status==="ok"?{projectId:h.projectId,folderId:h.folderId}:null},[Wt,m,c,S.creds,e,tn]),Se=(0,R.useCallback)(p=>{let x=D(),d={...p,id:x};le((0,y.jsx)(pl,{entry:d}))},[D,le]),P=(0,R.useCallback)((p,x,d,h,E)=>{le((0,y.jsx)(El,{status:p,command:x,message:d,details:h,accentColor:E})),x==="/save"&&p==="ok"&&le((0,y.jsx)(b,{marginLeft:2,children:(0,y.jsxs)(s,{color:l.dim,children:["\u2192 Run ",(0,y.jsx)(s,{color:l.generateAccent,children:"/testmd"})," to list your saved tests."]})}))},[le]),Ni=(0,R.useRef)(()=>{}),Bt=Kl(ne.state.scenarios.map(p=>(p.test_cases??[]).length)),Qu=(0,R.useCallback)(async()=>{let p=await rn();return ge(m.load()),p},[rn,m]),dt=Yl({tcg:ne,initialChatMode:u,tuiConfig:C,auth:S,session:c,runner:_,appendStatic:le,handleInput:p=>Ni.current(p),freezeTcgArtifact:Lt,rearmArtifactFreeze:()=>{io.current=!1},openSwitchConfirm:p=>Ir({reason:"switch",to:p}),emitFeedback:P,excluded:Bt.excluded,openBrowse:Bt.open,initialGenerateLimits:v,ensureProjectAndFolder:Qu,config:m});$i.current=dt.tcgLog;let{chatMode:ve,tcgError:Kg,tcgValidationError:Jg,composeIdleHint:Qg,inputClearSeq:Zu,handleGenerateSubmit:ed,flashComposeHint:nn,setTcgError:Zg}=dt,td=C.hints_enabled!==!1&&process.env.KANEAI_HINTS_DISABLED!=="1"&&!!process.stdout.isTTY&&!!process.stdin.isTTY&&process.env.KANE_SCREEN_READER!=="1",ji=(0,R.useRef)(!1);ve==="generate"&&(ji.current=!0);let{footerHint:rd}=uu({enabled:td,ready:er==="ready",env:de,config:C,tokenValid:S.tokenValid,chatMode:ve,sessionUsedGenerate:ji.current,log:(p,x,d,h)=>w.current.log(p,x,d,h)}),lo=(0,R.useCallback)(async(p,x)=>{let d=ae.current?null:ks({flag:x,configDefault:C.default_url}),h=Ms({objective:p,globalDir:Mt(Xe,"variables"),localDir:Mt(process.cwd(),".testmuai","variables")}),E=c.nextRunIndex();Y.current=E,Je.current=h.auteurObjective,so.current=0,c.logRunStart(E,h.auteurObjective,d??""),c.setFirstRun(h.auteurObjective,d??"");let B=S.getResolvedBasicAuth(),U=B,q=null;if(!U&&(q=await S.getToken(),!q)){Se({type:"error",text:"Not authenticated. Run /login first."});return}let oe={basicAuth:B??null,token:q,resolver:S.getResolver(),resolvedCreds:null};Zt.current=oe;let se=S.creds.getActiveProfile()??"default",be=S.creds.getDefaultEnv();os(S.creds,m,se,be,(we,Ze,Ct,mt)=>c.log(we,Ze,Ct,mt));let yo=m.load();if(ge(yo),E===0&&!e){c.log("info","ATM_CREATE_START","Creating test via ATM endpoint",{run_index:0});let we=await rn(),Ze=m.load();ge(Ze);let Ct=De(de),mt=U?{username:U.username,access_key:U.access_key}:await Wt();if(mt){let dn=await Hs({tmsBaseUrl:Ct.tmsBaseUrl,auth:{username:mt.username,access_key:mt.access_key},objective:h.auteurObjective,url:d??"",projectId:we?.projectId??Ze.project_id??"",folderId:we?.folderId??Ze.folder_id??"",hasCustomProfile:!!C.chrome_profile_path,log:(zt,To,cd,ld)=>c.log(zt,To,cd,ld)});dn&&(c.setTestId(dn),we?.projectId&&c.setProjectId(we.projectId))}}let ft=null;if(me.useCft)Se({type:"info",text:"CfT mode: Playwright will manage browser"});else if(me.wsEndpoint)Se({type:"info",text:`WS endpoint: ${me.wsEndpoint.slice(0,60)}...`});else if(me.cdpEndpoint)Se({type:"info",text:`CDP endpoint: ${me.cdpEndpoint}`});else{Se({type:"info",text:"Starting Chrome..."});try{ft=await en.ensureChrome(d??void 0)}catch(Ze){Se({type:"error",text:ds(Ze)});return}c.logChromeLaunch(ft.port,ft.cdpEndpoint);let we=ms({headless:me.headless,cdpEndpoint:ft.cdpEndpoint,chromePid:ft.process.pid});we&&(Gt.current=we,vt("marker-overlay",()=>we.kill()))}c.setAuteurVariables(h.auteur),Pt.current=h;let Ro=U&&!e?await Fs({variables:h,auth:U,orgId:String((await Wt())?.org_id??""),env:de,localMode:e,log:(we,Ze,Ct,mt)=>c.log(we,Ze,Ct,mt)}):{};Rr.current=Ro;let Xt=jo(Mt(Xe,"global-memory.md")),Et=jo(Mt(process.cwd(),".testmuai","context.md")),rr=ft?{cdpEndpoint:ft.cdpEndpoint,instance:ft,tempDir:null}:me.wsEndpoint?{wsEndpoint:me.wsEndpoint,instance:null,tempDir:null}:me.cdpEndpoint?{cdpEndpoint:me.cdpEndpoint,instance:null,tempDir:null}:{instance:null,tempDir:null};if(E===0){let we={mode:C.mode,max_steps:me.maxSteps,timeout:me.timeout>0?me.timeout:void 0,target:ft?"chrome":me.cdpEndpoint?"cdp":me.wsEndpoint?"ws":void 0,chrome_profile:C.chrome_profile_path||void 0,cdp_endpoint:me.cdpEndpoint||void 0,ws_endpoint:me.wsEndpoint||void 0,headless:me.headless,global_context:Xt??void 0,local_context:Et??void 0,variables:Object.keys(h.auteur).length>0?h.auteur:void 0};c.setResolvedGlobal(we)}ce.current||(ce.current=!0,G.current=await xs({objectiveOrName:c.sessionName??p,sessionId:c.sessionId,title:c.sessionName??p,producerVersion:ot,pid:process.pid,surfaces:d?[d]:void 0,packRootDir:Mt(c.sessionDir,"evidence")})),ye.current||(ye.current=hs(rr.cdpEndpoint),ye.current());let nr=Vs(h.auteur,h.auteurObjective),_r=js({objective:h.auteurObjective,url:d??void 0,requireStartUrl:!ae.current&&d===null,model:C.model,chrome:rr,auth:oe,sessionId:c.sessionId,runIndex:E,windowSize:C.window_size,maxSteps:me.maxSteps,headless:me.headless,networkWs:C.network_ws,networkSse:C.network_sse,bugDetection:C.bug_detection,variables:Object.keys(nr).length>0?nr:void 0,globalContext:Xt??void 0,localContext:Et??void 0,sessionContext:c.getContext(),evidence:vs(G.current)});d&&A(d),Ce(null),We.current=null,_.startRun(_r,{environment:de,mode:C.mode,assertionMode:C.assertion_mode,log:(we,Ze,Ct,mt)=>c.log(we,Ze,Ct,mt)}),fe(we=>we+1)},[S,en,m,C,c,de,_,Se,me,rn,Wt]),nd=(0,R.useCallback)(async p=>{let x=zg(p),d=Bs(x),h=new pn;for(let be of d.warnings)h.log("warn","RESOLVER_WARNING",be);let E=S.getResolvedBasicAuth(),B=null;E||(B=await S.getToken());let U={basicAuth:E??null,token:B,resolver:S.getResolver(),resolvedCreds:null},q=de,oe=De(q),se=S.creds.getActiveProfile()??"default";return{path:x,cwd:process.cwd(),opts:{},isAgent:!1,disableAskUser:!0,resolved:d,resolvedAuth:U,cliOverrides:{},environment:q,envConfig:oe,profile:se,model:"v16-alpha",creds:S.creds,configStore:m,session:h,skipGlobalRemoteLogger:!0,onAnnounce:tn}},[S,m,de,tn]),pe=Pl({buildInput:nd,remoteLogger:null}),uo=(0,R.useRef)(null);(0,R.useEffect)(()=>{if(_.bifurcationInfo&&_.bifurcationInfo!==uo.current){uo.current=_.bifurcationInfo;let{flows:p,isSingleFlow:x}=_.bifurcationInfo;x&&p.length===1&&p[0]?c.log("info","OBJECTIVE_REWRITTEN","Objective rewritten",{objective:p[0]}):!x&&p.length>1&&c.log("info","BIFURCATION","Objective bifurcated into flows",{flow_count:p.length})}},[_.bifurcationInfo,c,Se]);let fo=R.default.useRef(null),mo=R.default.useRef(0),po=R.default.useRef(0);(0,R.useEffect)(()=>{if(_.lastRunEnd&&_.lastRunEnd!==fo.current){fo.current=_.lastRunEnd,ae.current=!0;let{status:p,duration:x,summary:d,reason:h,context:E}=_.lastRunEnd,{passed:B,failed:U,total:q}=gs(_.steps);mo.current+=q,po.current+=x??0;let oe=_.lastRunEnd?.credits_consumed,se=oe!=null||so.current>0?(oe??0)+so.current:void 0;Ce({status:p,duration:x??0,summary:d??"",stepsPassed:B,stepsFailed:U,stepsTotal:q,reason:h,finalState:_.lastRunEnd?.final_state,creditsConsumed:se}),c.logRunEnd(Y.current,p,x,d,_.lastRunEnd?.result_code);let be=_.bifurcationInfo,yo=be&&!be.isSingleFlow?be.flows:null,ft=rs(_.lastRunEnd,Y.current,yo),Ro=ns(_.lastRunEnd,Je.current,Y.current,ft);c.addRunResult(Ro,_.lastRunEnd?.total_runs),Bo(G.current,_.getEvidenceState(),_.lastRunEnd);let Xt=_.lastRunEnd?.per_flow_metadata;if(be&&!be.isSingleFlow&&Xt&&Xt.length>1)for(let Et=0;Et<Xt.length;Et++){let rr=Xt[Et],nr=_.steps[Et],_r=nr?.children??[],we=_r.filter(zt=>zt.status==="passed").length,Ze=_r.filter(zt=>zt.status==="failed").length,Ct=_r.reduce((zt,To)=>zt+(To.duration??0),0),mt=nr?.status==="failed"?"failed":"passed",dn=be.flows[Et]??nr?.objective??Je.current;c.addFlow({runIndex:Y.current,flowId:be.flows[Et],objective:dn,status:mt,summary:rr.summary??"",duration:Ct,steps:we+Ze,stepsPassed:we,stepsFailed:Ze,reason:rr.error_message??void 0,creditsConsumed:rr.credits_consumed??void 0})}else c.addFlow({runIndex:Y.current,objective:Je.current,status:p,summary:d??"",duration:x??0,steps:q,stepsPassed:B,stepsFailed:U,reason:h,creditsConsumed:_.lastRunEnd?.credits_consumed})}},[_.lastRunEnd,c,Se]);let go=(0,R.useRef)(null);(0,R.useEffect)(()=>{_.askingUser&&(go.current=_.askingUser)},[_.askingUser]);let ho=(0,R.useRef)(null);(0,R.useEffect)(()=>{if(ue&&!_.isRunning&&_.lastRunEnd){if(ho.current===_.lastRunEnd)return;ho.current=_.lastRunEnd,le((0,y.jsxs)(b,{flexDirection:"column",children:[(0,y.jsx)(_u,{status:ue.status,steps:ue.stepsTotal,duration:ue.duration,creditsConsumed:ue.creditsConsumed,reason:ue.reason}),(0,y.jsx)(Pu,{})]})),Ce(null)}},[ue,_.isRunning,_.lastRunEnd,le]);let Vi=(0,R.useRef)(null);(0,R.useEffect)(()=>{if(pe.runSummary&&!pe.running){if(Vi.current===pe.runSummary)return;Vi.current=pe.runSummary,(pe.summary||pe.links)&&le((0,y.jsxs)(b,{flexDirection:"column",children:[pe.summary&&(0,y.jsx)(Os,{data:pe.summary}),pe.links&&(0,y.jsx)(hn,{...pe.links,autoExit:!1})]}))}},[pe.runSummary,pe.running,pe.summary,pe.links,le]),(0,R.useEffect)(()=>{Gt.current?.setRunActive(_.isRunning)},[_.isRunning]),(0,R.useEffect)(()=>{if(_.runError&&!_.isRunning){let p=_.runError.trim();c.log("error","RUNNER_ERROR","Runner error occurred",{error:p}),c.escalateRun(c.nextRunIndex()-1),!_.lastRunEnd&&We.current!==_.runError&&(We.current=_.runError,Bo(G.current,_.getEvidenceState(),null));let d=p.split(`
|
|
20
20
|
`).slice(-8).join(`
|
|
21
21
|
`);Se({type:"error",text:`Runner error:
|
|
22
|
-
${d}`})}},[_.runError,_.isRunning,_.lastRunEnd,Se,c]);let on=(0,R.useCallback)(async(p={})=>{let x=G.current;return x?(c.flushRecorder(),await bs(x,{saved:!!c.sessionName,local:e,recordedTestPath:c.recorder?.lastWrittenPath??null,externalIdInput:{session_id:c.sessionId,commit_id:c.sessionId,test_id:c.testId??void 0,testcase_id:p.testcaseId??c.testcaseId??void 0,project_id:C.project_id??void 0,folder_id:C.folder_id??void 0,org_id:c.orgId??void 0,session_name:c.sessionName??void 0,user_name:c.userName??void 0,user_email:c.userEmail??void 0,sharable_link:Ns(De(de).testManagerUiUrl,C.project_id,p.testcaseId??c.testcaseId,p.shareId)},cdpBrowserCapture:ye.current??void 0,model:C.model,tuiLogPath:Mt(c.sessionDir,"tui.log"),log:(d,h,E,B)=>c.log(d,h,E,B)})):null},[c,C]),sn=(0,R.useCallback)(async p=>{let x=G.current?.packDir??null,d=await on({testcaseId:p?.testcaseId,shareId:p?.shareId});return G.current=null,ce.current=!1,ye.current=null,d?.sealed?x:null},[on]),an=(0,R.useCallback)(async()=>{c.log("info","EXIT_UPLOAD_START","Starting exit upload pipeline"),br(gn()),gt({status:"uploading"});let p=S.getResolvedBasicAuth(),x=null;if(!p&&(x=await S.getToken(),!x))return c.log("warn","EXIT_UPLOAD_ABORTED","Exit upload aborted \u2014 no auth available"),null;let d=Ge??await Wt();if(!d)return c.log("warn","EXIT_UPLOAD_ABORTED","Exit upload aborted \u2014 no TMS credentials"),c.setUploadStatus("failed","Could not get TMS credentials"),null;c.log("info","EXIT_UPLOAD_CONFIG","Exit upload configuration",{test_id:c.testId,commit_id:c.sessionId,project_id:C.project_id,session_dir:c.sessionDir,run_dirs:c.getRunDirs()});let h={basicAuth:p??null,token:x,resolver:S.getResolver(),resolvedCreds:d};X.current&&(c.log("info","SCREENSHOT_UPLOAD_DRAIN","Draining screenshot queue before pipeline"),await lt.current.settle(),await X.current.drain(),c.log("info","SCREENSHOT_UPLOAD_DRAINED","Screenshot queue drained"));let E=Us({session:c,env:de,auth:h,variables:Pt.current??{raw:{},auteur:{},auteurObjective:"",secretEntries:[],nonSecretEntries:[]},variableIds:Rr.current,projectId:C.project_id,folderId:C.folder_id,totalSteps:mo.current,totalDuration:po.current,screenshotExtMap:X.current?.getExtMap(),codeExport:qs({codeExport:t,codeLanguage:r,skipCodeValidation:n},C.code_export),onProgress:(q,oe,se)=>{c.log("info","EXIT_PROGRESS","Upload progress",{step:q,status:oe,detail:se}),br(be=>Ds(be,q,oe,se))},log:(q,oe,se,be)=>c.log(q,oe,se,be),shouldUploadArtifacts:!0,shouldReplaceLocalOutput:!1,shouldCommit:!1,isFirstRun:!0,evidence:G.current?{executionId:G.current.executionId,packTestDir:G.current.packTestDir,sealedPackPath:G.current.packDir,sealFn:on}:void 0}),U=await new Gs(E).execute();if(U.success){c.log("info","EXIT_UPLOAD_OK","Exit upload succeeded",{test_id:U.testId,testcase_id:U.testcaseId??null,share_id:U.shareId??null}),c.setUploadStatus("uploaded"),U.testId&&c.setTestId(U.testId),U.testcaseId&&c.setTestcaseId(U.testcaseId);let q=De(de),oe=C.project_id,se=U.testcaseId&&U.shareId&&oe?Oo(q.testManagerUiUrl,oe,U.testcaseId,U.shareId):void 0,be=U.testcaseId&&oe?No(q.testManagerUiUrl,oe,U.testcaseId):void 0;gt({status:"success",testUrl:se,testCaseLink:be,codeExportDir:U.codeExportDir}),Au({shareableLink:se,testCaseLink:be,codeExportDir:U.codeExportDir})}else c.log("error","EXIT_UPLOAD_FAILED","Exit upload failed",{error:U.error}),c.setUploadStatus("failed",U.error),gt({status:"failed",error:U.error});return U},[S,de,c,C,Ge,Wt,on]),cn=(0,R.useCallback)(async()=>{c.log("info","SESSION_RESET_START","Starting session reset via /new"),Ut(!0);let p=c.getFlows();p.length>0&&le((0,y.jsx)(Ri,{flows:p}));let x=null;if(!e)try{x=await an()??null}catch(B){c.log("error","SESSION_RESET_UPLOAD_FAILED","Upload failed during /new",{error:String(B)}),Se({type:"error",text:"Upload failed \u2014 session data saved locally."})}let d=null;try{let{persistRecordedSession:B}=await import("./persist-recorded-session-WFU4M4SQ.js");d=await B(c,{testcaseId:c.testcaseId??void 0,projectId:C.project_id??void 0,folderId:C.folder_id??void 0,codeExportDir:x?.codeExportDir,packTestDir:G.current?.packTestDir})}catch(B){c.log("error","SESSION_RESET_PERSIST_FAILED","Persist failed during /new",{error:String(B)})}if(x?.success&&x.testcaseId||d){let B=De(de),U=C.project_id,q=x?.testcaseId;le((0,y.jsx)(hn,{recordedTestPath:d?.recordedTestPath,outputDir:d?.outputDir,shareableLink:q&&x?.shareId&&U?Oo(B.testManagerUiUrl,U,q,x.shareId):void 0,testCaseLink:q&&U?No(B.testManagerUiUrl,U,q):void 0,codeExportDir:x?.codeExportDir,autoExit:!1}))}let h=await sn(x);h&&Se({type:"info",text:ws(h)}),c.testId&&Wr(B=>[...B,{testId:c.testId,runCount:re}]),en.killChrome(),await c.finish("complete");let E=new pn;E.start({model:C.model,environment:de,profile:tr??null}),w.current=E,T(B=>B+1),c.log("info","SESSION_RESET_COMPLETE","Session reset complete",{new_session_id:E.sessionId}),await bt({kind:"resessionize",env:de},nt),fe(0),mo.current=0,po.current=0,Y.current=0,Je.current="",Pt.current=null,Rr.current={},un.current=0,vo.current=0,go.current=null,ho.current=null,fo.current=null,We.current=null,ae.current=!1,uo.current=null,Ce(null),A(null),gt(null),br(gn()),Ut(!1),le((0,y.jsxs)(b,{flexDirection:"column",marginY:1,children:[(0,y.jsx)(s,{color:l.dim,children:"\u2500".repeat(44)}),(0,y.jsx)(s,{color:l.green,bold:!0,children:"New session started"})]}))},[c,Se,le,e,an,sn,en,re,C,de,tr,nt]),Mi=(0,R.useCallback)(async()=>{if(!(c.nextRunIndex()>0)){Se({type:"info",text:"No runs in current session."});return}if(_.isRunning){Se({type:"error",text:"Cannot reset while a run is in progress. Cancel the run first."});return}if(C.mode==="testing"&&!c.sessionName){yr("new"),Qt(Fo());return}await cn()},[c,_,Se,C.mode,cn]),Fi=(0,R.useCallback)(async()=>{await c.finish("complete"),lr(0,"Session complete")},[c]),od=(0,R.useCallback)(async p=>{Xr(!1);let x=c.testId??($e.length>0?$e[$e.length-1].testId:null);if(p&&x){c.log("info","EXIT_FEEDBACK_SUBMIT","Submitting session feedback",{choice:p});try{let d=De(de),h=S.getResolvedBasicAuth();h&&await Nu({tmsBaseUrl:d.tmsBaseUrl,username:h.username,accessKey:h.access_key,testId:x,feedbackType:p,log:(E,B,U,q)=>c.log(E,B,U,q)})}catch(d){c.log("error","EXIT_FEEDBACK_FAILED","Feedback submission failed",{error:String(d)})}}else c.log("info","EXIT_FEEDBACK_SKIPPED","Feedback skipped");Fi()},[de,S,c,Fi,$e]),ln=(0,R.useCallback)(async()=>{let p=c.nextRunIndex()>0,x=null;if(p&&!e){c.log("info","EXIT_WITH_ACTIVE_SESSION","Exit with active session \u2014 uploading first"),ie(!0);try{x=await an()??null}catch(E){c.log("error","EXIT_UPLOAD_FAILED","Exit upload failed",{error:String(E)})}c.testId&&Wr(E=>[...E,{testId:c.testId,runCount:re}])}try{let{persistRecordedSession:E}=await import("./persist-recorded-session-WFU4M4SQ.js"),B=await E(c,{testcaseId:c.testcaseId??void 0,projectId:C.project_id??void 0,folderId:C.folder_id??void 0,codeExportDir:x?.codeExportDir,packTestDir:G.current?.packTestDir});B&&no(B)}catch(E){c.log("error","EXIT_PERSIST_FAILED","Persist failed during /exit",{error:String(E)})}let d=await sn(x);if(d&&process.stdout.isTTY&&(ie(!0),await new Promise(E=>zr({packPath:d,resolve:E})),zr(null)),p&&!e&&await c.finish("complete"),!(c.testId??($e.length>0?$e[$e.length-1].testId:null))||e){await c.finish("complete"),lr(0,"No test ID \u2014 quick exit");return}ie(!0),Xr(!0)},[c,e,an,sn,re,$e,C]),$t=(0,R.useCallback)(async()=>{if(W)return;c.log("info","EXIT_START","TUI exit initiated");let p=C.mode==="testing",x=c.nextRunIndex()>0;if(p&&x&&!c.sessionName){yr("exit"),Qt(Fo());return}await ln()},[W,c,C.mode,ln]),id=(0,R.useCallback)(p=>{p&&c.setSessionName(p);let x=Ht;Qt(null),yr(null),x==="new"?cn():ln()},[c,Ht,ln,cn]);(0,R.useEffect)(()=>{if(!W)return;let p=300*1e3,x=setTimeout(async()=>{c.setUploadStatus("failed","Upload timed out after 5m"),await c.finish("complete"),lr(0,"Upload timed out after 5m")},p);return()=>clearTimeout(x)},[W,c]);let un=R.default.useRef(0),xo=R.default.useRef(null),vo=R.default.useRef(0),bo=R.default.useRef(0),So=R.default.useRef(null);Ie((p,x)=>{if(x.ctrl&&p==="c"){if(ve==="generate"&&(ne.isStreaming||dt.submitting)){dt.cancelGenerate(),bo.current++,So.current&&clearTimeout(So.current),So.current=setTimeout(()=>{bo.current=0},2e3),bo.current>=2&&$t();return}if(!pe.running){if(W){vo.current+=1,vo.current>=2&&(c.setUploadStatus("pending","Force exit by user"),c.finish("complete"),lr(0,"Force exit by user"));return}if(_.isRunning){_.cancelRun(),Se({type:"info",text:"Run cancelled."}),un.current++,xo.current&&clearTimeout(xo.current),xo.current=setTimeout(()=>{un.current=0},2e3),un.current>=2&&$t();return}$t()}}}),Ie((p,x)=>{if(x.ctrl&&p==="t"&&ve==="generate"&&!ne.isStreaming){nn("no thinking yet");return}});let Ui=R.default.useMemo(()=>{let p=S.creds.getActiveProfile()??"none",x=S.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:me.headless?"on":"off",options:[{label:"off",value:"off"},{label:"on",value:"on"}],onValue:d=>{kr(h=>({...h,headless:d==="on"}))}},{id:"run-max-steps",label:"Max Steps",type:"text-input",currentValue:String(me.maxSteps),onValue:d=>{let h=parseInt(d,10);h>0&&kr(E=>({...E,maxSteps:h}))}},{id:"run-timeout",label:"Timeout (sec)",type:"text-input",currentValue:me.timeout?String(me.timeout):"",placeholder:"0 = no timeout",onValue:d=>{let h=parseInt(d,10);kr(E=>({...E,timeout:isNaN(h)?0:h}))}},{id:"run-cdp",label:"CDP Endpoint",type:"text-input",currentValue:me.cdpEndpoint,placeholder:"http://127.0.0.1:9222",onValue:d=>{kr(h=>({...h,cdpEndpoint:d}))}},{id:"run-ws",label:"WS Endpoint",type:"text-input",currentValue:me.wsEndpoint,placeholder:"wss://...",onValue:d=>{kr(h=>({...h,wsEndpoint:d}))}}]}]},{id:"auth",label:"Auth",type:"submenu",children:[{id:"login",label:"Login",type:"action",onLoginWizard:()=>{}},{id:"logout",label:"Logout",type:"action",onAction:()=>{S.logout().then(d=>{Qe();let h=S.creds.getActiveProfile(),E=S.creds.getDefaultEnv();ut(h,E);let B=Ou(h,E);bt(B,nt).catch(()=>{}),d?P("ok","/logout",`Logged out: ${d.profile} [${d.env}]`):P("ok","/logout","No active profile")}).catch(()=>{P("error","/logout","Logout failed")})}},{id:"whoami",label:"Who Am I",type:"action",onInfo:()=>{let d=S.creds.getActiveProfile()??"none",h=S.creds.getDefaultEnv(),E=S.creds.loadBasicAuth(d,h),B=E?"basic":S.creds.loadCredentials(d,h)?"oauth":"not configured";return{title:"Who Am I",sections:[{label:"Identity",entries:[{key:"Profile",value:d},{key:"Environment",value:h}]},{label:"Authentication",entries:[{key:"Method",value:B},...E?[{key:"Username",value:E.username}]:[]]},{label:"Token",entries:[{key:"Status",value:S.tokenValid?"valid":"not logged in",color:S.tokenValid?l.green:l.red}]}]}}},{id:"balance",label:"Credit Balance",type:"action",suppressFeedback:!0,onAction:()=>{(async()=>{let d=S.creds.getActiveProfile()??"default",h=S.creds.getDefaultEnv(),E=De(h);try{let B=S.getBasicAuth(),U=B?null:await S.getToken();if(!B&&!U){et({text:"Not authenticated. Run /login first.",color:l.red});return}let{ControllerClient:q}=await import("./controller-client-RD2YEMAH.js"),se=await(B?new q(E.controllerBaseUrl,{username:B.username,accessKey:B.access_key}):new q(E.controllerBaseUrl,U)).getCreditBalance();et({text:`Credits \u2014 available: ${se.available_credits}, total: ${se.total_credits} (${d} / ${h})`,color:l.green})}catch(B){et({text:`Balance check failed: ${B instanceof Error?B.message:String(B)}`,color:l.red})}Ft.current&&clearTimeout(Ft.current),Ft.current=setTimeout(()=>{et(null),Ft.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:C.mode},{key:"Assertion Mode",value:C.assertion_mode},{key:"WebSocket Capture",value:C.network_ws?"on":"off"},{key:"SSE Capture",value:C.network_sse?"on":"off"},{key:"Bug Detection",value:C.bug_detection},{key:"Final Validation",value:C.final_validation?"on":"off"},{key:"Hints",value:C.hints_enabled===!1?"off":"on"}]},{label:"Browser",entries:[{key:"Window",value:`${C.window_size.width}x${C.window_size.height}`},{key:"Chrome Profile",value:C.chrome_profile_path?C.chrome_profile_path.split("/").pop()??C.chrome_profile_path:"(temporary)"}]},{label:"Project",entries:[{key:"Project",value:C.project_name?`${C.project_name} (${C.project_id})`:C.project_id??"(none)"},{key:"Folder",value:C.folder_name?`${C.folder_name} (${C.folder_id})`:C.folder_id??"(none)"},{key:"Default URL",value:C.default_url??Eo}]},{label:"Code Export",entries:[{key:"Enabled",value:C.code_export.enabled?"yes":"no"},{key:"Language",value:C.code_export.language},{key:"Skip Validation",value:C.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",...C.project_id?{onFolderPicker:()=>{}}:{onInfo:()=>({title:"Folder",sections:[{entries:[{key:"Status",value:"Select a project first",color:l.dim}]}]})}},{id:"config-window",label:"Window Size",type:"action",currentValue:`${C.window_size.width}x${C.window_size.height}`,onWindowSizePicker:()=>{}},{id:"config-default-url",label:"Default URL",type:"text-input",currentValue:C.default_url??"",placeholder:"https://example.com",onValue:d=>{let h=$o(d);if(!h){P("error","/config set-url","Enter a valid URL (e.g. example.com)");return}m.set("default_url",h),ge(m.load()),P("ok","/config set-url",h)}},{id:"config-run",label:"Run",type:"submenu",children:[{id:"config-mode",label:"Mode",type:"select",currentValue:C.mode,options:[{label:"testing",value:"testing"},{label:"action",value:"action"}],onValue:d=>{(d==="action"||d==="testing")&&(m.set("mode",d),ge(m.load()),P("ok","/config set-mode",d))}},{id:"config-assertion-mode",label:"Assertion Mode",type:"select",currentValue:C.assertion_mode,options:[{label:"visual \u2014 vision model (default)",value:"visual"},{label:"dom \u2014 DOM extraction & assertions preferred",value:"dom"}],onValue:d=>{(d==="visual"||d==="dom")&&(m.set("assertion_mode",d),ge(m.load()),P("ok","/config set-assertion-mode",d))}},{id:"config-final-validation",label:"Final Validation",type:"select",currentValue:C.final_validation?"on":"off",options:[{label:"off \u2014 no cp_final checkpoint (default)",value:"off"},{label:"on \u2014 append cp_final, verifying the objective as a whole",value:"on"}],onValue:d=>{(d==="on"||d==="off")&&(m.set("final_validation",d==="on"),ge(m.load()),P("ok","/config set-final-validation",d))}},{id:"config-network-ws",label:"WebSocket Capture",type:"select",currentValue:C.network_ws?"on":"off",options:[{label:"off \u2014 no WebSocket frame capture (default)",value:"off"},{label:"on \u2014 capture WebSocket frames for assertions/extraction",value:"on"}],onValue:d=>{(d==="on"||d==="off")&&(m.set("network_ws",d==="on"),ge(m.load()),P("ok","/config set-network-ws",d))}},{id:"config-network-sse",label:"SSE Capture",type:"select",currentValue:C.network_sse?"on":"off",options:[{label:"off \u2014 no SSE message capture (default)",value:"off"},{label:"on \u2014 capture SSE messages (Chromium-only) for assertions/extraction",value:"on"}],onValue:d=>{(d==="on"||d==="off")&&(m.set("network_sse",d==="on"),ge(m.load()),P("ok","/config set-network-sse",d))}},{id:"config-bug-detection",label:"Bug Detection",type:"select",currentValue:C.bug_detection,options:[{label:"off \u2014 no bug detection while authoring (default)",value:"off"},{label:"stop \u2014 halt the run when a confirmed product bug is found",value:"stop"},{label:"continue \u2014 record confirmed bugs and keep authoring",value:"continue"}],onValue:d=>{(d==="off"||d==="stop"||d==="continue")&&(m.set("bug_detection",d),ge(m.load()),P("ok","/config set-bug-detection",d))}}]},{id:"config-hints",label:"CLI Hints",type:"select",currentValue:C.hints_enabled===!1?"off":"on",options:[{label:"on",value:"on"},{label:"off",value:"off"}],onValue:d=>{let h=d==="on";m.set("hints_enabled",h),ge(m.load()),P("ok","/config hints",`CLI hints ${h?"enabled":"disabled"}`)}},{id:"config-generate",label:"Generate",type:"submenu",currentValue:`${C.generate.scenario_limit}x${C.generate.per_scenario_limit}`,children:[{id:"config-generate-scenario-limit",label:"Scenario limit",type:"text-input",currentValue:String(C.generate.scenario_limit),placeholder:"5",onValue:d=>{let h=parseInt(d,10);if(!Number.isFinite(h)||h<1||h>20){P("error","/config",`Scenario limit must be 1-20 (got ${d})`);return}m.set("generate",{...C.generate,scenario_limit:h}),ge(m.load()),P("ok","/config",`Scenario limit: ${h}`)}},{id:"config-generate-per-scenario-limit",label:"Per-scenario limit",type:"text-input",currentValue:String(C.generate.per_scenario_limit),placeholder:"4",onValue:d=>{let h=parseInt(d,10);if(!Number.isFinite(h)||h<1||h>20){P("error","/config",`Per-scenario limit must be 1-20 (got ${d})`);return}m.set("generate",{...C.generate,per_scenario_limit:h}),ge(m.load()),P("ok","/config",`Per-scenario limit: ${h}`)}},{id:"config-generate-memory",label:"Memory",type:"select",currentValue:C.generate.memory_enabled?"on":"off",options:[{label:"on",value:"on"},{label:"off",value:"off"}],onValue:d=>{let h=d==="on";m.set("generate",{...C.generate,memory_enabled:h}),ge(m.load()),P("ok","/config",`Memory: ${h?"on":"off"}`)}}]},{id:"config-code-export",label:"Code Export",type:"submenu",currentValue:C.code_export.enabled?"enabled":"disabled",children:[{id:"config-code-export-enabled",label:"Enabled",type:"select",currentValue:C.code_export.enabled?"on":"off",options:[{label:"off",value:"off"},{label:"on",value:"on"}],onValue:d=>{m.set("code_export",{...C.code_export,enabled:d==="on"}),ge(m.load()),P("ok","/config code-export enabled",d)}},{id:"config-code-export-language",label:"Language",type:"select",currentValue:C.code_export.language,options:[{label:"python",value:"python"},{label:"javascript",value:"javascript"}],onValue:d=>{d!=="python"&&d!=="javascript"||(m.set("code_export",{...C.code_export,language:d}),ge(m.load()),P("ok","/config code-export language",d))}},{id:"config-code-export-skip-validation",label:"Skip Validation",type:"select",currentValue:C.code_export.skip_validation?"on":"off",options:[{label:"off",value:"off"},{label:"on",value:"on"}],onValue:d=>{m.set("code_export",{...C.code_export,skip_validation:d==="on"}),ge(m.load()),P("ok","/config code-export skip-validation",d)}}]}]},{id:"exit",label:"Exit",type:"action",onAction:()=>{$t()}}]},[S,m,C,Se,$t,me,Qe,P]),wo=(0,R.useCallback)(p=>{if(_.askingUser){let d=_.askingUser;le((0,y.jsxs)(b,{flexDirection:"column",marginLeft:2,paddingLeft:1,marginTop:1,children:[(0,y.jsx)(b,{marginLeft:1,children:(0,y.jsx)(s,{color:l.orange,bold:!0,children:"Agent Question"})}),(0,y.jsxs)(b,{borderStyle:"round",borderColor:l.orange,flexDirection:"column",paddingX:2,paddingY:1,width:70,children:[(0,y.jsxs)(b,{children:[(0,y.jsx)(b,{width:3,children:(0,y.jsx)(s,{color:l.orange,bold:!0,children:"?"})}),(0,y.jsx)(b,{flexShrink:1,children:(0,y.jsx)(s,{wrap:"wrap",children:d})})]}),(0,y.jsxs)(b,{marginTop:1,children:[(0,y.jsx)(b,{width:3,children:(0,y.jsx)(s,{color:l.dim,bold:!0,children:"\u2192"})}),(0,y.jsx)(b,{flexShrink:1,children:(0,y.jsx)(s,{wrap:"wrap",children:p})})]})]})]})),go.current=null,_.sendAnswer(p);return}if(c.logCommand(p),_.isRunning){Se({type:"error",text:"Run in progress. Ctrl+C to cancel."});return}let x=Nn(p);if(x){if(!Rl(x.command,ve)){P("error",`/${x.command}`,`/${x.command} isn't available in ${ve==="run"?"Run":"Generate"} mode.`);return}switch(x.command){case"profiles":if(ve==="generate"&&ne.requestId&&x.args.action==="switch"){Ir({reason:"profile",pendingArgs:x.args});return}Tr("auth");return;case"login":case"logout":case"whoami":case"balance":case"auth":Tr("auth");return;case"config":if(x.args.action==="set-url"){let d=$o(x.args.value);if(!d){P("error","/config set-url","Usage: /config set-url <url>");return}m.set("default_url",d),ge(m.load()),P("ok","/config set-url",d);return}Tr("config");return;case"help":Bi(!0);return;case"testmd":if(_.isRunning||ne.isStreaming||pe.running){P("error","/testmd","Finish or cancel the current run/generation first.");return}pe.clearResult(),Qr(!0);return;case"generate":if(pe.running){P("error","/generate","Finish or cancel the running test first.");return}ve==="run"?dt.requestSwitch("generate")&&P("ok","/generate","Switched to Generate mode.",void 0,l.generateAccent):P("ok","/generate","Already in Generate mode.",void 0,l.generateAccent);return;case"run":{let d=Tl(ve,x.args.objective);switch(d.kind){case"run":lo(d.objective,x.args.url);return;case"reject":P("error","/run",'Switch to Run mode first (bare /run), then /run "objective".');return;case"already":P("ok","/run","Already in Run mode.",void 0,l.orange);return;case"toggle":dt.requestSwitch("run")&&P("ok","/run","Switched to Run mode.",void 0,l.orange);return}return}case"update":{(async()=>{let{getUpdateCommand:d}=await import("./version-check-TXTCVX2N.js");P("ok","/update",`To update kane-cli, run: ${d()}`)})();return}case"summary":{if(ve==="generate"&&!ne.requestId){nn("no generation yet"),P("ok","/summary","(no generation yet)");return}let d=c.getFlows();if(d.length===0){P("ok","/summary","No runs yet in this session.");return}let h=x.args.index?parseInt(x.args.index,10):void 0;if(h!==void 0&&!c.getFlow(h)){P("error","/summary",`No flow at index ${h}`,`${d.length} flow${d.length===1?"":"s"} available. Use /summary to see all.`);return}le((0,y.jsx)(Ri,{flows:d,filterIndex:h})),P("ok","/summary",h!==void 0?`Flow ${h}`:`${d.length} flow${d.length===1?"":"s"}`);return}case"new":ve==="generate"&&ne.requestId&&(Lt(),ne.end().catch(d=>{P("error","/new",`Could not end generation cleanly: ${d.message}`)}),ne.reset()),Mi(),P("ok","/new","Session reset");return;case"name":{let d=x.raw.replace(/^\/name\s*/,"").trim();if(!d){P("error","/name","Usage: /name <new-name>");return}(async()=>{let{validateNameOrThrow:h}=await import("./name-validator-5YGJXLZ7.js");try{h(d),c.setSessionName(d),P("ok","/name",`Session name set: ${d}`)}catch(E){P("error","/name",E.message)}})();return}case"cancel":if(ve==="generate"&&ne.isStreaming){Lt(),ne.cancel(),P("ok","/cancel","Cancelled");return}if(ve==="generate"&&!ne.requestId){nn("no generation yet"),P("ok","/cancel","(no generation yet)");return}if(pe.running){pe.cancel(),P("ok","/cancel","Run cancelled");return}_.cancelRun(),P("ok","/cancel","Run cancelled");return;case"clear":P("ok","/clear","Chat cleared");return;case"exit":ve==="generate"&&ne.requestId&&(Lt(),ne.end()),$t();return;default:P("error",`/${x.command}`,"Unknown command");return}}if(p.trim().toLowerCase()==="exit"){$t();return}le((0,y.jsx)(gl,{objective:p})),lo(p,void 0)},[_,Se,P,le,c,lo,$t,Mi,ve,ne.isStreaming,ne.requestId,ne,nn,Lt,pe,C,a]);Ni.current=wo;let qi=(0,R.useRef)(!1);(0,R.useEffect)(()=>{if(!qi.current&&V&&u==="generate"&&f){qi.current=!0;let p=setTimeout(()=>{ed(f)},50);return()=>clearTimeout(p)}},[V,u,f]);let Hi=S.getAuthInfo(),sd=Hi?Hi.method==="basic"?"basic auth":"oauth":"not logged in",ad=(()=>{if(Er)return["help"];if(Cr)return["testmd"];if(L)return L.phase==="wizard"?["auth","login"]:L.phase==="project"?["auth","login","project"]:L.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 xt==="auth"?Jr?["auth",p[Jr]]:["auth"]:xt==="config"?Jr?["config",p[Jr]]:["config"]:xt==="help"?["help"]:_.askingUser?["agent question"]:[]})();return(0,y.jsxs)(b,{flexDirection:"column",children:[!V&&!Pi&&(0,y.jsx)(ml,{onComplete:()=>{let p=S.creds.getActiveProfile(),x=S.creds.getDefaultEnv(),d=p?S.creds.loadCredentials(p,x):null,h=p?S.creds.loadBasicAuth(p,x):null,E=!!(d||h),B=h?.username??p??null;le((0,y.jsx)(Dn,{size:"full",helmetVisibleRows:8,textVisibleRows:7,showMeta:!0,version:ot,authenticated:E,user:B})),Fu(!0);let U=(q,oe,se,be)=>{c.log(q,oe,se,be)};if(Is(S.creds,U).then(q=>{if(q.status==="authenticated"){let{profile:oe,env:se,tmsCreds:be}=q.result;S.creds.setActiveProfile(oe),S.creds.setDefaultEnv(se),Qe(),Ke(be),ht("ready"),O(!0)}else q.status==="needs_pick"?(Vu(q.profiles),ht("pick")):ht("login")}).catch(q=>{c.log("error","STARTUP_GATE_ERROR","Auth gate failed",{error:String(q)}),ht("login")}),o&&o.then(async q=>{if(q){let{getUpdateCommand:oe}=await import("./version-check-TXTCVX2N.js");P("ok","update available",`${q.current} \u2192 ${q.latest}`,`Run: ${oe()}`)}}).catch(()=>{}),i&&i.changes.length>0){let q=`kane-cli updated to ${i.toVersion}. Default settings changed:`,oe=[...i.changes.map(se=>`\u2022 ${se.description} (${se.field}: ${JSON.stringify(se.from)} \u2192 ${JSON.stringify(se.to)})`),"","Use /config to review or revert any of these."].join(`
|
|
23
|
-
`);P("ok","defaults updated",q,oe)}}}),!V&&er==="booting"&&Pi&&(0,y.jsx)(b,{paddingX:1,children:(0,y.jsx)(s,{color:"yellow",children:"Checking authentication..."})}),!V&&er==="pick"&&(0,y.jsx)(Yg,{profiles:ju,onCancel:()=>ht("login"),onSelect:async(p,x)=>{S.creds.setActiveProfile(p),S.creds.setDefaultEnv(x),Qe(),oo(!0);let d=(h,E,B,U)=>{c.log(h,E,B,U)};try{let h=await Cs(S.creds,p,x,d);oo(!1),h.status==="authenticated"?(ut(p,x),Ke(h.result.tmsCreds),ht("ready"),O(!0)):ht("login")}catch{oo(!1),ht("login")}},validating:Mu}),!V&&er==="login"&&!L&&(0,y.jsx)(mn,{devMode:process.env.KANE_DEV_MODE==="1",profiles:S.creds.listProfiles(),onBasicLogin:async(p,x,d,h)=>{let{validateBasicAuth:E}=await import("./validate-basic-WILRWRRP.js");await E(x,d,h),S.creds.saveBasicAuth(p,x,{username:d,access_key:h}),S.creds.setActiveProfile(p),S.creds.setDefaultEnv(x),it(S.creds,m,p,x),S.setTokenValid(!0),Qe()},onOAuthLogin:async(p,x)=>{S.creds.setDefaultEnv(x),await S.login(p),it(S.creds,m,p,x),Qe()},onComplete:(p,x)=>{bt(ro(x),nt).then(()=>{Qe(),Te({phase:"project",profile:p,env:x})}).catch(()=>{Te({phase:"project",profile:p,env:x})})},onCancel:()=>{lr(0,"Login cancelled at startup")}}),!V&&er==="login"&&L?.phase==="project"&&(0,y.jsx)(sr,{resolver:S.getResolver(),currentProjectId:null,env:L.env,onSelect:(p,x)=>{S.creds.saveProfileConfig(L.profile,L.env,{project_id:p,project_name:x}),P("ok","/config project",x,`id: ${p}`),Te({...L,phase:"folder"})},onCancel:async()=>{let p=await ao(L.profile,L.env);p&&(pt(S.creds,m,L.profile,L.env,{projectId:p.id,projectName:p.name}),P("ok","/config project",p.name,`id: ${p.id}`),Te({...L,phase:"folder"}))}}),!V&&er==="login"&&L?.phase==="folder"&&(0,y.jsx)(ar,{resolver:S.getResolver(),projectId:S.creds.loadProfileConfig(L.profile,L.env)?.project_id??"",currentFolderId:null,env:L.env,onSelect:(p,x)=>{S.creds.saveProfileConfig(L.profile,L.env,{folder_id:p,folder_name:x}),P("ok","/config folder",x,`id: ${p}`),ut(L.profile,L.env),Te(null),ht("ready"),O(!0)},onCancel:async()=>{let p=S.creds.loadProfileConfig(L.profile,L.env);if(!p?.project_id)return;let x=await co(L.env,p.project_id);x&&(pt(S.creds,m,L.profile,L.env,{folderId:x.id,folderName:x.name}),P("ok","/config folder",x.name,`id: ${x.id}`),ut(L.profile,L.env),Te(null),ht("ready"),O(!0))}}),V&&Kr==="menu"&&!W&&(0,y.jsx)(b,{marginBottom:1,children:(0,y.jsxs)(b,{borderStyle:"round",borderColor:"#dc4e08",paddingX:2,children:[(0,y.jsx)(s,{color:"#ff9500",bold:!0,children:"KaneAI CLI"}),(0,y.jsx)(s,{color:l.dim,children:" \u2502 "}),(0,y.jsx)(s,{color:"#ff9500",children:C.model}),(0,y.jsx)(s,{color:l.dim,children:" \u2502 "}),(0,y.jsx)(s,{color:l.dim,children:sd}),(0,y.jsx)(s,{color:l.dim,children:" \u2502 "}),(0,y.jsxs)(s,{color:l.dim,children:[tr??"no profile","/",de]})]})}),V&&!W&&(0,y.jsxs)(b,{flexDirection:"column",flexGrow:1,children:[Kr==="menu"&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(xi,{items:Ui,onRunSelected:()=>Uu("chat"),onActiveViewChange:Li,renderLoginWizard:p=>{let x=L?.phase??"wizard";if(x==="project")return(0,y.jsx)(sr,{resolver:S.getResolver(),currentProjectId:null,env:L.env,onSelect:(d,h)=>{S.creds.saveProfileConfig(L.profile,L.env,{project_id:d,project_name:h}),P("ok","/config project",h,`id: ${d}`),Te(E=>E?{...E,phase:"folder"}:null)},onCancel:async()=>{if(!L)return;let d=await ao(L.profile,L.env);d&&(pt(S.creds,m,L.profile,L.env,{projectId:d.id,projectName:d.name}),P("ok","/config project",d.name,`id: ${d.id}`),Te(h=>h?{...h,phase:"folder"}:null))}});if(x==="folder"){let d=S.creds.loadProfileConfig(L.profile,L.env);return(0,y.jsx)(ar,{resolver:S.getResolver(),projectId:d?.project_id??"",currentFolderId:null,env:L.env,onSelect:(h,E)=>{S.creds.saveProfileConfig(L.profile,L.env,{folder_id:h,folder_name:E}),P("ok","/config folder",E,`id: ${h}`),ut(L.profile,L.env),Te(null),p()},onCancel:async()=>{if(!L)return;let h=S.creds.loadProfileConfig(L.profile,L.env);if(!h?.project_id)return;let E=await co(L.env,h.project_id);E&&(pt(S.creds,m,L.profile,L.env,{folderId:E.id,folderName:E.name}),P("ok","/config folder",E.name,`id: ${E.id}`),ut(L.profile,L.env),Te(null),p())}})}return(0,y.jsx)(mn,{devMode:process.env.KANE_DEV_MODE==="1",profiles:S.creds.listProfiles(),onBasicLogin:async(d,h,E,B)=>{let{validateBasicAuth:U}=await import("./validate-basic-WILRWRRP.js");await U(h,E,B),S.creds.saveBasicAuth(d,h,{username:E,access_key:B}),S.creds.setActiveProfile(d),S.creds.setDefaultEnv(h),it(S.creds,m,d,h),S.setTokenValid(!0),Qe()},onOAuthLogin:async(d,h)=>{S.creds.setDefaultEnv(h),await S.login(d),it(S.creds,m,d,h),Qe()},onComplete:(d,h)=>{bt(ro(h),nt).then(()=>{Te({phase:"project",profile:d,env:h})}).catch(()=>{Te({phase:"project",profile:d,env:h})})},onCancel:()=>{Te(null),p()}})},renderProfilesView:p=>(0,y.jsx)(Po,{creds:S.creds,onSwitch:(x,d)=>{let h=S.creds.getActiveProfile()??"(none)";S.creds.setActiveProfile(x),S.creds.setDefaultEnv(d),it(S.creds,m,x,d),ut(x,d),Qe(),bt(_i(d),nt).catch(()=>{}),P("ok","/profiles switch",`${h} \u2192 ${x} [${d}]`)},onCancel:p}),renderChromeProfilePicker:p=>(0,y.jsx)(Lo,{currentPath:C.chrome_profile_path,onSelect:x=>{m.set("chrome_profile_path",x),ge(m.load()),P("ok","/config chrome-profile",x),p()},onCancel:p}),renderProjectPicker:p=>(0,y.jsx)(sr,{resolver:S.getResolver(),currentProjectId:C.project_id,env:de,onSelect:(x,d)=>{pt(S.creds,m,S.creds.getActiveProfile()??"default",S.creds.getDefaultEnv(),{projectId:x,projectName:d}),P("ok","/config project",d,`id: ${x}`),ge(m.load()),p()},onCancel:p}),renderFolderPicker:p=>(0,y.jsx)(ar,{resolver:S.getResolver(),projectId:C.project_id??"",currentFolderId:C.folder_id,env:de,onSelect:(x,d)=>{pt(S.creds,m,S.creds.getActiveProfile()??"default",S.creds.getDefaultEnv(),{folderId:x,folderName:d}),P("ok","/config folder",d,`id: ${x}`),ge(m.load()),p()},onCancel:p}),renderWindowSizePicker:p=>(0,y.jsx)(yi,{currentWidth:C.window_size.width,currentHeight:C.window_size.height,onSelect:(x,d)=>{m.set("window_size",{width:x,height:d}),ge(m.load()),P("ok","/config set-window",`${x} \xD7 ${d}`),p()},onCancel:p})}),Be&&(0,y.jsx)(b,{paddingX:1,marginTop:1,children:(0,y.jsx)(s,{color:Be.color,children:Be.text})})]}),Kr==="chat"&&(0,y.jsxs)(y.Fragment,{children:[(()=>{let p=Zi({isRunning:_.isRunning,bifurcationInfo:_.bifurcationInfo,steps:_.steps,cmInitCounts:_.cmInitCounts,replayInfo:_.replayInfo});return p?(0,y.jsx)(Qi,{label:p.label,hasBifurcation:p.hasBifurcation}):null})(),_.isRunning&&_.steps.length>0&&(0,y.jsx)(Ji,{steps:_.steps,bifurcated:!!_.bifurcationInfo&&!_.bifurcationInfo.isSingleFlow,flows:_.bifurcationInfo?.flows,cmInitCounts:_.cmInitCounts,onStepCommit:le,describe:Ar.text,describeVisible:Ar.visible,describeRevealing:Ar.revealing},`run-${Y.current}`),pe.runViewProps&&(0,y.jsx)($s,{...pe.runViewProps,onCancel:()=>{pe.runViewProps?.onCancel?.(),pe.cancel()}}),Er&&(0,y.jsx)(Il,{onClose:()=>Bi(!1),version:ot,environment:S.creds.getDefaultEnv(),sessionId:c.sessionId,runUrl:C.default_url??Eo,mode:ve}),Cr&&(0,y.jsx)(_l,{cwd:process.cwd(),currentOrgId:String(Ge?.org_id??""),onClose:()=>Qr(!1),onRun:p=>{if(_.isRunning||ne.isStreaming||pe.running){setTimeout(()=>P("error","/testmd","Finish or cancel the current run first."),0);return}Qr(!1),!(ve==="generate"&&!dt.requestSwitch("run"))&&(ve==="generate"&&setTimeout(()=>P("ok","/testmd",`Switched to Run mode to run ${p.relPath}`,void 0,l.orange),0),pe.start(p.path).catch(x=>setTimeout(()=>P("error","/testmd",`Run failed: ${x.message}`),0)))},onExport:p=>{Qr(!1),Xs(p.path,{language:C.code_export.language??"python",env:de}).then(x=>setTimeout(()=>P("ok","/testmd",`Exported code \u2192 ${x.codeDir}`),0)).catch(x=>setTimeout(()=>P("error","/testmd",`Export failed: ${x.message}`),0))}}),xt&&!_.isRunning&&(()=>{let p=Ui.find(x=>x.id===xt);return p?.children?(0,y.jsx)(xi,{items:p.children,onRunSelected:()=>Tr(null),onDismiss:()=>Tr(null),onActiveViewChange:Li,renderLoginWizard:x=>{let d=L?.phase??"wizard";if(d==="project")return(0,y.jsx)(sr,{resolver:S.getResolver(),currentProjectId:null,env:L.env,onSelect:(h,E)=>{S.creds.saveProfileConfig(L.profile,L.env,{project_id:h,project_name:E}),P("ok","/config project",E,`id: ${h}`),Te(B=>B?{...B,phase:"folder"}:null)},onCancel:async()=>{if(!L)return;let h=await ao(L.profile,L.env);h&&(pt(S.creds,m,L.profile,L.env,{projectId:h.id,projectName:h.name}),P("ok","/config project",h.name,`id: ${h.id}`),Te(E=>E?{...E,phase:"folder"}:null))}});if(d==="folder"){let h=S.creds.loadProfileConfig(L.profile,L.env);return(0,y.jsx)(ar,{resolver:S.getResolver(),projectId:h?.project_id??"",currentFolderId:null,env:L.env,onSelect:(E,B)=>{S.creds.saveProfileConfig(L.profile,L.env,{folder_id:E,folder_name:B}),P("ok","/config folder",B,`id: ${E}`),ut(L.profile,L.env),Te(null),x()},onCancel:async()=>{if(!L)return;let E=S.creds.loadProfileConfig(L.profile,L.env);if(!E?.project_id)return;let B=await co(L.env,E.project_id);B&&(pt(S.creds,m,L.profile,L.env,{folderId:B.id,folderName:B.name}),P("ok","/config folder",B.name,`id: ${B.id}`),ut(L.profile,L.env),Te(null),x())}})}return(0,y.jsx)(mn,{devMode:process.env.KANE_DEV_MODE==="1",profiles:S.creds.listProfiles(),onBasicLogin:async(h,E,B,U)=>{let{validateBasicAuth:q}=await import("./validate-basic-WILRWRRP.js");await q(E,B,U),S.creds.saveBasicAuth(h,E,{username:B,access_key:U}),S.creds.setActiveProfile(h),S.creds.setDefaultEnv(E),it(S.creds,m,h,E),S.setTokenValid(!0),Qe()},onOAuthLogin:async(h,E)=>{S.creds.setDefaultEnv(E),await S.login(h),it(S.creds,m,h,E),Qe()},onComplete:(h,E)=>{bt(ro(E),nt).then(()=>{Te({phase:"project",profile:h,env:E})}).catch(()=>{Te({phase:"project",profile:h,env:E})})},onCancel:()=>{Te(null),x()}})},renderProfilesView:x=>(0,y.jsx)(Po,{creds:S.creds,onSwitch:(d,h)=>{let E=S.creds.getActiveProfile()??"(none)";S.creds.setActiveProfile(d),S.creds.setDefaultEnv(h),it(S.creds,m,d,h),ut(d,h),Qe(),bt(_i(h),nt).catch(()=>{}),P("ok","/profiles switch",`${E} \u2192 ${d} [${h}]`),x()},onCancel:x}),renderChromeProfilePicker:x=>(0,y.jsx)(Lo,{currentPath:C.chrome_profile_path,onSelect:d=>{m.save({chrome_profile_path:d}),ge(m.load()),P("ok","/config chrome-profile",d),x()},onCancel:x}),renderProjectPicker:x=>(0,y.jsx)(sr,{resolver:S.getResolver(),currentProjectId:C.project_id,env:de,onSelect:(d,h)=>{pt(S.creds,m,S.creds.getActiveProfile()??"default",S.creds.getDefaultEnv(),{projectId:d,projectName:h}),ge(m.load()),P("ok","/config project",h,`id: ${d}`),x()},onCancel:x}),renderFolderPicker:x=>(0,y.jsx)(ar,{resolver:S.getResolver(),projectId:C.project_id??"",currentFolderId:C.folder_id,env:de,onSelect:(d,h)=>{pt(S.creds,m,S.creds.getActiveProfile()??"default",S.creds.getDefaultEnv(),{folderId:d,folderName:h}),ge(m.load()),P("ok","/config folder",h,`id: ${d}`),x()},onCancel:x}),renderWindowSizePicker:x=>(0,y.jsx)(yi,{currentWidth:C.window_size.width,currentHeight:C.window_size.height,onSelect:(d,h)=>{m.set("window_size",{width:d,height:h}),ge(m.load()),P("ok","/config set-window",`${d} \xD7 ${h}`),x()},onCancel:x})},xt):null})(),xt&&Be&&(0,y.jsx)(b,{paddingX:1,marginTop:1,children:(0,y.jsx)(s,{color:Be.color,children:Be.text})}),ve==="run"&&!xt&&!Er&&!Cr&&!qt&&_.askingUser&&(0,y.jsxs)(b,{flexDirection:"column",marginLeft:2,paddingLeft:1,marginTop:1,children:[(0,y.jsx)(b,{marginLeft:1,children:(0,y.jsx)(s,{color:l.orange,bold:!0,children:"Agent Question"})}),(0,y.jsx)(b,{borderStyle:"round",borderColor:l.orange,flexDirection:"column",paddingX:2,paddingY:1,width:70,children:(0,y.jsxs)(b,{children:[(0,y.jsx)(b,{width:3,children:(0,y.jsx)(s,{color:l.orange,bold:!0,children:"?"})}),(0,y.jsx)(b,{flexShrink:1,children:(0,y.jsx)(s,{wrap:"wrap",children:_.askingUser})})]})})]}),Zr&&(()=>{let p=Zr,x=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?",d=p.reason==="switch"?"Discard & switch":"Yes, end";return(0,y.jsx)(ku,{message:x,confirmLabel:d,onConfirm:async()=>{if(p.reason==="switch"){let E=p.to;Ir(null),dt.confirmSwitch(E);return}Lt();let h=p.pendingArgs;if(Ir(null),await ne.end(),ne.reset(),h.profile){let E=S.creds.getDefaultEnv(),B=S.creds.getActiveProfile()??"(none)";S.creds.setActiveProfile(h.profile),S.creds.setDefaultEnv(E),it(S.creds,m,h.profile,E),ut(h.profile,E),Qe(),bt({kind:"switch",env:E},nt).catch(()=>{}),P("ok","/profiles switch",`${B} \u2192 ${h.profile} [${E}]`)}else wo("/profiles switch")},onCancel:()=>Ir(null)})})(),ve==="run"&&!xt&&!Er&&!Cr&&!qt&&!Zr&&!pe.running&&(0,y.jsx)(Dt,{onSubmit:wo,onEscape:void 0,history:Hu,commands:yl,clearSeq:Zu,placeholder:_.askingUser?"Type your answer...":_.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"}]}),ve==="generate"&&!xt&&!Er&&!Cr&&!qt&&!Zr&&(0,y.jsx)(Cu,{tcg:ne,gm:dt,history:Gu,tuiConfig:C,browse:Bt.isOpen?{target:Bt.target,onClose:Bt.close,excluded:Bt.excluded,onToggleCase:Bt.toggleCase,onToggleScenario:Bt.toggleScenario,getStatus:dt.bifurcation.getStatus,getResult:dt.bifurcation.getResult}:null})]})]}),V&&W&&tt&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(Do,{steps:vr,status:tt.status,testUrl:tt.testUrl,error:tt.error}),tt.status==="success"&&(0,y.jsx)(hn,{recordedTestPath:Yr?.recordedTestPath,outputDir:Yr?.outputDir,shareableLink:tt.testUrl,testCaseLink:tt.testCaseLink,codeExportDir:tt.codeExportDir,autoExit:!1})]}),qt&&(0,y.jsx)(fa,{defaultName:qt,onSubmit:id}),wr&&(0,y.jsx)(ys,{packPath:wr.packPath,viewerBase:Ss(de??"prod"),onDone:()=>wr.resolve()}),Sr&&(0,y.jsx)(da,{onSubmit:od}),Jt&&tt&&(0,y.jsx)(Do,{steps:vr,status:tt.status,error:tt.error}),V&&!W&&(0,y.jsx)(ul,{profile:tr,environment:de,tokenValid:S.tokenValid,runCount:re,sessionId:c.sessionId,viewMode:Kr,breadcrumb:ad,chatMode:ve,footerHint:rd,tcgRequestId:ne.requestId,tcgStreamStatus:ne.isStreaming?"streaming":ne.isReconnecting?"reconnecting":ne.isTerminal&&ne.state.status.toLowerCase()==="completed"?"completed":ne.isTerminal&&ne.state.status.toLowerCase()==="failed"?"failed":null})]})}function Yg({profiles:e,onSelect:t,onCancel:r,validating:n}){let[o,i]=(0,R.useState)(0);return Ie((a,u)=>{if(!n){if(u.escape){r();return}if(u.upArrow&&o>0&&i(f=>f-1),u.downArrow&&o<e.length-1&&i(f=>f+1),u.return){let f=e[o];t(f.profile,f.env)}}}),(0,y.jsxs)(b,{flexDirection:"column",paddingX:1,children:[(0,y.jsx)(s,{color:"#ff9500",bold:!0,children:"Select a profile:"}),(0,y.jsx)(b,{marginTop:1,flexDirection:"column",children:e.map((a,u)=>(0,y.jsxs)(s,{children:[u===o?"\u276F ":" ",(0,y.jsx)(s,{color:u===o?"#ff9500":"white",bold:u===o,children:a.profile}),(0,y.jsxs)(s,{color:"gray",children:[" [",a.env,"]"]})]},`${a.profile}-${a.env}`))}),n&&(0,y.jsx)(b,{marginTop:1,children:(0,y.jsx)(s,{color:"yellow",children:"Validating credentials..."})}),!n&&(0,y.jsx)(b,{marginTop:1,children:(0,y.jsx)(s,{color:"gray",children:"Esc = new login"})})]})}export{vl as a,Du as b,Nu as c,dR as d};
|
|
22
|
+
${d}`})}},[_.runError,_.isRunning,_.lastRunEnd,Se,c]);let on=(0,R.useCallback)(async(p={})=>{let x=G.current;return x?(c.flushRecorder(),await bs(x,{saved:!!c.sessionName,local:e,recordedTestPath:c.recorder?.lastWrittenPath??null,externalIdInput:{session_id:c.sessionId,commit_id:c.sessionId,test_id:c.testId??void 0,testcase_id:p.testcaseId??c.testcaseId??void 0,project_id:C.project_id??void 0,folder_id:C.folder_id??void 0,org_id:c.orgId??void 0,session_name:c.sessionName??void 0,user_name:c.userName??void 0,user_email:c.userEmail??void 0,sharable_link:Ns(De(de).testManagerUiUrl,C.project_id,p.testcaseId??c.testcaseId,p.shareId)},cdpBrowserCapture:ye.current??void 0,model:C.model,tuiLogPath:Mt(c.sessionDir,"tui.log"),log:(d,h,E,B)=>c.log(d,h,E,B)})):null},[c,C]),sn=(0,R.useCallback)(async p=>{let x=G.current?.packDir??null,d=await on({testcaseId:p?.testcaseId,shareId:p?.shareId});return G.current=null,ce.current=!1,ye.current=null,d?.sealed?x:null},[on]),an=(0,R.useCallback)(async()=>{c.log("info","EXIT_UPLOAD_START","Starting exit upload pipeline"),br(gn()),gt({status:"uploading"});let p=S.getResolvedBasicAuth(),x=null;if(!p&&(x=await S.getToken(),!x))return c.log("warn","EXIT_UPLOAD_ABORTED","Exit upload aborted \u2014 no auth available"),null;let d=Ge??await Wt();if(!d)return c.log("warn","EXIT_UPLOAD_ABORTED","Exit upload aborted \u2014 no TMS credentials"),c.setUploadStatus("failed","Could not get TMS credentials"),null;c.log("info","EXIT_UPLOAD_CONFIG","Exit upload configuration",{test_id:c.testId,commit_id:c.sessionId,project_id:C.project_id,session_dir:c.sessionDir,run_dirs:c.getRunDirs()});let h={basicAuth:p??null,token:x,resolver:S.getResolver(),resolvedCreds:d};X.current&&(c.log("info","SCREENSHOT_UPLOAD_DRAIN","Draining screenshot queue before pipeline"),await lt.current.settle(),await X.current.drain(),c.log("info","SCREENSHOT_UPLOAD_DRAINED","Screenshot queue drained"));let E=Us({session:c,env:de,auth:h,variables:Pt.current??{raw:{},auteur:{},auteurObjective:"",secretEntries:[],nonSecretEntries:[]},variableIds:Rr.current,projectId:C.project_id,folderId:C.folder_id,totalSteps:mo.current,totalDuration:po.current,screenshotExtMap:X.current?.getExtMap(),codeExport:qs({codeExport:t,codeLanguage:r,skipCodeValidation:n},C.code_export),onProgress:(q,oe,se)=>{c.log("info","EXIT_PROGRESS","Upload progress",{step:q,status:oe,detail:se}),br(be=>Ds(be,q,oe,se))},log:(q,oe,se,be)=>c.log(q,oe,se,be),shouldUploadArtifacts:!0,shouldReplaceLocalOutput:!1,shouldCommit:!1,isFirstRun:!0,evidence:G.current?{executionId:G.current.executionId,packTestDir:G.current.packTestDir,sealedPackPath:G.current.packDir,sealFn:on}:void 0}),U=await new Gs(E).execute();if(U.success){c.log("info","EXIT_UPLOAD_OK","Exit upload succeeded",{test_id:U.testId,testcase_id:U.testcaseId??null,share_id:U.shareId??null}),c.setUploadStatus("uploaded"),U.testId&&c.setTestId(U.testId),U.testcaseId&&c.setTestcaseId(U.testcaseId);let q=De(de),oe=C.project_id,se=U.testcaseId&&U.shareId&&oe?Oo(q.testManagerUiUrl,oe,U.testcaseId,U.shareId):void 0,be=U.testcaseId&&oe?No(q.testManagerUiUrl,oe,U.testcaseId):void 0;gt({status:"success",testUrl:se,testCaseLink:be,codeExportDir:U.codeExportDir}),Au({shareableLink:se,testCaseLink:be,codeExportDir:U.codeExportDir})}else c.log("error","EXIT_UPLOAD_FAILED","Exit upload failed",{error:U.error}),c.setUploadStatus("failed",U.error),gt({status:"failed",error:U.error});return U},[S,de,c,C,Ge,Wt,on]),cn=(0,R.useCallback)(async()=>{c.log("info","SESSION_RESET_START","Starting session reset via /new"),Ut(!0);let p=c.getFlows();p.length>0&&le((0,y.jsx)(Ri,{flows:p}));let x=null;if(!e)try{x=await an()??null}catch(B){c.log("error","SESSION_RESET_UPLOAD_FAILED","Upload failed during /new",{error:String(B)}),Se({type:"error",text:"Upload failed \u2014 session data saved locally."})}let d=null;try{let{persistRecordedSession:B}=await import("./persist-recorded-session-BW3YSFMP.js");d=await B(c,{testcaseId:c.testcaseId??void 0,projectId:C.project_id??void 0,folderId:C.folder_id??void 0,codeExportDir:x?.codeExportDir,packTestDir:G.current?.packTestDir})}catch(B){c.log("error","SESSION_RESET_PERSIST_FAILED","Persist failed during /new",{error:String(B)})}if(x?.success&&x.testcaseId||d){let B=De(de),U=C.project_id,q=x?.testcaseId;le((0,y.jsx)(hn,{recordedTestPath:d?.recordedTestPath,outputDir:d?.outputDir,shareableLink:q&&x?.shareId&&U?Oo(B.testManagerUiUrl,U,q,x.shareId):void 0,testCaseLink:q&&U?No(B.testManagerUiUrl,U,q):void 0,codeExportDir:x?.codeExportDir,autoExit:!1}))}let h=await sn(x);h&&Se({type:"info",text:ws(h)}),c.testId&&Wr(B=>[...B,{testId:c.testId,runCount:re}]),en.killChrome(),await c.finish("complete");let E=new pn;E.start({model:C.model,environment:de,profile:tr??null}),w.current=E,T(B=>B+1),c.log("info","SESSION_RESET_COMPLETE","Session reset complete",{new_session_id:E.sessionId}),await bt({kind:"resessionize",env:de},nt),fe(0),mo.current=0,po.current=0,Y.current=0,Je.current="",Pt.current=null,Rr.current={},un.current=0,vo.current=0,go.current=null,ho.current=null,fo.current=null,We.current=null,ae.current=!1,uo.current=null,Ce(null),A(null),gt(null),br(gn()),Ut(!1),le((0,y.jsxs)(b,{flexDirection:"column",marginY:1,children:[(0,y.jsx)(s,{color:l.dim,children:"\u2500".repeat(44)}),(0,y.jsx)(s,{color:l.green,bold:!0,children:"New session started"})]}))},[c,Se,le,e,an,sn,en,re,C,de,tr,nt]),Mi=(0,R.useCallback)(async()=>{if(!(c.nextRunIndex()>0)){Se({type:"info",text:"No runs in current session."});return}if(_.isRunning){Se({type:"error",text:"Cannot reset while a run is in progress. Cancel the run first."});return}if(C.mode==="testing"&&!c.sessionName){yr("new"),Qt(Fo());return}await cn()},[c,_,Se,C.mode,cn]),Fi=(0,R.useCallback)(async()=>{await c.finish("complete"),lr(0,"Session complete")},[c]),od=(0,R.useCallback)(async p=>{Xr(!1);let x=c.testId??($e.length>0?$e[$e.length-1].testId:null);if(p&&x){c.log("info","EXIT_FEEDBACK_SUBMIT","Submitting session feedback",{choice:p});try{let d=De(de),h=S.getResolvedBasicAuth();h&&await Nu({tmsBaseUrl:d.tmsBaseUrl,username:h.username,accessKey:h.access_key,testId:x,feedbackType:p,log:(E,B,U,q)=>c.log(E,B,U,q)})}catch(d){c.log("error","EXIT_FEEDBACK_FAILED","Feedback submission failed",{error:String(d)})}}else c.log("info","EXIT_FEEDBACK_SKIPPED","Feedback skipped");Fi()},[de,S,c,Fi,$e]),ln=(0,R.useCallback)(async()=>{let p=c.nextRunIndex()>0,x=null;if(p&&!e){c.log("info","EXIT_WITH_ACTIVE_SESSION","Exit with active session \u2014 uploading first"),ie(!0);try{x=await an()??null}catch(E){c.log("error","EXIT_UPLOAD_FAILED","Exit upload failed",{error:String(E)})}c.testId&&Wr(E=>[...E,{testId:c.testId,runCount:re}])}try{let{persistRecordedSession:E}=await import("./persist-recorded-session-BW3YSFMP.js"),B=await E(c,{testcaseId:c.testcaseId??void 0,projectId:C.project_id??void 0,folderId:C.folder_id??void 0,codeExportDir:x?.codeExportDir,packTestDir:G.current?.packTestDir});B&&no(B)}catch(E){c.log("error","EXIT_PERSIST_FAILED","Persist failed during /exit",{error:String(E)})}let d=await sn(x);if(d&&process.stdout.isTTY&&(ie(!0),await new Promise(E=>zr({packPath:d,resolve:E})),zr(null)),p&&!e&&await c.finish("complete"),!(c.testId??($e.length>0?$e[$e.length-1].testId:null))||e){await c.finish("complete"),lr(0,"No test ID \u2014 quick exit");return}ie(!0),Xr(!0)},[c,e,an,sn,re,$e,C]),$t=(0,R.useCallback)(async()=>{if(W)return;c.log("info","EXIT_START","TUI exit initiated");let p=C.mode==="testing",x=c.nextRunIndex()>0;if(p&&x&&!c.sessionName){yr("exit"),Qt(Fo());return}await ln()},[W,c,C.mode,ln]),id=(0,R.useCallback)(p=>{p&&c.setSessionName(p);let x=Ht;Qt(null),yr(null),x==="new"?cn():ln()},[c,Ht,ln,cn]);(0,R.useEffect)(()=>{if(!W)return;let p=300*1e3,x=setTimeout(async()=>{c.setUploadStatus("failed","Upload timed out after 5m"),await c.finish("complete"),lr(0,"Upload timed out after 5m")},p);return()=>clearTimeout(x)},[W,c]);let un=R.default.useRef(0),xo=R.default.useRef(null),vo=R.default.useRef(0),bo=R.default.useRef(0),So=R.default.useRef(null);Ie((p,x)=>{if(x.ctrl&&p==="c"){if(ve==="generate"&&(ne.isStreaming||dt.submitting)){dt.cancelGenerate(),bo.current++,So.current&&clearTimeout(So.current),So.current=setTimeout(()=>{bo.current=0},2e3),bo.current>=2&&$t();return}if(!pe.running){if(W){vo.current+=1,vo.current>=2&&(c.setUploadStatus("pending","Force exit by user"),c.finish("complete"),lr(0,"Force exit by user"));return}if(_.isRunning){_.cancelRun(),Se({type:"info",text:"Run cancelled."}),un.current++,xo.current&&clearTimeout(xo.current),xo.current=setTimeout(()=>{un.current=0},2e3),un.current>=2&&$t();return}$t()}}}),Ie((p,x)=>{if(x.ctrl&&p==="t"&&ve==="generate"&&!ne.isStreaming){nn("no thinking yet");return}});let Ui=R.default.useMemo(()=>{let p=S.creds.getActiveProfile()??"none",x=S.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:me.headless?"on":"off",options:[{label:"off",value:"off"},{label:"on",value:"on"}],onValue:d=>{kr(h=>({...h,headless:d==="on"}))}},{id:"run-max-steps",label:"Max Steps",type:"text-input",currentValue:String(me.maxSteps),onValue:d=>{let h=parseInt(d,10);h>0&&kr(E=>({...E,maxSteps:h}))}},{id:"run-timeout",label:"Timeout (sec)",type:"text-input",currentValue:me.timeout?String(me.timeout):"",placeholder:"0 = no timeout",onValue:d=>{let h=parseInt(d,10);kr(E=>({...E,timeout:isNaN(h)?0:h}))}},{id:"run-cdp",label:"CDP Endpoint",type:"text-input",currentValue:me.cdpEndpoint,placeholder:"http://127.0.0.1:9222",onValue:d=>{kr(h=>({...h,cdpEndpoint:d}))}},{id:"run-ws",label:"WS Endpoint",type:"text-input",currentValue:me.wsEndpoint,placeholder:"wss://...",onValue:d=>{kr(h=>({...h,wsEndpoint:d}))}}]}]},{id:"auth",label:"Auth",type:"submenu",children:[{id:"login",label:"Login",type:"action",onLoginWizard:()=>{}},{id:"logout",label:"Logout",type:"action",onAction:()=>{S.logout().then(d=>{Qe();let h=S.creds.getActiveProfile(),E=S.creds.getDefaultEnv();ut(h,E);let B=Ou(h,E);bt(B,nt).catch(()=>{}),d?P("ok","/logout",`Logged out: ${d.profile} [${d.env}]`):P("ok","/logout","No active profile")}).catch(()=>{P("error","/logout","Logout failed")})}},{id:"whoami",label:"Who Am I",type:"action",onInfo:()=>{let d=S.creds.getActiveProfile()??"none",h=S.creds.getDefaultEnv(),E=S.creds.loadBasicAuth(d,h),B=E?"basic":S.creds.loadCredentials(d,h)?"oauth":"not configured";return{title:"Who Am I",sections:[{label:"Identity",entries:[{key:"Profile",value:d},{key:"Environment",value:h}]},{label:"Authentication",entries:[{key:"Method",value:B},...E?[{key:"Username",value:E.username}]:[]]},{label:"Token",entries:[{key:"Status",value:S.tokenValid?"valid":"not logged in",color:S.tokenValid?l.green:l.red}]}]}}},{id:"balance",label:"Credit Balance",type:"action",suppressFeedback:!0,onAction:()=>{(async()=>{let d=S.creds.getActiveProfile()??"default",h=S.creds.getDefaultEnv(),E=De(h);try{let B=S.getBasicAuth(),U=B?null:await S.getToken();if(!B&&!U){et({text:"Not authenticated. Run /login first.",color:l.red});return}let{ControllerClient:q}=await import("./controller-client-RD2YEMAH.js"),se=await(B?new q(E.controllerBaseUrl,{username:B.username,accessKey:B.access_key}):new q(E.controllerBaseUrl,U)).getCreditBalance();et({text:`Credits \u2014 available: ${se.available_credits}, total: ${se.total_credits} (${d} / ${h})`,color:l.green})}catch(B){et({text:`Balance check failed: ${B instanceof Error?B.message:String(B)}`,color:l.red})}Ft.current&&clearTimeout(Ft.current),Ft.current=setTimeout(()=>{et(null),Ft.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:C.mode},{key:"Assertion Mode",value:C.assertion_mode},{key:"WebSocket Capture",value:C.network_ws?"on":"off"},{key:"SSE Capture",value:C.network_sse?"on":"off"},{key:"Bug Detection",value:C.bug_detection},{key:"Final Validation",value:C.final_validation?"on":"off"},{key:"Hints",value:C.hints_enabled===!1?"off":"on"}]},{label:"Browser",entries:[{key:"Window",value:`${C.window_size.width}x${C.window_size.height}`},{key:"Chrome Profile",value:C.chrome_profile_path?C.chrome_profile_path.split("/").pop()??C.chrome_profile_path:"(temporary)"}]},{label:"Project",entries:[{key:"Project",value:C.project_name?`${C.project_name} (${C.project_id})`:C.project_id??"(none)"},{key:"Folder",value:C.folder_name?`${C.folder_name} (${C.folder_id})`:C.folder_id??"(none)"},{key:"Default URL",value:C.default_url??Eo}]},{label:"Code Export",entries:[{key:"Enabled",value:C.code_export.enabled?"yes":"no"},{key:"Language",value:C.code_export.language},{key:"Skip Validation",value:C.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",...C.project_id?{onFolderPicker:()=>{}}:{onInfo:()=>({title:"Folder",sections:[{entries:[{key:"Status",value:"Select a project first",color:l.dim}]}]})}},{id:"config-window",label:"Window Size",type:"action",currentValue:`${C.window_size.width}x${C.window_size.height}`,onWindowSizePicker:()=>{}},{id:"config-default-url",label:"Default URL",type:"text-input",currentValue:C.default_url??"",placeholder:"https://example.com",onValue:d=>{let h=$o(d);if(!h){P("error","/config set-url","Enter a valid URL (e.g. example.com)");return}m.set("default_url",h),ge(m.load()),P("ok","/config set-url",h)}},{id:"config-run",label:"Run",type:"submenu",children:[{id:"config-mode",label:"Mode",type:"select",currentValue:C.mode,options:[{label:"testing",value:"testing"},{label:"action",value:"action"}],onValue:d=>{(d==="action"||d==="testing")&&(m.set("mode",d),ge(m.load()),P("ok","/config set-mode",d))}},{id:"config-assertion-mode",label:"Assertion Mode",type:"select",currentValue:C.assertion_mode,options:[{label:"visual \u2014 vision model (default)",value:"visual"},{label:"dom \u2014 DOM extraction & assertions preferred",value:"dom"}],onValue:d=>{(d==="visual"||d==="dom")&&(m.set("assertion_mode",d),ge(m.load()),P("ok","/config set-assertion-mode",d))}},{id:"config-final-validation",label:"Final Validation",type:"select",currentValue:C.final_validation?"on":"off",options:[{label:"off \u2014 no cp_final checkpoint (default)",value:"off"},{label:"on \u2014 append cp_final, verifying the objective as a whole",value:"on"}],onValue:d=>{(d==="on"||d==="off")&&(m.set("final_validation",d==="on"),ge(m.load()),P("ok","/config set-final-validation",d))}},{id:"config-network-ws",label:"WebSocket Capture",type:"select",currentValue:C.network_ws?"on":"off",options:[{label:"off \u2014 no WebSocket frame capture (default)",value:"off"},{label:"on \u2014 capture WebSocket frames for assertions/extraction",value:"on"}],onValue:d=>{(d==="on"||d==="off")&&(m.set("network_ws",d==="on"),ge(m.load()),P("ok","/config set-network-ws",d))}},{id:"config-network-sse",label:"SSE Capture",type:"select",currentValue:C.network_sse?"on":"off",options:[{label:"off \u2014 no SSE message capture (default)",value:"off"},{label:"on \u2014 capture SSE messages (Chromium-only) for assertions/extraction",value:"on"}],onValue:d=>{(d==="on"||d==="off")&&(m.set("network_sse",d==="on"),ge(m.load()),P("ok","/config set-network-sse",d))}},{id:"config-bug-detection",label:"Bug Detection",type:"select",currentValue:C.bug_detection,options:[{label:"off \u2014 no bug detection while authoring (default)",value:"off"},{label:"stop \u2014 halt the run when a confirmed product bug is found",value:"stop"},{label:"continue \u2014 record confirmed bugs and keep authoring",value:"continue"}],onValue:d=>{(d==="off"||d==="stop"||d==="continue")&&(m.set("bug_detection",d),ge(m.load()),P("ok","/config set-bug-detection",d))}}]},{id:"config-hints",label:"CLI Hints",type:"select",currentValue:C.hints_enabled===!1?"off":"on",options:[{label:"on",value:"on"},{label:"off",value:"off"}],onValue:d=>{let h=d==="on";m.set("hints_enabled",h),ge(m.load()),P("ok","/config hints",`CLI hints ${h?"enabled":"disabled"}`)}},{id:"config-generate",label:"Generate",type:"submenu",currentValue:`${C.generate.scenario_limit}x${C.generate.per_scenario_limit}`,children:[{id:"config-generate-scenario-limit",label:"Scenario limit",type:"text-input",currentValue:String(C.generate.scenario_limit),placeholder:"5",onValue:d=>{let h=parseInt(d,10);if(!Number.isFinite(h)||h<1||h>20){P("error","/config",`Scenario limit must be 1-20 (got ${d})`);return}m.set("generate",{...C.generate,scenario_limit:h}),ge(m.load()),P("ok","/config",`Scenario limit: ${h}`)}},{id:"config-generate-per-scenario-limit",label:"Per-scenario limit",type:"text-input",currentValue:String(C.generate.per_scenario_limit),placeholder:"4",onValue:d=>{let h=parseInt(d,10);if(!Number.isFinite(h)||h<1||h>20){P("error","/config",`Per-scenario limit must be 1-20 (got ${d})`);return}m.set("generate",{...C.generate,per_scenario_limit:h}),ge(m.load()),P("ok","/config",`Per-scenario limit: ${h}`)}},{id:"config-generate-memory",label:"Memory",type:"select",currentValue:C.generate.memory_enabled?"on":"off",options:[{label:"on",value:"on"},{label:"off",value:"off"}],onValue:d=>{let h=d==="on";m.set("generate",{...C.generate,memory_enabled:h}),ge(m.load()),P("ok","/config",`Memory: ${h?"on":"off"}`)}}]},{id:"config-code-export",label:"Code Export",type:"submenu",currentValue:C.code_export.enabled?"enabled":"disabled",children:[{id:"config-code-export-enabled",label:"Enabled",type:"select",currentValue:C.code_export.enabled?"on":"off",options:[{label:"off",value:"off"},{label:"on",value:"on"}],onValue:d=>{m.set("code_export",{...C.code_export,enabled:d==="on"}),ge(m.load()),P("ok","/config code-export enabled",d)}},{id:"config-code-export-language",label:"Language",type:"select",currentValue:C.code_export.language,options:[{label:"python",value:"python"},{label:"javascript",value:"javascript"}],onValue:d=>{d!=="python"&&d!=="javascript"||(m.set("code_export",{...C.code_export,language:d}),ge(m.load()),P("ok","/config code-export language",d))}},{id:"config-code-export-skip-validation",label:"Skip Validation",type:"select",currentValue:C.code_export.skip_validation?"on":"off",options:[{label:"off",value:"off"},{label:"on",value:"on"}],onValue:d=>{m.set("code_export",{...C.code_export,skip_validation:d==="on"}),ge(m.load()),P("ok","/config code-export skip-validation",d)}}]}]},{id:"exit",label:"Exit",type:"action",onAction:()=>{$t()}}]},[S,m,C,Se,$t,me,Qe,P]),wo=(0,R.useCallback)(p=>{if(_.askingUser){let d=_.askingUser;le((0,y.jsxs)(b,{flexDirection:"column",marginLeft:2,paddingLeft:1,marginTop:1,children:[(0,y.jsx)(b,{marginLeft:1,children:(0,y.jsx)(s,{color:l.orange,bold:!0,children:"Agent Question"})}),(0,y.jsxs)(b,{borderStyle:"round",borderColor:l.orange,flexDirection:"column",paddingX:2,paddingY:1,width:70,children:[(0,y.jsxs)(b,{children:[(0,y.jsx)(b,{width:3,children:(0,y.jsx)(s,{color:l.orange,bold:!0,children:"?"})}),(0,y.jsx)(b,{flexShrink:1,children:(0,y.jsx)(s,{wrap:"wrap",children:d})})]}),(0,y.jsxs)(b,{marginTop:1,children:[(0,y.jsx)(b,{width:3,children:(0,y.jsx)(s,{color:l.dim,bold:!0,children:"\u2192"})}),(0,y.jsx)(b,{flexShrink:1,children:(0,y.jsx)(s,{wrap:"wrap",children:p})})]})]})]})),go.current=null,_.sendAnswer(p);return}if(c.logCommand(p),_.isRunning){Se({type:"error",text:"Run in progress. Ctrl+C to cancel."});return}let x=Nn(p);if(x){if(!Rl(x.command,ve)){P("error",`/${x.command}`,`/${x.command} isn't available in ${ve==="run"?"Run":"Generate"} mode.`);return}switch(x.command){case"profiles":if(ve==="generate"&&ne.requestId&&x.args.action==="switch"){Ir({reason:"profile",pendingArgs:x.args});return}Tr("auth");return;case"login":case"logout":case"whoami":case"balance":case"auth":Tr("auth");return;case"config":if(x.args.action==="set-url"){let d=$o(x.args.value);if(!d){P("error","/config set-url","Usage: /config set-url <url>");return}m.set("default_url",d),ge(m.load()),P("ok","/config set-url",d);return}Tr("config");return;case"help":Bi(!0);return;case"testmd":if(_.isRunning||ne.isStreaming||pe.running){P("error","/testmd","Finish or cancel the current run/generation first.");return}pe.clearResult(),Qr(!0);return;case"generate":if(pe.running){P("error","/generate","Finish or cancel the running test first.");return}ve==="run"?dt.requestSwitch("generate")&&P("ok","/generate","Switched to Generate mode.",void 0,l.generateAccent):P("ok","/generate","Already in Generate mode.",void 0,l.generateAccent);return;case"run":{let d=Tl(ve,x.args.objective);switch(d.kind){case"run":lo(d.objective,x.args.url);return;case"reject":P("error","/run",'Switch to Run mode first (bare /run), then /run "objective".');return;case"already":P("ok","/run","Already in Run mode.",void 0,l.orange);return;case"toggle":dt.requestSwitch("run")&&P("ok","/run","Switched to Run mode.",void 0,l.orange);return}return}case"update":{(async()=>{let{getUpdateCommand:d}=await import("./version-check-MUPSKONS.js");P("ok","/update",`To update kane-cli, run: ${d()}`)})();return}case"summary":{if(ve==="generate"&&!ne.requestId){nn("no generation yet"),P("ok","/summary","(no generation yet)");return}let d=c.getFlows();if(d.length===0){P("ok","/summary","No runs yet in this session.");return}let h=x.args.index?parseInt(x.args.index,10):void 0;if(h!==void 0&&!c.getFlow(h)){P("error","/summary",`No flow at index ${h}`,`${d.length} flow${d.length===1?"":"s"} available. Use /summary to see all.`);return}le((0,y.jsx)(Ri,{flows:d,filterIndex:h})),P("ok","/summary",h!==void 0?`Flow ${h}`:`${d.length} flow${d.length===1?"":"s"}`);return}case"new":ve==="generate"&&ne.requestId&&(Lt(),ne.end().catch(d=>{P("error","/new",`Could not end generation cleanly: ${d.message}`)}),ne.reset()),Mi(),P("ok","/new","Session reset");return;case"name":{let d=x.raw.replace(/^\/name\s*/,"").trim();if(!d){P("error","/name","Usage: /name <new-name>");return}(async()=>{let{validateNameOrThrow:h}=await import("./name-validator-5YGJXLZ7.js");try{h(d),c.setSessionName(d),P("ok","/name",`Session name set: ${d}`)}catch(E){P("error","/name",E.message)}})();return}case"cancel":if(ve==="generate"&&ne.isStreaming){Lt(),ne.cancel(),P("ok","/cancel","Cancelled");return}if(ve==="generate"&&!ne.requestId){nn("no generation yet"),P("ok","/cancel","(no generation yet)");return}if(pe.running){pe.cancel(),P("ok","/cancel","Run cancelled");return}_.cancelRun(),P("ok","/cancel","Run cancelled");return;case"clear":P("ok","/clear","Chat cleared");return;case"exit":ve==="generate"&&ne.requestId&&(Lt(),ne.end()),$t();return;default:P("error",`/${x.command}`,"Unknown command");return}}if(p.trim().toLowerCase()==="exit"){$t();return}le((0,y.jsx)(gl,{objective:p})),lo(p,void 0)},[_,Se,P,le,c,lo,$t,Mi,ve,ne.isStreaming,ne.requestId,ne,nn,Lt,pe,C,a]);Ni.current=wo;let qi=(0,R.useRef)(!1);(0,R.useEffect)(()=>{if(!qi.current&&V&&u==="generate"&&f){qi.current=!0;let p=setTimeout(()=>{ed(f)},50);return()=>clearTimeout(p)}},[V,u,f]);let Hi=S.getAuthInfo(),sd=Hi?Hi.method==="basic"?"basic auth":"oauth":"not logged in",ad=(()=>{if(Er)return["help"];if(Cr)return["testmd"];if(L)return L.phase==="wizard"?["auth","login"]:L.phase==="project"?["auth","login","project"]:L.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 xt==="auth"?Jr?["auth",p[Jr]]:["auth"]:xt==="config"?Jr?["config",p[Jr]]:["config"]:xt==="help"?["help"]:_.askingUser?["agent question"]:[]})();return(0,y.jsxs)(b,{flexDirection:"column",children:[!V&&!Pi&&(0,y.jsx)(ml,{onComplete:()=>{let p=S.creds.getActiveProfile(),x=S.creds.getDefaultEnv(),d=p?S.creds.loadCredentials(p,x):null,h=p?S.creds.loadBasicAuth(p,x):null,E=!!(d||h),B=h?.username??p??null;le((0,y.jsx)(Dn,{size:"full",helmetVisibleRows:8,textVisibleRows:7,showMeta:!0,version:ot,authenticated:E,user:B})),Fu(!0);let U=(q,oe,se,be)=>{c.log(q,oe,se,be)};if(Is(S.creds,U).then(q=>{if(q.status==="authenticated"){let{profile:oe,env:se,tmsCreds:be}=q.result;S.creds.setActiveProfile(oe),S.creds.setDefaultEnv(se),Qe(),Ke(be),ht("ready"),O(!0)}else q.status==="needs_pick"?(Vu(q.profiles),ht("pick")):ht("login")}).catch(q=>{c.log("error","STARTUP_GATE_ERROR","Auth gate failed",{error:String(q)}),ht("login")}),o&&o.then(async q=>{if(q){let{getUpdateCommand:oe}=await import("./version-check-MUPSKONS.js");P("ok","update available",`${q.current} \u2192 ${q.latest}`,`Run: ${oe()}`)}}).catch(()=>{}),i&&i.changes.length>0){let q=`kane-cli updated to ${i.toVersion}. Default settings changed:`,oe=[...i.changes.map(se=>`\u2022 ${se.description} (${se.field}: ${JSON.stringify(se.from)} \u2192 ${JSON.stringify(se.to)})`),"","Use /config to review or revert any of these."].join(`
|
|
23
|
+
`);P("ok","defaults updated",q,oe)}}}),!V&&er==="booting"&&Pi&&(0,y.jsx)(b,{paddingX:1,children:(0,y.jsx)(s,{color:"yellow",children:"Checking authentication..."})}),!V&&er==="pick"&&(0,y.jsx)(Yg,{profiles:ju,onCancel:()=>ht("login"),onSelect:async(p,x)=>{S.creds.setActiveProfile(p),S.creds.setDefaultEnv(x),Qe(),oo(!0);let d=(h,E,B,U)=>{c.log(h,E,B,U)};try{let h=await Cs(S.creds,p,x,d);oo(!1),h.status==="authenticated"?(ut(p,x),Ke(h.result.tmsCreds),ht("ready"),O(!0)):ht("login")}catch{oo(!1),ht("login")}},validating:Mu}),!V&&er==="login"&&!L&&(0,y.jsx)(mn,{devMode:process.env.KANE_DEV_MODE==="1",profiles:S.creds.listProfiles(),onBasicLogin:async(p,x,d,h)=>{let{validateBasicAuth:E}=await import("./validate-basic-IYMPP7C7.js");await E(x,d,h),S.creds.saveBasicAuth(p,x,{username:d,access_key:h}),S.creds.setActiveProfile(p),S.creds.setDefaultEnv(x),it(S.creds,m,p,x),S.setTokenValid(!0),Qe()},onOAuthLogin:async(p,x)=>{S.creds.setDefaultEnv(x),await S.login(p),it(S.creds,m,p,x),Qe()},onComplete:(p,x)=>{bt(ro(x),nt).then(()=>{Qe(),Te({phase:"project",profile:p,env:x})}).catch(()=>{Te({phase:"project",profile:p,env:x})})},onCancel:()=>{lr(0,"Login cancelled at startup")}}),!V&&er==="login"&&L?.phase==="project"&&(0,y.jsx)(sr,{resolver:S.getResolver(),currentProjectId:null,env:L.env,onSelect:(p,x)=>{S.creds.saveProfileConfig(L.profile,L.env,{project_id:p,project_name:x}),P("ok","/config project",x,`id: ${p}`),Te({...L,phase:"folder"})},onCancel:async()=>{let p=await ao(L.profile,L.env);p&&(pt(S.creds,m,L.profile,L.env,{projectId:p.id,projectName:p.name}),P("ok","/config project",p.name,`id: ${p.id}`),Te({...L,phase:"folder"}))}}),!V&&er==="login"&&L?.phase==="folder"&&(0,y.jsx)(ar,{resolver:S.getResolver(),projectId:S.creds.loadProfileConfig(L.profile,L.env)?.project_id??"",currentFolderId:null,env:L.env,onSelect:(p,x)=>{S.creds.saveProfileConfig(L.profile,L.env,{folder_id:p,folder_name:x}),P("ok","/config folder",x,`id: ${p}`),ut(L.profile,L.env),Te(null),ht("ready"),O(!0)},onCancel:async()=>{let p=S.creds.loadProfileConfig(L.profile,L.env);if(!p?.project_id)return;let x=await co(L.env,p.project_id);x&&(pt(S.creds,m,L.profile,L.env,{folderId:x.id,folderName:x.name}),P("ok","/config folder",x.name,`id: ${x.id}`),ut(L.profile,L.env),Te(null),ht("ready"),O(!0))}}),V&&Kr==="menu"&&!W&&(0,y.jsx)(b,{marginBottom:1,children:(0,y.jsxs)(b,{borderStyle:"round",borderColor:"#dc4e08",paddingX:2,children:[(0,y.jsx)(s,{color:"#ff9500",bold:!0,children:"KaneAI CLI"}),(0,y.jsx)(s,{color:l.dim,children:" \u2502 "}),(0,y.jsx)(s,{color:"#ff9500",children:C.model}),(0,y.jsx)(s,{color:l.dim,children:" \u2502 "}),(0,y.jsx)(s,{color:l.dim,children:sd}),(0,y.jsx)(s,{color:l.dim,children:" \u2502 "}),(0,y.jsxs)(s,{color:l.dim,children:[tr??"no profile","/",de]})]})}),V&&!W&&(0,y.jsxs)(b,{flexDirection:"column",flexGrow:1,children:[Kr==="menu"&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(xi,{items:Ui,onRunSelected:()=>Uu("chat"),onActiveViewChange:Li,renderLoginWizard:p=>{let x=L?.phase??"wizard";if(x==="project")return(0,y.jsx)(sr,{resolver:S.getResolver(),currentProjectId:null,env:L.env,onSelect:(d,h)=>{S.creds.saveProfileConfig(L.profile,L.env,{project_id:d,project_name:h}),P("ok","/config project",h,`id: ${d}`),Te(E=>E?{...E,phase:"folder"}:null)},onCancel:async()=>{if(!L)return;let d=await ao(L.profile,L.env);d&&(pt(S.creds,m,L.profile,L.env,{projectId:d.id,projectName:d.name}),P("ok","/config project",d.name,`id: ${d.id}`),Te(h=>h?{...h,phase:"folder"}:null))}});if(x==="folder"){let d=S.creds.loadProfileConfig(L.profile,L.env);return(0,y.jsx)(ar,{resolver:S.getResolver(),projectId:d?.project_id??"",currentFolderId:null,env:L.env,onSelect:(h,E)=>{S.creds.saveProfileConfig(L.profile,L.env,{folder_id:h,folder_name:E}),P("ok","/config folder",E,`id: ${h}`),ut(L.profile,L.env),Te(null),p()},onCancel:async()=>{if(!L)return;let h=S.creds.loadProfileConfig(L.profile,L.env);if(!h?.project_id)return;let E=await co(L.env,h.project_id);E&&(pt(S.creds,m,L.profile,L.env,{folderId:E.id,folderName:E.name}),P("ok","/config folder",E.name,`id: ${E.id}`),ut(L.profile,L.env),Te(null),p())}})}return(0,y.jsx)(mn,{devMode:process.env.KANE_DEV_MODE==="1",profiles:S.creds.listProfiles(),onBasicLogin:async(d,h,E,B)=>{let{validateBasicAuth:U}=await import("./validate-basic-IYMPP7C7.js");await U(h,E,B),S.creds.saveBasicAuth(d,h,{username:E,access_key:B}),S.creds.setActiveProfile(d),S.creds.setDefaultEnv(h),it(S.creds,m,d,h),S.setTokenValid(!0),Qe()},onOAuthLogin:async(d,h)=>{S.creds.setDefaultEnv(h),await S.login(d),it(S.creds,m,d,h),Qe()},onComplete:(d,h)=>{bt(ro(h),nt).then(()=>{Te({phase:"project",profile:d,env:h})}).catch(()=>{Te({phase:"project",profile:d,env:h})})},onCancel:()=>{Te(null),p()}})},renderProfilesView:p=>(0,y.jsx)(Po,{creds:S.creds,onSwitch:(x,d)=>{let h=S.creds.getActiveProfile()??"(none)";S.creds.setActiveProfile(x),S.creds.setDefaultEnv(d),it(S.creds,m,x,d),ut(x,d),Qe(),bt(_i(d),nt).catch(()=>{}),P("ok","/profiles switch",`${h} \u2192 ${x} [${d}]`)},onCancel:p}),renderChromeProfilePicker:p=>(0,y.jsx)(Lo,{currentPath:C.chrome_profile_path,onSelect:x=>{m.set("chrome_profile_path",x),ge(m.load()),P("ok","/config chrome-profile",x),p()},onCancel:p}),renderProjectPicker:p=>(0,y.jsx)(sr,{resolver:S.getResolver(),currentProjectId:C.project_id,env:de,onSelect:(x,d)=>{pt(S.creds,m,S.creds.getActiveProfile()??"default",S.creds.getDefaultEnv(),{projectId:x,projectName:d}),P("ok","/config project",d,`id: ${x}`),ge(m.load()),p()},onCancel:p}),renderFolderPicker:p=>(0,y.jsx)(ar,{resolver:S.getResolver(),projectId:C.project_id??"",currentFolderId:C.folder_id,env:de,onSelect:(x,d)=>{pt(S.creds,m,S.creds.getActiveProfile()??"default",S.creds.getDefaultEnv(),{folderId:x,folderName:d}),P("ok","/config folder",d,`id: ${x}`),ge(m.load()),p()},onCancel:p}),renderWindowSizePicker:p=>(0,y.jsx)(yi,{currentWidth:C.window_size.width,currentHeight:C.window_size.height,onSelect:(x,d)=>{m.set("window_size",{width:x,height:d}),ge(m.load()),P("ok","/config set-window",`${x} \xD7 ${d}`),p()},onCancel:p})}),Be&&(0,y.jsx)(b,{paddingX:1,marginTop:1,children:(0,y.jsx)(s,{color:Be.color,children:Be.text})})]}),Kr==="chat"&&(0,y.jsxs)(y.Fragment,{children:[(()=>{let p=Zi({isRunning:_.isRunning,bifurcationInfo:_.bifurcationInfo,steps:_.steps,cmInitCounts:_.cmInitCounts,replayInfo:_.replayInfo});return p?(0,y.jsx)(Qi,{label:p.label,hasBifurcation:p.hasBifurcation}):null})(),_.isRunning&&_.steps.length>0&&(0,y.jsx)(Ji,{steps:_.steps,bifurcated:!!_.bifurcationInfo&&!_.bifurcationInfo.isSingleFlow,flows:_.bifurcationInfo?.flows,cmInitCounts:_.cmInitCounts,onStepCommit:le,describe:Ar.text,describeVisible:Ar.visible,describeRevealing:Ar.revealing},`run-${Y.current}`),pe.runViewProps&&(0,y.jsx)($s,{...pe.runViewProps,onCancel:()=>{pe.runViewProps?.onCancel?.(),pe.cancel()}}),Er&&(0,y.jsx)(Il,{onClose:()=>Bi(!1),version:ot,environment:S.creds.getDefaultEnv(),sessionId:c.sessionId,runUrl:C.default_url??Eo,mode:ve}),Cr&&(0,y.jsx)(_l,{cwd:process.cwd(),currentOrgId:String(Ge?.org_id??""),onClose:()=>Qr(!1),onRun:p=>{if(_.isRunning||ne.isStreaming||pe.running){setTimeout(()=>P("error","/testmd","Finish or cancel the current run first."),0);return}Qr(!1),!(ve==="generate"&&!dt.requestSwitch("run"))&&(ve==="generate"&&setTimeout(()=>P("ok","/testmd",`Switched to Run mode to run ${p.relPath}`,void 0,l.orange),0),pe.start(p.path).catch(x=>setTimeout(()=>P("error","/testmd",`Run failed: ${x.message}`),0)))},onExport:p=>{Qr(!1),Xs(p.path,{language:C.code_export.language??"python",env:de}).then(x=>setTimeout(()=>P("ok","/testmd",`Exported code \u2192 ${x.codeDir}`),0)).catch(x=>setTimeout(()=>P("error","/testmd",`Export failed: ${x.message}`),0))}}),xt&&!_.isRunning&&(()=>{let p=Ui.find(x=>x.id===xt);return p?.children?(0,y.jsx)(xi,{items:p.children,onRunSelected:()=>Tr(null),onDismiss:()=>Tr(null),onActiveViewChange:Li,renderLoginWizard:x=>{let d=L?.phase??"wizard";if(d==="project")return(0,y.jsx)(sr,{resolver:S.getResolver(),currentProjectId:null,env:L.env,onSelect:(h,E)=>{S.creds.saveProfileConfig(L.profile,L.env,{project_id:h,project_name:E}),P("ok","/config project",E,`id: ${h}`),Te(B=>B?{...B,phase:"folder"}:null)},onCancel:async()=>{if(!L)return;let h=await ao(L.profile,L.env);h&&(pt(S.creds,m,L.profile,L.env,{projectId:h.id,projectName:h.name}),P("ok","/config project",h.name,`id: ${h.id}`),Te(E=>E?{...E,phase:"folder"}:null))}});if(d==="folder"){let h=S.creds.loadProfileConfig(L.profile,L.env);return(0,y.jsx)(ar,{resolver:S.getResolver(),projectId:h?.project_id??"",currentFolderId:null,env:L.env,onSelect:(E,B)=>{S.creds.saveProfileConfig(L.profile,L.env,{folder_id:E,folder_name:B}),P("ok","/config folder",B,`id: ${E}`),ut(L.profile,L.env),Te(null),x()},onCancel:async()=>{if(!L)return;let E=S.creds.loadProfileConfig(L.profile,L.env);if(!E?.project_id)return;let B=await co(L.env,E.project_id);B&&(pt(S.creds,m,L.profile,L.env,{folderId:B.id,folderName:B.name}),P("ok","/config folder",B.name,`id: ${B.id}`),ut(L.profile,L.env),Te(null),x())}})}return(0,y.jsx)(mn,{devMode:process.env.KANE_DEV_MODE==="1",profiles:S.creds.listProfiles(),onBasicLogin:async(h,E,B,U)=>{let{validateBasicAuth:q}=await import("./validate-basic-IYMPP7C7.js");await q(E,B,U),S.creds.saveBasicAuth(h,E,{username:B,access_key:U}),S.creds.setActiveProfile(h),S.creds.setDefaultEnv(E),it(S.creds,m,h,E),S.setTokenValid(!0),Qe()},onOAuthLogin:async(h,E)=>{S.creds.setDefaultEnv(E),await S.login(h),it(S.creds,m,h,E),Qe()},onComplete:(h,E)=>{bt(ro(E),nt).then(()=>{Te({phase:"project",profile:h,env:E})}).catch(()=>{Te({phase:"project",profile:h,env:E})})},onCancel:()=>{Te(null),x()}})},renderProfilesView:x=>(0,y.jsx)(Po,{creds:S.creds,onSwitch:(d,h)=>{let E=S.creds.getActiveProfile()??"(none)";S.creds.setActiveProfile(d),S.creds.setDefaultEnv(h),it(S.creds,m,d,h),ut(d,h),Qe(),bt(_i(h),nt).catch(()=>{}),P("ok","/profiles switch",`${E} \u2192 ${d} [${h}]`),x()},onCancel:x}),renderChromeProfilePicker:x=>(0,y.jsx)(Lo,{currentPath:C.chrome_profile_path,onSelect:d=>{m.save({chrome_profile_path:d}),ge(m.load()),P("ok","/config chrome-profile",d),x()},onCancel:x}),renderProjectPicker:x=>(0,y.jsx)(sr,{resolver:S.getResolver(),currentProjectId:C.project_id,env:de,onSelect:(d,h)=>{pt(S.creds,m,S.creds.getActiveProfile()??"default",S.creds.getDefaultEnv(),{projectId:d,projectName:h}),ge(m.load()),P("ok","/config project",h,`id: ${d}`),x()},onCancel:x}),renderFolderPicker:x=>(0,y.jsx)(ar,{resolver:S.getResolver(),projectId:C.project_id??"",currentFolderId:C.folder_id,env:de,onSelect:(d,h)=>{pt(S.creds,m,S.creds.getActiveProfile()??"default",S.creds.getDefaultEnv(),{folderId:d,folderName:h}),ge(m.load()),P("ok","/config folder",h,`id: ${d}`),x()},onCancel:x}),renderWindowSizePicker:x=>(0,y.jsx)(yi,{currentWidth:C.window_size.width,currentHeight:C.window_size.height,onSelect:(d,h)=>{m.set("window_size",{width:d,height:h}),ge(m.load()),P("ok","/config set-window",`${d} \xD7 ${h}`),x()},onCancel:x})},xt):null})(),xt&&Be&&(0,y.jsx)(b,{paddingX:1,marginTop:1,children:(0,y.jsx)(s,{color:Be.color,children:Be.text})}),ve==="run"&&!xt&&!Er&&!Cr&&!qt&&_.askingUser&&(0,y.jsxs)(b,{flexDirection:"column",marginLeft:2,paddingLeft:1,marginTop:1,children:[(0,y.jsx)(b,{marginLeft:1,children:(0,y.jsx)(s,{color:l.orange,bold:!0,children:"Agent Question"})}),(0,y.jsx)(b,{borderStyle:"round",borderColor:l.orange,flexDirection:"column",paddingX:2,paddingY:1,width:70,children:(0,y.jsxs)(b,{children:[(0,y.jsx)(b,{width:3,children:(0,y.jsx)(s,{color:l.orange,bold:!0,children:"?"})}),(0,y.jsx)(b,{flexShrink:1,children:(0,y.jsx)(s,{wrap:"wrap",children:_.askingUser})})]})})]}),Zr&&(()=>{let p=Zr,x=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?",d=p.reason==="switch"?"Discard & switch":"Yes, end";return(0,y.jsx)(ku,{message:x,confirmLabel:d,onConfirm:async()=>{if(p.reason==="switch"){let E=p.to;Ir(null),dt.confirmSwitch(E);return}Lt();let h=p.pendingArgs;if(Ir(null),await ne.end(),ne.reset(),h.profile){let E=S.creds.getDefaultEnv(),B=S.creds.getActiveProfile()??"(none)";S.creds.setActiveProfile(h.profile),S.creds.setDefaultEnv(E),it(S.creds,m,h.profile,E),ut(h.profile,E),Qe(),bt({kind:"switch",env:E},nt).catch(()=>{}),P("ok","/profiles switch",`${B} \u2192 ${h.profile} [${E}]`)}else wo("/profiles switch")},onCancel:()=>Ir(null)})})(),ve==="run"&&!xt&&!Er&&!Cr&&!qt&&!Zr&&!pe.running&&(0,y.jsx)(Dt,{onSubmit:wo,onEscape:void 0,history:Hu,commands:yl,clearSeq:Zu,placeholder:_.askingUser?"Type your answer...":_.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"}]}),ve==="generate"&&!xt&&!Er&&!Cr&&!qt&&!Zr&&(0,y.jsx)(Cu,{tcg:ne,gm:dt,history:Gu,tuiConfig:C,browse:Bt.isOpen?{target:Bt.target,onClose:Bt.close,excluded:Bt.excluded,onToggleCase:Bt.toggleCase,onToggleScenario:Bt.toggleScenario,getStatus:dt.bifurcation.getStatus,getResult:dt.bifurcation.getResult}:null})]})]}),V&&W&&tt&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(Do,{steps:vr,status:tt.status,testUrl:tt.testUrl,error:tt.error}),tt.status==="success"&&(0,y.jsx)(hn,{recordedTestPath:Yr?.recordedTestPath,outputDir:Yr?.outputDir,shareableLink:tt.testUrl,testCaseLink:tt.testCaseLink,codeExportDir:tt.codeExportDir,autoExit:!1})]}),qt&&(0,y.jsx)(fa,{defaultName:qt,onSubmit:id}),wr&&(0,y.jsx)(ys,{packPath:wr.packPath,viewerBase:Ss(de??"prod"),onDone:()=>wr.resolve()}),Sr&&(0,y.jsx)(da,{onSubmit:od}),Jt&&tt&&(0,y.jsx)(Do,{steps:vr,status:tt.status,error:tt.error}),V&&!W&&(0,y.jsx)(ul,{profile:tr,environment:de,tokenValid:S.tokenValid,runCount:re,sessionId:c.sessionId,viewMode:Kr,breadcrumb:ad,chatMode:ve,footerHint:rd,tcgRequestId:ne.requestId,tcgStreamStatus:ne.isStreaming?"streaming":ne.isReconnecting?"reconnecting":ne.isTerminal&&ne.state.status.toLowerCase()==="completed"?"completed":ne.isTerminal&&ne.state.status.toLowerCase()==="failed"?"failed":null})]})}function Yg({profiles:e,onSelect:t,onCancel:r,validating:n}){let[o,i]=(0,R.useState)(0);return Ie((a,u)=>{if(!n){if(u.escape){r();return}if(u.upArrow&&o>0&&i(f=>f-1),u.downArrow&&o<e.length-1&&i(f=>f+1),u.return){let f=e[o];t(f.profile,f.env)}}}),(0,y.jsxs)(b,{flexDirection:"column",paddingX:1,children:[(0,y.jsx)(s,{color:"#ff9500",bold:!0,children:"Select a profile:"}),(0,y.jsx)(b,{marginTop:1,flexDirection:"column",children:e.map((a,u)=>(0,y.jsxs)(s,{children:[u===o?"\u276F ":" ",(0,y.jsx)(s,{color:u===o?"#ff9500":"white",bold:u===o,children:a.profile}),(0,y.jsxs)(s,{color:"gray",children:[" [",a.env,"]"]})]},`${a.profile}-${a.env}`))}),n&&(0,y.jsx)(b,{marginTop:1,children:(0,y.jsx)(s,{color:"yellow",children:"Validating credentials..."})}),!n&&(0,y.jsx)(b,{marginTop:1,children:(0,y.jsx)(s,{color:"gray",children:"Esc = new login"})})]})}export{vl as a,Du as b,Nu as c,dR as d};
|