@testmuai/kane-cli 0.4.6 → 0.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/{ChromeProfilePicker-HBFXP75A.js → ChromeProfilePicker-B2PUH2LL.js} +1 -1
  2. package/dist/{CliFeedbackPrompt-WICQY46X.js → CliFeedbackPrompt-647ESLIL.js} +1 -1
  3. package/dist/{CliUploadProgress-XJ6CCNCR.js → CliUploadProgress-U325KQO6.js} +1 -1
  4. package/dist/{ConfigView-GPMON37C.js → ConfigView-NKD7QMUV.js} +1 -1
  5. package/dist/FolderPicker-2LEIB5F5.js +2 -0
  6. package/dist/HelpView-35KKWQVE.js +2 -0
  7. package/dist/{InfoBox-PNFLVOCW.js → InfoBox-OIZ3APE3.js} +1 -1
  8. package/dist/{LinksBox-R23D7MOQ.js → LinksBox-DLIYPE3S.js} +1 -1
  9. package/dist/{ProfilesView-7BXBJQWU.js → ProfilesView-CFYBJIL4.js} +1 -1
  10. package/dist/{ProjectPicker-ZZQKNTV5.js → ProjectPicker-ASHXV4HU.js} +1 -1
  11. package/dist/{SaveSessionPrompt-HJYSPZH5.js → SaveSessionPrompt-ATKVPQEJ.js} +1 -1
  12. package/dist/SingleShotApp-JYKEW3WS.js +2 -0
  13. package/dist/{SummaryBox-WWMBNF6O.js → SummaryBox-AAXB55TE.js} +1 -1
  14. package/dist/TestMdRunView-U35UBFHZ.js +2 -0
  15. package/dist/{WhoamiView-JEXEKDXI.js → WhoamiView-TRGZE2NZ.js} +1 -1
  16. package/dist/{changelog-74AVV4RG.js → changelog-JBGYPN7J.js} +1 -1
  17. package/dist/{chunk-WILJRFXU.js → chunk-25YRWDQ7.js} +1 -1
  18. package/dist/{chunk-TQZPYXN7.js → chunk-3PISMPFM.js} +1 -1
  19. package/dist/{chunk-SC4KKGUA.js → chunk-5VZSCQXN.js} +1 -1
  20. package/dist/{chunk-BFYV4TJW.js → chunk-AD6DPSIZ.js} +1 -1
  21. package/dist/{chunk-3TNWLCIU.js → chunk-ALF5ETLD.js} +1 -1
  22. package/dist/{chunk-J54IX7BP.js → chunk-BGXAW2B5.js} +1 -1
  23. package/dist/{chunk-Y6MB5JP7.js → chunk-BH6EP2LD.js} +1 -1
  24. package/dist/{chunk-6E4FS7EC.js → chunk-C2E2DKY3.js} +1 -1
  25. package/dist/{chunk-TOR7WEDD.js → chunk-CL5SB2I7.js} +1 -1
  26. package/dist/{chunk-264ZEJT7.js → chunk-CVC6MQN6.js} +1 -1
  27. package/dist/{chunk-H7TODYZ2.js → chunk-DMLJUTQO.js} +1 -1
  28. package/dist/{chunk-HWCBOJOP.js → chunk-EAUU5F4P.js} +1 -1
  29. package/dist/{chunk-554BXLWE.js → chunk-F5ZL4XYL.js} +1 -1
  30. package/dist/{chunk-NURJMABT.js → chunk-F6VA5YBJ.js} +34 -34
  31. package/dist/{chunk-HHDG2TGX.js → chunk-GRIQ4OQL.js} +1 -1
  32. package/dist/{chunk-AR6VSIYN.js → chunk-HZUTFC3G.js} +1 -1
  33. package/dist/chunk-IT2GFEFH.js +5 -0
  34. package/dist/{chunk-6IE22TW6.js → chunk-IXYUSFH2.js} +2 -2
  35. package/dist/{chunk-Q3RXDN74.js → chunk-K266M5ZM.js} +1 -1
  36. package/dist/{chunk-WVAX7IIU.js → chunk-LY3DAHNE.js} +2 -2
  37. package/dist/{chunk-LFQ2MZYC.js → chunk-LZEYE2WE.js} +1 -1
  38. package/dist/{chunk-33273OM4.js → chunk-RBG4VTHQ.js} +1 -1
  39. package/dist/{chunk-7YZO2QQ6.js → chunk-SH5FUG47.js} +1 -1
  40. package/dist/{chunk-YC7GOEEW.js → chunk-SRQ7P3WI.js} +1 -1
  41. package/dist/{chunk-LAPX4BA7.js → chunk-SSPIKPHV.js} +1 -1
  42. package/dist/{chunk-AFUGVKF7.js → chunk-SVZUJ2QE.js} +1 -1
  43. package/dist/{chunk-KKXWOTVX.js → chunk-UR4NSWY7.js} +1 -1
  44. package/dist/chunk-UVOM74DG.js +27 -0
  45. package/dist/{chunk-T7ECNTOU.js → chunk-W67JBBQF.js} +2 -2
  46. package/dist/{chunk-7NELLGD4.js → chunk-WKS4ST3B.js} +1 -1
  47. package/dist/chunk-WZ6GNXM3.js +2 -0
  48. package/dist/chunk-XCMNFMSO.js +8 -0
  49. package/dist/chunk-YJVA6LBY.js +6 -0
  50. package/dist/{chunk-2RXJ7SIN.js → chunk-YYSABHRE.js} +1 -1
  51. package/dist/{chunk-BY7T5OJN.js → chunk-ZQ5IPBXJ.js} +1 -1
  52. package/dist/{chunk-WXV73W6R.js → chunk-ZQPTSSU6.js} +1 -1
  53. package/dist/{chunk-JTXYQ2KH.js → chunk-ZRGEUDG5.js} +1 -1
  54. package/dist/{generate-headless-FX7EAINU.js → generate-headless-VB52MM2A.js} +2 -2
  55. package/dist/index.js +39 -39
  56. package/dist/{list-commands-M35SC7YD.js → list-commands-X6EXASQG.js} +1 -1
  57. package/dist/login-flow-R5IGUIPA.js +2 -0
  58. package/dist/{persist-recorded-session-V4OYUDBM.js → persist-recorded-session-EI4ISSRI.js} +1 -1
  59. package/dist/{pipeline-26FR6BXR.js → pipeline-34CX3UBO.js} +1 -1
  60. package/dist/{recording-banner-5V66U2RF.js → recording-banner-BQQSRJIF.js} +1 -1
  61. package/dist/{require-project-folder-J5IFDFQZ.js → require-project-folder-LSM4YSKJ.js} +1 -1
  62. package/dist/{run-test-md-XSR7NXBR.js → run-test-md-VR2Q46Q3.js} +5 -5
  63. package/dist/{skill-installer-WZCILRBJ.js → skill-installer-JS7LUETO.js} +1 -1
  64. package/dist/tcg-generate-YQJZTSSI.js +2 -0
  65. package/dist/testmd-actions-FAQYABQT.js +2 -0
  66. package/dist/token-refresh-XM3DXY2A.js +2 -0
  67. package/dist/{validate-basic-3W5ODPRI.js → validate-basic-W7UJ5D25.js} +1 -1
  68. package/dist/{version-check-43WUFMCW.js → version-check-ACQ5Z7JV.js} +1 -1
  69. package/package.json +6 -6
  70. package/dist/FolderPicker-IZXWPOTS.js +0 -2
  71. package/dist/HelpView-7SDQKJFW.js +0 -2
  72. package/dist/SingleShotApp-SLABQ7BW.js +0 -2
  73. package/dist/TestMdRunView-33RBMIZB.js +0 -2
  74. package/dist/chunk-2TT2RIVP.js +0 -2
  75. package/dist/chunk-BACEOONG.js +0 -5
  76. package/dist/chunk-BSTC6BLT.js +0 -5
  77. package/dist/chunk-J7QJ5Q3J.js +0 -8
  78. package/dist/chunk-OUO4AO3Z.js +0 -22
  79. package/dist/login-flow-OBWXOIJ2.js +0 -2
  80. package/dist/tcg-generate-2H5AUMWY.js +0 -2
  81. package/dist/testmd-actions-QKMEYBUJ.js +0 -2
  82. package/dist/token-refresh-VUGZH2DA.js +0 -2
@@ -1,22 +0,0 @@
1
- import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{a as Cs,b as Po,c as dn,d as Is,e as fn,f as ks,h as As,i as _s,j as Ps,k as Ls,l as Bs,m as St,n as $s,o as Os,p as Ds,q as mn,r as Ns,s as Lo,t as js,u as Ms,v as Vs}from"./chunk-7NELLGD4.js";import{a as bo,b as Ni}from"./chunk-3MSXQU2C.js";import{a as Fs}from"./chunk-554BXLWE.js";import{a as Hi,b as Gi,d as Zi,e as es,f as ts,g as Co,h as ss,j as gs,k as ko,l as Ao,n as hs,o as xs,p as vs,q as Ss,r as _o,s as bs,t as ws,u as Rs,w as vt,x as ys}from"./chunk-NURJMABT.js";import{a as Ts}from"./chunk-Y6MB5JP7.js";import{a as ls,b as us,l as Es}from"./chunk-6IE22TW6.js";import{a as qs,b as Bo}from"./chunk-WXV73W6R.js";import{a as ds}from"./chunk-PUU7A26K.js";import{b as cs}from"./chunk-AH4AXJML.js";import{a as ji,b as wo,c as $t,d as an,e as os,f as is}from"./chunk-WILJRFXU.js";import{c as cn}from"./chunk-Q3RXDN74.js";import{a as rr}from"./chunk-J7QJ5Q3J.js";import{a as Qi}from"./chunk-FPFOW6BS.js";import{a as Vi,b as Fi,c as qi,d as rs,e as ns,f as as,h as fs}from"./chunk-BACEOONG.js";import{a as ln,b as ms,c as Io}from"./chunk-BY7T5OJN.js";import{a as Ro}from"./chunk-KKXWOTVX.js";import{c as ps}from"./chunk-AFUGVKF7.js";import{a as un}from"./chunk-LAPX4BA7.js";import{b as er}from"./chunk-TOR7WEDD.js";import{b as tr}from"./chunk-YC7GOEEW.js";import{a as Wi,d as xt,e as Cr,f as Ot,g as nr}from"./chunk-LOIRZFV3.js";import{g as zi}from"./chunk-JTXYQ2KH.js";import{a as Er}from"./chunk-LPUQ4HWQ.js";import{a as at,b as pt,c as Xi}from"./chunk-VE3SUJMA.js";import{a as Ki}from"./chunk-7YZO2QQ6.js";import{a as Ji}from"./chunk-264ZEJT7.js";import{a as sn}from"./chunk-AR6VSIYN.js";import{a as Yi}from"./chunk-3TNWLCIU.js";import{a as ze}from"./chunk-TQZPYXN7.js";import{a as Ui}from"./chunk-RZ4F3BHX.js";import{a as To}from"./chunk-LFQ2MZYC.js";import{a as Et}from"./chunk-2TT2RIVP.js";import{b as Mi}from"./chunk-C6S4IEBC.js";import{b as yo}from"./chunk-BFYV4TJW.js";import{c as Eo}from"./chunk-HHDG2TGX.js";import{a as Zt}from"./chunk-HWCBOJOP.js";import{a as mt,c as We,j as vo,n as Di,o as So,x as c}from"./chunk-J54IX7BP.js";import{a as M}from"./chunk-HCBYKLMW.js";import{a as S,b as s,i as Ee,j as Oi,k as on}from"./chunk-C44QQJR4.js";import{a as ve}from"./chunk-6YGTRKDT.js";import{c as z,e as k}from"./chunk-UR6MHSHU.js";var ir=z((_g,Gs)=>{"use strict";var ju="2.0.0",Mu=Number.MAX_SAFE_INTEGER||9007199254740991,Vu=16,Fu=250,qu=["major","premajor","minor","preminor","patch","prepatch","prerelease"];Gs.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Vu,MAX_SAFE_BUILD_LENGTH:Fu,MAX_SAFE_INTEGER:Mu,RELEASE_TYPES:qu,SEMVER_SPEC_VERSION:ju,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Ir=z((Pg,Xs)=>{"use strict";var Uu=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};Xs.exports=Uu});var sr=z((bt,Ws)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:$o,MAX_SAFE_BUILD_LENGTH:Hu,MAX_LENGTH:Gu}=ir(),Xu=Ir();bt=Ws.exports={};var Wu=bt.re=[],zu=bt.safeRe=[],D=bt.src=[],Yu=bt.safeSrc=[],N=bt.t={},Ku=0,Oo="[a-zA-Z0-9-]",Ju=[["\\s",1],["\\d",Gu],[Oo,Hu]],Qu=e=>{for(let[t,r]of Ju)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e},K=(e,t,r)=>{let n=Qu(t),o=Ku++;Xu(e,o,t),N[e]=o,D[o]=t,Yu[o]=n,Wu[o]=new RegExp(t,r?"g":void 0),zu[o]=new RegExp(n,r?"g":void 0)};K("NUMERICIDENTIFIER","0|[1-9]\\d*");K("NUMERICIDENTIFIERLOOSE","\\d+");K("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Oo}*`);K("MAINVERSION",`(${D[N.NUMERICIDENTIFIER]})\\.(${D[N.NUMERICIDENTIFIER]})\\.(${D[N.NUMERICIDENTIFIER]})`);K("MAINVERSIONLOOSE",`(${D[N.NUMERICIDENTIFIERLOOSE]})\\.(${D[N.NUMERICIDENTIFIERLOOSE]})\\.(${D[N.NUMERICIDENTIFIERLOOSE]})`);K("PRERELEASEIDENTIFIER",`(?:${D[N.NONNUMERICIDENTIFIER]}|${D[N.NUMERICIDENTIFIER]})`);K("PRERELEASEIDENTIFIERLOOSE",`(?:${D[N.NONNUMERICIDENTIFIER]}|${D[N.NUMERICIDENTIFIERLOOSE]})`);K("PRERELEASE",`(?:-(${D[N.PRERELEASEIDENTIFIER]}(?:\\.${D[N.PRERELEASEIDENTIFIER]})*))`);K("PRERELEASELOOSE",`(?:-?(${D[N.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${D[N.PRERELEASEIDENTIFIERLOOSE]})*))`);K("BUILDIDENTIFIER",`${Oo}+`);K("BUILD",`(?:\\+(${D[N.BUILDIDENTIFIER]}(?:\\.${D[N.BUILDIDENTIFIER]})*))`);K("FULLPLAIN",`v?${D[N.MAINVERSION]}${D[N.PRERELEASE]}?${D[N.BUILD]}?`);K("FULL",`^${D[N.FULLPLAIN]}$`);K("LOOSEPLAIN",`[v=\\s]*${D[N.MAINVERSIONLOOSE]}${D[N.PRERELEASELOOSE]}?${D[N.BUILD]}?`);K("LOOSE",`^${D[N.LOOSEPLAIN]}$`);K("GTLT","((?:<|>)?=?)");K("XRANGEIDENTIFIERLOOSE",`${D[N.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);K("XRANGEIDENTIFIER",`${D[N.NUMERICIDENTIFIER]}|x|X|\\*`);K("XRANGEPLAIN",`[v=\\s]*(${D[N.XRANGEIDENTIFIER]})(?:\\.(${D[N.XRANGEIDENTIFIER]})(?:\\.(${D[N.XRANGEIDENTIFIER]})(?:${D[N.PRERELEASE]})?${D[N.BUILD]}?)?)?`);K("XRANGEPLAINLOOSE",`[v=\\s]*(${D[N.XRANGEIDENTIFIERLOOSE]})(?:\\.(${D[N.XRANGEIDENTIFIERLOOSE]})(?:\\.(${D[N.XRANGEIDENTIFIERLOOSE]})(?:${D[N.PRERELEASELOOSE]})?${D[N.BUILD]}?)?)?`);K("XRANGE",`^${D[N.GTLT]}\\s*${D[N.XRANGEPLAIN]}$`);K("XRANGELOOSE",`^${D[N.GTLT]}\\s*${D[N.XRANGEPLAINLOOSE]}$`);K("COERCEPLAIN",`(^|[^\\d])(\\d{1,${$o}})(?:\\.(\\d{1,${$o}}))?(?:\\.(\\d{1,${$o}}))?`);K("COERCE",`${D[N.COERCEPLAIN]}(?:$|[^\\d])`);K("COERCEFULL",D[N.COERCEPLAIN]+`(?:${D[N.PRERELEASE]})?(?:${D[N.BUILD]})?(?:$|[^\\d])`);K("COERCERTL",D[N.COERCE],!0);K("COERCERTLFULL",D[N.COERCEFULL],!0);K("LONETILDE","(?:~>?)");K("TILDETRIM",`(\\s*)${D[N.LONETILDE]}\\s+`,!0);bt.tildeTrimReplace="$1~";K("TILDE",`^${D[N.LONETILDE]}${D[N.XRANGEPLAIN]}$`);K("TILDELOOSE",`^${D[N.LONETILDE]}${D[N.XRANGEPLAINLOOSE]}$`);K("LONECARET","(?:\\^)");K("CARETTRIM",`(\\s*)${D[N.LONECARET]}\\s+`,!0);bt.caretTrimReplace="$1^";K("CARET",`^${D[N.LONECARET]}${D[N.XRANGEPLAIN]}$`);K("CARETLOOSE",`^${D[N.LONECARET]}${D[N.XRANGEPLAINLOOSE]}$`);K("COMPARATORLOOSE",`^${D[N.GTLT]}\\s*(${D[N.LOOSEPLAIN]})$|^$`);K("COMPARATOR",`^${D[N.GTLT]}\\s*(${D[N.FULLPLAIN]})$|^$`);K("COMPARATORTRIM",`(\\s*)${D[N.GTLT]}\\s*(${D[N.LOOSEPLAIN]}|${D[N.XRANGEPLAIN]})`,!0);bt.comparatorTrimReplace="$1$2$3";K("HYPHENRANGE",`^\\s*(${D[N.XRANGEPLAIN]})\\s+-\\s+(${D[N.XRANGEPLAIN]})\\s*$`);K("HYPHENRANGELOOSE",`^\\s*(${D[N.XRANGEPLAINLOOSE]})\\s+-\\s+(${D[N.XRANGEPLAINLOOSE]})\\s*$`);K("STAR","(<|>)?=?\\s*\\*");K("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");K("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var pn=z((Lg,zs)=>{"use strict";var Zu=Object.freeze({loose:!0}),ed=Object.freeze({}),td=e=>e?typeof e!="object"?Zu:e:ed;zs.exports=td});var Do=z((Bg,Js)=>{"use strict";var Ys=/^[0-9]+$/,Ks=(e,t)=>{if(typeof e=="number"&&typeof t=="number")return e===t?0:e<t?-1:1;let r=Ys.test(e),n=Ys.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e<t?-1:1},rd=(e,t)=>Ks(t,e);Js.exports={compareIdentifiers:Ks,rcompareIdentifiers:rd}});var Be=z(($g,Zs)=>{"use strict";var gn=Ir(),{MAX_LENGTH:Qs,MAX_SAFE_INTEGER:hn}=ir(),{safeRe:xn,t:vn}=sr(),nd=pn(),{compareIdentifiers:No}=Do(),od=(e,t)=>{let r=t.split(".");if(r.length>e.length)return!1;for(let n=0;n<r.length;n++)if(No(e[n],r[n])!==0)return!1;return!0},jo=class e{constructor(t,r){if(r=nd(r),t instanceof e){if(t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>Qs)throw new TypeError(`version is longer than ${Qs} characters`);gn("SemVer",t,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let n=t.trim().match(r.loose?xn[vn.LOOSE]:xn[vn.FULL]);if(!n)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>hn||this.major<0)throw new TypeError("Invalid major version");if(this.minor>hn||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>hn||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(o=>{if(/^[0-9]+$/.test(o)){let i=+o;if(i>=0&&i<hn)return i}return o}):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(gn("SemVer.compare",this.version,this.options,t),!(t instanceof e)){if(typeof t=="string"&&t===this.version)return 0;t=new e(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof e||(t=new e(t,this.options)),this.major<t.major?-1:this.major>t.major?1:this.minor<t.minor?-1:this.minor>t.minor?1:this.patch<t.patch?-1:this.patch>t.patch?1:0}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let r=0;do{let n=this.prerelease[r],o=t.prerelease[r];if(gn("prerelease compare",r,n,o),n===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(n===void 0)return-1;if(n===o)continue;return No(n,o)}while(++r)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let r=0;do{let n=this.build[r],o=t.build[r];if(gn("build compare",r,n,o),n===void 0&&o===void 0)return 0;if(o===void 0)return 1;if(n===void 0)return-1;if(n===o)continue;return No(n,o)}while(++r)}inc(t,r,n){if(t.startsWith("pre")){if(!r&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(r){let o=`-${r}`.match(this.options.loose?xn[vn.PRERELEASELOOSE]:xn[vn.PRERELEASE]);if(!o||o[1]!==r)throw new Error(`invalid identifier: ${r}`)}}switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,n),this.inc("pre",r,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,n),this.inc("pre",r,n);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let o=Number(n)?1:0;if(this.prerelease.length===0)this.prerelease=[o];else{let i=this.prerelease.length;for(;--i>=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);if(i===-1){if(r===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(o)}}if(r){let i=[r,o];if(n===!1&&(i=[r]),od(this.prerelease,r)){let a=this.prerelease[r.split(".").length];isNaN(a)&&(this.prerelease=i)}else this.prerelease=i}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};Zs.exports=jo});var Dt=z((Og,ta)=>{"use strict";var ea=Be(),id=(e,t,r=!1)=>{if(e instanceof ea)return e;try{return new ea(e,t)}catch(n){if(!r)return null;throw n}};ta.exports=id});var na=z((Dg,ra)=>{"use strict";var sd=Dt(),ad=(e,t)=>{let r=sd(e,t);return r?r.version:null};ra.exports=ad});var ia=z((Ng,oa)=>{"use strict";var cd=Dt(),ld=(e,t)=>{let r=cd(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null};oa.exports=ld});var ca=z((jg,aa)=>{"use strict";var sa=Be(),ud=(e,t,r,n,o)=>{typeof r=="string"&&(o=n,n=r,r=void 0);try{return new sa(e instanceof sa?e.version:e,r).inc(t,n,o).version}catch{return null}};aa.exports=ud});var da=z((Mg,ua)=>{"use strict";var la=Dt(),dd=(e,t)=>{let r=la(e,null,!0),n=la(t,null,!0),o=r.compare(n);if(o===0)return null;let i=o>0,a=i?r:n,u=i?n:r,d=!!a.prerelease.length;if(!!u.prerelease.length&&!d){if(!u.patch&&!u.minor)return"major";if(u.compareMain(a)===0)return u.minor&&!u.patch?"minor":"patch"}let R=d?"pre":"";return r.major!==n.major?R+"major":r.minor!==n.minor?R+"minor":r.patch!==n.patch?R+"patch":"prerelease"};ua.exports=dd});var ma=z((Vg,fa)=>{"use strict";var fd=Be(),md=(e,t)=>new fd(e,t).major;fa.exports=md});var ga=z((Fg,pa)=>{"use strict";var pd=Be(),gd=(e,t)=>new pd(e,t).minor;pa.exports=gd});var xa=z((qg,ha)=>{"use strict";var hd=Be(),xd=(e,t)=>new hd(e,t).patch;ha.exports=xd});var Sa=z((Ug,va)=>{"use strict";var vd=Dt(),Sd=(e,t)=>{let r=vd(e,t);return r&&r.prerelease.length?r.prerelease:null};va.exports=Sd});var ct=z((Hg,wa)=>{"use strict";var ba=Be(),bd=(e,t,r)=>new ba(e,r).compare(new ba(t,r));wa.exports=bd});var Ta=z((Gg,Ra)=>{"use strict";var wd=ct(),Rd=(e,t,r)=>wd(t,e,r);Ra.exports=Rd});var Ea=z((Xg,ya)=>{"use strict";var Td=ct(),yd=(e,t)=>Td(e,t,!0);ya.exports=yd});var Sn=z((Wg,Ia)=>{"use strict";var Ca=Be(),Ed=(e,t,r)=>{let n=new Ca(e,r),o=new Ca(t,r);return n.compare(o)||n.compareBuild(o)};Ia.exports=Ed});var Aa=z((zg,ka)=>{"use strict";var Cd=Sn(),Id=(e,t)=>e.sort((r,n)=>Cd(r,n,t));ka.exports=Id});var Pa=z((Yg,_a)=>{"use strict";var kd=Sn(),Ad=(e,t)=>e.sort((r,n)=>kd(n,r,t));_a.exports=Ad});var kr=z((Kg,La)=>{"use strict";var _d=ct(),Pd=(e,t,r)=>_d(e,t,r)>0;La.exports=Pd});var bn=z((Jg,Ba)=>{"use strict";var Ld=ct(),Bd=(e,t,r)=>Ld(e,t,r)<0;Ba.exports=Bd});var Mo=z((Qg,$a)=>{"use strict";var $d=ct(),Od=(e,t,r)=>$d(e,t,r)===0;$a.exports=Od});var Vo=z((Zg,Oa)=>{"use strict";var Dd=ct(),Nd=(e,t,r)=>Dd(e,t,r)!==0;Oa.exports=Nd});var wn=z((eh,Da)=>{"use strict";var jd=ct(),Md=(e,t,r)=>jd(e,t,r)>=0;Da.exports=Md});var Rn=z((th,Na)=>{"use strict";var Vd=ct(),Fd=(e,t,r)=>Vd(e,t,r)<=0;Na.exports=Fd});var Fo=z((rh,ja)=>{"use strict";var qd=Mo(),Ud=Vo(),Hd=kr(),Gd=wn(),Xd=bn(),Wd=Rn(),zd=(e,t,r,n)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e===r;case"!==":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e!==r;case"":case"=":case"==":return qd(e,r,n);case"!=":return Ud(e,r,n);case">":return Hd(e,r,n);case">=":return Gd(e,r,n);case"<":return Xd(e,r,n);case"<=":return Wd(e,r,n);default:throw new TypeError(`Invalid operator: ${t}`)}};ja.exports=zd});var Va=z((nh,Ma)=>{"use strict";var Yd=Be(),Kd=Dt(),{safeRe:Tn,t:yn}=sr(),Jd=(e,t)=>{if(e instanceof Yd)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let r=null;if(!t.rtl)r=e.match(t.includePrerelease?Tn[yn.COERCEFULL]:Tn[yn.COERCE]);else{let d=t.includePrerelease?Tn[yn.COERCERTLFULL]:Tn[yn.COERCERTL],x;for(;(x=d.exec(e))&&(!r||r.index+r[0].length!==e.length);)(!r||x.index+x[0].length!==r.index+r[0].length)&&(r=x),d.lastIndex=x.index+x[1].length+x[2].length;d.lastIndex=-1}if(r===null)return null;let n=r[2],o=r[3]||"0",i=r[4]||"0",a=t.includePrerelease&&r[5]?`-${r[5]}`:"",u=t.includePrerelease&&r[6]?`+${r[6]}`:"";return Kd(`${n}.${o}.${i}${a}${u}`,t)};Ma.exports=Jd});var qa=z((oh,Fa)=>{"use strict";var Qd=Dt(),Zd=ir(),ef=Be(),tf=(e,t,r)=>{if(!Zd.RELEASE_TYPES.includes(t))return null;let n=rf(e,r);return n&&nf(n,t)},rf=(e,t)=>{let r=e instanceof ef?e.version:e;return Qd(r,t)},nf=(e,t)=>{if(of(t))return e.version;switch(e.prerelease=[],t){case"major":e.minor=0,e.patch=0;break;case"minor":e.patch=0;break}return e.format()},of=e=>e.startsWith("pre");Fa.exports=tf});var Ha=z((ih,Ua)=>{"use strict";var qo=class{constructor(){this.max=1e3,this.map=new Map}get(t){let r=this.map.get(t);if(r!==void 0)return this.map.delete(t),this.map.set(t,r),r}delete(t){return this.map.delete(t)}set(t,r){if(!this.delete(t)&&r!==void 0){if(this.map.size>=this.max){let o=this.map.keys().next().value;this.delete(o)}this.map.set(t,r)}return this}};Ua.exports=qo});var lt=z((sh,za)=>{"use strict";var sf=/\s+/g,Uo=class e{constructor(t,r){if(r=cf(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof Ho)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=t.trim().replace(sf," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(o=>!Xa(o[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let o of this.set)if(o.length===1&&xf(o[0])){this.set=[o];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let t=0;t<this.set.length;t++){t>0&&(this.formatted+="||");let r=this.set[t];for(let n=0;n<r.length;n++)n>0&&(this.formatted+=" "),this.formatted+=r[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(t){t=t.replace(hf,"");let n=((this.options.includePrerelease&&pf)|(this.options.loose&&gf))+":"+t,o=Ga.get(n);if(o)return o;let i=this.options.loose,a=i?Ye[$e.HYPHENRANGELOOSE]:Ye[$e.HYPHENRANGE];t=t.replace(a,kf(this.options.includePrerelease)),pe("hyphen replace",t),t=t.replace(Ye[$e.COMPARATORTRIM],df),pe("comparator trim",t),t=t.replace(Ye[$e.TILDETRIM],ff),pe("tilde trim",t),t=t.replace(Ye[$e.CARETTRIM],mf),pe("caret trim",t);let u=t.split(" ").map(h=>vf(h,this.options)).join(" ").split(/\s+/).map(h=>If(h,this.options));i&&(u=u.filter(h=>(pe("loose invalid filter",h,this.options),!!h.match(Ye[$e.COMPARATORLOOSE])))),pe("range list",u);let d=new Map,x=u.map(h=>new Ho(h,this.options));for(let h of x){if(Xa(h))return[h];d.set(h.value,h)}d.size>1&&d.has("")&&d.delete("");let R=[...d.values()];return Ga.set(n,R),R}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(n=>Wa(n,r)&&t.set.some(o=>Wa(o,r)&&n.every(i=>o.every(a=>i.intersects(a,r)))))}test(t){if(!t)return!1;if(typeof t=="string")try{t=new lf(t,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(Af(this.set[r],t,this.options))return!0;return!1}};za.exports=Uo;var af=Ha(),Ga=new af,cf=pn(),Ho=Ar(),pe=Ir(),lf=Be(),{safeRe:Ye,src:uf,t:$e,comparatorTrimReplace:df,tildeTrimReplace:ff,caretTrimReplace:mf}=sr(),{FLAG_INCLUDE_PRERELEASE:pf,FLAG_LOOSE:gf}=ir(),hf=new RegExp(uf[$e.BUILD],"g"),Xa=e=>e.value==="<0.0.0-0",xf=e=>e.value==="",Wa=(e,t)=>{let r=!0,n=e.slice(),o=n.pop();for(;r&&n.length;)r=n.every(i=>o.intersects(i,t)),o=n.pop();return r},vf=(e,t)=>(e=e.replace(Ye[$e.BUILD],""),pe("comp",e,t),e=Rf(e,t),pe("caret",e),e=bf(e,t),pe("tildes",e),e=yf(e,t),pe("xrange",e),e=Cf(e,t),pe("stars",e),e),Re=e=>!e||e.toLowerCase()==="x"||e==="*",Sf=(e,t,r)=>Re(e)&&!Re(t)||Re(t)&&r&&!Re(r),bf=(e,t)=>e.trim().split(/\s+/).map(r=>wf(r,t)).join(" "),wf=(e,t)=>{let r=t.loose?Ye[$e.TILDELOOSE]:Ye[$e.TILDE];return e.replace(r,(n,o,i,a,u)=>{pe("tilde",e,n,o,i,a,u);let d;return Re(o)?d="":Re(i)?d=`>=${o}.0.0 <${+o+1}.0.0-0`:Re(a)?d=`>=${o}.${i}.0 <${o}.${+i+1}.0-0`:u?(pe("replaceTilde pr",u),d=`>=${o}.${i}.${a}-${u} <${o}.${+i+1}.0-0`):d=`>=${o}.${i}.${a} <${o}.${+i+1}.0-0`,pe("tilde return",d),d})},Rf=(e,t)=>e.trim().split(/\s+/).map(r=>Tf(r,t)).join(" "),Tf=(e,t)=>{pe("caret",e,t);let r=t.loose?Ye[$e.CARETLOOSE]:Ye[$e.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(o,i,a,u,d)=>{pe("caret",e,o,i,a,u,d);let x;return Re(i)?x="":Re(a)?x=`>=${i}.0.0${n} <${+i+1}.0.0-0`:Re(u)?i==="0"?x=`>=${i}.${a}.0${n} <${i}.${+a+1}.0-0`:x=`>=${i}.${a}.0${n} <${+i+1}.0.0-0`:d?(pe("replaceCaret pr",d),i==="0"?a==="0"?x=`>=${i}.${a}.${u}-${d} <${i}.${a}.${+u+1}-0`:x=`>=${i}.${a}.${u}-${d} <${i}.${+a+1}.0-0`:x=`>=${i}.${a}.${u}-${d} <${+i+1}.0.0-0`):(pe("no pr"),i==="0"?a==="0"?x=`>=${i}.${a}.${u} <${i}.${a}.${+u+1}-0`:x=`>=${i}.${a}.${u} <${i}.${+a+1}.0-0`:x=`>=${i}.${a}.${u} <${+i+1}.0.0-0`),pe("caret return",x),x})},yf=(e,t)=>(pe("replaceXRanges",e,t),e.split(/\s+/).map(r=>Ef(r,t)).join(" ")),Ef=(e,t)=>{e=e.trim();let r=t.loose?Ye[$e.XRANGELOOSE]:Ye[$e.XRANGE];return e.replace(r,(n,o,i,a,u,d)=>{if(pe("xRange",e,n,o,i,a,u,d),Sf(i,a,u))return e;let x=Re(i),R=x||Re(a),h=R||Re(u),y=h;return o==="="&&y&&(o=""),d=t.includePrerelease?"-0":"",x?o===">"||o==="<"?n="<0.0.0-0":n="*":o&&y?(R&&(a=0),u=0,o===">"?(o=">=",R?(i=+i+1,a=0,u=0):(a=+a+1,u=0)):o==="<="&&(o="<",R?i=+i+1:a=+a+1),o==="<"&&(d="-0"),n=`${o+i}.${a}.${u}${d}`):R?n=`>=${i}.0.0${d} <${+i+1}.0.0-0`:h&&(n=`>=${i}.${a}.0${d} <${i}.${+a+1}.0-0`),pe("xRange return",n),n})},Cf=(e,t)=>(pe("replaceStars",e,t),e.trim().replace(Ye[$e.STAR],"")),If=(e,t)=>(pe("replaceGTE0",e,t),e.trim().replace(Ye[t.includePrerelease?$e.GTE0PRE:$e.GTE0],"")),kf=e=>(t,r,n,o,i,a,u,d,x,R,h,y)=>(Re(n)?r="":Re(o)?r=`>=${n}.0.0${e?"-0":""}`:Re(i)?r=`>=${n}.${o}.0${e?"-0":""}`:a?r=`>=${r}`:r=`>=${r}${e?"-0":""}`,Re(x)?d="":Re(R)?d=`<${+x+1}.0.0-0`:Re(h)?d=`<${x}.${+R+1}.0-0`:y?d=`<=${x}.${R}.${h}-${y}`:e?d=`<${x}.${R}.${+h+1}-0`:d=`<=${d}`,`${r} ${d}`.trim()),Af=(e,t,r)=>{for(let n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!r.includePrerelease){for(let n=0;n<e.length;n++)if(pe(e[n].semver),e[n].semver!==Ho.ANY&&e[n].semver.prerelease.length>0){let o=e[n].semver;if(o.major===t.major&&o.minor===t.minor&&o.patch===t.patch)return!0}return!1}return!0}});var Ar=z((ah,ec)=>{"use strict";var _r=Symbol("SemVer ANY"),Wo=class e{static get ANY(){return _r}constructor(t,r){if(r=Ya(r),t instanceof e){if(t.loose===!!r.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),Xo("comparator",t,r),this.options=r,this.loose=!!r.loose,this.parse(t),this.semver===_r?this.value="":this.value=this.operator+this.semver.version,Xo("comp",this)}parse(t){let r=this.options.loose?Ka[Ja.COMPARATORLOOSE]:Ka[Ja.COMPARATOR],n=t.match(r);if(!n)throw new TypeError(`Invalid comparator: ${t}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new Qa(n[2],this.options.loose):this.semver=_r}toString(){return this.value}test(t){if(Xo("Comparator.test",t,this.options.loose),this.semver===_r||t===_r)return!0;if(typeof t=="string")try{t=new Qa(t,this.options)}catch{return!1}return Go(t,this.operator,this.semver,this.options)}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new Za(t.value,r).test(this.value):t.operator===""?t.value===""?!0:new Za(this.value,r).test(t.semver):(r=Ya(r),r.includePrerelease&&(this.value==="<0.0.0-0"||t.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||t.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&t.operator.startsWith(">")||this.operator.startsWith("<")&&t.operator.startsWith("<")||this.semver.version===t.semver.version&&this.operator.includes("=")&&t.operator.includes("=")||Go(this.semver,"<",t.semver,r)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||Go(this.semver,">",t.semver,r)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};ec.exports=Wo;var Ya=pn(),{safeRe:Ka,t:Ja}=sr(),Go=Fo(),Xo=Ir(),Qa=Be(),Za=lt()});var Pr=z((ch,tc)=>{"use strict";var _f=lt(),Pf=(e,t,r)=>{try{t=new _f(t,r)}catch{return!1}return t.test(e)};tc.exports=Pf});var nc=z((lh,rc)=>{"use strict";var Lf=lt(),Bf=(e,t)=>new Lf(e,t).set.map(r=>r.map(n=>n.value).join(" ").trim().split(" "));rc.exports=Bf});var ic=z((uh,oc)=>{"use strict";var $f=Be(),Of=lt(),Df=(e,t,r)=>{let n=null,o=null,i=null;try{i=new Of(t,r)}catch{return null}return e.forEach(a=>{i.test(a)&&(!n||o.compare(a)===-1)&&(n=a,o=new $f(n,r))}),n};oc.exports=Df});var ac=z((dh,sc)=>{"use strict";var Nf=Be(),jf=lt(),Mf=(e,t,r)=>{let n=null,o=null,i=null;try{i=new jf(t,r)}catch{return null}return e.forEach(a=>{i.test(a)&&(!n||o.compare(a)===1)&&(n=a,o=new Nf(n,r))}),n};sc.exports=Mf});var uc=z((fh,lc)=>{"use strict";var zo=Be(),Vf=lt(),cc=kr(),Ff=(e,t)=>{e=new Vf(e,t);let r=new zo("0.0.0");if(e.test(r)||(r=new zo("0.0.0-0"),e.test(r)))return r;r=null;for(let n=0;n<e.set.length;++n){let o=e.set[n],i=null;o.forEach(a=>{let u=new zo(a.semver.version);switch(a.operator){case">":u.prerelease.length===0?u.patch++:u.prerelease.push(0),u.raw=u.format();case"":case">=":(!i||cc(u,i))&&(i=u);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${a.operator}`)}}),i&&(!r||cc(r,i))&&(r=i)}return r&&e.test(r)?r:null};lc.exports=Ff});var fc=z((mh,dc)=>{"use strict";var qf=lt(),Uf=(e,t)=>{try{return new qf(e,t).range||"*"}catch{return null}};dc.exports=Uf});var En=z((ph,hc)=>{"use strict";var Hf=Be(),gc=Ar(),{ANY:Gf}=gc,Xf=lt(),Wf=Pr(),mc=kr(),pc=bn(),zf=Rn(),Yf=wn(),Kf=(e,t,r,n)=>{e=new Hf(e,n),t=new Xf(t,n);let o,i,a,u,d;switch(r){case">":o=mc,i=zf,a=pc,u=">",d=">=";break;case"<":o=pc,i=Yf,a=mc,u="<",d="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Wf(e,t,n))return!1;for(let x=0;x<t.set.length;++x){let R=t.set[x],h=null,y=null;if(R.forEach(l=>{l.semver===Gf&&(l=new gc(">=0.0.0")),h=h||l,y=y||l,o(l.semver,h.semver,n)?h=l:a(l.semver,y.semver,n)&&(y=l)}),h.operator===u||h.operator===d||(!y.operator||y.operator===u)&&i(e,y.semver))return!1;if(y.operator===d&&a(e,y.semver))return!1}return!0};hc.exports=Kf});var vc=z((gh,xc)=>{"use strict";var Jf=En(),Qf=(e,t,r)=>Jf(e,t,">",r);xc.exports=Qf});var bc=z((hh,Sc)=>{"use strict";var Zf=En(),em=(e,t,r)=>Zf(e,t,"<",r);Sc.exports=em});var Tc=z((xh,Rc)=>{"use strict";var wc=lt(),tm=(e,t,r)=>(e=new wc(e,r),t=new wc(t,r),e.intersects(t,r));Rc.exports=tm});var Ec=z((vh,yc)=>{"use strict";var rm=Pr(),nm=ct();yc.exports=(e,t,r)=>{let n=[],o=null,i=null,a=e.sort((R,h)=>nm(R,h,r));for(let R of a)rm(R,t,r)?(i=R,o||(o=R)):(i&&n.push([o,i]),i=null,o=null);o&&n.push([o,null]);let u=[];for(let[R,h]of n)R===h?u.push(R):!h&&R===a[0]?u.push("*"):h?R===a[0]?u.push(`<=${h}`):u.push(`${R} - ${h}`):u.push(`>=${R}`);let d=u.join(" || "),x=typeof t.raw=="string"?t.raw:String(t);return d.length<x.length?d:t}});var Pc=z((Sh,_c)=>{"use strict";var Cc=lt(),Jo=Ar(),{ANY:Yo}=Jo,Ko=Pr(),Qo=ct(),om=(e,t,r={})=>{if(e===t)return!0;e=new Cc(e,r),t=new Cc(t,r);let n=!1;e:for(let o of e.set){for(let i of t.set){let a=sm(o,i,r);if(n=n||a!==null,a)continue e}if(n)return!1}return!0},im=[new Jo(">=0.0.0-0")],Ic=[new Jo(">=0.0.0")],sm=(e,t,r)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===Yo){if(t.length===1&&t[0].semver===Yo)return!0;r.includePrerelease?e=im:e=Ic}if(t.length===1&&t[0].semver===Yo){if(r.includePrerelease)return!0;t=Ic}let n=new Set,o,i;for(let l of e)l.operator===">"||l.operator===">="?o=kc(o,l,r):l.operator==="<"||l.operator==="<="?i=Ac(i,l,r):n.add(l.semver);if(n.size>1)return null;let a;if(o&&i){if(a=Qo(o.semver,i.semver,r),a>0)return null;if(a===0&&(o.operator!==">="||i.operator!=="<="))return null}for(let l of n){if(o&&!Ko(l,String(o),r)||i&&!Ko(l,String(i),r))return null;for(let m of t)if(!Ko(l,String(m),r))return!1;return!0}let u,d,x,R,h=i&&!r.includePrerelease&&i.semver.prerelease.length?i.semver:!1,y=o&&!r.includePrerelease&&o.semver.prerelease.length?o.semver:!1;h&&h.prerelease.length===1&&i.operator==="<"&&h.prerelease[0]===0&&(h=!1);for(let l of t){if(R=R||l.operator===">"||l.operator===">=",x=x||l.operator==="<"||l.operator==="<=",o){if(y&&l.semver.prerelease&&l.semver.prerelease.length&&l.semver.major===y.major&&l.semver.minor===y.minor&&l.semver.patch===y.patch&&(y=!1),l.operator===">"||l.operator===">="){if(u=kc(o,l,r),u===l&&u!==o)return!1}else if(o.operator===">="&&!l.test(o.semver))return!1}if(i){if(h&&l.semver.prerelease&&l.semver.prerelease.length&&l.semver.major===h.major&&l.semver.minor===h.minor&&l.semver.patch===h.patch&&(h=!1),l.operator==="<"||l.operator==="<="){if(d=Ac(i,l,r),d===l&&d!==i)return!1}else if(i.operator==="<="&&!l.test(i.semver))return!1}if(!l.operator&&(i||o)&&a!==0)return!1}return!(o&&x&&!i&&a!==0||i&&R&&!o&&a!==0||y||h)},kc=(e,t,r)=>{if(!e)return t;let n=Qo(e.semver,t.semver,r);return n>0?e:n<0||t.operator===">"&&e.operator===">="?t:e},Ac=(e,t,r)=>{if(!e)return t;let n=Qo(e.semver,t.semver,r);return n<0?e:n>0||t.operator==="<"&&e.operator==="<="?t:e};_c.exports=om});var ei=z((bh,$c)=>{"use strict";var Zo=sr(),Lc=ir(),am=Be(),Bc=Do(),cm=Dt(),lm=na(),um=ia(),dm=ca(),fm=da(),mm=ma(),pm=ga(),gm=xa(),hm=Sa(),xm=ct(),vm=Ta(),Sm=Ea(),bm=Sn(),wm=Aa(),Rm=Pa(),Tm=kr(),ym=bn(),Em=Mo(),Cm=Vo(),Im=wn(),km=Rn(),Am=Fo(),_m=Va(),Pm=qa(),Lm=Ar(),Bm=lt(),$m=Pr(),Om=nc(),Dm=ic(),Nm=ac(),jm=uc(),Mm=fc(),Vm=En(),Fm=vc(),qm=bc(),Um=Tc(),Hm=Ec(),Gm=Pc();$c.exports={parse:cm,valid:lm,clean:um,inc:dm,diff:fm,major:mm,minor:pm,patch:gm,prerelease:hm,compare:xm,rcompare:vm,compareLoose:Sm,compareBuild:bm,sort:wm,rsort:Rm,gt:Tm,lt:ym,eq:Em,neq:Cm,gte:Im,lte:km,cmp:Am,coerce:_m,truncate:Pm,Comparator:Lm,Range:Bm,satisfies:$m,toComparators:Om,maxSatisfying:Dm,minSatisfying:Nm,minVersion:jm,validRange:Mm,outside:Vm,gtr:Fm,ltr:qm,intersects:Um,simplifyRange:Hm,subset:Gm,SemVer:am,re:Zo.re,src:Zo.src,tokens:Zo.t,SEMVER_SPEC_VERSION:Lc.SEMVER_SPEC_VERSION,RELEASE_TYPES:Lc.RELEASE_TYPES,compareIdentifiers:Bc.compareIdentifiers,rcompareIdentifiers:Bc.rcompareIdentifiers}});var E=k(ve(),1);var Us=k(ve(),1);var or=k(M(),1);function Hs({path:e}){return e.length===0?null:(0,or.jsx)(S,{children:e.map((t,r)=>(0,or.jsxs)(Us.default.Fragment,{children:[r>0&&(0,or.jsx)(s,{color:c.muted,children:" \u203A "}),(0,or.jsx)(s,{color:c.dim,children:t})]},r))})}var Oc=k(ei(),1),Xm=1,Wm=new Set(["discover","workflow","nudge","recovery"]),zm=new Set(["run","generate","both"]),Ym=new Set(["banner","footer"]),Cn=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),ar=e=>typeof e=="string"&&e.length>0?e:void 0,cr=e=>typeof e=="number"&&Number.isFinite(e)?e:void 0;function Km(e){if(!Cn(e))return{};let t={};return ar(e.run)&&(t.run=e.run),ar(e.generate)&&(t.generate=e.generate),ar(e.default)&&(t.default=e.default),t}function Dc(e,t){return e.text[t]??e.text.default??(e.target!=="both"?e.text[e.target]:void 0)}function Jm(e,t){return t==="both"?!!e.default||!!e.run&&!!e.generate:t==="run"?!!e.run||!!e.default:!!e.generate||!!e.default}function Qm(e,t){if(!Cn(e))return;let r=cr(e.maxShows),n=ar(e.until),o=cr(e.weight);if(!(r===void 0||r<1||n===void 0||!Number.isFinite(Date.parse(n))))return{weight:Math.max(o??t,t),maxShows:Math.floor(r),until:n}}function Zm(e){if(!Cn(e))return null;let t=ar(e.id);if(!t)return null;let r=zm.has(e.target)?e.target:void 0;if(e.target!==void 0&&r===void 0)return null;let n=r??"both",o=Km(e.text);if(!Jm(o,n))return null;let i=Wm.has(e.category)?e.category:"nudge",a=Ym.has(e.surface)?e.surface:void 0,u=cr(e.weight),d=u===void 0?1:Math.max(0,u),x=cr(e.cooldownSessions),R=x===void 0?0:Math.max(0,Math.floor(x)),h=ar(e.minVersion)&&Oc.default.coerce(e.minVersion)?e.minVersion:void 0,y=Array.isArray(e.relevance)?e.relevance.filter(B=>typeof B=="string"):[],l=cr(e.retireAfterShows),m=l!==void 0&&l>=1?Math.floor(l):void 0,P=Qm(e.boost,d);return{id:t,category:i,surface:a,target:n,text:o,weight:d,cooldownSessions:R,minVersion:h,relevance:y,retireAfterShows:m,boost:P}}function In(e){if(!Cn(e)||!Array.isArray(e.hints)||typeof e.enabled!="boolean")return{catalog:null,dropped:0};let t=cr(e.schemaVersion)??0;if(Math.floor(t)>Xm)return{catalog:null,dropped:0};let r=0,n=new Set,o=[];for(let i of e.hints){let a=Zm(i);if(!a){r++;continue}if(n.has(a.id)){r++;continue}n.add(a.id),o.push(a)}return o.length===0?{catalog:null,dropped:r}:{catalog:{schemaVersion:t,enabled:e.enabled,hints:o},dropped:r}}var Mc=k(M(),1),Nc="tip: ";function jc({hint:e,mode:t,termWidth:r}){if(e.target!=="both"&&e.target!==t)return null;let n=Dc(e,t);if(!n)return null;let o=Math.max(8,r-Nc.length-2),i=n.length>o?n.slice(0,o-1)+"\u2026":n;return(0,Mc.jsx)(s,{color:c.dim,children:Nc+i})}var J=k(M(),1);function Vc({profile:e,environment:t,tokenValid:r,runCount:n,sessionId:o,viewMode:i,breadcrumb:a,chatMode:u,tcgRequestId:d,tcgStreamStatus:x,footerHint:R}){let{stdout:h}=on(),y=h?.columns??80,l=u??"run",m=t==="stage",P=t==="prod",B=l==="generate"?c.generateAccent:c.orange,V=x==="completed"?c.green:x==="failed"?c.red:c.generateAccent;return(0,J.jsxs)(S,{flexDirection:"column",children:[(0,J.jsx)(s,{color:c.muted,children:"\u2500".repeat(y)}),a&&a.length>0&&(0,J.jsx)(S,{paddingX:1,children:(0,J.jsx)(Hs,{path:a})}),(0,J.jsxs)(S,{paddingX:1,gap:1,children:[(0,J.jsx)(s,{color:c.dim,children:"Mode:"}),(0,J.jsx)(s,{color:B,bold:!0,children:l==="generate"?"Generate":"Run"}),(0,J.jsx)(s,{color:c.muted,children:"|"}),l==="generate"?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:c.dim,children:"req"}),(0,J.jsx)(s,{color:c.dim,children:d??"\u2014"}),x&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:c.muted,children:"\xB7"}),(0,J.jsx)(s,{color:V,children:x})]})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:c.dim,children:"Session:"}),(0,J.jsx)(s,{color:c.dim,children:o})]}),(0,J.jsx)(s,{color:c.muted,children:"|"}),(0,J.jsx)(s,{color:r?c.green:c.red,children:"\u25CF"}),(0,J.jsx)(s,{color:c.dim,children:r?"authenticated":"not logged in"}),!P&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:c.muted,children:"|"}),m?(0,J.jsx)(s,{color:c.orange,bold:!0,children:"\u26A0 stage"}):(0,J.jsx)(s,{color:c.green,children:t})]})]}),(0,J.jsxs)(S,{paddingX:1,gap:1,children:[(0,J.jsx)(s,{color:c.dim,children:e??"no profile"}),l==="run"&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(s,{color:c.muted,children:"|"}),(0,J.jsxs)(s,{color:c.dim,children:["runs: ",n]})]}),(0,J.jsx)(s,{color:c.muted,children:"|"}),(0,J.jsx)(s,{dimColor:!0,children:Ni()})]}),(0,J.jsx)(S,{paddingX:1,children:(0,J.jsx)(s,{dimColor:!0,children:i==="chat"?"ctrl+c cancel/exit":"\u2191\u2193 navigate \u21B5 select esc back"})}),R&&(0,J.jsx)(S,{paddingX:1,children:(0,J.jsx)(jc,{hint:R,mode:l,termWidth:y})})]})}var Xt=k(ve(),1);var Lr=[[[" "],[" "],[" "],[" "],["\u2584","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],[" "],[" "],[" "],[" "],[" "],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2584","#af87d7"],[" "],[" "],[" "],[" "]],[[" "],[" "],["\u2584","#875faf"],["\u2584","#af87d7","#875faf"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2584","#af87d7","#875faf"],["\u2584","#875faf"],[" "],[" "]],[[" "],[" "],["\u2588","#875faf"],["\u2588","#af87d7"],["\u2584","#000000","#af87d7"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#303030"],["\u2584","#000000","#af87d7"],["\u2588","#af87d7"],["\u2588","#875faf"],[" "],[" "]],[[" "],["\u2588","#875faf"],["\u2588","#875faf"],["\u2588","#af87d7"],["\u2588","#000000"],["\u2584","#585858","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#af87d7"],["\u2588","#875faf"],["\u2588","#875faf"],[" "]],[[" "],["\u2588","#875faf"],["\u2588","#875faf"],["\u2588","#af87d7"],["\u2588","#000000"],["\u2588","#585858"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#af87d7"],["\u2588","#875faf"],["\u2588","#875faf"],[" "]],[[" "],[" "],["\u2588","#875faf"],["\u2588","#af87d7"],["\u2588","#000000"],["\u2584","#000000","#585858"],["\u2588","#000000"],["\u2588","#000000"],["\u2584","#af87d7","#000000"],["\u2584","#af87d7","#000000"],["\u2584","#af87d7","#000000"],["\u2584","#af87d7","#000000"],["\u2584","#af87d7","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#000000"],["\u2588","#af87d7"],["\u2588","#875faf"],[" "],[" "]],[[" "],[" "],["\u2580","#875faf"],["\u2580","#af87d7"],["\u2580","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2580","#af87d7"],["\u2580","#af87d7"],["\u2580","#875faf"],[" "],[" "]],[[" "],[" "],[" "],[" "],[" "],["\u2580","#af87d7"],["\u2580","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2588","#af87d7"],["\u2580","#af87d7"],["\u2580","#af87d7"],[" "],[" "],[" "],[" "],[" "]]];var ne=k(M(),1),kn="#af87d7",ti="#875faf",Fc="#5b3a7a",ep="#ff9500",tp="#ea580c";var ri="#666666",rp="#555555",Gt=[[kn,"\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588"],[kn,"\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588"],[kn,"\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588"],[kn,"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588"],[ti,"\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588"],[ti,"\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588"],[ti,"\u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588 \u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588"]],ni=Gt.map(([,e])=>[...e]);function qc({visibleRows:e=Gt.length}){let t=Math.min(e,Gt.length);return(0,ne.jsxs)(S,{flexDirection:"column",children:[Gt.slice(0,t).map(([r,n],o)=>{let i=ni[o];return(0,ne.jsx)(s,{children:i.map((a,u)=>{if(a==="\u2588")return(0,ne.jsx)(s,{color:r,children:"\u2588"},u);let d=u>0&&i[u-1]==="\u2588",x=o>0&&u>0&&ni[o-1][u-1]==="\u2588";return d||x?(0,ne.jsx)(s,{color:Fc,children:"\u2592"},u):(0,ne.jsx)(s,{children:" "},u)})},o)}),t>=Gt.length&&(0,ne.jsxs)(s,{children:[" ",ni[Gt.length-1].map((r,n)=>r==="\u2588"?(0,ne.jsx)(s,{color:Fc,children:"\u2580"},n):(0,ne.jsx)(s,{children:" "},n))]})]})}function np({visibleRows:e=Lr.length}){let t=Math.min(e,Lr.length);return(0,ne.jsx)(S,{flexDirection:"column",children:Lr.slice(0,t).map((r,n)=>(0,ne.jsx)(s,{children:r.map((o,i)=>{let a=o[0],u=o[1],d=o[2];return u?(0,ne.jsx)(s,{color:u,backgroundColor:d,children:a},i):(0,ne.jsx)(s,{children:a},i)})},n))})}function An({size:e="compact",helmetVisibleRows:t=Lr.length,textVisibleRows:r=Gt.length,showMeta:n=!1,user:o=null,authenticated:i=!1,version:a=""}){return e==="compact"?(0,ne.jsx)(qc,{}):(0,ne.jsxs)(S,{flexDirection:"column",paddingX:1,paddingY:1,children:[(0,ne.jsx)(s,{color:ep,italic:!0,children:" Welcome to"}),(0,ne.jsx)(s,{children:" "}),(0,ne.jsxs)(S,{gap:2,children:[(0,ne.jsx)(np,{visibleRows:t}),(0,ne.jsxs)(S,{flexDirection:"column",children:[(0,ne.jsx)(qc,{visibleRows:r}),(0,ne.jsx)(S,{justifyContent:"flex-end",width:73,children:(0,ne.jsx)(s,{color:tp,italic:!0,children:"Command-line interface"})})]})]}),n&&(0,ne.jsxs)(ne.Fragment,{children:[(0,ne.jsx)(s,{children:" "}),(0,ne.jsxs)(s,{children:[(0,ne.jsx)(s,{color:ri,children:" Browser automation powered by AI. "}),(0,ne.jsx)(s,{color:rp,children:`v${a}`})]}),(0,ne.jsx)(s,{children:" "}),(0,ne.jsx)(s,{children:(0,ne.jsx)(s,{color:ri,children:" KaneCLI can navigate websites, fill forms, test web UI, and extract"})}),(0,ne.jsx)(s,{children:(0,ne.jsx)(s,{color:ri,children:" data \u2014 right from your terminal."})}),(0,ne.jsx)(s,{children:" "})]})]})}var si=k(M(),1),oi=8,ii=7;function Uc({onComplete:e}){let[t,r]=(0,Xt.useState)(0),[n,o]=(0,Xt.useState)(0),[i,a]=(0,Xt.useState)(!1),[u]=(0,Xt.useState)(()=>{let d=new sn,x=d.getActiveProfile(),R=d.getDefaultEnv(),h=x?d.loadCredentials(x,R):null,y=x?d.loadBasicAuth(x,R):null;return{authenticated:!!(h||y),user:y?.username??x??null}});return Ro(()=>{r(d=>Math.min(oi,d+1))},t<oi?60:null),Ro(()=>{o(d=>Math.min(ii,d+1))},n<ii?80:null),(0,Xt.useEffect)(()=>{t>=oi&&n>=ii&&!i&&(a(!0),e?.())},[t,n,i,e]),(0,si.jsx)(S,{flexDirection:"column",children:(0,si.jsx)(An,{size:"full",helmetVisibleRows:t,textVisibleRows:n,showMeta:i,user:u.user,authenticated:u.authenticated,version:mt})})}var Ct=k(M(),1);function Hc({entry:e}){return e.type==="input"?(0,Ct.jsxs)(S,{children:[(0,Ct.jsx)(s,{color:c.orange,children:"\u276F "}),(0,Ct.jsx)(s,{children:e.text})]}):e.type==="error"?(0,Ct.jsx)(S,{marginLeft:2,children:(0,Ct.jsx)(s,{color:c.red,children:e.text})}):(0,Ct.jsx)(S,{marginLeft:2,children:(0,Ct.jsx)(s,{color:e.type==="info"?c.dim:void 0,children:e.text})})}var wt=k(ve(),1);var Ke=k(M(),1);function op(e,t){let r=[],o=Math.max(t-4,30);r.push({type:"title",text:e.title});for(let i=0;i<e.sections.length;i++){let a=e.sections[i];i>0&&r.push({type:"divider",text:"\u2500".repeat(o)}),a.label&&r.push({type:"header",text:a.label});let u=a.entries.length>0?Math.max(...a.entries.map(d=>d.key.length)):0;for(let d of a.entries){let x="\xB7".repeat(Math.max(2,u-d.key.length+3)),R=`${d.key} ${x} ${d.value}`;r.push({type:"entry",text:R,color:d.color})}}return r.push({type:"footer",text:"esc back"}),r}function Gc({data:e,width:t=60}){let r=op(e,t);return(0,Ke.jsx)(S,{flexDirection:"column",borderStyle:"round",borderColor:c.orange,paddingX:2,paddingY:1,children:r.map((n,o)=>{if(n.type==="title")return(0,Ke.jsx)(s,{color:c.orange,bold:!0,children:n.text},o);if(n.type==="header")return(0,Ke.jsx)(S,{marginTop:1,children:(0,Ke.jsx)(s,{color:c.dim,children:n.text})},o);if(n.type==="divider")return(0,Ke.jsx)(S,{marginTop:1,marginBottom:0,children:(0,Ke.jsx)(s,{color:c.muted,children:n.text})},o);if(n.type==="footer")return(0,Ke.jsx)(S,{marginTop:1,children:(0,Ke.jsx)(s,{color:c.dim,children:n.text})},o);let i=n.text.match(/^(.+?) (·+) (.+)$/);return i?(0,Ke.jsxs)(s,{children:[(0,Ke.jsxs)(s,{color:c.secondary,children:[i[1]," "]}),(0,Ke.jsxs)(s,{color:c.muted,children:[i[2]," "]}),(0,Ke.jsx)(s,{color:n.color,children:i[3]})]},o):(0,Ke.jsx)(s,{color:n.color,children:n.text},o)})})}var Oe=k(M(),1);function ai(e,t){let r=[];function n(o,i){for(let a of o)r.push({item:a,depth:i}),a.type==="submenu"&&a.children&&t.length>i&&t[i]===a.id&&n(a.children,i+1)}return n(e,0),r}function ci({items:e,onRunSelected:t,initialExpandedPath:r,onDismiss:n,renderLoginWizard:o,renderProfilesView:i,renderChromeProfilePicker:a,renderProjectPicker:u,renderFolderPicker:d,renderWindowSizePicker:x,onActiveViewChange:R}){let[h,y]=(0,wt.useState)(()=>{let $=r??[],q=ai(e,$),A=0;if($.length>0){let F=q.findIndex(re=>re.item.id===$[0]);F>=0&&F+1<q.length&&(A=F+1)}return{expandedPath:$,selectedIndex:A,inputValue:"",isEditing:!1,isSelecting:!1,feedback:null,activeView:null,infoData:null}}),l=ai(e,h.expandedPath),m=l[h.selectedIndex]?.item,P=(0,wt.useRef)(null),B=(0,wt.useCallback)($=>{y(q=>({...q,feedback:$})),P.current&&clearTimeout(P.current),P.current=setTimeout(()=>{y(q=>({...q,feedback:null})),P.current=null},4e3)},[]);(0,wt.useEffect)(()=>()=>{P.current&&clearTimeout(P.current)},[]),(0,wt.useEffect)(()=>{R?.(h.activeView)},[h.activeView,R]);let V=(0,wt.useCallback)(()=>{y($=>({...$,activeView:null,infoData:null}))},[]);return Ee(($,q)=>{if(h.activeView==="infoView"){q.escape&&V();return}if(!(h.activeView==="loginWizard"||h.activeView==="profilesView"||h.activeView==="chromeProfilePicker"||h.activeView==="projectPicker"||h.activeView==="folderPicker"||h.activeView==="windowSizePicker")){if(h.isEditing){if(q.escape){y(A=>({...A,isEditing:!1,inputValue:""}));return}if(q.return){let A=h.inputValue.trim();if(m?.onValue&&A){let F=m.currentValue;m.onValue(A),B(F?`${m.label}: ${F} \u2192 ${A}`:`${m.label}: ${A}`)}y(F=>({...F,isEditing:!1,inputValue:""}));return}if(q.backspace||q.delete){y(A=>({...A,inputValue:A.inputValue.slice(0,-1)}));return}$&&!q.ctrl&&!q.meta&&y(A=>({...A,inputValue:A.inputValue+$}));return}if(h.isSelecting&&m?.options){let A=m.options;if(q.escape){y(F=>({...F,isSelecting:!1}));return}if(q.upArrow){y(F=>({...F,inputValue:String(Math.max(0,Number(F.inputValue||"0")-1))}));return}if(q.downArrow){y(F=>({...F,inputValue:String(Math.min(A.length-1,Number(F.inputValue||"0")+1))}));return}if(q.return){let F=Number(h.inputValue||"0"),re=A[F];if(re&&m.onValue){let oe=m.currentValue;m.onValue(re.value),B(oe?`${m.label}: ${oe} \u2192 ${re.label}`:`${m.label}: ${re.label}`)}y(oe=>({...oe,isSelecting:!1,inputValue:""}));return}return}if(q.upArrow){y(A=>({...A,selectedIndex:Math.max(0,A.selectedIndex-1)}));return}if(q.downArrow){y(A=>({...A,selectedIndex:Math.min(l.length-1,A.selectedIndex+1)}));return}if(q.escape){if(h.expandedPath.length===0){n?.();return}y(A=>{let F=A.expandedPath.slice(0,-1),re=ai(e,F),oe=A.expandedPath[A.expandedPath.length-1],ue=re.findIndex(W=>W.item.id===oe);return{...A,expandedPath:F,selectedIndex:ue>=0?ue:0}});return}if(q.return&&m){if(m.id==="run-start"){t();return}if(m.type==="submenu"){let A=l[h.selectedIndex]?.depth??0;y(F=>({...F,expandedPath:[...F.expandedPath.slice(0,A),m.id],selectedIndex:F.selectedIndex+1}));return}if(m.onInfo){let A=m.onInfo();y(F=>({...F,activeView:"infoView",infoData:A}));return}if(m.onLoginWizard){m.onLoginWizard(),y(A=>({...A,activeView:"loginWizard"}));return}if(m.onProfilesView){m.onProfilesView(),y(A=>({...A,activeView:"profilesView"}));return}if(m.onChromeProfilePicker){m.onChromeProfilePicker(),y(A=>({...A,activeView:"chromeProfilePicker"}));return}if(m.onProjectPicker){m.onProjectPicker(),y(A=>({...A,activeView:"projectPicker"}));return}if(m.onFolderPicker){m.onFolderPicker(),y(A=>({...A,activeView:"folderPicker"}));return}if(m.onWindowSizePicker){m.onWindowSizePicker(),y(A=>({...A,activeView:"windowSizePicker"}));return}if(m.type==="action"){m.onAction?.(),m.suppressFeedback||B(`${m.label} done`);return}if(m.type==="select"&&m.options){let A=m.options.findIndex(F=>F.value===m.currentValue);y(F=>({...F,isSelecting:!0,inputValue:String(Math.max(0,A))}));return}if(m.type==="text-input"){y(A=>({...A,isEditing:!0,inputValue:m.currentValue??""}));return}}}}),(0,Oe.jsx)(S,{flexDirection:"column",paddingX:1,children:h.activeView==="infoView"&&h.infoData?(0,Oe.jsx)(Gc,{data:h.infoData}):h.activeView==="loginWizard"&&o?o(V):h.activeView==="profilesView"&&i?i(V):h.activeView==="chromeProfilePicker"&&a?a(V):h.activeView==="projectPicker"&&u?u(V):h.activeView==="folderPicker"&&d?d(V):h.activeView==="windowSizePicker"&&x?x(V):(0,Oe.jsxs)(Oe.Fragment,{children:[l.map(({item:$,depth:q},A)=>{let F=A===h.selectedIndex,re=" ".repeat(q),oe=F?"\u276F ":" ",ue=$.type==="submenu"?h.expandedPath.includes($.id)?"\u25BC ":"\u25B6 ":" ",W=$.currentValue!=null?` [${$.currentValue}]`:"";if(F&&h.isSelecting&&$.options){let se=Number(h.inputValue||"0");return(0,Oe.jsxs)(S,{flexDirection:"column",children:[(0,Oe.jsxs)(s,{color:c.orange,children:[re,oe,ue,$.label]}),$.options.map((ce,Te)=>(0,Oe.jsxs)(s,{color:Te===se?c.orange:void 0,children:[re," ",Te===se?"\u276F ":" ",ce.label]},ce.value))]},$.id)}return F&&h.isEditing?(0,Oe.jsxs)(s,{color:c.orange,children:[re,oe,ue,$.label,": ",h.inputValue,(0,Oe.jsx)(s,{color:c.dim,children:"\u2588"})]},$.id):(0,Oe.jsxs)(s,{color:F?c.orange:void 0,dimColor:!F&&q>0,children:[re,oe,ue,$.label,(0,Oe.jsx)(s,{dimColor:!0,children:W})]},$.id)}),h.feedback&&(0,Oe.jsx)(S,{marginTop:1,children:(0,Oe.jsxs)(s,{color:c.green,children:["\u2713 ",h.feedback]})}),(0,Oe.jsx)(Zt,{bindings:[{keys:"\u2191\u2193",label:"navigate"},{keys:"\u21B5",label:"select"}],escBackLabel:"back"})]})})}var Br=k(ve(),1);var Me=k(M(),1),li=800,ui=3840,di=600,fi=2160;function Xc(e,t){if(!t)return"Enter a value";let r=Number(t);if(!Number.isInteger(r))return"Must be a whole number";if(e==="width"){if(r<li)return`Min ${li}`;if(r>ui)return`Max ${ui}`}else{if(r<di)return`Min ${di}`;if(r>fi)return`Max ${fi}`}return null}function mi({currentWidth:e,currentHeight:t,onSelect:r,onCancel:n}){let[o,i]=(0,Br.useState)("width"),[a,u]=(0,Br.useState)(String(e)),[d,x]=(0,Br.useState)(String(t)),[R,h]=(0,Br.useState)(null);Ee((l,m)=>{if(m.escape){n();return}if(m.tab||m.rightArrow||m.leftArrow){i(P=>P==="width"?"height":"width"),h(null);return}if(m.return){let P=Xc("width",a);if(P){i("width"),h(`Width: ${P}`);return}let B=Xc("height",d);if(B){i("height"),h(`Height: ${B}`);return}r(Number(a),Number(d));return}if(m.backspace||m.delete){o==="width"?u(P=>P.slice(0,-1)):x(P=>P.slice(0,-1)),h(null);return}l&&/^\d$/.test(l)&&(o==="width"?u(P=>P+l):x(P=>P+l),h(null))});let y=(l,m,P)=>{let B=o===P,V=B?c.orange:c.secondary;return(0,Me.jsxs)(S,{flexDirection:"column",children:[(0,Me.jsxs)(s,{color:c.dim,children:[" ",l]}),(0,Me.jsx)(S,{borderStyle:"round",borderColor:V,paddingX:1,width:10,children:(0,Me.jsxs)(s,{color:B?void 0:c.dim,children:[m||" ",B?(0,Me.jsx)(s,{color:c.dim,children:"\u2588"}):""]})}),(0,Me.jsxs)(s,{color:c.dim,dimColor:!0,children:[" ",P==="width"?`${li}\u2013${ui}`:`${di}\u2013${fi}`]})]})};return(0,Me.jsxs)(S,{flexDirection:"column",paddingX:1,children:[(0,Me.jsx)(s,{color:c.orange,bold:!0,children:"Window Size"}),(0,Me.jsxs)(S,{marginTop:1,gap:1,children:[y("Width",a,"width"),(0,Me.jsx)(S,{alignItems:"center",marginTop:1,children:(0,Me.jsx)(s,{color:c.dim,children:"x"})}),y("Height",d,"height")]}),R&&(0,Me.jsx)(S,{marginTop:1,children:(0,Me.jsx)(s,{color:c.red,children:R})}),(0,Me.jsx)(Zt,{bindings:[{keys:"tab/\u2190\u2192",label:"switch field"},{keys:"\u21B5",label:"save"}],escBackLabel:"cancel"})]})}var Ve=k(ve(),1);async function Wc(e,t,r){let n=e.loadCredentials(t,r),o=e.loadClient(t,r);if(n&&o){let a=new Yi(r);await Promise.allSettled([a.revokeToken(n.access_token,o.client_id,"access_token"),a.revokeToken(n.refresh_token,o.client_id,"refresh_token")])}e.deleteProfileFull(t,r);let i=e.listProfiles();return i.length>0&&(e.setActiveProfile(i[0].profile),e.setDefaultEnv(i[0].env)),{profile:t,env:r,switchedTo:i.length>0?i[0]:void 0}}function zc(){let[e]=(0,Ve.useState)(()=>new sn),[t,r]=(0,Ve.useState)(()=>{let m=e.resolveAuth();if(!m)return!1;if(m.method==="basic")return!0;let{credentials:P}=e.getActiveCredentials();return P?P.expires_at>Date.now()/1e3:!1}),n=(0,Ve.useRef)(null),o=(0,Ve.useRef)(null),i=(0,Ve.useCallback)(()=>{let m=e.resolveAuth();return m?{method:m.method,profile:m.profile,env:m.env}:null},[e]),a=(0,Ve.useCallback)(async()=>{let{credentials:m,profile:P,env:B}=e.getActiveCredentials();if(!m||!P||!B)return null;let V=m.expires_at,$=Date.now()/1e3;if(V-$<300){if(o.current)return o.current;let q=(async()=>{try{let A=await Ki({creds:e,profile:P,env:B,credentials:m});return A?(r(!0),A.accessToken):null}catch{return r(!1),null}finally{o.current=null}})();return o.current=q,q}return r(!0),m.access_token},[e]),u=(0,Ve.useCallback)(()=>{let m=e.resolveAuth();return!m||m.method!=="basic"?null:{username:m.username,access_key:m.access_key}},[e]),d=(0,Ve.useCallback)((m,P)=>{n.current?.revoke();let B=ze(m),V=u(),$=new Qi(B.controllerBaseUrl,a,V,P);return n.current=$,$},[u,a]),x=(0,Ve.useCallback)(()=>n.current,[]),R=(0,Ve.useCallback)(()=>{let m=u();if(m)return m;let P=n.current?.cached;return P?{username:P.username,access_key:P.access_key}:null},[u]),h=(0,Ve.useCallback)(async()=>{let m=n.current;return m?m.resolve():null},[]),y=(0,Ve.useCallback)(async(m="default")=>{let P=e.getDefaultEnv();await new Ji(m,P,e).login(),e.setActiveProfile(m);try{let V=new rr;at(e,V,m,P)}catch{}r(!0)},[e]),l=(0,Ve.useCallback)(async()=>{let m=e.getActiveProfile();if(!m)return null;let P=e.getDefaultEnv(),B=await Wc(e,m,P);return r(!1),{profile:B.profile,env:B.env}},[e]);return{creds:e,tokenValid:t,setTokenValid:r,getToken:a,getBasicAuth:u,getAuthInfo:i,login:y,logout:l,initResolver:d,getResolver:x,getResolvedBasicAuth:R,resolveBasicAuth:h}}var It=k(ve(),1);import{mkdtempSync as ip,rmSync as sp}from"fs";import{join as ap}from"path";import{tmpdir as cp}from"os";function Yc(){let[e]=(0,It.useState)(()=>new rr),t=(0,It.useRef)(null),r=(0,It.useRef)(null),n=(0,It.useRef)(null),o=(0,It.useCallback)(async a=>{if(t.current)return t.current;if(n.current)return n.current;let u=(async()=>{let d=e.load(),x;if(d.chrome_profile_path)x=d.chrome_profile_path.replace("~",process.env.HOME??"~");else{r.current&&(Ot("tempDir","Previous temp dir removed before retry"),r.current=null);let h=ip(ap(cp(),"kane-clean-"));r.current=h,x=h,xt("tempDir",()=>{try{sp(h,{recursive:!0,force:!0})}catch{}})}let R=await es({userDataDir:x,width:d.window_size.width,height:d.window_size.height,startUrl:a??d.default_url??void 0});return t.current=R,xt("chrome",()=>{R.kill()}),R})();n.current=u;try{return await u}finally{n.current=null}},[e]),i=(0,It.useCallback)(()=>{Ot("chrome","Chrome killed"),Ot("tempDir","Temp dir removed"),t.current=null,r.current=null},[]);return{ensureChrome:o,killChrome:i}}var _n=[{name:"run",description:"Execute a test run",args:'[--url <url>] "objective"'},{name:"login",description:"OAuth login",args:"[--profile name]"},{name:"logout",description:"Logout & revoke tokens",args:"[--profile name]"},{name:"whoami",description:"Show profile info",args:"[--profile name]"},{name:"balance",description:"Show credit balance"},{name:"profiles",description:"Manage profiles",args:"list|switch|delete"},{name:"config",description:"Manage configuration",args:"show|set-window|set-mode|chrome-profile|project|folder|hints"},{name:"new",description:"Start a fresh session (uploads current first)"},{name:"name",description:"Set the current session's name (used at /exit save)",args:"<new-name>"},{name:"summary",description:"View detailed run summaries",args:"[index]"},{name:"cancel",description:"Abort current run"},{name:"help",description:"Show command reference"},{name:"clear",description:"Clear chat history"},{name:"exit",description:"Quit kane-cli"}];function Pn(e){let t=e.trim();if(!t.startsWith("/"))return null;let n=t.slice(1).match(/(?:[^\s"]+|"[^"]*")+/g)??[];if(n.length===0)return null;let o=n[0],i={},a=1;for(;a<n.length;){let u=n[a];if(u.startsWith("--")){let d=u.slice(2),x=n[a+1];x&&!x.startsWith("--")?(i[d]=x.replace(/^"|"$/g,""),a+=2):(i[d]=void 0,a++)}else{let d=u.replace(/^"|"$/g,"");o==="run"?i.objective=d:o==="config"?i.action?i.value=d:i.action=d:o==="profiles"?i.action=d:o==="summary"&&(i.index=d),a++}}return{command:o,args:i,raw:t}}var yx=[{name:"Testing",commands:_n.filter(e=>["run","cancel"].includes(e.name))},{name:"Auth",commands:_n.filter(e=>["login","logout","whoami","balance","profiles"].includes(e.name))},{name:"Settings",commands:_n.filter(e=>["config"].includes(e.name))},{name:"Session",commands:_n.filter(e=>["new","name","summary","help","clear","exit"].includes(e.name))}];var Kc=[{name:"testmd",description:"Browse & run saved tests under cwd"},{name:"auth",description:"Login, logout, profiles"},{name:"config",description:"View/change settings",args:"show|mode|window|chrome-profile|project|folder|hints"},{name:"help",description:"Command reference"},{name:"new",description:"Start a fresh session"},{name:"name",description:"Set the session name",args:"<new-name>"},{name:"exit",description:"Quit kane-cli"}],lp={name:"cancel",description:"Abort current run"},up={name:"cancel",description:"Cancel current generation"},lr=[{name:"generate",description:"Switch to Generate mode (test case generator)"},{name:"summary",description:"View run summaries",args:"[index]"},lp,...Kc],$r=[{name:"run",description:"Switch back to Run mode"},{name:"save",description:"Save the current test cases"},{name:"view",description:"Open the scenario browser",args:"[S<n>]"},up,...Kc],Jc=lr;function Ln(e,t="run"){let r=t==="generate"?$r:lr,n=e.startsWith("/")?e.slice(1):e;return n?r.filter(o=>o.name.startsWith(n)):r}var dp=new Set([...lr,...$r].map(e=>e.name));function Qc(e,t){let r=t==="generate"?$r:lr;return dp.has(e)?r.some(n=>n.name===e):!0}function Zc(e,t){let r=t?.trim();return r?e==="generate"?{kind:"reject"}:{kind:"run",objective:r}:e==="generate"?{kind:"toggle"}:{kind:"already"}}var Nt=k(M(),1);function pi({flows:e,filterIndex:t}){let r=t!==void 0?e.filter(n=>n.index===t):e;return r.length===0?null:(0,Nt.jsx)(S,{flexDirection:"column",children:r.map(n=>(0,Nt.jsxs)(S,{flexDirection:"column",marginTop:1,children:[(0,Nt.jsxs)(S,{marginLeft:1,children:[(0,Nt.jsx)(s,{color:c.purple,bold:!0,children:"Flow "+n.index+": "}),(0,Nt.jsx)(s,{color:c.purple,children:n.objective})]}),(0,Nt.jsx)(as,{status:n.status==="error"?"failed":n.status,summary:n.summary,duration:n.duration,steps:n.steps,stepsPassed:n.stepsPassed,stepsFailed:n.stepsFailed,reason:n.reason,creditsConsumed:n.creditsConsumed})]},n.index))})}var jt=k(M(),1),fp={ok:"\u2713",error:"\u2717",cancelled:"\u2298"},mp={ok:c.green,error:c.red,cancelled:c.dim};function el({status:e,command:t,message:r,details:n,accentColor:o}){let i=t.startsWith("/")?t.slice(1):t,a=o??mp[e];return(0,jt.jsxs)(S,{flexDirection:"column",marginLeft:2,marginTop:1,children:[(0,jt.jsx)(S,{marginLeft:1,children:(0,jt.jsxs)(s,{color:a,bold:!0,children:[fp[e]," ",i]})}),(0,jt.jsxs)(S,{borderStyle:"round",borderColor:a,paddingX:2,flexDirection:"column",width:70,children:[(0,jt.jsx)(s,{children:r}),n&&(0,jt.jsx)(s,{color:c.dim,children:n})]})]})}var jr=k(ve(),1);import{join as Dr}from"path";var Or=k(M(),1);function tl({tabs:e,activeIndex:t}){return(0,Or.jsx)(S,{children:e.map((r,n)=>(0,Or.jsx)(S,{marginRight:1,children:n===t?(0,Or.jsx)(s,{color:c.orange,bold:!0,children:`[ ${r} ]`}):(0,Or.jsx)(s,{color:c.dim,children:` ${r} `})},r))})}var C=k(M(),1),Nr=["Commands","Shortcuts","Tests","Setup","About"],Bn=18,pp="https://www.testmuai.com/support/docs/kane-cli-introduction",gp="https://github.com/LambdaTest/kane-cli/issues";function rl({onClose:e,version:t,environment:r,sessionId:n,runUrl:o,mode:i="run"}){let[a,u]=(0,jr.useState)(0),[d,x]=(0,jr.useState)(0);(0,jr.useEffect)(()=>{x(0)},[a]);let R=Nr[a],h=R==="Commands"?hp(i):R==="Shortcuts"?xp():R==="Tests"?vp():R==="Setup"?Sp():bp({version:t,environment:r,sessionId:n,runUrl:o}),y=h.length,l=d>0,m=d+Bn<y,P=h.slice(d,d+Bn);Ee((V,$)=>{if($.escape){e();return}if($.rightArrow||$.tab){u(q=>(q+1)%Nr.length);return}if($.leftArrow){u(q=>(q-1+Nr.length)%Nr.length);return}if($.upArrow){x(q=>Math.max(0,q-1));return}if($.downArrow){x(q=>Math.min(Math.max(0,y-Bn),q+1));return}});let B=[{keys:"\u2190\u2192/tab",label:"switch tabs"}];return y>Bn&&B.push({keys:"\u2191\u2193",label:"scroll"}),(0,C.jsxs)(S,{flexDirection:"column",borderStyle:"round",borderColor:c.orange,paddingX:2,paddingY:1,children:[(0,C.jsx)(tl,{tabs:[...Nr],activeIndex:a,onChange:u}),l&&(0,C.jsx)(S,{marginTop:1,children:(0,C.jsx)(s,{color:c.dim,children:"\u25B2 more above"})}),(0,C.jsx)(S,{marginTop:l?0:1,flexDirection:"column",children:P}),m&&(0,C.jsx)(S,{children:(0,C.jsx)(s,{color:c.dim,children:"\u25BC more below"})}),(0,C.jsx)(Zt,{bindings:B,escBackLabel:"back to chat"})]})}function hp(e){let t=e==="generate"?$r:lr;return[(0,C.jsx)(s,{color:c.dim,children:"Type a natural-language objective and press \u21B5 to run, e.g."},"intro"),(0,C.jsx)(S,{marginLeft:2,children:(0,C.jsx)(s,{color:c.orange,children:'"search amazon for laptop"'})},"ex"),(0,C.jsx)(S,{marginBottom:1},"sp"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Slash commands"},"cmd-h"),...t.map(r=>(0,C.jsxs)(S,{marginLeft:2,children:[(0,C.jsx)(S,{width:14,children:(0,C.jsxs)(s,{color:c.orange,children:["/",r.name]})}),r.args&&(0,C.jsx)(S,{width:14,children:(0,C.jsx)(s,{color:c.dim,children:r.args})}),(0,C.jsx)(s,{color:c.dim,children:r.description})]},r.name)),(0,C.jsx)(S,{marginBottom:1},"sp2"),(0,C.jsx)(S,{marginLeft:2,children:(0,C.jsx)(s,{color:c.dim,children:"/auth submenu: login \xB7 logout \xB7 whoami \xB7 profiles \xB7 balance"})},"auth-sub"),(0,C.jsx)(S,{marginLeft:2,children:(0,C.jsx)(s,{color:c.dim,children:"/config submenu: show \xB7 set-mode \xB7 set-window \xB7 chrome-profile \xB7 project \xB7 folder"})},"config-sub")]}function $n(e,t){return[(0,C.jsx)(s,{color:c.dim,bold:!0,children:e},`h-${e}`),...t.map(([r,n],o)=>(0,C.jsxs)(S,{marginLeft:2,children:[(0,C.jsx)(S,{width:26,children:(0,C.jsx)(s,{color:c.orange,children:r})}),(0,C.jsx)(s,{color:c.dim,children:n})]},`r-${e}-${o}`)),(0,C.jsx)(S,{marginBottom:1},`s-${e}`)]}function xp(){return[...$n("Cursor & word edit",[["\u2190 \u2192","Cursor by char"],["Ctrl+A Ctrl+E","Start / end of line"],["Home End","Start / end (Linux/Win; rare on Mac laptops)"],["Backspace","Delete char before cursor"],["Ctrl+W","Delete word back"],["Ctrl+U","Clear input"],["Ctrl+K","Kill from cursor to end"],["Ctrl+\u2190 Ctrl+\u2192","Word jump (Linux/Win, iTerm2)"],["Option+\u2190 Option+\u2192","Word jump (Mac native)"],["Option+B Option+F","Word jump (Mac, Emacs-style)"],["Alt+Backspace","Delete word back (Option+Delete on Mac)"],["Ctrl+Delete Option+Fn+Del","Delete word forward"]]),...$n("History & completion",[["\u2191 \u2193","Previous / next history"],["Tab","Accept ghost / fill highlighted command"],["Ctrl+R","Reverse-search history"],["\u21B5","Submit"],["Esc","Close overlay / clear / back"]]),...$n("Lists & menus",[["\u2191 \u2193","Navigate"],["type any char","Filter"],["\u21B5","Select"],["Tab","Create-new (in pickers)"],["Esc","Clear filter, then back"]]),...$n("Global",[["Ctrl+C","Cancel run \xB7 twice exits"]]),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Platform caveats"},"cv-h"),(0,C.jsx)(s,{color:c.dim,children:'\u2022 Mac Terminal.app: enable "Use Option as Meta key" (Profile \u2192 Keyboard)'},"cv-1"),(0,C.jsx)(s,{color:c.dim,children:"\u2022 Mac iTerm2: works by default (Esc+ mode)"},"cv-2"),(0,C.jsx)(s,{color:c.dim,children:"\u2022 Mac Mission Control may intercept Ctrl+arrow \u2014 use Option+arrow instead"},"cv-3"),(0,C.jsx)(s,{color:c.dim,children:"\u2022 Bare Forward Delete acts as Backspace (Ink can't disambiguate)"},"cv-4"),(0,C.jsx)(s,{color:c.dim,children:"\u2022 Shift+arrow is parsed but unbound (selection model is future)"},"cv-5"),(0,C.jsx)(s,{color:c.dim,children:"\u2022 Thousands of terminals exist \u2014 if a shortcut fails, run `cat` to see bytes"},"cv-6")]}function vp(){return[(0,C.jsxs)(s,{color:c.dim,children:["Sessions you run here are saved as ",(0,C.jsx)(s,{color:c.orange,children:"*_test.md"})," files you can replay later."]},"t-intro"),(0,C.jsx)(S,{marginBottom:1},"t-sp1"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Auto-save"},"t-save-h"),(0,C.jsxs)(s,{color:c.dim,children:[" In ",(0,C.jsx)(s,{color:c.orange,children:"testing"})," mode, /exit prompts to save the session under a name (default: timestamp)."]},"t-save-1"),(0,C.jsxs)(s,{color:c.dim,children:[" In ",(0,C.jsx)(s,{color:c.orange,children:"action"})," mode, sessions are ephemeral unless launched with --name or set via /name."]},"t-save-2"),(0,C.jsxs)(s,{color:c.dim,children:[" Output: ",(0,C.jsx)(s,{color:c.orange,children:"<cwd>/.testmuai/tests/<name>_test.md"})," + sibling ",(0,C.jsx)(s,{color:c.orange,children:"output-<name>/"})," (Result.md + .internal/meta.json)."]},"t-save-3"),(0,C.jsx)(S,{marginBottom:1},"t-sp2"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Replay from a shell"},"t-run-h"),(0,C.jsxs)(s,{color:c.dim,children:[" ",(0,C.jsx)(s,{color:c.orange,children:"kane-cli testmd run path/to/foo_test.md"})," \xB7 ",(0,C.jsx)(s,{color:c.orange,children:"kane-cli testmd list"})," \xB7 bare ",(0,C.jsx)(s,{color:c.orange,children:"kane-cli testmd"})," opens a TTY picker."]},"t-run-1"),(0,C.jsx)(s,{color:c.dim,children:" The .md file carries its own config (mode, max_steps, variables, \u2026) so the replay is reproducible."},"t-run-2"),(0,C.jsx)(S,{marginBottom:1},"t-sp3"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Naming a session mid-run"},"t-name-h"),(0,C.jsxs)(s,{color:c.dim,children:[" Type ",(0,C.jsxs)(s,{color:c.orange,children:["/name ","<new-name>"]})," any time before /exit. Name allowed chars: letters, digits, _, -."]},"t-name-1"),(0,C.jsxs)(s,{color:c.dim,children:[" Discarding at the save prompt: press ",(0,C.jsx)(s,{color:c.orange,children:"N"})," (only key that discards \u2014 every other key saves with default)."]},"t-name-2")]}function Sp(){return[(0,C.jsx)(s,{color:c.dim,bold:!0,children:"1. Login"},"s1-h"),(0,C.jsx)(s,{color:c.dim,children:" /auth \u2192 login. OAuth opens browser; basic uses LambdaTest username + access key."},"s1-b"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"2. Project & folder"},"s2-h"),(0,C.jsx)(s,{color:c.dim,children:" /config project / /config folder. Esc auto-picks KaneAI Generated / Untitled."},"s2-b"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"3. Mode"},"s3-h"),(0,C.jsx)(s,{color:c.dim,children:" testing (saves to TMS) | action (local report). /config set-mode"},"s3-b"),(0,C.jsx)(S,{marginBottom:1},"spacer-1"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Variables (later wins)"},"v-h"),(0,C.jsxs)(s,{color:c.dim,children:[" ",`${Dr(We,"variables")}/*.json`," (global)"]},"v-1"),(0,C.jsxs)(s,{color:c.dim,children:[" ","{cwd}/.testmuai/variables/*.json"," (local) \xB7 --variables-file \xB7 --variables ","'{...}'"]},"v-2"),(0,C.jsx)(s,{color:c.dim,children:' Format: { "key": { "value": "...", "secret": false } } \xB7 ref via {{key}}'},"v-3"),(0,C.jsx)(S,{marginBottom:1},"spacer-2"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Context files"},"c-h"),(0,C.jsxs)(s,{color:c.dim,children:[" Global: ",Dr(We,"global-memory.md")]},"c-1"),(0,C.jsxs)(s,{color:c.dim,children:[" Local: ","{cwd}/.testmuai/context.md"," \xB7 CLI: --global-context, --local-context"]},"c-2"),(0,C.jsx)(S,{marginBottom:1},"spacer-3"),(0,C.jsx)(s,{color:c.dim,bold:!0,children:"Paths"},"p-h"),(0,C.jsxs)(s,{color:c.dim,children:[" Config: ",Dr(We,"tui-config.json")," \xB7 Auth: ",Dr(We,"config.json")]},"p-1"),(0,C.jsxs)(s,{color:c.dim,children:[" Sessions: ",Dr(We,"sessions"),"/"]},"p-2")]}function bp({version:e,environment:t,sessionId:r,runUrl:n}){return[(0,C.jsxs)(S,{children:[(0,C.jsx)(s,{color:c.orange,bold:!0,children:"kane-cli "}),(0,C.jsxs)(s,{color:c.muted,children:["v",e]})]},"title"),(0,C.jsx)(S,{marginBottom:1},"sp"),(0,C.jsxs)(S,{children:[(0,C.jsx)(S,{width:14,children:(0,C.jsx)(s,{color:c.dim,children:"Environment"})}),(0,C.jsx)(s,{children:t})]},"env"),(0,C.jsxs)(S,{children:[(0,C.jsx)(S,{width:14,children:(0,C.jsx)(s,{color:c.dim,children:"Session"})}),(0,C.jsx)(s,{children:r})]},"sess"),(0,C.jsxs)(S,{children:[(0,C.jsx)(S,{width:14,children:(0,C.jsx)(s,{color:c.dim,children:"Default URL"})}),(0,C.jsx)(s,{color:c.orange,children:n})]},"url"),(0,C.jsx)(S,{marginBottom:1},"sp2"),(0,C.jsxs)(S,{children:[(0,C.jsx)(S,{width:14,children:(0,C.jsx)(s,{color:c.dim,children:"Docs"})}),(0,C.jsx)(s,{color:c.orange,underline:!0,children:pp})]},"docs"),(0,C.jsxs)(S,{children:[(0,C.jsx)(S,{width:14,children:(0,C.jsx)(s,{color:c.dim,children:"Bugs"})}),(0,C.jsx)(s,{color:c.orange,underline:!0,children:gp})]},"bugs")]}var On=k(ve(),1);import{existsSync as nl,readFileSync as Wx,rmSync as wp,unlinkSync as Rp}from"fs";function ol(e){let t=cs(e);nl(t)&&wp(t,{recursive:!0,force:!0}),nl(e)&&Rp(e)}var gi=k(M(),1);function il({cwd:e,currentOrgId:t,onClose:r,onRun:n,onExport:o}){let[i,a]=(0,On.useState)("list"),[u,d]=(0,On.useState)(null),[x,R]=(0,On.useState)(0);return i==="inspect"&&u?(0,gi.jsx)(us,{path:u.path,relPath:u.relPath,onBack:()=>a("list"),onAction:h=>{if(h==="run")n(u);else if(h==="export")o(u);else{try{ol(u.path)}catch{}d(null),a("list"),R(y=>y+1)}}}):(0,gi.jsx)(ls,{root:e,currentOrgId:t,onSelect:h=>{d(h),a("inspect")},onCancel:r},x)}var Fe=k(ve(),1);function sl(e){let[t,r]=(0,Fe.useState)(null),[n,o]=(0,Fe.useState)(!1),[i,a]=(0,Fe.useState)(null),[u,d]=(0,Fe.useState)(null),[x,R]=(0,Fe.useState)(null),h=(0,Fe.useRef)(0),y=(0,Fe.useRef)([]),l=(0,Fe.useRef)(!1),m=(0,Fe.useRef)(null),P=(0,Fe.useRef)(e);P.current=e;let B=(0,Fe.useCallback)(async q=>{if(l.current)return null;l.current=!0;let A=++h.current,F=[];y.current=F;let re=W=>`testmd-run-${A}-${W}`,oe={register:(W,se)=>{let ce=re(W);F.push(ce),xt(ce,se)},deregister:W=>Cr(re(W)),cleanup:(W,se)=>Ot(re(W),se),remoteLogger:P.current.remoteLogger},ue={runSteps:W=>new Promise(se=>{let ce=()=>{m.current=null,se()};m.current=ce,r({...W,exitOnComplete:!1,onAllComplete:()=>{W.onAllComplete?.(),ce()}})}),onLockState:W=>{},onRetryAttempt:W=>{},onSummary:async W=>{a(W)},onLinks:async W=>{d(W)},runUpload:W=>W.execute(),onAgentEvent:W=>{}};o(!0),a(null),d(null),R(null);try{let W=await P.current.buildInput(q),se=await ys(W,ue,oe);return R(se),se}finally{l.current=!1,m.current=null,o(!1),r(null);for(let W of F)Ot(W,"run-finished");F.length=0}},[]),V=(0,Fe.useCallback)(()=>{for(let A of y.current)Ot(A,"cancelled");y.current=[];let q=m.current;m.current=null,q?.()},[]),$=(0,Fe.useCallback)(()=>{a(null),d(null),R(null)},[]);return{start:B,cancel:V,clearResult:$,running:n,runViewProps:t,summary:i,links:u,runSummary:x}}var De=k(ve(),1);function al(e={}){let[t,r]=(0,De.useState)(()=>dn({requestId:"",objective:""})),[n,o]=(0,De.useState)(!1),[i,a]=(0,De.useState)(null),u=(0,De.useRef)(null),d=(0,De.useRef)(!1),x=(0,De.useRef)(null),R=(0,De.useCallback)(async(B,V,$)=>{d.current=!1;let q=0,A=0,F=0;for await(let re of B){if(d.current)break;switch(r(oe=>ks(oe,re)),re.type){case"thinking_done":$?.("tcg_thinking",{tookMs:re.tookMs});break;case"progress":{let oe=Math.min(100,Math.floor(re.pct/25)*25);oe>F&&(F=oe,$?.("tcg_progress",{pct:oe}));break}case"snapshot":q=re.data.scenarios.length,A=re.data.scenarios.reduce((oe,ue)=>oe+(ue.test_cases?.length??0),0),$?.("tcg_snapshot",{scenarioCount:q,caseCount:A});break;case"clarification":$?.("tcg_clarification",{});break;case"done":$?.("tcg_request_done",{status:re.status,scenarioCount:q,caseCount:A,durationMs:Date.now()-V});break;case"error":$?.("tcg_request_error",{errorCode:"tcg_request_failed",durationMs:Date.now()-V});break}}},[]),h=(0,De.useCallback)(async(B,V)=>{if(u.current)throw new Error("useTcgSession: a session is already active; call reset() or end() first");let $=e.makeClient??As;u.current=$(B),x.current=new AbortController;let q=dn({requestId:"",objective:V.prompt});r(fn(q));let A;try{A=await u.current.start(V,x.current.signal)}catch(re){throw u.current=null,x.current=null,r(oe=>({...oe,turnActive:!1})),re}a(A.requestId),r(fn({...A.state,requestId:A.requestId,objective:V.prompt}));let F=Date.now();e.log?.("tcg_request_start",{request_id:A.requestId,objectiveChars:V.prompt.length,scenarioLimit:V.scenarioLimit,perScenarioLimit:V.perScenarioLimit,memoryEnhancement:V.memoryEnhancement}),await R(A.events,F,e.log)},[R,e.makeClient,e.log]),y=(0,De.useCallback)(async(B,V)=>{if(!u.current||!i)throw new Error("useTcgSession: chat() with no active request");r($=>fn(Is($)));try{await u.current.chat(i,B,V)}catch($){throw r(q=>({...q,turnActive:!1})),$}},[i]),l=(0,De.useCallback)(async()=>{if(!(!i||!u.current)){d.current=!0,x.current&&x.current.abort();try{await u.current.cancel(i)}catch{}u.current=null,a(null),r(B=>({...B,turnActive:!1}))}},[i]),m=(0,De.useCallback)(async()=>{if(!(!i||!u.current)){d.current=!0,x.current&&x.current.abort();try{await u.current.end(i)}catch{}u.current=null,a(null),r(B=>({...B,turnActive:!1}))}},[i]),P=(0,De.useCallback)(()=>{d.current=!0,x.current&&x.current.abort(),x.current=null,r(dn({requestId:"",objective:""})),a(null),o(!1),u.current=null},[]);return(0,De.useEffect)(()=>()=>{d.current=!0,x.current&&x.current.abort()},[]),{state:t,isStreaming:t.turnActive,isTerminal:Cs(t.status),isReconnecting:n,turnActive:t.turnActive,inReview:t.scenarios.length>0&&!t.turnActive&&!Po(t.status),isSessionClosed:Po(t.status),requestId:i,startWith:h,chat:y,cancel:l,end:m,reset:P}}var te=k(ve(),1);import{join as ur,resolve as Op}from"path";import{mkdirSync as xi,writeFileSync as Rl,appendFileSync as Dp}from"fs";function cl(e){let t=ze(e.env);return!t||!t.testGeneratorBaseUrl?{ok:!1,error:`Unknown environment "${e.env}" \u2014 fix default_env via /config`}:{ok:!0,conn:{baseUrl:`${t.testGeneratorBaseUrl}/test-generator/api/v2`,tmsBaseUrl:t.tmsBaseUrl,authResolver:e.resolver,projectId:e.projectId,folderId:e.folderId,log:e.log}}}function ll(e){return e.turnActive?!0:e.requestId!=null&&!e.isSessionClosed&&!e.saved}function ul(e){return e.isRunning||e.hasLiveResults}function dl(e){let t=(e??"").trim().match(/^[sS](\d+)$/);if(!t)return{level:"scenarios"};let r=parseInt(t[1],10);return r<1?{level:"scenarios"}:{level:"cases",scenarioIdx:r-1}}function fl(e,t){return`S${e+1}.C${t+1}`}function ml(e,t){return e.reduce((r,n)=>r+(n.test_cases??[]).filter(o=>!t.has(o.id)).length,0)}function pl(e,t){return e.map(r=>({...r,test_cases:(r.test_cases??[]).filter(n=>!t.has(n.id))})).filter(r=>(r.test_cases??[]).length>0)}var Mr=k(ve(),1);import{createHash as Tp}from"crypto";function yp(e){return Tp("sha1").update(JSON.stringify({t:e.title,p:e.preconditions,m:e.manual_steps})).digest("hex")}var Dn=class{constructor(t){this.deps=t;this.max=t.maxConcurrent??3}cache=new Map;caseById=new Map;queue=[];active=0;max;onSnapshot(t){t.forEach((r,n)=>{(r.test_cases??[]).forEach((o,i)=>{if(!St(o)||o.manual_steps==null)return;let a=yp(o),u=this.cache.get(o.id);u&&u.hash===a||(u?.controller?.abort(),this.caseById.set(o.id,o),this.cache.set(o.id,{hash:a,ref:fl(n,i),status:"pending"}),this.queue.includes(o.id)||this.queue.push(o.id))})}),this.pump()}pump(){for(;this.active<this.max&&this.queue.length>0;){let t=this.queue.shift(),r=this.cache.get(t),n=this.caseById.get(t);!r||!n||r.status!=="pending"||(this.active++,this.runOne(t,n,r))}}async runOne(t,r,n){let o=`bifurcation-${t}`,i=new AbortController;n.controller=i;let a=this.deps.run??this.defaultRun.bind(this);xt(o,()=>i.abort());let u=Date.now();try{this.safeLog("tcg_bif_start",{caseId:t,ref:n.ref});let d=await a($s(r),i.signal);if(!i.signal.aborted&&this.cache.get(t)===n){n.status="done",n.result=d;try{this.deps.persist?.(t,d,n.ref)}catch{}this.safeLog("tcg_bif_done",{caseId:t,ref:n.ref,total_flows:d.total_flows,is_single_flow:d.is_single_flow,estimated_steps_total:(d.sub_objectives??[]).reduce((x,R)=>x+(R.estimated_steps??0),0),credits_consumed:d.credits_consumed,durationMs:Date.now()-u})}}catch(d){!i.signal.aborted&&this.cache.get(t)===n&&(n.status="error",n.error=d.message,this.safeLog("tcg_bif_error",{caseId:t,ref:n.ref,errorCode:"bifurcation_failed",durationMs:Date.now()-u}))}finally{Cr(o),this.active--,this.pump()}}safeLog(t,r){try{this.deps.log?.(t,r)}catch{}}async defaultRun(t,r){let n=await this.deps.resolveAuth(),o=Os({objective:t,model:this.deps.model,sessionId:this.deps.sessionId,auth:n});return Ds(o,this.deps.spawnOpts,r)}getStatus(t){return this.cache.get(t)?.status}getResult(t){return this.cache.get(t)?.result}dispose(){for(let[t,r]of this.cache)r.controller?.abort(),Cr(`bifurcation-${t}`);this.cache.clear(),this.caseById.clear(),this.queue=[],this.active=0}};function gl(e){let t=(0,Mr.useRef)(null);return(0,Mr.useEffect)(()=>{if(!e.enabled)return;let r=e.log,n=r?(o,i,a,u)=>r(i,u??{}):void 0;return t.current=new Dn({model:e.model,sessionId:e.sessionId,resolveAuth:e.resolveAuth,spawnOpts:{environment:e.environment,log:n},log:r,persist:e.persist}),()=>{t.current?.dispose(),t.current=null}},[e.enabled,e.sessionId,e.model,e.environment]),(0,Mr.useEffect)(()=>{t.current&&t.current.onSnapshot(e.scenarios)},[e.scenarios]),{getStatus:r=>t.current?.getStatus(r),getResult:r=>t.current?.getResult(r),manager:t}}import{resolve as vl,isAbsolute as Cp,extname as Ip}from"path";import{homedir as xl}from"os";var Ep=/(?<=^|\s)@(?:"([^"]*)"|([^\s@]+))/g;function hl(e){let t=[];for(let r of e.matchAll(Ep)){let n=r[1]!==void 0?r[1]:r[2];t.push({raw:r[0],value:n,start:r.index,end:r.index+r[0].length})}return t}var kp=/^s\d+(\.c\d+)?$/i;function Ap(e){return e==="~"?xl():e.startsWith("~/")?vl(xl(),e.slice(2)):e}function _p(e){return/^https?:\/\//i.test(e)?!1:e.includes("/")?!0:mn.has(Ip(e).toLowerCase())}function Sl(e,t){let r=hl(e),n=[],o=[];for(let a of r){let u=a.value,d=a.end;if(!a.raw.includes('"')){let h=u.match(/[.,;:!?]+$/);h&&(u=u.slice(0,-h[0].length),d-=h[0].length)}if(kp.test(u)||!_p(u))continue;let x=Ap(u),R=Cp(x)?x:vl(t,x);n.push(R),o.push([a.start,d])}let i=e;for(let[a,u]of o.sort((d,x)=>x[0]-d[0]))i=i.slice(0,a)+i.slice(u);return i=i.replace(/[ \t]{2,}/g," ").replace(/ +([.,;:!?])/g,"$1").trim(),{paths:n,promptText:i}}var Pp=["request_id","session_id","caseId","ref","total_flows","is_single_flow","estimated_steps_total","credits_consumed","durationMs","pct","tookMs","scenarioCount","caseCount","savedCount","fellBack","turnIndex","status","errorCode","objectiveChars","scenarioLimit","perScenarioLimit","memoryEnhancement"],Lp=new Set(Pp);function hi(e){let t={};for(let r of Object.keys(e))Lp.has(r)&&e[r]!==void 0&&(t[r]=e[r]);return t}import{mkdirSync as Bp,appendFileSync as $p}from"fs";import{join as bl}from"path";function wl(e,t,r,n,o=We){let i=bl(o,"tcg",e&&e.length>0?e:"pending"),a=bl(i,"errors.log");try{let u=r instanceof Error?r.stack??r.message:String(r),d=`[${new Date().toISOString()}] phase=${t} ${u}${n?" "+JSON.stringify(n):""}
3
- `;Bp(i,{recursive:!0}),$p(a,d)}catch{}return a}var Ce=k(M(),1);async function Np(e){let t=e?.getResolvedBasicAuth?.();if(t)return{username:t.username,access_key:t.access_key};let r=await e?.getToken?.();return typeof r=="string"&&r.length>0?{auth:{type:"bearer",token:r}}:{}}function Tl(e){return typeof e=="object"&&e!==null&&e.name==="AbortError"}function yl(e){let{tcg:t,initialChatMode:r,tuiConfig:n,auth:o,session:i,appendStatic:a,handleInput:u,freezeTcgArtifact:d,rearmArtifactFreeze:x,initialGenerateLimits:R,ensureProjectAndFolder:h,config:y}=e,[l,m]=(0,te.useState)(r??"run"),[P,B]=(0,te.useState)(null),[V,$]=(0,te.useState)(null),[q,A]=(0,te.useState)(null),[F,re]=(0,te.useState)(0),[oe,ue]=(0,te.useState)(!1),W=(0,te.useRef)(null),se=(0,te.useRef)(()=>{}),ce=(0,te.useCallback)(()=>Np(o),[o]),Te=(0,te.useRef)(null);Te.current=t.requestId;let Pe=(0,te.useCallback)((G,Q)=>{let Z=G.endsWith("_error")?"warn":"info",Y=hi({request_id:Te.current??void 0,...Q});i.log(Z,G,JSON.stringify(Y),Y);try{let ae=typeof Y.request_id=="string"&&Y.request_id||Te.current||"unknown",ye=ur(We,"tcg",ae);xi(ye,{recursive:!0}),Dp(ur(ye,"tcg_tui.log"),`[${new Date().toISOString()}] ${G} ${JSON.stringify(Y)}
4
- `)}catch{}},[i]),et=(0,te.useCallback)((G,Q)=>{let Z=wl(Te.current,Q.phase,G),Y=typeof G?.status=="number"?G.status:void 0;Pe(`${Q.phase}_error`,{errorCode:`${Q.phase}_failed`,status:Y});let ae=Q.phase==="upload"?"\u2717 Couldn't upload attachments \u2014 generation not started. Try again.":"\u2717 Generation failed \u2014 send another request.";a((0,Ce.jsxs)(S,{flexDirection:"column",marginTop:1,marginBottom:1,children:[(0,Ce.jsx)(s,{color:c.red,children:ae}),(0,Ce.jsx)(s,{color:c.dim,children:`details: ${Z}`})]})),B(null)},[Pe,a]),Mt=(0,te.useRef)(0),tt=(0,te.useCallback)((G,Q,Z)=>{try{let Y=ur(We,"tcg",Te.current??"unknown","bifurcation");xi(Y,{recursive:!0}),Rl(ur(Y,`${G}.json`),JSON.stringify({request_id:Te.current,ref:Z,...Q},null,2))}catch{}},[]),gt=gl({scenarios:t.state?.scenarios??[],model:n.model,sessionId:i.sessionId,resolveAuth:ce,environment:o?.creds?.getDefaultEnv?.(),enabled:!!t.requestId&&!t.isSessionClosed,log:Pe,persist:tt}),mr=(0,te.useRef)(null);(0,te.useEffect)(()=>{let G=t.requestId;if(!G||!t.isSessionClosed&&!t.isTerminal)return;let Q=t.state?.scenarios??[];if(Q.length!==0&&mr.current!==G){mr.current=G;try{let Z=ur(We,"tcg",G);xi(Z,{recursive:!0}),Rl(ur(Z,"request.json"),JSON.stringify({request_id:G,objective:t.state?.objective,headline:t.state?.headline,scenarios:Q,status:t.state?.status},null,2))}catch{}}},[t.requestId,t.isTerminal,t.isSessionClosed,t.state?.scenarios,t.state?.status,t.state?.objective,t.state?.headline]);let pr=(0,te.useCallback)((G,Q=1500)=>{A(G),W.current&&clearTimeout(W.current),W.current=setTimeout(()=>{A(null),W.current=null},Q)},[]);(0,te.useEffect)(()=>()=>{W.current&&clearTimeout(W.current)},[]);let qe=(0,te.useCallback)((G,Q)=>{let Z=o.getResolver();if(!Z)return{ok:!1,error:"Not logged in \u2014 use /login"};let Y=cl({env:o.creds.getDefaultEnv(),resolver:Z,projectId:G??n.project_id??void 0,folderId:Q??n.folder_id??void 0,log:(ae,ye,rt,nt)=>i.log(ae,ye,"",hi(nt??{}))});return Y.ok?{ok:!0,conn:Y.conn}:{ok:!1,error:Y.error}},[o,n,i]),Je=(0,te.useRef)(!1),Le=(0,te.useRef)(null),[Vr,Wt]=(0,te.useState)(!1),Vt=(0,te.useCallback)((G,Q,Z,Y,ae)=>{let ye=process.cwd(),{paths:rt,promptText:nt}=Sl(G,ye);return js({promptText:nt,filePaths:rt,cwd:ye,scenarios:t.state?.scenarios??[],isRefine:Q,conn:Z,deps:{validate:Ns,upload:(H,Ue,He)=>Ms(H,Ue,He,{signal:ae}),buildMappings:Vs},onValidated:Y})},[t]),gr=(0,te.useRef)(!1);(0,te.useEffect)(()=>{if(l!=="generate"){gr.current=!1;return}gr.current||n.project_id&&n.folder_id||h&&o.getResolver()&&(gr.current=!0,h())},[l,n.project_id,n.folder_id,h,o]);let Fr=(0,te.useCallback)(async G=>{B(null),$(null),ue(!1);let Q=G.trim();if(!Q)return;if(Q.startsWith("/")){se.current(Q),re(H=>H+1);return}let Z=n.project_id??null,Y=n.folder_id??null;if(h){let H=await h();if(H)Z=H.projectId,Y=H.folderId;else if(y){let Ue=y.load();Z=Ue.project_id??Z,Y=Ue.folder_id??Y}}else if(y){let H=y.load();Z=H.project_id??Z,Y=H.folder_id??Y}if(!Z||!Y){$("Set a project and folder first \u2014 use /config");return}let ae=qe(Z,Y);if(!ae.ok){B(ae.error);return}if(Je.current)return;Je.current=!0;let ye=new AbortController;Le.current=ye;let rt=ae.conn,nt;try{nt=await Vt(Q,!1,rt,()=>{a((0,Ce.jsx)(S,{marginTop:1,children:(0,Ce.jsx)(s,{color:c.generateAccent,bold:!0,children:`\u276F ${Q}`})})),Wt(!0)},ye.signal)}catch(H){if(H instanceof Lo){$(H.errors.join(`
5
- `));return}if(Tl(H))return;et(H,{phase:"upload"});return}finally{Je.current=!1,Wt(!1),Le.current===ye&&(Le.current=null)}if(!ye.signal.aborted){for(let H of nt.warnings)e.emitFeedback("ok","/generate",H,void 0,c.generateAccent);d(),t.reset(),x();try{let H=R??{};await t.startWith(rt,{prompt:nt.promptText,attachments:nt.attachments,scenarioLimit:H.scenarioLimit??n.generate.scenario_limit,perScenarioLimit:H.perScenarioLimit??n.generate.per_scenario_limit,memoryEnhancement:n.generate.memory_enabled})}catch(H){et(H,{phase:"generation"})}}},[n,t,qe,Vt,e,h,y,R,a,d,x,et]),Ft=(0,te.useCallback)(()=>B(null),[]),hr=(0,te.useCallback)(async G=>{let Q=qe();if(!Q.ok){B(Q.error);return}if(Je.current)return;Je.current=!0;let Z=new AbortController;Le.current=Z;let Y;try{Y=await Vt(G,!0,Q.conn,()=>{a((0,Ce.jsx)(s,{color:c.generateAccent,bold:!0,children:`\u276F ${G}`})),Mt.current+=1,Pe("tcg_refine",{turnIndex:Mt.current}),Wt(!0)},Z.signal)}catch(ae){if(ae instanceof Lo){$(ae.errors.join(`
6
- `));return}if(Tl(ae))return;et(ae,{phase:"upload"});return}finally{Je.current=!1,Wt(!1),Le.current===Z&&(Le.current=null)}if(!Z.signal.aborted){for(let ae of Y.warnings)e.emitFeedback("ok","/generate",ae,void 0,c.generateAccent);try{await t.chat(Y.promptText,{mappings:Y.mappings,attachments:Y.attachments})}catch(ae){et(ae,{phase:"chat"})}}},[a,t,Pe,qe,Vt,e,et]),qr=(0,te.useCallback)(async G=>{if(!Je.current){Je.current=!0,a((0,Ce.jsx)(s,{color:c.generateAccent,bold:!0,children:`\u276F ${G}`}));try{await t.chat(G)}catch(Q){et(Q,{phase:"chat"})}finally{Je.current=!1}}},[a,t,et]),zt=(0,te.useCallback)(G=>{let Q=Pn(G);if(Q?.command==="view"){let Z=G.trim().split(/\s+/).slice(1)[0];if(t.state.scenarios.length===0){e.emitFeedback("ok","/view","(no generation yet)");return}let Y=dl(Z);if(Y.level==="cases"&&Y.scenarioIdx>=t.state.scenarios.length){e.emitFeedback("error","/view",`No scenario S${Y.scenarioIdx+1}`);return}e.openBrowse(Y);return}if(Q?.command==="save"){let Z=t.state.scenarios;if(Z.length===0){e.emitFeedback("error","/save","Nothing to save yet.");return}let Y=pl(Z,e.excluded),ae=Y.reduce((H,Ue)=>H+(Ue.test_cases??[]).filter(St).length,0);if(ae===0){e.emitFeedback("error","/save",ml(Z,e.excluded)===0?"All cases removed \u2014 nothing to save.":"No functional test cases to save.");return}let ye={...t.state,scenarios:Y},rt=G.trim().split(/\s+/).slice(1)[0],nt=rt?Op(process.cwd(),rt):process.cwd();ue(!0),e.freezeTcgArtifact(),(async()=>{let H=Y.flatMap(Se=>(Se.test_cases??[]).filter(St)),Ue=Date.now()+3e4;for(;Date.now()<Ue&&H.some(Se=>gt.getStatus(Se.id)==="pending");)await new Promise(Se=>setTimeout(Se,250));let He=new Map;for(let Se of H)He.set(Se.id,gt.getStatus(Se.id)==="done"?gt.getResult(Se.id):void 0);t.end();let Yt=0,eo=Se=>{let xr=He.get(Se.id);return xr?Ps(xr,Se):(Yt++,Ls(Se))};try{let Se=await Bs(ye,nt,{},eo);Pe("tcg_save",{savedCount:Se.paths.length,fellBack:Yt})}catch(Se){e.emitFeedback("error","/save",`Save failed: ${Se.message}`);return}let Ur=`test case${ae===1?"":"s"}`;e.emitFeedback("ok","/save",Yt>0?`Saved ${ae} ${Ur} \xB7 ${Yt} fell back to raw steps.`:`Saved ${ae} ${Ur}.`)})();return}Q?.command==="new"&&ue(!1),u(G)},[u,e,t,gt,Pe]);se.current=zt;let qt=(0,te.useCallback)(G=>{m(G),re(Q=>Q+1)},[]),Qn=(0,te.useCallback)(G=>{let Q=l==="generate"&&G==="run",Z=l==="run"&&G==="generate",Y=ll({requestId:t.requestId,isSessionClosed:t.isSessionClosed,turnActive:t.turnActive,saved:oe}),ae=ul({isRunning:e.runner.isRunning,hasLiveResults:e.runner.lastRunEnd!=null});return Q&&Y?(e.openSwitchConfirm("run"),!1):Z&&ae?(e.openSwitchConfirm("generate"),!1):(qt(G),!0)},[l,t.requestId,t.isSessionClosed,t.turnActive,oe,e,qt]),Ut=(0,te.useCallback)(async G=>{l==="generate"?(e.freezeTcgArtifact(),await t.end().catch(()=>{}),t.reset(),ue(!1),e.appendStatic((0,Ce.jsxs)(S,{marginBottom:1,children:[(0,Ce.jsx)(s,{color:c.red,children:"\u2717 "}),(0,Ce.jsx)(s,{color:c.dim,children:"Discarded generation"})]}))):(e.runner.isRunning&&e.runner.cancelRun(),e.runner.clearLastRun(),e.appendStatic((0,Ce.jsxs)(S,{marginBottom:1,children:[(0,Ce.jsx)(s,{color:c.red,children:"\u2717 "}),(0,Ce.jsx)(s,{color:c.dim,children:"Discarded run"})]}))),qt(G),G==="generate"?e.emitFeedback("ok","/generate","Switched to Generate mode.",void 0,c.generateAccent):e.emitFeedback("ok","/run","Switched to Run mode.",void 0,c.orange)},[l,t,e,qt]),Zn=(0,te.useCallback)(()=>{if(t.isStreaming)e.freezeTcgArtifact(),t.cancel();else if(Le.current)Le.current.abort();else return;e.appendStatic((0,Ce.jsxs)(S,{marginBottom:1,children:[(0,Ce.jsx)(s,{color:c.red,children:"\u2717 "}),(0,Ce.jsx)(s,{color:c.dim,children:"Generation cancelled"})]}))},[e,t]);return{chatMode:l,tcgError:P,tcgValidationError:V,composeIdleHint:q,inputClearSeq:F,submitting:Vr,handleGenerateSubmit:Fr,onRefine:hr,onClarificationAnswer:qr,onSlash:zt,onClearError:Ft,flashComposeHint:pr,setInputClearSeq:re,setChatMode:m,setTcgError:B,setTcgValidationError:$,generateSaved:oe,requestSwitch:Qn,confirmSwitch:Ut,cancelGenerate:Zn,bifurcation:gt,tcgLog:Pe}}var Rt=k(ve(),1);function Nn(e){return e.level==="cases"?{level:"cases",scenarioIdx:e.scenarioIdx,caseIdx:0,cursor:0}:{level:"scenarios",scenarioIdx:0,caseIdx:0,cursor:0}}var jp=(e,t)=>Math.max(0,Math.min(t,e));function vi(e,t,r){switch(t.type){case"open":return Nn(t.target);case"move":{let n=e.level==="scenarios"?r.length-1:e.level==="cases"?(r[e.scenarioIdx]??1)-1:0;return{...e,cursor:jp(e.cursor+t.delta,Math.max(0,n))}}case"enter":return e.level==="scenarios"?{...e,level:"cases",scenarioIdx:e.cursor,caseIdx:0,cursor:0}:e.level==="cases"?{...e,level:"detail",caseIdx:e.cursor}:e;case"back":return e.level==="detail"?{...e,level:"cases",cursor:e.caseIdx}:e.level==="cases"?{...e,level:"scenarios",cursor:e.scenarioIdx}:e;default:return e}}function El(e){let[t,r]=(0,Rt.useState)(null),[n,o]=(0,Rt.useReducer)((h,y)=>vi(h,y,e),Nn({level:"scenarios"})),[i,a]=(0,Rt.useState)(new Set),u=(0,Rt.useCallback)(h=>{r(h),o({type:"open",target:h})},[]),d=(0,Rt.useCallback)(()=>r(null),[]),x=(0,Rt.useCallback)(h=>{a(y=>{let l=new Set(y);return l.has(h)?l.delete(h):l.add(h),l})},[]),R=(0,Rt.useCallback)(h=>{a(y=>{let l=new Set(y),m=h.length>0&&h.every(P=>l.has(P));return h.forEach(P=>m?l.delete(P):l.add(P)),l})},[]);return{target:t,open:u,close:d,isOpen:t!=null,state:n,excluded:i,toggleCase:x,toggleScenario:R}}var Vn=k(ve(),1);function Cl(){return{committedChat:0,committedThinking:0,prevTurnActive:!1}}function Il(e,t,r){let n=[],o={...e};if(e.prevTurnActive&&!r&&t.thinkingLog.length>e.committedThinking){let a=t.thinkingLog.slice(e.committedThinking).reduce((d,x)=>d+(x.tookMs??0),0),u=Math.round(a/1e3);n.push({kind:"thinking-summary",text:` thought for ${u}s`}),o.committedThinking=t.thinkingLog.length}o.prevTurnActive=r;for(let i=e.committedChat;i<t.chatLog.length;i++)n.push({kind:"chat",text:t.chatLog[i].text});return o.committedChat=t.chatLog.length,{items:n,next:o}}function kl(e){let t=e;return t=t.replace(/@TS\{([^}]+)\}/g,"@S{$1}"),t=t.replace(/@TS-(\d+)/g,(r,n)=>`@S${parseInt(n,10)}.C1`),t=t.replace(/@TS(\d+)/g,(r,n)=>`@S${parseInt(n,10)}`),t=t.replace(/\\n/g,`
7
- `),t}var it=k(M(),1),Al=e=>e!==void 0&&/[A-Za-z0-9]/.test(e);function jn(e){let t=[],r="",n=()=>{r&&(t.push({text:r}),r="")},o=(a,u,d)=>(a===0||!Al(e[a-1]))&&(u+d>=e.length||!Al(e[u+d])),i=0;for(;i<e.length;){let a=e.slice(i,i+2),u=e[i];if(a==="**"||a==="__"){let d=e.indexOf(a,i+2);if(d!==-1&&d>i+2&&(a==="**"||o(i,d,2))){n(),t.push({text:e.slice(i+2,d),bold:!0}),i=d+2;continue}}if(u==="`"){let d=e.indexOf("`",i+1);if(d!==-1&&d>i+1){n(),t.push({text:e.slice(i+1,d),code:!0}),i=d+1;continue}}if(u==="*"||u==="_"){let d=e.indexOf(u,i+1);if(d!==-1&&d>i+1&&(u==="*"||o(i,d,1))){n(),t.push({text:e.slice(i+1,d),italic:!0}),i=d+1;continue}}r+=u,i+=1}return n(),t.length===0&&t.push({text:""}),t}function Mn(e){return e.map((t,r)=>(0,it.jsx)(s,{bold:t.bold,italic:t.italic,color:t.code?c.dim:void 0,children:t.text},r))}function Mp(e){return e.split(`
8
- `).map(t=>{if(t.trim()==="")return{kind:"blank"};let r=t.match(/^\s*[-*+]\s+(.*)$/);if(r)return{kind:"bullet",segs:jn(r[1])};let n=t.match(/^\s*(\d+)\.\s+(.*)$/);if(n)return{kind:"numbered",n:n[1],segs:jn(n[2])};let o=t.match(/^#{1,6}\s+(.*)$/);return o?{kind:"heading",segs:jn(o[1])}:{kind:"para",segs:jn(t)}})}function Vp(e,t,r=""){switch(e.kind){case"blank":return(0,it.jsx)(s,{children:r||" "},t);case"heading":return(0,it.jsxs)(s,{bold:!0,children:[r,Mn(e.segs)]},t);case"bullet":return(0,it.jsx)(S,{marginLeft:1,children:(0,it.jsxs)(s,{children:[r,"\u2022 ",Mn(e.segs)]})},t);case"numbered":return(0,it.jsx)(S,{marginLeft:1,children:(0,it.jsxs)(s,{children:[r,`${e.n}. `,Mn(e.segs)]})},t);default:return(0,it.jsxs)(s,{children:[r,Mn(e.segs)]},t)}}function _l({text:e}){let t=Mp(kl(e));return(0,it.jsxs)(S,{marginBottom:1,children:[(0,it.jsx)(s,{color:c.generateAccent,children:"\u2503 "}),(0,it.jsx)(S,{flexDirection:"column",children:t.map((r,n)=>Vp(r,n))})]})}var Si=k(M(),1);function Fp(e){return e.kind==="thinking-summary"?(0,Si.jsx)(s,{color:c.dim,children:e.text}):(0,Si.jsx)(_l,{text:e.text})}function Pl(e,t,r){let n=(0,Vn.useRef)(Cl());(0,Vn.useEffect)(()=>{let{items:o,next:i}=Il(n.current,e,t);n.current=i;for(let a of o)r(Fp(a))})}var Ie=k(ve(),1);import{readFileSync as qp,writeFileSync as Up,renameSync as Hp,mkdirSync as Gp}from"fs";import{dirname as Xp}from"path";var bi=1,Ll=()=>({schemaVersion:bi,numStartups:0,perHint:{}}),Fn=class{constructor(t=Di){this.path=t;this.data=this.read()}data;read(){try{let t=JSON.parse(qp(this.path,"utf-8"));return t.schemaVersion!==bi?Ll():{schemaVersion:bi,numStartups:typeof t.numStartups=="number"?t.numStartups:0,perHint:t.perHint??{}}}catch{return Ll()}}write(){try{Gp(Xp(this.path),{recursive:!0});let t=`${this.path}.tmp`;Up(t,JSON.stringify(this.data,null,2)+`
9
- `),Hp(t,this.path)}catch(t){process.stderr.write(`[hints] Failed to save state: ${t instanceof Error?t.message:String(t)}
10
- `)}}get numStartups(){return this.data.numStartups}shownCount(t){return this.data.perHint[t]?.shownCount??0}sessionsSince(t){let r=this.data.perHint[t];return r?this.data.numStartups-r.lastShownStartup:1/0}bumpStartup(){return this.data.numStartups+=1,this.write(),this.data.numStartups}recordShown(t){let r=this.data.perHint[t];this.data.perHint[t]={shownCount:(r?.shownCount??0)+1,lastShownStartup:this.data.numStartups},this.write()}prune(t){let r=new Set(t),n=!1;for(let o of Object.keys(this.data.perHint))r.has(o)||(delete this.data.perHint[o],n=!0);n&&this.write()}};import{readFileSync as Wp,writeFileSync as zp,renameSync as Yp,mkdirSync as Kp}from"fs";import{dirname as Jp}from"path";var Bl=1,Qp=3600*1e3;function $l(e,t=Date.now()){return e!==null&&t-e.fetchedAt<Qp}function Ol(e,t=So(e)){try{let r=JSON.parse(Wp(t,"utf-8"));if(r.wrapperVersion!==Bl)return null;let{catalog:n}=In(r.catalog);return n?{catalog:n,fetchedAt:typeof r.fetchedAt=="number"?r.fetchedAt:0}:null}catch{return null}}function Dl(e,t,r=So(e)){try{Kp(Jp(r),{recursive:!0});let n={wrapperVersion:Bl,writtenByVersion:mt,fetchedAt:Date.now(),catalog:t},o=`${r}.tmp`;zp(o,JSON.stringify(n,null,2)+`
11
- `),Yp(o,r)}catch(n){process.stderr.write(`[hints] Failed to save catalog cache: ${n instanceof Error?n.message:String(n)}
12
- `)}}var Zp=5e3;async function Nl(e){let t=new AbortController,r=setTimeout(()=>t.abort(),Zp);try{let o=`${ze(e.env).controllerBaseUrl}/public/hints/catalog?clientVersion=${encodeURIComponent(mt)}&env=${e.env}`,i=await Ui(o,{headers:{Accept:"application/json"},signal:t.signal});if(!i.ok)return{status:"error"};let a=await i.json(),{catalog:u}=In(a);return u?{status:"ok",catalog:u}:{status:"error"}}catch{return{status:"error"}}finally{clearTimeout(r)}}var qn=k(ei(),1);function jl(e,t=mt){let r=qn.default.coerce(e??"");if(!r)return!0;let n=qn.default.coerce(t);return n?qn.default.gte(n,r):!0}var eg={no_chrome_profile:e=>e.config.chrome_profile_path==="",code_export_off:e=>e.config.code_export.enabled===!1,generate_memory_off:e=>e.config.generate.memory_enabled===!1,auth_invalid:e=>e.tokenValid===!1,testing_no_project:e=>e.config.mode==="testing"&&e.config.project_id===null,first_runs:e=>e.numStartups<5,platform_macos:e=>e.platform==="darwin",platform_windows:e=>e.platform==="win32",not_used_generate_this_session:e=>e.sessionUsedGenerate===!1};function Ml(e,t){let r=[],n=!0;for(let o of e){let i=eg[o];if(!i){r.push(o),n=!1;continue}i(t)||(n=!1)}return{pass:n,unknown:r}}var tg=3,rg=(e,t)=>e==="both"||e===t;function ng(e,t,r){return e.boost?t.shownCount(e.id)<e.boost.maxShows&&r<Date.parse(e.boost.until):!1}var og=e=>Number.isFinite(e)?1:tg;function ig(e,t){let r=e.filter(i=>i.weight>0);if(r.length===0)return null;let n=r.reduce((i,a)=>i+a.weight,0),o=t()*n;for(let i of r)if(o-=i.weight,o<=0)return i.hint;return r[r.length-1].hint}function Vl(e){let{catalog:t,store:r,mode:n,now:o,predicateCtx:i,rng:a}=e,u=[];if(!t.enabled)return{footer:null,skipped:u,boosted:!1};let d=[];for(let h of t.hints){if(!jl(h.minVersion)){u.push({id:h.id,reason:"min_version"});continue}let y=Ml(h.relevance,i);if(y.unknown.length>0){u.push({id:h.id,reason:"unknown_predicate"});continue}if(!y.pass||!rg(h.target,n))continue;if(h.retireAfterShows!==void 0&&r.shownCount(h.id)>=h.retireAfterShows){u.push({id:h.id,reason:"retired"});continue}if(r.sessionsSince(h.id)<h.cooldownSessions)continue;let l=ng(h,r,o),m=(l?h.boost.weight:h.weight)*og(r.sessionsSince(h.id));d.push({hint:h,weight:m,boosted:l})}let x=ig(d.map(({hint:h,weight:y})=>({hint:h,weight:y})),a),R=x?d.find(h=>h.hint.id===x.id)?.boosted??!1:!1;return{footer:x,skipped:u,boosted:R}}function Fl(e){return{shown(t){e("info","hint_shown",`hint shown: ${t.id}`,{...t})},skipped(t){let r=t.reason==="unknown_predicate"?"warn":"info";e(r,"hint_skipped",`hint skipped: ${t.id} (${t.reason})`,{...t})}}}function ql(e){let[t,r]=(0,Ie.useState)(null),[n,o]=(0,Ie.useState)(0),i=(0,Ie.useRef)(null),a=(0,Ie.useRef)(!1),u=(0,Ie.useRef)(new Set),d=(0,Ie.useRef)(!1),x=(0,Ie.useRef)(null),R=(0,Ie.useRef)(null),h=(0,Ie.useRef)(null),y=(0,Ie.useRef)(!1),l=(0,Ie.useRef)(!1),m=(0,Ie.useRef)(null),P=(0,Ie.useRef)(!0);return(0,Ie.useEffect)(()=>()=>{P.current=!1},[]),(0,Ie.useEffect)(()=>{if(!e.enabled||!e.ready)return;let B=i.current??(i.current=e.store??new Fn),V=e.now??Date.now;if(m.current!==e.env&&(m.current=e.env,x.current=null,y.current=!1,l.current=!1,R.current=null,h.current=null),x.current===null){let ce=Ol(e.env);x.current={catalog:ce?.catalog??null,fetchedAt:ce?.fetchedAt??0}}let $=x.current,q=$l($.catalog?{catalog:$.catalog,fetchedAt:$.fetchedAt}:null,V()),A=e.catalog??(q?$.catalog:null);if(a.current||(a.current=!0,B.bumpStartup()),!y.current&&(y.current=!0,!q)){let ce=e.env;(async()=>{let Te=await Nl({env:ce});Te.status==="ok"&&(Dl(ce,Te.catalog),m.current===ce&&(x.current={catalog:Te.catalog,fetchedAt:V()},P.current&&o(Pe=>Pe+1)))})()}if(!A){R.current=null,r(null);return}if(l.current||(l.current=!0,B.prune(A.hints.map(ce=>ce.id))),!(h.current!==e.chatMode)&&R.current!==null)return;h.current=e.chatMode;let re=Fl(e.log),oe=e.rng??Math.random,ue=V(),W={config:e.config,tokenValid:e.tokenValid,numStartups:B.numStartups,platform:process.platform,sessionUsedGenerate:e.sessionUsedGenerate},se=Vl({catalog:A,store:B,mode:e.chatMode,now:ue,predicateCtx:W,rng:oe});R.current=se.footer,r(se.footer),se.footer&&!u.current.has(se.footer.id)&&(u.current.add(se.footer.id),B.recordShown(se.footer.id),re.shown({id:se.footer.id,category:se.footer.category,surface:"footer",boosted:se.boosted})),d.current||(d.current=!0,se.skipped.forEach(ce=>re.skipped(ce)))},[e.enabled,e.ready,e.chatMode,e.env,n]),{footerHint:t}}var Ul=k(ve(),1);import{readdir as sg}from"fs/promises";import{join as ag,relative as cg,extname as lg}from"path";var ug=new Set(["node_modules",".git"]),dg=e=>e.startsWith("output-");async function Un(e,t,r={}){let n=r.limit??50,o=r.maxDepth??6,i=t.toLowerCase(),a=[];async function u(d,x){if(a.length>=n||x>o)return;let R;try{R=await sg(d,{withFileTypes:!0})}catch{return}for(let h of R){if(a.length>=n)return;if(h.name.startsWith(".")||ug.has(h.name)||dg(h.name))continue;let y=ag(d,h.name);if(h.isDirectory())await u(y,x+1);else if(h.isFile()){if(!mn.has(lg(h.name).toLowerCase()))continue;let l=cg(e,y);(!i||l.toLowerCase().includes(i))&&a.push(l)}}}return await u(e,0),a.slice(0,n)}var ke=k(M(),1);function Hl({projectId:e,folderId:t,onSubmit:r,history:n,error:o,validationError:i,composeIdleHint:a,clearSeq:u,closedNotice:d,busy:x=!1}){let R=!!e&&!!t,h=(0,Ul.useCallback)(y=>Un(process.cwd(),y),[]);return(0,ke.jsxs)(S,{flexDirection:"column",children:[(0,ke.jsx)(S,{marginLeft:2,marginTop:1,children:!R&&(0,ke.jsxs)(s,{color:c.orange,children:["\u2691 ",(0,ke.jsx)(s,{color:c.muted,children:"project / folder not set \u2014 use "}),(0,ke.jsx)(s,{bold:!0,children:"/config"})]})}),i&&(0,ke.jsx)(S,{marginLeft:2,marginTop:1,children:(0,ke.jsx)(Et,{variant:"error",paddingY:0,children:(0,ke.jsx)(s,{color:c.red,children:i})})}),o&&(0,ke.jsx)(S,{marginLeft:2,marginTop:1,children:(0,ke.jsx)(Et,{variant:"error",paddingY:0,children:(0,ke.jsx)(s,{color:c.red,children:o})})}),d&&(0,ke.jsx)(S,{paddingX:1,children:(0,ke.jsx)(s,{color:c.dim,children:d})}),a&&(0,ke.jsx)(S,{marginLeft:2,marginTop:1,children:(0,ke.jsx)(s,{color:c.dim,children:a})}),(0,ke.jsx)($t,{inert:x,onSubmit:r,history:n,accent:c.generateAccent,commands:Ln("","generate"),clearSeq:u,clearOnSubmit:!1,mentionFiles:h,placeholder:x?"Processing files\u2026 (Ctrl+C to cancel)":"Describe what to generate... (/ = commands)",footerBindings:x?[{keys:"ctrl+c",label:"cancel"}]:[{keys:"\u2191\u2193",label:"history"},{keys:"\u21B5",label:"generate"},{keys:"tab",label:"complete"},{keys:"/run",label:"Run mode"},{keys:"ctrl+t",label:"thinking"}]})]})}var Jl=k(ve(),1);var Ne=k(M(),1);function fg(e){return e?`[${e[0].toUpperCase()}]`:""}var mg=8;function Hn({scenarios:e,headline:t,activeSid:r}){let n=e.slice(0,mg),o=e.length-n.length;return(0,Ne.jsxs)(S,{flexDirection:"column",marginBottom:1,marginLeft:2,children:[t&&(0,Ne.jsx)(S,{paddingX:1,children:(0,Ne.jsx)(s,{color:c.generateAccent,bold:!0,children:t})}),(0,Ne.jsxs)(Et,{title:`Scenarios (${e.length})`,titleColor:c.generateAccent,borderColor:c.generateAccent,paddingX:1,children:[n.map(i=>{let a=!!r&&i.sid===r,u=a?"\u2237":"\u2713",d=a?c.generateAccent:c.green,x=i.test_cases?.length??0;return(0,Ne.jsxs)(S,{gap:1,children:[(0,Ne.jsx)(s,{color:d,children:u}),(0,Ne.jsx)(s,{color:c.dim,children:i.sid??`#${i.id}`}),(0,Ne.jsx)(s,{children:i.title??"(untitled)"}),(0,Ne.jsx)(s,{color:c.muted,children:fg(i.priority)}),(0,Ne.jsxs)(s,{color:c.dim,children:[x," case",x===1?"":"s"]})]},i.id)}),o>0&&(0,Ne.jsx)(s,{color:c.muted,children:`\u22EE +${o} more`}),(0,Ne.jsx)(S,{marginTop:1,children:(0,Ne.jsxs)(s,{color:c.dim,children:[(0,Ne.jsx)(s,{color:c.generateAccent,children:"/view"})," view/edit \xB7 ",(0,Ne.jsx)(s,{color:c.generateAccent,children:"/save"})," save as runnable tests"]})})]})]})}var kt=k(M(),1),pg=5;function Gl({thinking:e,expanded:t,thinkingDone:r,maxLines:n=pg}){if(!t)return(0,kt.jsxs)(S,{paddingX:1,children:[(0,kt.jsx)(s,{color:c.dim,children:r?"\u2237 thinking complete ":"\u2237 thinking\u2026 "}),(0,kt.jsx)(s,{color:c.muted,children:r?"(ctrl+t to view)":"(ctrl+t to show)"})]});let o=e.split(`
13
- `),i=Math.max(0,o.length-n),a=i>0?o.slice(-n).join(`
14
- `):e;return(0,kt.jsxs)(Et,{variant:"default",paddingX:1,children:[i>0&&(0,kt.jsxs)(s,{color:c.muted,children:["\u22EE (",i," earlier line",i===1?"":"s"," hidden)"]}),(0,kt.jsx)(s,{color:c.dim,children:a}),r&&(0,kt.jsx)(s,{color:c.muted,children:"\u2014 thinking complete"})]})}var dr=k(M(),1),Xl=24;function gg(e){let t=Math.max(0,Math.min(100,e)),r=Math.round(t/100*Xl);return{filled:"\u2588".repeat(r),empty:"\u2591".repeat(Xl-r)}}function Wl({pct:e}){let t=gg(e);return(0,dr.jsxs)(S,{paddingX:1,children:[(0,dr.jsx)(s,{color:c.generateAccent,children:t.filled}),(0,dr.jsx)(s,{color:c.muted,children:t.empty}),(0,dr.jsx)(s,{color:c.dim,children:` ${e}%`})]})}var zl=k(ve(),1);var At=k(M(),1);function Yl(e,t){let r=e.trim();return r.startsWith("/")?{kind:"slash",text:r}:r?t?{kind:"ignore",text:r}:{kind:"refine",text:r}:{kind:"ignore",text:""}}function Kl({state:e,history:t,turnActive:r,busy:n=!1,onClarificationAnswer:o,onClearError:i,onRefine:a,onSlash:u}){let d=(0,zl.useCallback)(R=>Un(process.cwd(),R),[]),x=o?R=>{i?.(),o(R)}:void 0;return(0,At.jsxs)(At.Fragment,{children:[e.pendingClarification&&x&&(0,At.jsx)(S,{paddingX:1,marginTop:1,flexDirection:"column",children:(0,At.jsx)($t,{onSubmit:x,history:t,noHistory:!0,accent:c.generateAccent,placeholder:"Type your answer\u2026",submitVerb:"answer",footerBindings:[{keys:"\u21B5",label:"answer"}]})}),!(e.pendingClarification&&x)&&(r||n?(0,At.jsx)($t,{inert:!0,onSubmit:()=>{},history:t,placeholder:r?"(generating\u2026 input inert \u2014 Ctrl+C to cancel)":"(processing files\u2026 Ctrl+C to cancel)",footerBindings:r?void 0:[{keys:"ctrl+c",label:"cancel"}]}):(0,At.jsx)($t,{onSubmit:R=>{let h=Yl(R,r);h.kind==="slash"?u?.(h.text):h.kind==="refine"&&a?.(h.text)},history:t,noHistory:!0,accent:c.generateAccent,commands:Ln("","generate"),scenarios:e.scenarios,mentionFiles:d,placeholder:"Refine, or /save \xB7 /view \xB7 /run",submitVerb:"refine",footerBindings:[{keys:"\u21B5",label:"refine"},{keys:"tab",label:"complete"},{keys:"/run",label:"Run mode"},{keys:"ctrl+t",label:"thinking"}]}))]})}var ut=k(M(),1);function Ql({state:e,requestId:t,history:r,onClarificationAnswer:n,error:o,onClearError:i,turnActive:a,busy:u=!1,onRefine:d,onSlash:x}){let[R,h]=(0,Jl.useState)(!1),y=e.thinking.length===0&&e.thinkingLog.length>0,l=[...e.thinkingLog.map(m=>m.text),e.thinking].filter(m=>m.length>0).join(`
15
-
16
- `);return Ee((m,P)=>{P.ctrl&&m==="t"&&h(B=>!B)}),(0,ut.jsxs)(S,{flexDirection:"column",children:[(0,ut.jsx)(S,{marginBottom:1,marginLeft:2,children:(0,ut.jsx)(Gl,{thinking:l,expanded:R,thinkingDone:y})}),a&&(0,ut.jsx)(S,{marginLeft:2,children:(0,ut.jsx)(Wl,{pct:e.progress})}),o&&(0,ut.jsx)(S,{marginLeft:2,marginTop:1,children:(0,ut.jsx)(Et,{variant:"error",paddingY:0,children:(0,ut.jsx)(s,{color:c.red,children:o})})}),e.scenarios.length>0&&(0,ut.jsx)(Hn,{scenarios:e.scenarios,headline:e.headline,activeSid:null}),(0,ut.jsx)(Kl,{state:e,history:r,turnActive:a,busy:u,onClarificationAnswer:n,onClearError:i,onRefine:d,onSlash:x})]})}var nu=k(ve(),1);var je=k(M(),1);function hg(e,t){return(e.test_cases??[]).some(r=>!t.has(r.id))}function Zl({scenarios:e,cursor:t,excluded:r}){let n=e.reduce((o,i)=>o+(i.test_cases??[]).length,0);return(0,je.jsxs)(S,{flexDirection:"column",paddingX:1,children:[(0,je.jsxs)(s,{children:[(0,je.jsx)(s,{color:c.dim,children:"Generate \u203A "}),(0,je.jsx)(s,{color:c.generateAccent,children:"Scenarios"}),(0,je.jsx)(s,{color:c.dim,children:` ${e.length} scenarios \xB7 ${n} cases`})]}),(0,je.jsx)(s,{color:c.muted,children:"\u2500".repeat(60)}),(0,je.jsx)(S,{flexDirection:"column",marginY:1,children:e.map((o,i)=>{let a=i===t,u=hg(o,r);return(0,je.jsxs)(s,{children:[(0,je.jsx)(s,{color:c.generateAccent,children:a?"\u276F ":" "}),(0,je.jsx)(s,{color:c.generateAccent,children:`S${i+1}`}),(0,je.jsx)(s,{children:` ${o.title??"(untitled)"}`}),(0,je.jsx)(s,{color:c.dim,children:` [${o.priority??"-"}] ${(o.test_cases??[]).length} cases `}),(0,je.jsx)(s,{color:u?c.green:c.red,children:u?"\u2713":"\u2717"})]},o.id)})}),(0,je.jsx)(s,{color:c.muted,children:"\u2500".repeat(60)}),(0,je.jsx)(s,{color:c.dim,children:"\u2191\u2193 move \u21B5 open x remove esc back to chat"})]})}var Ae=k(M(),1);function eu({scenario:e,scenarioIdx:t,cursor:r,excluded:n}){let o=e.test_cases??[],i=o.some(a=>!St(a));return(0,Ae.jsxs)(S,{flexDirection:"column",paddingX:1,children:[(0,Ae.jsxs)(s,{children:[(0,Ae.jsx)(s,{color:c.dim,children:"Generate \u203A Scenarios \u203A "}),(0,Ae.jsx)(s,{color:c.generateAccent,children:`S${t+1} ${e.title??"(untitled)"}`}),(0,Ae.jsx)(s,{color:c.dim,children:` ${o.length} cases`})]}),(0,Ae.jsx)(s,{color:c.muted,children:"\u2500".repeat(60)}),(0,Ae.jsx)(S,{flexDirection:"column",marginY:1,children:o.map((a,u)=>{let d=u===r,x=n.has(a.id);return(0,Ae.jsxs)(s,{children:[(0,Ae.jsx)(s,{color:c.generateAccent,children:d?"\u276F ":" "}),(0,Ae.jsx)(s,{color:c.generateAccent,children:`C${u+1}`}),(0,Ae.jsx)(s,{children:` ${a.title??"(untitled)"} `}),St(a)?(0,Ae.jsx)(s,{color:x?c.red:c.green,children:x?"\u2717 removed":"\u2713 included"}):(0,Ae.jsx)(s,{color:c.dim,children:"\u2713"})]},a.id)})}),(0,Ae.jsx)(s,{color:c.muted,children:"\u2500".repeat(60)}),i&&(0,Ae.jsx)(s,{color:c.dim,children:"gray \u2713 = non-functional \xB7 won't be saved by /save"}),(0,Ae.jsx)(s,{color:c.dim,children:"\u2191\u2193 move \u21B5 view detail x remove case \u2190 / esc back"})]})}var Wn=k(ve(),1);function Gn(e,t){let r=Math.max(1,t),n=[];for(let o of e.split(`
17
- `)){let i=o.split(/\s+/).filter(d=>d.length>0);if(i.length===0){n.push("");continue}let a="",u=()=>{a&&(n.push(a),a="")};for(let d of i){for(;d.length>r;)u(),n.push(d.slice(0,r)),d=d.slice(r);a===""?a=d:a.length+1+d.length<=r?a+=" "+d:(u(),a=d)}u()}return n}function tu(e,t,r,n){let o=Math.max(20,n),i=[];if(r){for(let u of Gn(r,o))i.push({text:u,tone:"meta"});i.push({text:"",tone:"blank"})}let a=(u,d)=>{let x=d?.trim();if(x){i.push({text:u,tone:"label"});for(let R of Gn(x,o-2))i.push({text:" "+R,tone:"text"});i.push({text:"",tone:"blank"})}};return a("Description",e?.description),a("Preconditions",e?.preconditions),t.length>0&&(i.push({text:"Steps",tone:"label"}),t.forEach((u,d)=>{let x=`${d+1}. `;Gn(u.step||"",Math.max(1,o-x.length)).forEach((y,l)=>{l===0?i.push({text:y,tone:"step",accent:x}):i.push({text:" ".repeat(x.length)+y,tone:"step"})});let h=u.expected?.trim();if(h){let y=" \u2192 ",l=" ";Gn(h,Math.max(1,o-y.length)).forEach((m,P)=>i.push({text:(P===0?y:l)+m,tone:"expected"}))}})),i}function Xn(e,t,r){let n=Math.max(0,t-r);return Math.max(0,Math.min(e,n))}var _e=k(M(),1),xg=7;function vg(e){return e==="text"||e==="step"?void 0:c.dim}function ru({scenario:e,scenarioIdx:t,caseIdx:r,excluded:n,getStatus:o,getResult:i}){let a=(e.test_cases??[])[r],u=a?n.has(a.id):!1,d=a?St(a):!0,x=a&&o?o(a.id):void 0,R=x==="done"?(0,_e.jsx)(s,{color:c.generateAccent,children:"ready"}):x==="error"?(0,_e.jsx)(s,{color:c.red,children:"failed \u2192 raw steps"}):x==="pending"?(0,_e.jsx)(s,{color:c.dim,children:"bifurcating\u2026"}):null,h=x==="done"&&a&&i?i(a.id):void 0,y=h?h.sub_objectives.map(ue=>({step:ue.objective,expected:""})):_s(a?.manual_steps),l=[a?.priority&&`Priority ${a.priority}`,a?.polarity&&`Polarity ${a.polarity}`,a?.tags&&`Tags ${a.tags}`].filter(Boolean).join(" \xB7 "),{stdout:m}=on(),P=Math.max(20,(m?.columns??80)-4),B=Math.max(3,(m?.rows??24)-xg),V=tu(a,y,l,P),[$,q]=(0,Wn.useState)(0);(0,Wn.useEffect)(()=>{q(0)},[a?.id]);let A=Xn($,V.length,B);Ee((ue,W)=>{if(W.upArrow){q(se=>Xn(se-1,V.length,B));return}if(W.downArrow){q(se=>Xn(se+1,V.length,B));return}});let F=V.slice(A,A+B),oe=V.length>B?` ${A+1}-${Math.min(A+B,V.length)}/${V.length}`:"";return(0,_e.jsxs)(S,{flexDirection:"column",paddingX:1,children:[(0,_e.jsxs)(s,{children:[(0,_e.jsx)(s,{color:c.dim,children:`Generate \u203A S${t+1} \u203A `}),(0,_e.jsx)(s,{color:c.generateAccent,children:`C${r+1} ${a?.title??"(untitled)"}`}),R?(0,_e.jsx)(s,{children:" "}):null,R]}),d?(0,_e.jsx)(s,{color:u?c.red:c.green,children:u?"\u2717 removed":"\u2713 included"}):(0,_e.jsx)(s,{color:c.dim,children:"\u2713 non-functional \xB7 not saved by /save"}),(0,_e.jsx)(s,{color:c.muted,children:"\u2500".repeat(60)}),(0,_e.jsx)(S,{flexDirection:"column",marginTop:1,children:F.map((ue,W)=>(0,_e.jsxs)(s,{color:vg(ue.tone),children:[ue.accent?(0,_e.jsx)(s,{color:c.generateAccent,children:ue.accent}):null,ue.text]},A+W))}),(0,_e.jsx)(s,{color:c.muted,children:"\u2500".repeat(60)}),(0,_e.jsx)(s,{color:c.dim,children:`\u2191\u2193 scroll \u2190 / esc back x remove${oe}`})]})}var zn=k(M(),1);function ou({scenarios:e,target:t,onClose:r,excluded:n,onToggleCase:o,onToggleScenario:i,getStatus:a,getResult:u}){let d=e.map(l=>(l.test_cases??[]).length),[x,R]=(0,nu.useReducer)((l,m)=>vi(l,m,d),Nn(t)),h=()=>{x.level==="scenarios"?r():R({type:"back"})};Ee((l,m)=>{if(m.escape||m.leftArrow){h();return}if(x.level!=="detail"){if(m.return){R({type:"enter"});return}if(m.upArrow){R({type:"move",delta:-1});return}if(m.downArrow){R({type:"move",delta:1});return}}if(l==="x"){if(x.level==="scenarios"){let P=(e[x.cursor]?.test_cases??[]).map(B=>B.id);P.length>0&&i(P)}else{let P=x.level==="cases"?x.cursor:x.caseIdx,B=(e[x.scenarioIdx]?.test_cases??[])[P];B&&o(B.id)}return}});let y=e[x.scenarioIdx];if(x.level==="scenarios"||y===void 0){let l=x.level==="scenarios"?x.cursor:0;return(0,zn.jsx)(Zl,{scenarios:e,cursor:l,excluded:n})}return x.level==="cases"?(0,zn.jsx)(eu,{scenario:y,scenarioIdx:x.scenarioIdx,cursor:x.cursor,excluded:n}):(0,zn.jsx)(ru,{scenario:y,scenarioIdx:x.scenarioIdx,caseIdx:x.caseIdx,excluded:n,getStatus:a,getResult:u})}var Yn=k(M(),1);function iu({tcg:e,gm:t,history:r,tuiConfig:n,browse:o}){return o?(0,Yn.jsx)(ou,{scenarios:e.state.scenarios,target:o.target,onClose:o.onClose,excluded:o.excluded,onToggleCase:o.onToggleCase,onToggleScenario:o.onToggleScenario,getStatus:o.getStatus,getResult:o.getResult}):!e.requestId||e.isSessionClosed?(0,Yn.jsx)(Hl,{projectId:n.project_id,folderId:n.folder_id,onSubmit:t.handleGenerateSubmit,history:r,error:t.tcgError,validationError:t.tcgValidationError,composeIdleHint:t.composeIdleHint,clearSeq:t.inputClearSeq,busy:t.submitting,closedNotice:e.isSessionClosed?`Generation ${e.state.status}. Type a new objective or /run.`:void 0}):(0,Yn.jsx)(Ql,{state:e.state,requestId:e.requestId,history:r,turnActive:e.turnActive,busy:t.submitting,error:t.tcgError??e.state.error,onClearError:()=>t.onClearError?.(),onClarificationAnswer:i=>t.onClarificationAnswer?.(i),onRefine:t.onRefine,onSlash:t.onSlash})}var su=k(ve(),1);var Tt=k(M(),1);function Sg({message:e,confirmLabel:t,choice:r}){return(0,Tt.jsxs)(S,{flexDirection:"column",borderStyle:"round",borderColor:c.dim,paddingX:1,children:[(0,Tt.jsx)(s,{bold:!0,children:e}),(0,Tt.jsxs)(S,{marginTop:1,children:[(0,Tt.jsx)(s,{color:r==="yes"?c.red:c.dim,children:`\u276F ${t}`}),(0,Tt.jsx)(s,{children:" "}),(0,Tt.jsx)(s,{color:r==="no"?c.green:c.dim,children:"\u276F No"})]}),(0,Tt.jsx)(s,{color:c.dim,children:"\u2190 \u2192 choose \xB7 \u21B5 confirm \xB7 esc cancel"})]})}function au({message:e,onConfirm:t,onCancel:r,confirmLabel:n="Yes, end"}){let[o,i]=(0,su.useState)("no");return Ee((a,u)=>{(u.leftArrow||u.rightArrow)&&i(d=>d==="yes"?"no":"yes"),u.return&&(o==="yes"?t:r)(),u.escape&&r()}),(0,Tt.jsx)(Sg,{message:e,confirmLabel:n,choice:o})}var bg=null;function cu(e){bg=e}import{join as fr,resolve as wg}from"path";var Kn=k(M(),1);function lu({status:e,steps:t,duration:r,creditsConsumed:n,reason:o}){let i=e==="passed",a=i?c.green:c.red,u=i?"\u2713":"\u2717",d=i?"Passed":"Failed",x=r<60?`${r.toFixed(1)}s`:`${Math.floor(r/60)}m ${Math.round(r%60)}s`,R=typeof n=="number"&&n>0?` \xB7 ${n.toFixed(4)} credits`:"",h=!i&&o?` \xB7 ${o}`:"";return(0,Kn.jsxs)(S,{children:[(0,Kn.jsxs)(s,{bold:!0,color:a,children:[u," ",d]}),(0,Kn.jsxs)(s,{color:c.dim,children:[" ","\xB7 ",t," steps \xB7 ",x,R,h]})]})}var du=k(M(),1);function uu(){return(0,du.jsx)(s,{color:c.dim,children:"Continue below \xB7 /new fresh session \xB7 /summary view details \xB7 Ctrl+C exit"})}var Jn=e=>({kind:"login",env:e}),wi=e=>({kind:"switch",env:e}),fu=(e,t)=>e?{kind:"switch",env:t}:{kind:"logout"};async function mu(e){await new Er(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 w=k(M(),1);function LR({localMode:e=!1,codeExport:t,codeLanguage:r,skipCodeValidation:n,updatePromise:o,migrationResult:i,sessionName:a,initialChatMode:u,initialObjective:d,initialGenerateLimits:x}={}){Oi();let R=(0,E.useRef)(new cn),[h,y]=(0,E.useState)(0),l=R.current,[m]=(0,E.useState)(()=>new rr),P=(0,E.useRef)(0),B=(0,E.useCallback)(()=>`msg-${++P.current}`,[]),[V,$]=(0,E.useState)(!1),[q,A]=(0,E.useState)(null),[F,re]=(0,E.useState)(!1),[oe,ue]=(0,E.useState)(0),[W,se]=(0,E.useState)(!1),[ce,Te]=(0,E.useState)(null),[Pe,et]=(0,E.useState)(null),Mt=(0,E.useRef)(null),[tt,gt]=(0,E.useState)(null),[mr,pr]=(0,E.useState)(ln()),[qe,Je]=(0,E.useState)(null),[Le,Vr]=(0,E.useState)([]),[Wt,Vt]=(0,E.useState)(!1),[gr,Fr]=(0,E.useState)(!1),[Ft,hr]=(0,E.useState)(null),[qr,zt]=(0,E.useState)(null),[qt,Qn]=(0,E.useState)(null),Ut=(0,E.useRef)(null),Zn=(0,E.useRef)(null),G=(0,E.useRef)(0),Q=(0,E.useRef)(!1),Z=(0,E.useRef)(""),Y=(0,E.useRef)(null),ae=(0,E.useRef)(null),ye=(0,E.useRef)({}),rt=(0,E.useRef)(null),{append:nt}=Mi(),H=(0,E.useCallback)(p=>nt((0,w.jsx)(S,{paddingX:1,children:p})),[nt]),[Ue,He]=(0,E.useState)("booting"),[Yt,eo]=(0,E.useState)([]),[Ur,Se]=(0,E.useState)(!1),[xr,pu]=(0,E.useState)(!1),[Hr,gu]=(0,E.useState)("chat"),[ht,vr]=(0,E.useState)(null),[Gr,Ri]=(0,E.useState)(null),[Sr,Ti]=(0,E.useState)(!1),[br,Xr]=(0,E.useState)(!1),yi=(0,E.useRef)(()=>{}),hu=(0,E.useCallback)((p,v)=>yi.current(p,v),[]),ie=al({log:hu});Pl(ie.state,ie.turnActive,H);let to=(0,E.useRef)(!1),_t=(0,E.useCallback)(()=>{to.current||ie.state.scenarios.length!==0&&(to.current=!0,H((0,w.jsx)(Hn,{scenarios:ie.state.scenarios,activeSid:null})))},[ie.state.scenarios,H]);(0,E.useEffect)(()=>{ie.isSessionClosed&&_t()},[ie.isSessionClosed,_t]);let[Wr,wr]=(0,E.useState)(null),[de,Rr]=(0,E.useState)({headless:!1,maxSteps:50,timeout:0,cdpEndpoint:"",wsEndpoint:"",useCft:!1}),xu=wo(),vu=wo(ji),b=zc(),zr=Yc(),st=(0,E.useMemo)(()=>({auth:{initResolver:p=>b.initResolver(p,(v,f,g,T)=>R.current.log(v,f,g,T)),getResolver:()=>b.getResolver(),getBasicAuth:()=>b.getBasicAuth(),getToken:()=>b.getToken()},getSession:()=>R.current,log:(p,v,f,g)=>R.current.log(p,v,f,g),state:{getTmsCredsCache:()=>qe,setTmsCredsCache:Je,identityServicesRef:Zn,screenshotQueueRef:Ut},exit:{registerCleanup:xt,setExitRemoteLogger:Wi},options:{skipScreenshotQueue:e}}),[b.initResolver,b.getResolver,b.getBasicAuth,b.getToken,qe,e]),Su=(0,E.useCallback)((p,v,f)=>{let g=Ut.current;if(!g)return;let T=G.current+v;gs(l.sessionDir,T,p,g,(j,U,X,ee)=>l.log(j,U,X,ee),f)},[l]),bu=(0,E.useCallback)((p,v,f)=>{l.logStep(p,v,f)},[l]),wu=(0,E.useCallback)(p=>rt.current?.setStepText(p),[]),Ru=(0,E.useCallback)(()=>rt.current?.setStepComplete(),[]),O=rs(Su,bu,wu,Ru),[I,he]=(0,E.useState)(()=>m.load()),[,Tu]=(0,E.useState)(0),Qe=(0,E.useCallback)(()=>Tu(p=>p+1),[]),[_,be]=(0,E.useState)(null),Kt=b.creds.getActiveProfile(),me=b.creds.getDefaultEnv(),dt=(0,E.useCallback)((p,v)=>{let f=p?b.creds.loadProfileConfig(p,v):null;m.save({project_id:f?.project_id??null,project_name:f?.project_name??null,folder_id:f?.folder_id??null,folder_name:f?.folder_name??null}),he(m.load())},[b.creds,m]),ro=(0,E.useCallback)(async(p,v)=>{let f=b.getResolver();if(!f)return null;let g=f.cached??await f.resolve();if(!g)return null;let T=ze(v),j=new Er(T.tmsBaseUrl,g.username,g.access_key);try{let X=(await j.listProjects()).find(le=>le.name==="KaneAI Generated");if(X)return{id:X.project_id,name:X.name};let ee=await j.createProject("KaneAI Generated");return{id:ee.id,name:ee.name}}catch{return null}},[b]),no=(0,E.useCallback)(async(p,v)=>{let f=b.getResolver();if(!f)return null;let g=f.cached??await f.resolve();if(!g)return null;let T=ze(p),j=new Er(T.tmsBaseUrl,g.username,g.access_key);try{let X=(await j.listFolders(v)).find(le=>le.name==="Untitled");if(X)return{id:X.id,name:X.name};let ee=await j.createFolder(v,"Untitled");return{id:ee.id,name:ee.name}}catch{return null}},[b]);(0,E.useEffect)(()=>{F||(l.start({model:I.model,environment:me,profile:Kt}),a&&l.setSessionName(a),re(!0))},[l,F,I.model,me,Kt,a]);let Ei=(0,E.useRef)(!1);(0,E.useEffect)(()=>{if(!F||Ei.current)return;Ei.current=!0;let p=a?[{label:"session",value:a},{label:"test",value:bo(fr(process.cwd(),".testmuai","tests",`${a}_test.md`))},{label:"output",value:bo(fr(process.cwd(),".testmuai","tests",`output-${a}`))}]:[{label:"session",value:"ephemeral"},{label:"note",value:"use /name <name> to persist this session"}];H((0,w.jsx)(To,{title:"Recording",titleColor:"#ff9500",rows:p}))},[F,a,H]);let Ci=(0,E.useRef)(!1);(0,E.useEffect)(()=>{if(!V||Ci.current||!F)return;Ci.current=!0;let p=st.state.getTmsCredsCache();if(!p){l.log("warn","BOOT_RESOLVE_FAILED","Boot done but tmsCredsCache empty \u2014 non-controller APIs may fail");return}vt({kind:"boot",tmsCreds:p,env:me},st).then(v=>{v&&(p.org_id!==void 0&&l.setOrgId(String(p.org_id)),l.setPlan(p.plan??null),l.log("info","BOOT_RESOLVE_OK","Boot identity attached",{username:p.username,org_id:p.org_id,plan:p.plan??null}))}).catch(v=>{l.log("error","BOOT_RESOLVE_ERROR","Boot identity attach error",{error:v instanceof Error?v.message:String(v)})})},[V,F,st,me,l]);let Ht=(0,E.useCallback)(async()=>{if(qe)return l.log("info","TMS_CREDS_CACHED","Using cached TMS credentials",{username:qe.username,org_id:qe.org_id}),qe;let p=await b.resolveBasicAuth();return p?(l.log("info","TMS_CREDS_OK","TMS credentials resolved",{username:p.username,org_id:p.org_id,user_id:p.user_id}),Je(p)):l.log("warn","TMS_CREDS_FAILED","No TMS credentials resolved"),p},[b,qe,l]),Yr=(0,E.useCallback)(p=>{H((0,w.jsx)(To,{title:"\u24D8 Auto-configured",titleColor:c.orange,rows:[{label:"project",value:`${p.projectName} (${p.projectId})`},{label:"folder",value:`${p.folderName} (${p.folderId})`},{label:"change with",value:(0,w.jsxs)(S,{flexDirection:"column",children:[(0,w.jsx)(s,{color:c.dim,children:"kane-cli config project <id>"}),(0,w.jsx)(s,{color:c.dim,children:"kane-cli config folder <id>"})]})}]}))},[H]),Kr=(0,E.useCallback)(async()=>{let p=await Ht();if(!p)return l.log("warn","PROJECT_FAILED","No TMS credentials for project/folder gate"),null;let v=b.creds.getActiveProfile()??"default",f=b.creds.getDefaultEnv(),g=await zi({creds:b.creds,config:m,profile:v,env:f,tmsCreds:{username:p.username,access_key:p.access_key},isLocal:e,log:(T,j,U,X)=>l.log(T,j,U,X),onAnnounce:Yr});return g.status==="ok"?{projectId:g.projectId,folderId:g.folderId}:null},[Ht,m,l,b.creds,e,Yr]),ge=(0,E.useCallback)(p=>{let v=B(),f={...p,id:v};H((0,w.jsx)(Hc,{entry:f}))},[B,H]),L=(0,E.useCallback)((p,v,f,g,T)=>{H((0,w.jsx)(el,{status:p,command:v,message:f,details:g,accentColor:T})),v==="/save"&&p==="ok"&&H((0,w.jsx)(S,{marginLeft:2,children:(0,w.jsxs)(s,{color:c.dim,children:["\u2192 Run ",(0,w.jsx)(s,{color:c.generateAccent,children:"/testmd"})," to list your saved tests."]})}))},[H]),Ii=(0,E.useRef)(()=>{}),Pt=El(ie.state.scenarios.map(p=>(p.test_cases??[]).length)),yu=(0,E.useCallback)(async()=>{let p=await Kr();return he(m.load()),p},[Kr,m]),ft=yl({tcg:ie,initialChatMode:u,tuiConfig:I,auth:b,session:l,runner:O,appendStatic:H,handleInput:p=>Ii.current(p),freezeTcgArtifact:_t,rearmArtifactFreeze:()=>{to.current=!1},openSwitchConfirm:p=>wr({reason:"switch",to:p}),emitFeedback:L,excluded:Pt.excluded,openBrowse:Pt.open,initialGenerateLimits:x,ensureProjectAndFolder:yu,config:m});yi.current=ft.tcgLog;let{chatMode:xe,tcgError:Tg,tcgValidationError:yg,composeIdleHint:Eg,inputClearSeq:Eu,handleGenerateSubmit:Cu,flashComposeHint:Jr,setTcgError:Cg}=ft,Iu=I.hints_enabled!==!1&&process.env.KANEAI_HINTS_DISABLED!=="1"&&!!process.stdout.isTTY&&!!process.stdin.isTTY&&process.env.KANE_SCREEN_READER!=="1",ki=(0,E.useRef)(!1);xe==="generate"&&(ki.current=!0);let{footerHint:ku}=ql({enabled:Iu,ready:Ue==="ready",env:me,config:I,tokenValid:b.tokenValid,chatMode:xe,sessionUsedGenerate:ki.current,log:(p,v,f,g)=>R.current.log(p,v,f,g)}),oo=(0,E.useCallback)(async(p,v)=>{let f=Q.current?null:ss({flag:v,configDefault:I.default_url}),g=vs({objective:p,globalDir:fr(We,"variables"),localDir:fr(process.cwd(),".testmuai","variables")}),T=l.nextRunIndex();G.current=T,Z.current=g.auteurObjective,l.logRunStart(T,g.auteurObjective,f??""),l.setFirstRun(g.auteurObjective,f??"");let j=b.getResolvedBasicAuth(),U=j,X=null;if(!U&&(X=await b.getToken(),!X)){ge({type:"error",text:"Not authenticated. Run /login first."});return}let ee={basicAuth:j??null,token:X,resolver:b.getResolver(),resolvedCreds:null};Y.current=ee;let le=b.creds.getActiveProfile()??"default",Ze=b.creds.getDefaultEnv();Xi(b.creds,m,le,Ze,(we,ot,yt,Xe)=>l.log(we,ot,yt,Xe));let xo=m.load();if(he(xo),T===0&&!e){l.log("info","ATM_CREATE_START","Creating test via ATM endpoint",{run_index:0});let we=await Kr(),ot=m.load();he(ot);let yt=ze(me),Xe=U?{username:U.username,access_key:U.access_key}:await Ht();if(Xe){let nn=await Rs({tmsBaseUrl:yt.tmsBaseUrl,auth:{username:Xe.username,access_key:Xe.access_key},objective:g.auteurObjective,url:f??"",projectId:we?.projectId??ot.project_id??"",folderId:we?.folderId??ot.folder_id??"",hasCustomProfile:!!I.chrome_profile_path,log:($u,Ou,Du,Nu)=>l.log($u,Ou,Du,Nu)});nn&&(l.setTestId(nn),we?.projectId&&l.setProjectId(we.projectId))}}let Ge=null;if(de.useCft)ge({type:"info",text:"CfT mode: Playwright will manage browser"});else if(de.wsEndpoint)ge({type:"info",text:`WS endpoint: ${de.wsEndpoint.slice(0,60)}...`});else if(de.cdpEndpoint)ge({type:"info",text:`CDP endpoint: ${de.cdpEndpoint}`});else{ge({type:"info",text:"Starting Chrome..."});try{Ge=await zr.ensureChrome(f??void 0)}catch(ot){ge({type:"error",text:Zi(ot)});return}l.logChromeLaunch(Ge.port,Ge.cdpEndpoint),ge({type:"info",text:`Chrome ready (port ${Ge.port})`});let we=ts({headless:de.headless,cdpEndpoint:Ge.cdpEndpoint,chromePid:Ge.process.pid});we&&(rt.current=we,xt("marker-overlay",()=>we.kill()))}l.setAuteurVariables(g.auteur),ae.current=g;let Bt=U&&!e?await Ss({variables:g,auth:U,orgId:String((await Ht())?.org_id??""),env:me,localMode:e,log:(we,ot,yt,Xe)=>l.log(we,ot,yt,Xe)}):{};ye.current=Bt;let Jt=_o(fr(We,"global-memory.md")),Qt=_o(fr(process.cwd(),".testmuai","context.md")),Tr=Ge?{cdpEndpoint:Ge.cdpEndpoint,instance:Ge,tempDir:null}:de.wsEndpoint?{wsEndpoint:de.wsEndpoint,instance:null,tempDir:null}:de.cdpEndpoint?{cdpEndpoint:de.cdpEndpoint,instance:null,tempDir:null}:{instance:null,tempDir:null};if(T===0){let we={mode:I.mode,max_steps:de.maxSteps,timeout:de.timeout>0?de.timeout:void 0,target:Ge?"chrome":de.cdpEndpoint?"cdp":de.wsEndpoint?"ws":void 0,chrome_profile:I.chrome_profile_path||void 0,cdp_endpoint:de.cdpEndpoint||void 0,ws_endpoint:de.wsEndpoint||void 0,headless:de.headless,global_context:Jt??void 0,local_context:Qt??void 0,variables:Object.keys(g.auteur).length>0?g.auteur:void 0};l.setResolvedGlobal(we)}let yr=xs(g.auteur,g.auteurObjective),rn=hs({objective:g.auteurObjective,url:f??void 0,requireStartUrl:!Q.current&&f===null,model:I.model,chrome:Tr,auth:ee,sessionId:l.sessionId,runIndex:T,windowSize:I.window_size,maxSteps:de.maxSteps,headless:de.headless,variables:Object.keys(yr).length>0?yr:void 0,globalContext:Jt??void 0,localContext:Qt??void 0,sessionContext:l.getContext()});f&&A(f),Te(null),O.startRun(rn,{environment:me,mode:I.mode,log:(we,ot,yt,Xe)=>l.log(we,ot,yt,Xe)}),ue(we=>we+1)},[b,zr,m,I,l,me,O,ge,de,Kr,Ht]),Au=(0,E.useCallback)(async p=>{let v=wg(p),f=ds(v),g=new cn,T=b.getResolvedBasicAuth(),j=null;T||(j=await b.getToken());let U={basicAuth:T??null,token:j,resolver:b.getResolver(),resolvedCreds:null},X=me,ee=ze(X),le=b.creds.getActiveProfile()??"default";return{path:v,cwd:process.cwd(),opts:{},isAgent:!1,disableAskUser:!1,resolved:f,resolvedAuth:U,cliOverrides:{},environment:X,envConfig:ee,profile:le,model:"v16-alpha",creds:b.creds,configStore:m,session:g,skipGlobalRemoteLogger:!0,onAnnounce:Yr}},[b,m,me,Yr]),fe=sl({buildInput:Au,remoteLogger:null}),io=(0,E.useRef)(null);(0,E.useEffect)(()=>{if(O.bifurcationInfo&&O.bifurcationInfo!==io.current){io.current=O.bifurcationInfo;let{flows:p,isSingleFlow:v}=O.bifurcationInfo;if(v&&p.length===1&&p[0])l.log("info","OBJECTIVE_REWRITTEN","Objective rewritten",{objective:p[0]}),ge({type:"info",text:`Objective: ${p[0]}`});else if(!v&&p.length>1){let f=[`Bifurcated into ${p.length} flows:`];p.forEach((g,T)=>f.push(` ${T+1}. ${g}`)),l.log("info","BIFURCATION","Objective bifurcated into flows",{flow_count:p.length}),ge({type:"info",text:f.join(`
18
- `)})}}},[O.bifurcationInfo,l,ge]);let so=E.default.useRef(null),ao=E.default.useRef(0),co=E.default.useRef(0);(0,E.useEffect)(()=>{if(O.lastRunEnd&&O.lastRunEnd!==so.current){so.current=O.lastRunEnd,Q.current=!0;let{status:p,duration:v,summary:f,reason:g,context:T}=O.lastRunEnd,{passed:j,failed:U,total:X}=ns(O.steps);ao.current+=X,co.current+=v??0,Te({status:p,duration:v??0,summary:f??"",stepsPassed:j,stepsFailed:U,stepsTotal:X,reason:g,finalState:O.lastRunEnd?.final_state,creditsConsumed:O.lastRunEnd?.credits_consumed}),l.logRunEnd(G.current,p,v,f);let ee=O.bifurcationInfo,le=ee&&!ee.isSingleFlow?ee.flows:null,Ze=Hi(O.lastRunEnd,G.current,le),xo=Gi(O.lastRunEnd,Z.current,G.current,Ze);l.addRunResult(xo,O.lastRunEnd?.total_runs);let Ge=O.lastRunEnd?.per_flow_metadata;if(ee&&!ee.isSingleFlow&&Ge&&Ge.length>1)for(let Bt=0;Bt<Ge.length;Bt++){let Jt=Ge[Bt],Qt=O.steps[Bt],Tr=Qt?.children??[],yr=Tr.filter(Xe=>Xe.status==="passed").length,rn=Tr.filter(Xe=>Xe.status==="failed").length,we=Tr.reduce((Xe,nn)=>Xe+(nn.duration??0),0),ot=Qt?.status==="failed"?"failed":"passed",yt=ee.flows[Bt]??Qt?.objective??Z.current;l.addFlow({runIndex:G.current,flowId:ee.flows[Bt],objective:yt,status:ot,summary:Jt.summary??"",duration:we,steps:yr+rn,stepsPassed:yr,stepsFailed:rn,reason:Jt.error_message??void 0,creditsConsumed:Jt.credits_consumed??void 0})}else l.addFlow({runIndex:G.current,objective:Z.current,status:p,summary:f??"",duration:v??0,steps:X,stepsPassed:j,stepsFailed:U,reason:g,creditsConsumed:O.lastRunEnd?.credits_consumed})}},[O.lastRunEnd,l,ge]);let lo=(0,E.useRef)(null);(0,E.useEffect)(()=>{O.askingUser&&(lo.current=O.askingUser)},[O.askingUser]);let uo=(0,E.useRef)(null);(0,E.useEffect)(()=>{if(ce&&!O.isRunning&&O.lastRunEnd){if(uo.current===O.lastRunEnd)return;uo.current=O.lastRunEnd,H((0,w.jsxs)(S,{flexDirection:"column",children:[(0,w.jsx)(lu,{status:ce.status,steps:ce.stepsTotal,duration:ce.duration,creditsConsumed:ce.creditsConsumed,reason:ce.reason}),(0,w.jsx)(uu,{})]})),Te(null)}},[ce,O.isRunning,O.lastRunEnd,H]);let Ai=(0,E.useRef)(null);(0,E.useEffect)(()=>{if(fe.runSummary&&!fe.running){if(Ai.current===fe.runSummary)return;Ai.current=fe.runSummary,(fe.summary||fe.links)&&H((0,w.jsxs)(S,{flexDirection:"column",children:[fe.summary&&(0,w.jsx)(ps,{data:fe.summary}),fe.links&&(0,w.jsx)(un,{...fe.links,autoExit:!1})]}))}},[fe.runSummary,fe.running,fe.summary,fe.links,H]),(0,E.useEffect)(()=>{rt.current?.setRunActive(O.isRunning)},[O.isRunning]),(0,E.useEffect)(()=>{if(O.runError&&!O.isRunning){let p=O.runError.trim();l.log("error","RUNNER_ERROR","Runner error occurred",{error:p}),l.escalateRun(l.nextRunIndex()-1);let f=p.split(`
19
- `).slice(-8).join(`
20
- `);ge({type:"error",text:`Runner error:
21
- ${f}`})}},[O.runError,O.isRunning,ge,l]);let Qr=(0,E.useCallback)(async()=>{l.log("info","EXIT_UPLOAD_START","Starting exit upload pipeline"),pr(ln()),gt({status:"uploading"});let p=b.getResolvedBasicAuth(),v=null;if(!p&&(v=await b.getToken(),!v))return l.log("warn","EXIT_UPLOAD_ABORTED","Exit upload aborted \u2014 no auth available"),null;let f=qe??await Ht();if(!f)return l.log("warn","EXIT_UPLOAD_ABORTED","Exit upload aborted \u2014 no TMS credentials"),l.setUploadStatus("failed","Could not get TMS credentials"),null;l.log("info","EXIT_UPLOAD_CONFIG","Exit upload configuration",{test_id:l.testId,commit_id:l.sessionId,project_id:I.project_id,session_dir:l.sessionDir,run_dirs:l.getRunDirs()});let g={basicAuth:p??null,token:v,resolver:b.getResolver(),resolvedCreds:f};Ut.current&&(l.log("info","SCREENSHOT_UPLOAD_DRAIN","Draining screenshot queue before pipeline"),await Ut.current.drain(),l.log("info","SCREENSHOT_UPLOAD_DRAINED","Screenshot queue drained"));let T=bs({session:l,env:me,auth:g,variables:ae.current??{raw:{},auteur:{},auteurObjective:"",secretEntries:[],nonSecretEntries:[]},variableIds:ye.current,projectId:I.project_id,folderId:I.folder_id,totalSteps:ao.current,totalDuration:co.current,screenshotExtMap:Ut.current?.getExtMap(),codeExport:ws({codeExport:t,codeLanguage:r,skipCodeValidation:n},I.code_export),onProgress:(X,ee,le)=>{l.log("info","EXIT_PROGRESS","Upload progress",{step:X,status:ee,detail:le}),pr(Ze=>ms(Ze,X,ee,le))},log:(X,ee,le,Ze)=>l.log(X,ee,le,Ze),shouldUploadArtifacts:!0,shouldReplaceLocalOutput:!1,shouldCommit:!1,isFirstRun:!0}),U=await new Ts(T).execute();if(U.success){l.log("info","EXIT_UPLOAD_OK","Exit upload succeeded",{test_id:U.testId,testcase_id:U.testcaseId??null,share_id:U.shareId??null}),l.setUploadStatus("uploaded"),U.testId&&l.setTestId(U.testId),U.testcaseId&&l.setTestcaseId(U.testcaseId);let X=ze(me),ee=I.project_id,le=U.testcaseId&&U.shareId&&ee?ko(X.testManagerUiUrl,ee,U.testcaseId,U.shareId):void 0,Ze=U.testcaseId&&ee?Ao(X.testManagerUiUrl,ee,U.testcaseId):void 0;gt({status:"success",testUrl:le,testCaseLink:Ze,codeExportDir:U.codeExportDir}),cu({shareableLink:le,testCaseLink:Ze,codeExportDir:U.codeExportDir})}else l.log("error","EXIT_UPLOAD_FAILED","Exit upload failed",{error:U.error}),l.setUploadStatus("failed",U.error),gt({status:"failed",error:U.error});return U},[b,me,l,I,qe,Ht]),Zr=(0,E.useCallback)(async()=>{l.log("info","SESSION_RESET_START","Starting session reset via /new"),Vt(!0);let p=l.getFlows();p.length>0&&H((0,w.jsx)(pi,{flows:p}));let v=null;if(!e)try{v=await Qr()??null}catch(T){l.log("error","SESSION_RESET_UPLOAD_FAILED","Upload failed during /new",{error:String(T)}),ge({type:"error",text:"Upload failed \u2014 session data saved locally."})}let f=null;try{let{persistRecordedSession:T}=await import("./persist-recorded-session-V4OYUDBM.js");f=T(l,{testcaseId:l.testcaseId??void 0,projectId:I.project_id??void 0,folderId:I.folder_id??void 0,codeExportDir:v?.codeExportDir})}catch(T){l.log("error","SESSION_RESET_PERSIST_FAILED","Persist failed during /new",{error:String(T)})}if(v?.success&&v.testcaseId||f){let T=ze(me),j=I.project_id,U=v?.testcaseId;H((0,w.jsx)(un,{recordedTestPath:f?.recordedTestPath,outputDir:f?.outputDir,shareableLink:U&&v?.shareId&&j?ko(T.testManagerUiUrl,j,U,v.shareId):void 0,testCaseLink:U&&j?Ao(T.testManagerUiUrl,j,U):void 0,codeExportDir:v?.codeExportDir,autoExit:!1}))}l.testId&&Vr(T=>[...T,{testId:l.testId,runCount:oe}]),zr.killChrome(),await l.finish("complete");let g=new cn;g.start({model:I.model,environment:me,profile:Kt??null}),R.current=g,y(T=>T+1),l.log("info","SESSION_RESET_COMPLETE","Session reset complete",{new_session_id:g.sessionId}),await vt({kind:"resessionize",env:me},st),ue(0),ao.current=0,co.current=0,G.current=0,Z.current="",ae.current=null,ye.current={},tn.current=0,mo.current=0,lo.current=null,uo.current=null,so.current=null,Q.current=!1,io.current=null,Te(null),A(null),gt(null),pr(ln()),Vt(!1),H((0,w.jsxs)(S,{flexDirection:"column",marginY:1,children:[(0,w.jsx)(s,{color:c.dim,children:"\u2500".repeat(44)}),(0,w.jsx)(s,{color:c.green,bold:!0,children:"New session started"})]}))},[l,ge,H,e,Qr,zr,oe,I,me,Kt,st]),_i=(0,E.useCallback)(async()=>{if(!(l.nextRunIndex()>0)){ge({type:"info",text:"No runs in current session."});return}if(O.isRunning){ge({type:"error",text:"Cannot reset while a run is in progress. Cancel the run first."});return}if(I.mode==="testing"&&!l.sessionName){zt("new"),hr(Bo());return}await Zr()},[l,O,ge,I.mode,Zr]),Pi=(0,E.useCallback)(async()=>{await l.finish("complete"),nr(0,"Session complete")},[l]),_u=(0,E.useCallback)(async p=>{Fr(!1);let v=l.testId??(Le.length>0?Le[Le.length-1].testId:null);if(p&&v){l.log("info","EXIT_FEEDBACK_SUBMIT","Submitting session feedback",{choice:p});try{let f=ze(me),g=b.getResolvedBasicAuth();g&&await mu({tmsBaseUrl:f.tmsBaseUrl,username:g.username,accessKey:g.access_key,testId:v,feedbackType:p,log:(T,j,U,X)=>l.log(T,j,U,X)})}catch(f){l.log("error","EXIT_FEEDBACK_FAILED","Feedback submission failed",{error:String(f)})}}else l.log("info","EXIT_FEEDBACK_SKIPPED","Feedback skipped");Pi()},[me,b,l,Pi,Le]),en=(0,E.useCallback)(async()=>{let p=l.nextRunIndex()>0,v=null;if(p&&!e){l.log("info","EXIT_WITH_ACTIVE_SESSION","Exit with active session \u2014 uploading first"),se(!0);try{v=await Qr()??null}catch(g){l.log("error","EXIT_UPLOAD_FAILED","Exit upload failed",{error:String(g)})}l.testId&&Vr(g=>[...g,{testId:l.testId,runCount:oe}])}try{let{persistRecordedSession:g}=await import("./persist-recorded-session-V4OYUDBM.js"),T=g(l,{testcaseId:l.testcaseId??void 0,projectId:I.project_id??void 0,folderId:I.folder_id??void 0,codeExportDir:v?.codeExportDir});T&&Qn(T)}catch(g){l.log("error","EXIT_PERSIST_FAILED","Persist failed during /exit",{error:String(g)})}if(p&&!e&&await l.finish("complete"),!(l.testId??(Le.length>0?Le[Le.length-1].testId:null))||e){await l.finish("complete"),nr(0,"No test ID \u2014 quick exit");return}se(!0),Fr(!0)},[l,e,Qr,oe,Le,I]),Lt=(0,E.useCallback)(async()=>{if(W)return;l.log("info","EXIT_START","TUI exit initiated");let p=I.mode==="testing",v=l.nextRunIndex()>0;if(p&&v&&!l.sessionName){zt("exit"),hr(Bo());return}await en()},[W,l,I.mode,en]),Pu=(0,E.useCallback)(p=>{p&&l.setSessionName(p);let v=qr;hr(null),zt(null),v==="new"?Zr():en()},[l,qr,en,Zr]);(0,E.useEffect)(()=>{if(!W)return;let p=300*1e3,v=setTimeout(async()=>{l.setUploadStatus("failed","Upload timed out after 5m"),await l.finish("complete"),nr(0,"Upload timed out after 5m")},p);return()=>clearTimeout(v)},[W,l]);let tn=E.default.useRef(0),fo=E.default.useRef(null),mo=E.default.useRef(0),po=E.default.useRef(0),go=E.default.useRef(null);Ee((p,v)=>{if(v.ctrl&&p==="c"){if(xe==="generate"&&(ie.isStreaming||ft.submitting)){ft.cancelGenerate(),po.current++,go.current&&clearTimeout(go.current),go.current=setTimeout(()=>{po.current=0},2e3),po.current>=2&&Lt();return}if(!fe.running){if(W){mo.current+=1,mo.current>=2&&(l.setUploadStatus("pending","Force exit by user"),l.finish("complete"),nr(0,"Force exit by user"));return}if(O.isRunning){O.cancelRun(),ge({type:"info",text:"Run cancelled."}),tn.current++,fo.current&&clearTimeout(fo.current),fo.current=setTimeout(()=>{tn.current=0},2e3),tn.current>=2&&Lt();return}Lt()}}}),Ee((p,v)=>{if(v.ctrl&&p==="t"&&xe==="generate"&&!ie.isStreaming){Jr("no thinking yet");return}});let Li=E.default.useMemo(()=>{let p=b.creds.getActiveProfile()??"none",v=b.creds.getDefaultEnv();return[{id:"run",label:"Run",type:"submenu",children:[{id:"run-start",label:"Start Run",type:"action"},{id:"run-config",label:"Run Config",type:"submenu",children:[{id:"run-headless",label:"Headless",type:"select",currentValue:de.headless?"on":"off",options:[{label:"off",value:"off"},{label:"on",value:"on"}],onValue:f=>{Rr(g=>({...g,headless:f==="on"}))}},{id:"run-max-steps",label:"Max Steps",type:"text-input",currentValue:String(de.maxSteps),onValue:f=>{let g=parseInt(f,10);g>0&&Rr(T=>({...T,maxSteps:g}))}},{id:"run-timeout",label:"Timeout (sec)",type:"text-input",currentValue:de.timeout?String(de.timeout):"",placeholder:"0 = no timeout",onValue:f=>{let g=parseInt(f,10);Rr(T=>({...T,timeout:isNaN(g)?0:g}))}},{id:"run-cdp",label:"CDP Endpoint",type:"text-input",currentValue:de.cdpEndpoint,placeholder:"http://127.0.0.1:9222",onValue:f=>{Rr(g=>({...g,cdpEndpoint:f}))}},{id:"run-ws",label:"WS Endpoint",type:"text-input",currentValue:de.wsEndpoint,placeholder:"wss://...",onValue:f=>{Rr(g=>({...g,wsEndpoint:f}))}}]}]},{id:"auth",label:"Auth",type:"submenu",children:[{id:"login",label:"Login",type:"action",onLoginWizard:()=>{}},{id:"logout",label:"Logout",type:"action",onAction:()=>{b.logout().then(f=>{Qe();let g=b.creds.getActiveProfile(),T=b.creds.getDefaultEnv();dt(g,T);let j=fu(g,T);vt(j,st).catch(()=>{}),f?L("ok","/logout",`Logged out: ${f.profile} [${f.env}]`):L("ok","/logout","No active profile")}).catch(()=>{L("error","/logout","Logout failed")})}},{id:"whoami",label:"Who Am I",type:"action",onInfo:()=>{let f=b.creds.getActiveProfile()??"none",g=b.creds.getDefaultEnv(),T=b.creds.loadBasicAuth(f,g),j=T?"basic":b.creds.loadCredentials(f,g)?"oauth":"not configured";return{title:"Who Am I",sections:[{label:"Identity",entries:[{key:"Profile",value:f},{key:"Environment",value:g}]},{label:"Authentication",entries:[{key:"Method",value:j},...T?[{key:"Username",value:T.username}]:[]]},{label:"Token",entries:[{key:"Status",value:b.tokenValid?"valid":"not logged in",color:b.tokenValid?c.green:c.red}]}]}}},{id:"balance",label:"Credit Balance",type:"action",suppressFeedback:!0,onAction:()=>{(async()=>{let f=b.creds.getActiveProfile()??"default",g=b.creds.getDefaultEnv(),T=ze(g);try{let j=b.getBasicAuth(),U=j?null:await b.getToken();if(!j&&!U){et({text:"Not authenticated. Run /login first.",color:c.red});return}let{ControllerClient:X}=await import("./controller-client-RD2YEMAH.js"),le=await(j?new X(T.controllerBaseUrl,{username:j.username,accessKey:j.access_key}):new X(T.controllerBaseUrl,U)).getCreditBalance();et({text:`Credits \u2014 available: ${le.available_credits}, total: ${le.total_credits} (${f} / ${g})`,color:c.green})}catch(j){et({text:`Balance check failed: ${j instanceof Error?j.message:String(j)}`,color:c.red})}Mt.current&&clearTimeout(Mt.current),Mt.current=setTimeout(()=>{et(null),Mt.current=null},5e3)})()}},{id:"profiles",label:"Profiles",type:"action",onProfilesView:()=>{}}]},{id:"config",label:"Config",type:"submenu",children:[{id:"config-show",label:"Show",type:"action",onInfo:()=>({title:"Show Config",sections:[{label:"General",entries:[{key:"Model",value:"v16-alpha"},{key:"Mode",value:I.mode},{key:"Hints",value:I.hints_enabled===!1?"off":"on"}]},{label:"Browser",entries:[{key:"Window",value:`${I.window_size.width}x${I.window_size.height}`},{key:"Chrome Profile",value:I.chrome_profile_path?I.chrome_profile_path.split("/").pop()??I.chrome_profile_path:"(temporary)"}]},{label:"Project",entries:[{key:"Project",value:I.project_name?`${I.project_name} (${I.project_id})`:I.project_id??"(none)"},{key:"Folder",value:I.folder_name?`${I.folder_name} (${I.folder_id})`:I.folder_id??"(none)"},{key:"Default URL",value:I.default_url??vo}]},{label:"Code Export",entries:[{key:"Enabled",value:I.code_export.enabled?"yes":"no"},{key:"Language",value:I.code_export.language},{key:"Skip Validation",value:I.code_export.skip_validation?"yes":"no"}]}]})},{id:"config-chrome",label:"Chrome Profile",type:"action",onChromeProfilePicker:()=>{}},{id:"config-project",label:"Project",type:"action",onProjectPicker:()=>{}},{id:"config-folder",label:"Folder",type:"action",...I.project_id?{onFolderPicker:()=>{}}:{onInfo:()=>({title:"Folder",sections:[{entries:[{key:"Status",value:"Select a project first",color:c.dim}]}]})}},{id:"config-window",label:"Window Size",type:"action",currentValue:`${I.window_size.width}x${I.window_size.height}`,onWindowSizePicker:()=>{}},{id:"config-default-url",label:"Default URL",type:"text-input",currentValue:I.default_url??"",placeholder:"https://example.com",onValue:f=>{let g=Co(f);if(!g){L("error","/config set-url","Enter a valid URL (e.g. example.com)");return}m.set("default_url",g),he(m.load()),L("ok","/config set-url",g)}},{id:"config-mode",label:"Mode",type:"select",currentValue:I.mode,options:[{label:"testing",value:"testing"},{label:"action",value:"action"}],onValue:f=>{(f==="action"||f==="testing")&&(m.set("mode",f),he(m.load()),L("ok","/config set-mode",f))}},{id:"config-hints",label:"CLI Hints",type:"select",currentValue:I.hints_enabled===!1?"off":"on",options:[{label:"on",value:"on"},{label:"off",value:"off"}],onValue:f=>{let g=f==="on";m.set("hints_enabled",g),he(m.load()),L("ok","/config hints",`CLI hints ${g?"enabled":"disabled"}`)}},{id:"config-generate",label:"Generate",type:"submenu",currentValue:`${I.generate.scenario_limit}x${I.generate.per_scenario_limit}`,children:[{id:"config-generate-scenario-limit",label:"Scenario limit",type:"text-input",currentValue:String(I.generate.scenario_limit),placeholder:"5",onValue:f=>{let g=parseInt(f,10);if(!Number.isFinite(g)||g<1||g>20){L("error","/config",`Scenario limit must be 1-20 (got ${f})`);return}m.set("generate",{...I.generate,scenario_limit:g}),he(m.load()),L("ok","/config",`Scenario limit: ${g}`)}},{id:"config-generate-per-scenario-limit",label:"Per-scenario limit",type:"text-input",currentValue:String(I.generate.per_scenario_limit),placeholder:"4",onValue:f=>{let g=parseInt(f,10);if(!Number.isFinite(g)||g<1||g>20){L("error","/config",`Per-scenario limit must be 1-20 (got ${f})`);return}m.set("generate",{...I.generate,per_scenario_limit:g}),he(m.load()),L("ok","/config",`Per-scenario limit: ${g}`)}},{id:"config-generate-memory",label:"Memory",type:"select",currentValue:I.generate.memory_enabled?"on":"off",options:[{label:"on",value:"on"},{label:"off",value:"off"}],onValue:f=>{let g=f==="on";m.set("generate",{...I.generate,memory_enabled:g}),he(m.load()),L("ok","/config",`Memory: ${g?"on":"off"}`)}}]},{id:"config-code-export",label:"Code Export",type:"submenu",currentValue:I.code_export.enabled?"enabled":"disabled",children:[{id:"config-code-export-enabled",label:"Enabled",type:"select",currentValue:I.code_export.enabled?"on":"off",options:[{label:"off",value:"off"},{label:"on",value:"on"}],onValue:f=>{m.set("code_export",{...I.code_export,enabled:f==="on"}),he(m.load()),L("ok","/config code-export enabled",f)}},{id:"config-code-export-language",label:"Language",type:"select",currentValue:I.code_export.language,options:[{label:"python",value:"python"},{label:"javascript",value:"javascript"}],onValue:f=>{f!=="python"&&f!=="javascript"||(m.set("code_export",{...I.code_export,language:f}),he(m.load()),L("ok","/config code-export language",f))}},{id:"config-code-export-skip-validation",label:"Skip Validation",type:"select",currentValue:I.code_export.skip_validation?"on":"off",options:[{label:"off",value:"off"},{label:"on",value:"on"}],onValue:f=>{m.set("code_export",{...I.code_export,skip_validation:f==="on"}),he(m.load()),L("ok","/config code-export skip-validation",f)}}]}]},{id:"exit",label:"Exit",type:"action",onAction:()=>{Lt()}}]},[b,m,I,ge,Lt,de,Qe,L]),ho=(0,E.useCallback)(p=>{if(O.askingUser){let f=O.askingUser;H((0,w.jsxs)(S,{flexDirection:"column",marginLeft:2,paddingLeft:1,marginTop:1,children:[(0,w.jsx)(S,{marginLeft:1,children:(0,w.jsx)(s,{color:c.orange,bold:!0,children:"Agent Question"})}),(0,w.jsxs)(S,{borderStyle:"round",borderColor:c.orange,flexDirection:"column",paddingX:2,paddingY:1,width:70,children:[(0,w.jsxs)(S,{children:[(0,w.jsx)(S,{width:3,children:(0,w.jsx)(s,{color:c.orange,bold:!0,children:"?"})}),(0,w.jsx)(S,{flexShrink:1,children:(0,w.jsx)(s,{wrap:"wrap",children:f})})]}),(0,w.jsxs)(S,{marginTop:1,children:[(0,w.jsx)(S,{width:3,children:(0,w.jsx)(s,{color:c.dim,bold:!0,children:"\u2192"})}),(0,w.jsx)(S,{flexShrink:1,children:(0,w.jsx)(s,{wrap:"wrap",children:p})})]})]})]})),lo.current=null,O.sendAnswer(p);return}if(l.logCommand(p),O.isRunning){ge({type:"error",text:"Run in progress. Ctrl+C to cancel."});return}let v=Pn(p);if(v){if(!Qc(v.command,xe)){L("error",`/${v.command}`,`/${v.command} isn't available in ${xe==="run"?"Run":"Generate"} mode.`);return}switch(v.command){case"profiles":if(xe==="generate"&&ie.requestId&&v.args.action==="switch"){wr({reason:"profile",pendingArgs:v.args});return}vr("auth");return;case"login":case"logout":case"whoami":case"balance":case"auth":vr("auth");return;case"config":if(v.args.action==="set-url"){let f=Co(v.args.value);if(!f){L("error","/config set-url","Usage: /config set-url <url>");return}m.set("default_url",f),he(m.load()),L("ok","/config set-url",f);return}vr("config");return;case"help":Ti(!0);return;case"testmd":if(O.isRunning||ie.isStreaming||fe.running){L("error","/testmd","Finish or cancel the current run/generation first.");return}fe.clearResult(),Xr(!0);return;case"generate":if(fe.running){L("error","/generate","Finish or cancel the running test first.");return}xe==="run"?ft.requestSwitch("generate")&&L("ok","/generate","Switched to Generate mode.",void 0,c.generateAccent):L("ok","/generate","Already in Generate mode.",void 0,c.generateAccent);return;case"run":{let f=Zc(xe,v.args.objective);switch(f.kind){case"run":oo(f.objective,v.args.url);return;case"reject":L("error","/run",'Switch to Run mode first (bare /run), then /run "objective".');return;case"already":L("ok","/run","Already in Run mode.",void 0,c.orange);return;case"toggle":ft.requestSwitch("run")&&L("ok","/run","Switched to Run mode.",void 0,c.orange);return}return}case"update":{(async()=>{let{getUpdateCommand:f}=await import("./version-check-43WUFMCW.js");L("ok","/update",`To update kane-cli, run: ${f()}`)})();return}case"summary":{if(xe==="generate"&&!ie.requestId){Jr("no generation yet"),L("ok","/summary","(no generation yet)");return}let f=l.getFlows();if(f.length===0){L("ok","/summary","No runs yet in this session.");return}let g=v.args.index?parseInt(v.args.index,10):void 0;if(g!==void 0&&!l.getFlow(g)){L("error","/summary",`No flow at index ${g}`,`${f.length} flow${f.length===1?"":"s"} available. Use /summary to see all.`);return}H((0,w.jsx)(pi,{flows:f,filterIndex:g})),L("ok","/summary",g!==void 0?`Flow ${g}`:`${f.length} flow${f.length===1?"":"s"}`);return}case"new":xe==="generate"&&ie.requestId&&(_t(),ie.end().catch(f=>{L("error","/new",`Could not end generation cleanly: ${f.message}`)}),ie.reset()),_i(),L("ok","/new","Session reset");return;case"name":{let f=v.raw.replace(/^\/name\s*/,"").trim();if(!f){L("error","/name","Usage: /name <new-name>");return}(async()=>{let{validateNameOrThrow:g}=await import("./name-validator-5YGJXLZ7.js");try{g(f),l.setSessionName(f),L("ok","/name",`Session name set: ${f}`)}catch(T){L("error","/name",T.message)}})();return}case"cancel":if(xe==="generate"&&ie.isStreaming){_t(),ie.cancel(),L("ok","/cancel","Cancelled");return}if(xe==="generate"&&!ie.requestId){Jr("no generation yet"),L("ok","/cancel","(no generation yet)");return}if(fe.running){fe.cancel(),L("ok","/cancel","Run cancelled");return}O.cancelRun(),L("ok","/cancel","Run cancelled");return;case"clear":L("ok","/clear","Chat cleared");return;case"exit":xe==="generate"&&ie.requestId&&(_t(),ie.end()),Lt();return;default:L("error",`/${v.command}`,"Unknown command");return}}if(p.trim().toLowerCase()==="exit"){Lt();return}H((0,w.jsxs)(S,{children:[(0,w.jsx)(s,{color:c.orange,children:"\u276F "}),(0,w.jsx)(s,{children:p})]})),oo(p,void 0)},[O,ge,L,H,l,oo,Lt,_i,xe,ie.isStreaming,ie.requestId,ie,Jr,_t,fe]);Ii.current=ho;let Bi=(0,E.useRef)(!1);(0,E.useEffect)(()=>{if(!Bi.current&&V&&u==="generate"&&d){Bi.current=!0;let p=setTimeout(()=>{Cu(d)},50);return()=>clearTimeout(p)}},[V,u,d]);let $i=b.getAuthInfo(),Lu=$i?$i.method==="basic"?"basic auth":"oauth":"not logged in",Bu=(()=>{if(Sr)return["help"];if(br)return["testmd"];if(_)return _.phase==="wizard"?["auth","login"]:_.phase==="project"?["auth","login","project"]:_.phase==="folder"?["auth","login","folder"]:["auth","login"];let p={infoView:"info",loginWizard:"login",profilesView:"profiles",chromeProfilePicker:"chrome-profile",projectPicker:"project",folderPicker:"folder",windowSizePicker:"set-window"};return ht==="auth"?Gr?["auth",p[Gr]]:["auth"]:ht==="config"?Gr?["config",p[Gr]]:["config"]:ht==="help"?["help"]:O.askingUser?["agent question"]:[]})();return(0,w.jsxs)(S,{flexDirection:"column",children:[!V&&!xr&&(0,w.jsx)(Uc,{onComplete:()=>{let p=b.creds.getActiveProfile(),v=b.creds.getDefaultEnv(),f=p?b.creds.loadCredentials(p,v):null,g=p?b.creds.loadBasicAuth(p,v):null,T=!!(f||g),j=g?.username??p??null;H((0,w.jsx)(An,{size:"full",helmetVisibleRows:8,textVisibleRows:7,showMeta:!0,version:mt,authenticated:T,user:j})),pu(!0);let U=(X,ee,le,Ze)=>{l.log(X,ee,le,Ze)};if(is(b.creds,U).then(X=>{if(X.status==="authenticated"){let{profile:ee,env:le,tmsCreds:Ze}=X.result;b.creds.setActiveProfile(ee),b.creds.setDefaultEnv(le),Qe(),Je(Ze),He("ready"),$(!0)}else X.status==="needs_pick"?(eo(X.profiles),He("pick")):He("login")}).catch(X=>{l.log("error","STARTUP_GATE_ERROR","Auth gate failed",{error:String(X)}),He("login")}),o&&o.then(async X=>{if(X){let{getUpdateCommand:ee}=await import("./version-check-43WUFMCW.js");L("ok","update available",`${X.current} \u2192 ${X.latest}`,`Run: ${ee()}`)}}).catch(()=>{}),i&&i.changes.length>0){let X=`kane-cli updated to ${i.toVersion}. Default settings changed:`,ee=[...i.changes.map(le=>`\u2022 ${le.description} (${le.field}: ${JSON.stringify(le.from)} \u2192 ${JSON.stringify(le.to)})`),"","Use /config to review or revert any of these."].join(`
22
- `);L("ok","defaults updated",X,ee)}}}),!V&&Ue==="booting"&&xr&&(0,w.jsx)(S,{paddingX:1,children:(0,w.jsx)(s,{color:"yellow",children:"Checking authentication..."})}),!V&&Ue==="pick"&&(0,w.jsx)(Rg,{profiles:Yt,onCancel:()=>He("login"),onSelect:async(p,v)=>{b.creds.setActiveProfile(p),b.creds.setDefaultEnv(v),Qe(),Se(!0);let f=(g,T,j,U)=>{l.log(g,T,j,U)};try{let g=await os(b.creds,p,v,f);Se(!1),g.status==="authenticated"?(dt(p,v),Je(g.result.tmsCreds),He("ready"),$(!0)):He("login")}catch{Se(!1),He("login")}},validating:Ur}),!V&&Ue==="login"&&!_&&(0,w.jsx)(an,{devMode:process.env.KANE_DEV_MODE==="1",profiles:b.creds.listProfiles(),onBasicLogin:async(p,v,f,g)=>{let{validateBasicAuth:T}=await import("./validate-basic-3W5ODPRI.js");await T(v,f,g),b.creds.saveBasicAuth(p,v,{username:f,access_key:g}),b.creds.setActiveProfile(p),b.creds.setDefaultEnv(v),at(b.creds,m,p,v),b.setTokenValid(!0),Qe()},onOAuthLogin:async(p,v)=>{b.creds.setDefaultEnv(v),await b.login(p),at(b.creds,m,p,v),Qe()},onComplete:(p,v)=>{vt(Jn(v),st).then(()=>{Qe(),be({phase:"project",profile:p,env:v})}).catch(()=>{be({phase:"project",profile:p,env:v})})},onCancel:()=>{nr(0,"Login cancelled at startup")}}),!V&&Ue==="login"&&_?.phase==="project"&&(0,w.jsx)(er,{resolver:b.getResolver(),currentProjectId:null,env:_.env,onSelect:(p,v)=>{b.creds.saveProfileConfig(_.profile,_.env,{project_id:p,project_name:v}),L("ok","/config project",v,`id: ${p}`),be({..._,phase:"folder"})},onCancel:async()=>{let p=await ro(_.profile,_.env);p&&(pt(b.creds,m,_.profile,_.env,{projectId:p.id,projectName:p.name}),L("ok","/config project",p.name,`id: ${p.id}`),be({..._,phase:"folder"}))}}),!V&&Ue==="login"&&_?.phase==="folder"&&(0,w.jsx)(tr,{resolver:b.getResolver(),projectId:b.creds.loadProfileConfig(_.profile,_.env)?.project_id??"",currentFolderId:null,env:_.env,onSelect:(p,v)=>{b.creds.saveProfileConfig(_.profile,_.env,{folder_id:p,folder_name:v}),L("ok","/config folder",v,`id: ${p}`),dt(_.profile,_.env),be(null),He("ready"),$(!0)},onCancel:async()=>{let p=b.creds.loadProfileConfig(_.profile,_.env);if(!p?.project_id)return;let v=await no(_.env,p.project_id);v&&(pt(b.creds,m,_.profile,_.env,{folderId:v.id,folderName:v.name}),L("ok","/config folder",v.name,`id: ${v.id}`),dt(_.profile,_.env),be(null),He("ready"),$(!0))}}),V&&Hr==="menu"&&!W&&(0,w.jsx)(S,{marginBottom:1,children:(0,w.jsxs)(S,{borderStyle:"round",borderColor:"#dc4e08",paddingX:2,children:[(0,w.jsx)(s,{color:"#ff9500",bold:!0,children:"KaneAI CLI"}),(0,w.jsx)(s,{color:c.dim,children:" \u2502 "}),(0,w.jsx)(s,{color:"#ff9500",children:I.model}),(0,w.jsx)(s,{color:c.dim,children:" \u2502 "}),(0,w.jsx)(s,{color:c.dim,children:Lu}),(0,w.jsx)(s,{color:c.dim,children:" \u2502 "}),(0,w.jsxs)(s,{color:c.dim,children:[Kt??"no profile","/",me]})]})}),V&&!W&&(0,w.jsxs)(S,{flexDirection:"column",flexGrow:1,children:[Hr==="menu"&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(ci,{items:Li,onRunSelected:()=>gu("chat"),onActiveViewChange:Ri,renderLoginWizard:p=>{let v=_?.phase??"wizard";if(v==="project")return(0,w.jsx)(er,{resolver:b.getResolver(),currentProjectId:null,env:_.env,onSelect:(f,g)=>{b.creds.saveProfileConfig(_.profile,_.env,{project_id:f,project_name:g}),L("ok","/config project",g,`id: ${f}`),be(T=>T?{...T,phase:"folder"}:null)},onCancel:async()=>{if(!_)return;let f=await ro(_.profile,_.env);f&&(pt(b.creds,m,_.profile,_.env,{projectId:f.id,projectName:f.name}),L("ok","/config project",f.name,`id: ${f.id}`),be(g=>g?{...g,phase:"folder"}:null))}});if(v==="folder"){let f=b.creds.loadProfileConfig(_.profile,_.env);return(0,w.jsx)(tr,{resolver:b.getResolver(),projectId:f?.project_id??"",currentFolderId:null,env:_.env,onSelect:(g,T)=>{b.creds.saveProfileConfig(_.profile,_.env,{folder_id:g,folder_name:T}),L("ok","/config folder",T,`id: ${g}`),dt(_.profile,_.env),be(null),p()},onCancel:async()=>{if(!_)return;let g=b.creds.loadProfileConfig(_.profile,_.env);if(!g?.project_id)return;let T=await no(_.env,g.project_id);T&&(pt(b.creds,m,_.profile,_.env,{folderId:T.id,folderName:T.name}),L("ok","/config folder",T.name,`id: ${T.id}`),dt(_.profile,_.env),be(null),p())}})}return(0,w.jsx)(an,{devMode:process.env.KANE_DEV_MODE==="1",profiles:b.creds.listProfiles(),onBasicLogin:async(f,g,T,j)=>{let{validateBasicAuth:U}=await import("./validate-basic-3W5ODPRI.js");await U(g,T,j),b.creds.saveBasicAuth(f,g,{username:T,access_key:j}),b.creds.setActiveProfile(f),b.creds.setDefaultEnv(g),at(b.creds,m,f,g),b.setTokenValid(!0),Qe()},onOAuthLogin:async(f,g)=>{b.creds.setDefaultEnv(g),await b.login(f),at(b.creds,m,f,g),Qe()},onComplete:(f,g)=>{vt(Jn(g),st).then(()=>{be({phase:"project",profile:f,env:g})}).catch(()=>{be({phase:"project",profile:f,env:g})})},onCancel:()=>{be(null),p()}})},renderProfilesView:p=>(0,w.jsx)(yo,{creds:b.creds,onSwitch:(v,f)=>{let g=b.creds.getActiveProfile()??"(none)";b.creds.setActiveProfile(v),b.creds.setDefaultEnv(f),at(b.creds,m,v,f),dt(v,f),Qe(),vt(wi(f),st).catch(()=>{}),L("ok","/profiles switch",`${g} \u2192 ${v} [${f}]`)},onCancel:p}),renderChromeProfilePicker:p=>(0,w.jsx)(Eo,{currentPath:I.chrome_profile_path,onSelect:v=>{m.set("chrome_profile_path",v),he(m.load()),L("ok","/config chrome-profile",v),p()},onCancel:p}),renderProjectPicker:p=>(0,w.jsx)(er,{resolver:b.getResolver(),currentProjectId:I.project_id,env:me,onSelect:(v,f)=>{pt(b.creds,m,b.creds.getActiveProfile()??"default",b.creds.getDefaultEnv(),{projectId:v,projectName:f}),L("ok","/config project",f,`id: ${v}`),he(m.load()),p()},onCancel:p}),renderFolderPicker:p=>(0,w.jsx)(tr,{resolver:b.getResolver(),projectId:I.project_id??"",currentFolderId:I.folder_id,env:me,onSelect:(v,f)=>{pt(b.creds,m,b.creds.getActiveProfile()??"default",b.creds.getDefaultEnv(),{folderId:v,folderName:f}),L("ok","/config folder",f,`id: ${v}`),he(m.load()),p()},onCancel:p}),renderWindowSizePicker:p=>(0,w.jsx)(mi,{currentWidth:I.window_size.width,currentHeight:I.window_size.height,onSelect:(v,f)=>{m.set("window_size",{width:v,height:f}),he(m.load()),L("ok","/config set-window",`${v} \xD7 ${f}`),p()},onCancel:p})}),Pe&&(0,w.jsx)(S,{paddingX:1,marginTop:1,children:(0,w.jsx)(s,{color:Pe.color,children:Pe.text})})]}),Hr==="chat"&&(0,w.jsxs)(w.Fragment,{children:[(()=>{let p=qi({isRunning:O.isRunning,bifurcationInfo:O.bifurcationInfo,steps:O.steps,cmInitCounts:O.cmInitCounts,replayInfo:O.replayInfo});return p?(0,w.jsx)(Fi,{label:p.label,hasBifurcation:p.hasBifurcation}):null})(),O.isRunning&&O.steps.length>0&&(0,w.jsx)(Vi,{steps:O.steps,bifurcated:!!O.bifurcationInfo&&!O.bifurcationInfo.isSingleFlow,flows:O.bifurcationInfo?.flows,cmInitCounts:O.cmInitCounts,onStepCommit:H},`run-${G.current}`),fe.runViewProps&&(0,w.jsx)(fs,{...fe.runViewProps,onCancel:()=>{fe.runViewProps?.onCancel?.(),fe.cancel()}}),Sr&&(0,w.jsx)(rl,{onClose:()=>Ti(!1),version:mt,environment:b.creds.getDefaultEnv(),sessionId:l.sessionId,runUrl:I.default_url??vo,mode:xe}),br&&(0,w.jsx)(il,{cwd:process.cwd(),currentOrgId:String(qe?.org_id??""),onClose:()=>Xr(!1),onRun:p=>{if(O.isRunning||ie.isStreaming||fe.running){setTimeout(()=>L("error","/testmd","Finish or cancel the current run first."),0);return}Xr(!1),!(xe==="generate"&&!ft.requestSwitch("run"))&&(xe==="generate"&&setTimeout(()=>L("ok","/testmd",`Switched to Run mode to run ${p.relPath}`,void 0,c.orange),0),fe.start(p.path).catch(v=>setTimeout(()=>L("error","/testmd",`Run failed: ${v.message}`),0)))},onExport:p=>{Xr(!1),Es(p.path,{language:I.code_export.language??"python",env:me}).then(v=>setTimeout(()=>L("ok","/testmd",`Exported code \u2192 ${v.codeDir}`),0)).catch(v=>setTimeout(()=>L("error","/testmd",`Export failed: ${v.message}`),0))}}),ht&&!O.isRunning&&(()=>{let p=Li.find(v=>v.id===ht);return p?.children?(0,w.jsx)(ci,{items:p.children,onRunSelected:()=>vr(null),onDismiss:()=>vr(null),onActiveViewChange:Ri,renderLoginWizard:v=>{let f=_?.phase??"wizard";if(f==="project")return(0,w.jsx)(er,{resolver:b.getResolver(),currentProjectId:null,env:_.env,onSelect:(g,T)=>{b.creds.saveProfileConfig(_.profile,_.env,{project_id:g,project_name:T}),L("ok","/config project",T,`id: ${g}`),be(j=>j?{...j,phase:"folder"}:null)},onCancel:async()=>{if(!_)return;let g=await ro(_.profile,_.env);g&&(pt(b.creds,m,_.profile,_.env,{projectId:g.id,projectName:g.name}),L("ok","/config project",g.name,`id: ${g.id}`),be(T=>T?{...T,phase:"folder"}:null))}});if(f==="folder"){let g=b.creds.loadProfileConfig(_.profile,_.env);return(0,w.jsx)(tr,{resolver:b.getResolver(),projectId:g?.project_id??"",currentFolderId:null,env:_.env,onSelect:(T,j)=>{b.creds.saveProfileConfig(_.profile,_.env,{folder_id:T,folder_name:j}),L("ok","/config folder",j,`id: ${T}`),dt(_.profile,_.env),be(null),v()},onCancel:async()=>{if(!_)return;let T=b.creds.loadProfileConfig(_.profile,_.env);if(!T?.project_id)return;let j=await no(_.env,T.project_id);j&&(pt(b.creds,m,_.profile,_.env,{folderId:j.id,folderName:j.name}),L("ok","/config folder",j.name,`id: ${j.id}`),dt(_.profile,_.env),be(null),v())}})}return(0,w.jsx)(an,{devMode:process.env.KANE_DEV_MODE==="1",profiles:b.creds.listProfiles(),onBasicLogin:async(g,T,j,U)=>{let{validateBasicAuth:X}=await import("./validate-basic-3W5ODPRI.js");await X(T,j,U),b.creds.saveBasicAuth(g,T,{username:j,access_key:U}),b.creds.setActiveProfile(g),b.creds.setDefaultEnv(T),at(b.creds,m,g,T),b.setTokenValid(!0),Qe()},onOAuthLogin:async(g,T)=>{b.creds.setDefaultEnv(T),await b.login(g),at(b.creds,m,g,T),Qe()},onComplete:(g,T)=>{vt(Jn(T),st).then(()=>{be({phase:"project",profile:g,env:T})}).catch(()=>{be({phase:"project",profile:g,env:T})})},onCancel:()=>{be(null),v()}})},renderProfilesView:v=>(0,w.jsx)(yo,{creds:b.creds,onSwitch:(f,g)=>{let T=b.creds.getActiveProfile()??"(none)";b.creds.setActiveProfile(f),b.creds.setDefaultEnv(g),at(b.creds,m,f,g),dt(f,g),Qe(),vt(wi(g),st).catch(()=>{}),L("ok","/profiles switch",`${T} \u2192 ${f} [${g}]`),v()},onCancel:v}),renderChromeProfilePicker:v=>(0,w.jsx)(Eo,{currentPath:I.chrome_profile_path,onSelect:f=>{m.save({chrome_profile_path:f}),he(m.load()),L("ok","/config chrome-profile",f),v()},onCancel:v}),renderProjectPicker:v=>(0,w.jsx)(er,{resolver:b.getResolver(),currentProjectId:I.project_id,env:me,onSelect:(f,g)=>{pt(b.creds,m,b.creds.getActiveProfile()??"default",b.creds.getDefaultEnv(),{projectId:f,projectName:g}),he(m.load()),L("ok","/config project",g,`id: ${f}`),v()},onCancel:v}),renderFolderPicker:v=>(0,w.jsx)(tr,{resolver:b.getResolver(),projectId:I.project_id??"",currentFolderId:I.folder_id,env:me,onSelect:(f,g)=>{pt(b.creds,m,b.creds.getActiveProfile()??"default",b.creds.getDefaultEnv(),{folderId:f,folderName:g}),he(m.load()),L("ok","/config folder",g,`id: ${f}`),v()},onCancel:v}),renderWindowSizePicker:v=>(0,w.jsx)(mi,{currentWidth:I.window_size.width,currentHeight:I.window_size.height,onSelect:(f,g)=>{m.set("window_size",{width:f,height:g}),he(m.load()),L("ok","/config set-window",`${f} \xD7 ${g}`),v()},onCancel:v})},ht):null})(),ht&&Pe&&(0,w.jsx)(S,{paddingX:1,marginTop:1,children:(0,w.jsx)(s,{color:Pe.color,children:Pe.text})}),xe==="run"&&!ht&&!Sr&&!br&&!Ft&&O.askingUser&&(0,w.jsxs)(S,{flexDirection:"column",marginLeft:2,paddingLeft:1,marginTop:1,children:[(0,w.jsx)(S,{marginLeft:1,children:(0,w.jsx)(s,{color:c.orange,bold:!0,children:"Agent Question"})}),(0,w.jsx)(S,{borderStyle:"round",borderColor:c.orange,flexDirection:"column",paddingX:2,paddingY:1,width:70,children:(0,w.jsxs)(S,{children:[(0,w.jsx)(S,{width:3,children:(0,w.jsx)(s,{color:c.orange,bold:!0,children:"?"})}),(0,w.jsx)(S,{flexShrink:1,children:(0,w.jsx)(s,{wrap:"wrap",children:O.askingUser})})]})})]}),Wr&&(()=>{let p=Wr,v=p.reason==="switch"?p.to==="run"?"Discard the current generation and switch to Run?":"Stop the current run / discard its results and switch to Generate?":"Switching profile will end this generation. Continue?",f=p.reason==="switch"?"Discard & switch":"Yes, end";return(0,w.jsx)(au,{message:v,confirmLabel:f,onConfirm:async()=>{if(p.reason==="switch"){let T=p.to;wr(null),ft.confirmSwitch(T);return}_t();let g=p.pendingArgs;if(wr(null),await ie.end(),ie.reset(),g.profile){let T=b.creds.getDefaultEnv(),j=b.creds.getActiveProfile()??"(none)";b.creds.setActiveProfile(g.profile),b.creds.setDefaultEnv(T),at(b.creds,m,g.profile,T),dt(g.profile,T),Qe(),vt({kind:"switch",env:T},st).catch(()=>{}),L("ok","/profiles switch",`${j} \u2192 ${g.profile} [${T}]`)}else ho("/profiles switch")},onCancel:()=>wr(null)})})(),xe==="run"&&!ht&&!Sr&&!br&&!Ft&&!Wr&&!fe.running&&(0,w.jsx)($t,{onSubmit:ho,onEscape:void 0,history:xu,commands:Jc,clearSeq:Eu,placeholder:O.askingUser?"Type your answer...":O.isRunning?"Run in progress... Ctrl+C to cancel":"Type an objective... (/ = commands)",footerBindings:[{keys:"\u2191\u2193",label:"history"},{keys:"\u21B5",label:"submit"},{keys:"tab",label:"complete"},{keys:"ctrl+r",label:"search"},{keys:"/generate",label:"test cases"}]}),xe==="generate"&&!ht&&!Sr&&!br&&!Ft&&!Wr&&(0,w.jsx)(iu,{tcg:ie,gm:ft,history:vu,tuiConfig:I,browse:Pt.isOpen?{target:Pt.target,onClose:Pt.close,excluded:Pt.excluded,onToggleCase:Pt.toggleCase,onToggleScenario:Pt.toggleScenario,getStatus:ft.bifurcation.getStatus,getResult:ft.bifurcation.getResult}:null})]})]}),V&&W&&tt&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(Io,{steps:mr,status:tt.status,testUrl:tt.testUrl,error:tt.error}),tt.status==="success"&&(0,w.jsx)(un,{recordedTestPath:qt?.recordedTestPath,outputDir:qt?.outputDir,shareableLink:tt.testUrl,testCaseLink:tt.testCaseLink,codeExportDir:tt.codeExportDir,autoExit:!1})]}),Ft&&(0,w.jsx)(qs,{defaultName:Ft,onSubmit:Pu}),gr&&(0,w.jsx)(Fs,{onSubmit:_u}),Wt&&tt&&(0,w.jsx)(Io,{steps:mr,status:tt.status,error:tt.error}),V&&!W&&(0,w.jsx)(Vc,{profile:Kt,environment:me,tokenValid:b.tokenValid,runCount:oe,sessionId:l.sessionId,viewMode:Hr,breadcrumb:Bu,chatMode:xe,footerHint:ku,tcgRequestId:ie.requestId,tcgStreamStatus:ie.isStreaming?"streaming":ie.isReconnecting?"reconnecting":ie.isTerminal&&ie.state.status.toLowerCase()==="completed"?"completed":ie.isTerminal&&ie.state.status.toLowerCase()==="failed"?"failed":null})]})}function Rg({profiles:e,onSelect:t,onCancel:r,validating:n}){let[o,i]=(0,E.useState)(0);return Ee((a,u)=>{if(!n){if(u.escape){r();return}if(u.upArrow&&o>0&&i(d=>d-1),u.downArrow&&o<e.length-1&&i(d=>d+1),u.return){let d=e[o];t(d.profile,d.env)}}}),(0,w.jsxs)(S,{flexDirection:"column",paddingX:1,children:[(0,w.jsx)(s,{color:"#ff9500",bold:!0,children:"Select a profile:"}),(0,w.jsx)(S,{marginTop:1,flexDirection:"column",children:e.map((a,u)=>(0,w.jsxs)(s,{children:[u===o?"\u276F ":" ",(0,w.jsx)(s,{color:u===o?"#ff9500":"white",bold:u===o,children:a.profile}),(0,w.jsxs)(s,{color:"gray",children:[" [",a.env,"]"]})]},`${a.profile}-${a.env}`))}),n&&(0,w.jsx)(S,{marginTop:1,children:(0,w.jsx)(s,{color:"yellow",children:"Validating credentials..."})}),!n&&(0,w.jsx)(S,{marginTop:1,children:(0,w.jsx)(s,{color:"gray",children:"Esc = new login"})})]})}export{Wc as a,mu as b,LR as c};
@@ -1,2 +0,0 @@
1
- import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{a}from"./chunk-264ZEJT7.js";import"./chunk-AR6VSIYN.js";import"./chunk-3TNWLCIU.js";import"./chunk-TQZPYXN7.js";import"./chunk-RZ4F3BHX.js";import"./chunk-J54IX7BP.js";import"./chunk-UR6MHSHU.js";export{a as LoginFlow};
@@ -1,2 +0,0 @@
1
- import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{c as a}from"./chunk-OUO4AO3Z.js";import"./chunk-7NELLGD4.js";import"./chunk-3MSXQU2C.js";import"./chunk-554BXLWE.js";import"./chunk-NURJMABT.js";import"./chunk-C5UNZ6ZY.js";import"./chunk-Y6MB5JP7.js";import"./chunk-6IE22TW6.js";import"./chunk-T7ECNTOU.js";import"./chunk-H7TODYZ2.js";import"./chunk-MDBXYXSC.js";import"./chunk-WXV73W6R.js";import"./chunk-S3DAAAE5.js";import"./chunk-PUU7A26K.js";import"./chunk-AH4AXJML.js";import"./chunk-WILJRFXU.js";import"./chunk-Q3RXDN74.js";import"./chunk-L5LI2JF4.js";import"./chunk-J7QJ5Q3J.js";import"./chunk-FPFOW6BS.js";import"./chunk-WAOCHXJ5.js";import"./chunk-BACEOONG.js";import"./chunk-BSTC6BLT.js";import"./chunk-BY7T5OJN.js";import"./chunk-KKXWOTVX.js";import"./chunk-AFUGVKF7.js";import"./chunk-LAPX4BA7.js";import"./chunk-TOR7WEDD.js";import"./chunk-YC7GOEEW.js";import"./chunk-YCCUBQY4.js";import"./chunk-33273OM4.js";import"./chunk-LOIRZFV3.js";import"./chunk-JTXYQ2KH.js";import"./chunk-LPUQ4HWQ.js";import"./chunk-NLCCBXXV.js";import"./chunk-VE3SUJMA.js";import"./chunk-7YZO2QQ6.js";import"./chunk-264ZEJT7.js";import"./chunk-AR6VSIYN.js";import"./chunk-3TNWLCIU.js";import"./chunk-TQZPYXN7.js";import"./chunk-RZ4F3BHX.js";import"./chunk-E47GFYXA.js";import"./chunk-LFQ2MZYC.js";import"./chunk-2TT2RIVP.js";import{a as o}from"./chunk-C6S4IEBC.js";import"./chunk-BFYV4TJW.js";import"./chunk-HHDG2TGX.js";import"./chunk-HWCBOJOP.js";import"./chunk-J54IX7BP.js";import{a as t}from"./chunk-HCBYKLMW.js";import{c as n}from"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import{e as r}from"./chunk-UR6MHSHU.js";var e=r(t(),1);async function p(i){let c=i.scenarioLimit!==void 0||i.perScenarioLimit!==void 0?{scenarioLimit:i.scenarioLimit,perScenarioLimit:i.perScenarioLimit}:void 0,{waitUntilExit:m}=n((0,e.jsx)(o,{children:(0,e.jsx)(a,{initialChatMode:"generate",initialObjective:i.objective,initialGenerateLimits:c})}),{exitOnCtrlC:!1});await m()}export{p as runGenerate};
@@ -1,2 +0,0 @@
1
- import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{c as a,d as b,e as c,f as d,g as e,h as f,i as g,j as h,k as i,l as j,m as k}from"./chunk-6IE22TW6.js";import"./chunk-T7ECNTOU.js";import"./chunk-H7TODYZ2.js";import"./chunk-MDBXYXSC.js";import"./chunk-AH4AXJML.js";import"./chunk-J7QJ5Q3J.js";import"./chunk-FPFOW6BS.js";import"./chunk-WAOCHXJ5.js";import"./chunk-33273OM4.js";import"./chunk-LOIRZFV3.js";import"./chunk-NLCCBXXV.js";import"./chunk-7YZO2QQ6.js";import"./chunk-AR6VSIYN.js";import"./chunk-3TNWLCIU.js";import"./chunk-TQZPYXN7.js";import"./chunk-RZ4F3BHX.js";import"./chunk-HWCBOJOP.js";import"./chunk-J54IX7BP.js";import"./chunk-HCBYKLMW.js";import"./chunk-C44QQJR4.js";import"./chunk-6YGTRKDT.js";import"./chunk-UR6MHSHU.js";export{i as ExportError,c as assertOrgMatchOrExit,j as exportTestmd,b as metaMatchesOrg,a as readMetaIfExists,d as resolveCurrentOrgId,h as runDeleteAction,k as runExportAction,e as runListAction,f as runListTui,g as runStatusAction};
@@ -1,2 +0,0 @@
1
- import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
- import{a}from"./chunk-7YZO2QQ6.js";import"./chunk-3TNWLCIU.js";import"./chunk-TQZPYXN7.js";import"./chunk-RZ4F3BHX.js";import"./chunk-J54IX7BP.js";import"./chunk-UR6MHSHU.js";export{a as refreshOAuthToken};