shiplightai 0.1.11 → 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agentHelpers-5J4TWLQS.js +3 -0
- package/dist/{chunk-JNVFLK5Q.js → chunk-6WY2ENBF.js} +4 -4
- package/dist/chunk-JQXTDNAE.js +18 -0
- package/dist/{chunk-OM5W5GBC.js → chunk-RP6LTE6E.js} +1 -1
- package/dist/chunk-SGXLY5OU.js +33 -0
- package/dist/chunk-T3YFBZB6.js +216 -0
- package/dist/{chunk-LZ2F7OA3.js → chunk-THBA6CDP.js} +4 -4
- package/dist/cjs/fixture.cjs +231 -256
- package/dist/cjs/index.cjs +221 -246
- package/dist/cli.js +980 -1644
- package/dist/dist-3WNQHYT3.js +3 -0
- package/dist/dist-4ZMHICD4.js +3 -0
- package/dist/dist-HN2P3FRX.js +14 -0
- package/dist/fixture.js +1 -1
- package/dist/{handler-YM2CNJMM.js → handler-2TZO7EYS.js} +1 -1
- package/dist/index.js +9 -9
- package/dist/{multipart-parser-IEIT2KXO.js → multipart-parser-KQFLHJKK.js} +1 -1
- package/dist/src-CXU6MEQY.js +5 -0
- package/dist/{task-SZERT63E.js → task-JTSSUUIG.js} +1 -1
- package/package.json +1 -1
- package/dist/agentHelpers-YAPGMNDU.js +0 -3
- package/dist/chunk-5OEE46TI.js +0 -230
- package/dist/chunk-A2VNNKWB.js +0 -18
- package/dist/chunk-IMX7PO3X.js +0 -18
- package/dist/chunk-STSHJEMG.js +0 -3
- package/dist/chunk-SWUSVR2K.js +0 -30
- package/dist/chunk-Y2QWBQXE.js +0 -8
- package/dist/dist-5LVWKFH4.js +0 -3
- package/dist/dist-DAIQ7AOS.js +0 -14
- package/dist/dist-IH5NPMQ7.js +0 -3
- package/dist/fileFromPath-ROF7A3FH.js +0 -3
- package/dist/src-2RQUBO3W.js +0 -5
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from "module";
|
|
2
|
+
const require = __createRequire(import.meta.url);
|
|
3
|
+
import{d as t,e as o,f as r,g as p,h as i}from"./chunk-T3YFBZB6.js";import"./chunk-RP6LTE6E.js";import"./chunk-CYBAFQLF.js";import"./chunk-BVOD5VWH.js";import"./chunk-FBJSHHRD.js";import"./chunk-YU3XZJIJ.js";import"./chunk-CSINHOOD.js";export{p as evaluateStatement,t as executeAction,r as executeStep,o as generateActionStep,i as runTask};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as __createRequire } from "module";
|
|
2
2
|
const require = __createRequire(import.meta.url);
|
|
3
|
-
import{a as Pe,c as Zu,d as Ir,e as Kt,f as Me,g as He,h as Ue}from"./chunk-5OEE46TI.js";import{A as Ar,B as Lr,a as er,b as tr,c as ur,d as rr,e as ir,f as ar,g as nr,h as sr,i as or,j as cr,k as lr,l as dr,m as fr,n as hr,o as pr,p as mr,q as gr,r as br,s as xr,t as wr,u as yr,v as vr,w as kr,x as Sr,y as Tr,z as Er}from"./chunk-LZ2F7OA3.js";import{a as Oe,b as P,c as jt,d as Vt,f as Qu,n as Re}from"./chunk-OM5W5GBC.js";import{a as o}from"./chunk-CYBAFQLF.js";import{a as Jt,b as Nr,c as pe,d as Dr,e as $r,f as Cr,g as Br,h as Pr,i as Or,l as Rr,o as Yt,r as qr}from"./chunk-HECRJRKW.js";import{a as Wt,b as _r,d as Gt,g as zt,h as qe}from"./chunk-FL4TL6US.js";import{a as k}from"./chunk-BVOD5VWH.js";import{c as Ft}from"./chunk-FBJSHHRD.js";import{a as nn,c as X,d as Xu}from"./chunk-CSINHOOD.js";var zi=X((xl,Gi)=>{"use strict";var Ws=function(t){return Gs(t)&&!zs(t)};function Gs(e){return!!e&&typeof e=="object"}function zs(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||Ys(e)}var Ks=typeof Symbol=="function"&&Symbol.for,Js=Ks?Symbol.for("react.element"):60103;function Ys(e){return e.$$typeof===Js}function Xs(e){return Array.isArray(e)?[]:{}}function De(e,t){return t.clone!==!1&&t.isMergeableObject(e)?fe(Xs(e),e,t):e}function Zs(e,t,u){return e.concat(t).map(function(r){return De(r,u)})}function Qs(e,t){if(!t.customMerge)return fe;var u=t.customMerge(e);return typeof u=="function"?u:fe}function eo(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function Vi(e){return Object.keys(e).concat(eo(e))}function Wi(e,t){try{return t in e}catch{return!1}}function to(e,t){return Wi(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function uo(e,t,u){var r={};return u.isMergeableObject(e)&&Vi(e).forEach(function(i){r[i]=De(e[i],u)}),Vi(t).forEach(function(i){to(e,i)||(Wi(e,i)&&u.isMergeableObject(t[i])?r[i]=Qs(i,u)(e[i],t[i],u):r[i]=De(t[i],u))}),r}function fe(e,t,u){u=u||{},u.arrayMerge=u.arrayMerge||Zs,u.isMergeableObject=u.isMergeableObject||Ws,u.cloneUnlessOtherwiseSpecified=De;var r=Array.isArray(t),i=Array.isArray(e),a=r===i;return a?r?u.arrayMerge(e,t,u):uo(e,t,u):De(t,u)}fe.all=function(t,u){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(r,i){return fe(r,i,u)},{})};var ro=fe;Gi.exports=ro});var ya=X(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});function m0(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var wa=m0(nn("crypto")),g0=(e,t,u)=>wa.createHmac(e,Buffer.from(t,"hex")).update(Buffer.from(u,"hex")).digest().toString("hex"),b0=(e,t)=>wa.randomBytes(e).toString(t);Tt.createDigest=g0;Tt.createRandomBytes=b0});var ka=X(Du=>{"use strict";var x0="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",va=[255,255,26,27,28,29,30,31,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255];function w0(e){var t=Math.floor(e.length/5);return e.length%5===0?t:t+1}Du.encode=function(e){Buffer.isBuffer(e)||(e=new Buffer(e));for(var t=0,u=0,r=0,i=0,a=new Buffer(w0(e)*8);t<e.length;){var n=e[t];r>3?(i=n&255>>r,r=(r+5)%8,i=i<<r|(t+1<e.length?e[t+1]:0)>>8-r,t++):(i=n>>8-(r+5)&31,r=(r+5)%8,r===0&&t++),a[u]=x0.charCodeAt(i),u++}for(t=u;t<a.length;t++)a[t]=61;return a};Du.decode=function(e){var t=0,u=0,r,i=0;Buffer.isBuffer(e)||(e=new Buffer(e));for(var a=new Buffer(Math.ceil(e.length*5/8)),n=0;n<e.length&&e[n]!==61;n++){var s=e[n]-48;if(s<va.length)u=va[s],t<=3?(t=(t+5)%8,t===0?(r|=u,a[i]=r,i++,r=0):r|=255&u<<8-t):(t=(t+5)%8,r|=255&u>>>t,a[i]=r,i++,r=255&u<<8-t);else throw new Error("Invalid input - it is not base32 encoded string")}return a.slice(0,i)}});var Ta=X($u=>{"use strict";var Sa=ka();$u.encode=Sa.encode;$u.decode=Sa.decode});var Aa=X(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});function y0(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var Ea=y0(Ta()),v0=(e,t)=>Ea.decode(e).toString(t),k0=(e,t)=>Ea.encode(Buffer.from(e,t).toString("ascii")).toString().replace(/=/g,"");Et.keyDecoder=v0;Et.keyEncoder=k0});var Ka=X(p=>{"use strict";Object.defineProperty(p,"__esModule",{value:!0});function Dt(e){return Object.keys(e).map(t=>e[t])}(function(e){e.SHA1="sha1",e.SHA256="sha256",e.SHA512="sha512"})(p.HashAlgorithms||(p.HashAlgorithms={}));var Lt=Dt(p.HashAlgorithms);(function(e){e.ASCII="ascii",e.BASE64="base64",e.HEX="hex",e.LATIN1="latin1",e.UTF8="utf8"})(p.KeyEncodings||(p.KeyEncodings={}));var Cu=Dt(p.KeyEncodings);(function(e){e.HOTP="hotp",e.TOTP="totp"})(p.Strategy||(p.Strategy={}));var Bu=Dt(p.Strategy),$t=()=>{throw new Error("Please provide an options.createDigest implementation.")};function Ru(e){return/^(\d+)$/.test(e)}function qu(e,t,u){return e.length>=t?e:`${Array(t+1).join(u)}${e}`.slice(-1*t)}function Mu(e){let t=`otpauth://${e.type}/{labelPrefix}:{accountName}?secret={secret}{query}`,u=[];if(Bu.indexOf(e.type)<0)throw new Error(`Expecting options.type to be one of ${Bu.join(", ")}. Received ${e.type}.`);if(e.type==="hotp"){if(e.counter==null||typeof e.counter!="number")throw new Error('Expecting options.counter to be a number when options.type is "hotp".');u.push(`&counter=${e.counter}`)}return e.type==="totp"&&e.step&&u.push(`&period=${e.step}`),e.digits&&u.push(`&digits=${e.digits}`),e.algorithm&&u.push(`&algorithm=${e.algorithm.toUpperCase()}`),e.issuer&&u.push(`&issuer=${encodeURIComponent(e.issuer)}`),t.replace("{labelPrefix}",encodeURIComponent(e.issuer||e.accountName)).replace("{accountName}",encodeURIComponent(e.accountName)).replace("{secret}",e.secret).replace("{query}",u.join(""))}var _t=class e{constructor(t={}){this._defaultOptions=Object.freeze({...t}),this._options=Object.freeze({})}create(t={}){return new e(t)}clone(t={}){let u=this.create({...this._defaultOptions,...t});return u.options=this._options,u}get options(){return Object.freeze({...this._defaultOptions,...this._options})}set options(t){this._options=Object.freeze({...this._options,...t})}allOptions(){return this.options}resetOptions(){this._options=Object.freeze({})}};function Hu(e){if(typeof e.createDigest!="function")throw new Error("Expecting options.createDigest to be a function.");if(typeof e.createHmacKey!="function")throw new Error("Expecting options.createHmacKey to be a function.");if(typeof e.digits!="number")throw new Error("Expecting options.digits to be a number.");if(!e.algorithm||Lt.indexOf(e.algorithm)<0)throw new Error(`Expecting options.algorithm to be one of ${Lt.join(", ")}. Received ${e.algorithm}.`);if(!e.encoding||Cu.indexOf(e.encoding)<0)throw new Error(`Expecting options.encoding to be one of ${Cu.join(", ")}. Received ${e.encoding}.`)}var _a=(e,t,u)=>Buffer.from(t,u).toString("hex");function Ia(){return{algorithm:p.HashAlgorithms.SHA1,createHmacKey:_a,createDigest:$t,digits:6,encoding:p.KeyEncodings.ASCII}}function Na(e){let t={...Ia(),...e};return Hu(t),Object.freeze(t)}function Da(e){let t=e.toString(16);return qu(t,16,"0")}function $a(e,t){let u=Buffer.from(e,"hex"),r=u[u.length-1]&15,a=((u[r]&127)<<24|(u[r+1]&255)<<16|(u[r+2]&255)<<8|u[r+3]&255)%Math.pow(10,t);return qu(String(a),t,"0")}function S0(e,t,u){let r=Da(t),i=u.createHmacKey(u.algorithm,e,u.encoding);return u.createDigest(u.algorithm,i,r)}function Ct(e,t,u){let r=u.digest||S0(e,t,u);return $a(r,u.digits)}function Ca(e,t,u,r){if(!Ru(e))return!1;let i=Ct(t,u,r);return e===i}function Ba(e,t,u,r,i){return Mu({algorithm:i.algorithm,digits:i.digits,type:p.Strategy.HOTP,accountName:e,counter:r,issuer:t,secret:u})}var It=class e extends _t{create(t={}){return new e(t)}allOptions(){return Na(this.options)}generate(t,u){return Ct(t,u,this.allOptions())}check(t,u,r){return Ca(t,u,r,this.allOptions())}verify(t){if(typeof t!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(t.token,t.secret,t.counter)}keyuri(t,u,r,i){return Ba(t,u,r,i,this.allOptions())}};function Pa(e){if(typeof e=="number")return[Math.abs(e),Math.abs(e)];if(Array.isArray(e)){let[t,u]=e;if(typeof t=="number"&&typeof u=="number")return[Math.abs(t),Math.abs(u)]}throw new Error("Expecting options.window to be an number or [number, number].")}function Uu(e){if(Hu(e),Pa(e.window),typeof e.epoch!="number")throw new Error("Expecting options.epoch to be a number.");if(typeof e.step!="number")throw new Error("Expecting options.step to be a number.")}var At=(e,t,u)=>{let r=e.length,i=Buffer.from(e,t).toString("hex");if(r<u){let a=new Array(u-r+1).join(i);return Buffer.from(a,"hex").slice(0,u).toString("hex")}return i},Fu=(e,t,u)=>{switch(e){case p.HashAlgorithms.SHA1:return At(t,u,20);case p.HashAlgorithms.SHA256:return At(t,u,32);case p.HashAlgorithms.SHA512:return At(t,u,64);default:throw new Error(`Expecting algorithm to be one of ${Lt.join(", ")}. Received ${e}.`)}};function Oa(){return{algorithm:p.HashAlgorithms.SHA1,createDigest:$t,createHmacKey:Fu,digits:6,encoding:p.KeyEncodings.ASCII,epoch:Date.now(),step:30,window:0}}function Ra(e){let t={...Oa(),...e};return Uu(t),Object.freeze(t)}function qa(e,t){return Math.floor(e/t/1e3)}function Bt(e,t){let u=qa(t.epoch,t.step);return Ct(e,u,t)}function La(e,t,u,r){let i=[];if(r===0)return i;for(let a=1;a<=r;a++){let n=t*a*u;i.push(e+n)}return i}function Ma(e,t,u){let r=Pa(u),i=t*1e3;return{current:e,past:La(e,-1,i,r[0]),future:La(e,1,i,r[1])}}function ju(e,t,u){if(!Ru(e))return!1;let r=Bt(t,u);return e===r}function Pu(e,t,u,r){let i=null;return e.some((a,n)=>ju(t,u,{...r,epoch:a})?(i=n+1,!0):!1),i}function Vu(e,t,u){if(ju(e,t,u))return 0;let r=Ma(u.epoch,u.step,u.window),i=Pu(r.past,e,t,u);return i!==null?i*-1:Pu(r.future,e,t,u)}function Wu(e,t){return Math.floor(e/1e3)%t}function Ha(e,t){return t-Wu(e,t)}function Ua(e,t,u,r){return Mu({algorithm:r.algorithm,digits:r.digits,step:r.step,type:p.Strategy.TOTP,accountName:e,issuer:t,secret:u})}var Nt=class e extends It{create(t={}){return new e(t)}allOptions(){return Ra(this.options)}generate(t){return Bt(t,this.allOptions())}checkDelta(t,u){return Vu(t,u,this.allOptions())}check(t,u){return typeof this.checkDelta(t,u)=="number"}verify(t){if(typeof t!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(t.token,t.secret)}timeRemaining(){let t=this.allOptions();return Ha(t.epoch,t.step)}timeUsed(){let t=this.allOptions();return Wu(t.epoch,t.step)}keyuri(t,u,r){return Ua(t,u,r,this.allOptions())}};function Fa(e){if(Uu(e),typeof e.keyDecoder!="function")throw new Error("Expecting options.keyDecoder to be a function.");if(e.keyEncoder&&typeof e.keyEncoder!="function")throw new Error("Expecting options.keyEncoder to be a function.")}function ja(){return{algorithm:p.HashAlgorithms.SHA1,createDigest:$t,createHmacKey:Fu,digits:6,encoding:p.KeyEncodings.HEX,epoch:Date.now(),step:30,window:0}}function Va(e){let t={...ja(),...e};return Fa(t),Object.freeze(t)}function Gu(e,t){return t.keyEncoder(e,t.encoding)}function Pt(e,t){return t.keyDecoder(e,t.encoding)}function Wa(e,t){let u=t.createRandomBytes(e,t.encoding);return Gu(u,t)}function Ga(e,t){return Bt(Pt(e,t),t)}function za(e,t,u){return Vu(e,Pt(t,u),u)}var Ou=class e extends Nt{create(t={}){return new e(t)}allOptions(){return Va(this.options)}generate(t){return Ga(t,this.allOptions())}checkDelta(t,u){return za(t,u,this.allOptions())}encode(t){return Gu(t,this.allOptions())}decode(t){return Pt(t,this.allOptions())}generateSecret(t=10){return Wa(t,this.allOptions())}};p.Authenticator=Ou;p.HASH_ALGORITHMS=Lt;p.HOTP=It;p.KEY_ENCODINGS=Cu;p.OTP=_t;p.STRATEGY=Bu;p.TOTP=Nt;p.authenticatorCheckWithWindow=za;p.authenticatorDecoder=Pt;p.authenticatorDefaultOptions=ja;p.authenticatorEncoder=Gu;p.authenticatorGenerateSecret=Wa;p.authenticatorOptionValidator=Fa;p.authenticatorOptions=Va;p.authenticatorToken=Ga;p.createDigestPlaceholder=$t;p.hotpCheck=Ca;p.hotpCounter=Da;p.hotpCreateHmacKey=_a;p.hotpDefaultOptions=Ia;p.hotpDigestToToken=$a;p.hotpKeyuri=Ba;p.hotpOptions=Na;p.hotpOptionsValidator=Hu;p.hotpToken=Ct;p.isTokenValid=Ru;p.keyuri=Mu;p.objectValues=Dt;p.padStart=qu;p.totpCheck=ju;p.totpCheckByEpoch=Pu;p.totpCheckWithWindow=Vu;p.totpCounter=qa;p.totpCreateHmacKey=Fu;p.totpDefaultOptions=Oa;p.totpEpochAvailable=Ma;p.totpKeyuri=Ua;p.totpOptions=Ra;p.totpOptionsValidator=Uu;p.totpPadSecret=At;p.totpTimeRemaining=Ha;p.totpTimeUsed=Wu;p.totpToken=Bt});var Ya=X($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});var Ot=ya(),Ja=Aa(),zu=Ka(),T0=new zu.HOTP({createDigest:Ot.createDigest}),E0=new zu.TOTP({createDigest:Ot.createDigest}),A0=new zu.Authenticator({createDigest:Ot.createDigest,createRandomBytes:Ot.createRandomBytes,keyDecoder:Ja.keyDecoder,keyEncoder:Ja.keyEncoder});$e.authenticator=A0;$e.hotp=T0;$e.totp=E0});var Za=X(Ku=>{"use strict";Object.defineProperty(Ku,"__esModule",{value:!0});var Xa=Ya();Object.keys(Xa).forEach(function(e){e!=="default"&&Object.defineProperty(Ku,e,{enumerable:!0,get:function(){return Xa[e]}})})});import*as Mr from"fs/promises";import*as Fe from"vm";function Hr(e,t,u,r=!1){if(e[t])if(r)o.info(`Overriding existing function: ${t}`),delete e[t];else{o.error(`The name ${t} is already defined in the global scope`);return}try{let i;if(Fe.isContext(e)?i=new Fe.Script(u,{importModuleDynamically:async a=>await import(a)}).runInContext(e):i=(0,eval)(u),typeof i!="function")throw new Error("The injected code must be a function");e[t]=i}catch(i){o.error(`Error injecting user function ${t}: ${i.message}`)}}async function sn(e,t,u=!1){try{let r=await Mr.readFile(t,"utf8"),i=JSON.parse(r);o.info(`Loading ${Object.keys(i).length} user functions...`);for(let[a,n]of Object.entries(i))Hr(e,a,n,u)}catch(r){throw o.error("Failed to load user functions:",r),r}}import*as Xt from"fs/promises";async function on(e){try{let t=await Xt.readFile(e,"utf8"),u=JSON.parse(t);return o.info(`Loaded ${u.length} knowledges from file`),u}catch(t){if(t.code==="ENOENT")return o.debug("No knowledges file found"),[];throw o.error("Failed to load knowledges:",t),t}}async function cn(e){try{let t=await Xt.readFile(e,"utf8"),u=JSON.parse(t);return o.info(`Loaded ${u.length} knowledge mappings from file`),u}catch(t){if(t.code==="ENOENT")return o.debug("No knowledge mappings file found"),[];throw o.error("Failed to load knowledge mappings:",t),t}}async function ln(e,t){if(!e.body)throw new Error("Response body is null");let u=e.body.getReader(),r=new TextDecoder,i="";try{for(;;){let{done:a,value:n}=await u.read();if(a)break;i+=r.decode(n,{stream:!0});let s=i.split(`
|
|
3
|
+
import{A as Ar,B as Lr,a as er,b as tr,c as ur,d as rr,e as ir,f as ar,g as nr,h as sr,i as or,j as cr,k as lr,l as dr,m as fr,n as hr,o as pr,p as mr,q as gr,r as br,s as xr,t as wr,u as yr,v as vr,w as kr,x as Sr,y as Tr,z as Er}from"./chunk-THBA6CDP.js";import{a as Jt,b as Nr,c as pe,d as Dr,e as $r,f as Cr,g as Br,h as Pr,i as Or,l as Rr,o as Yt,r as qr}from"./chunk-HECRJRKW.js";import{a as Wt,b as _r,d as Gt,g as zt,h as qe}from"./chunk-FL4TL6US.js";import{a as Pe,c as Zu,d as Ir,e as Kt,f as Me,g as He,h as Ue}from"./chunk-T3YFBZB6.js";import{a as Oe,b as P,c as jt,d as Vt,f as Qu,n as Re}from"./chunk-RP6LTE6E.js";import{a as o}from"./chunk-CYBAFQLF.js";import{a as k}from"./chunk-BVOD5VWH.js";import{c as Ft}from"./chunk-FBJSHHRD.js";import{a as nn,c as X,d as Xu}from"./chunk-CSINHOOD.js";var zi=X((xl,Gi)=>{"use strict";var Ws=function(t){return Gs(t)&&!zs(t)};function Gs(e){return!!e&&typeof e=="object"}function zs(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||Ys(e)}var Ks=typeof Symbol=="function"&&Symbol.for,Js=Ks?Symbol.for("react.element"):60103;function Ys(e){return e.$$typeof===Js}function Xs(e){return Array.isArray(e)?[]:{}}function De(e,t){return t.clone!==!1&&t.isMergeableObject(e)?fe(Xs(e),e,t):e}function Zs(e,t,u){return e.concat(t).map(function(r){return De(r,u)})}function Qs(e,t){if(!t.customMerge)return fe;var u=t.customMerge(e);return typeof u=="function"?u:fe}function eo(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function Vi(e){return Object.keys(e).concat(eo(e))}function Wi(e,t){try{return t in e}catch{return!1}}function to(e,t){return Wi(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function uo(e,t,u){var r={};return u.isMergeableObject(e)&&Vi(e).forEach(function(i){r[i]=De(e[i],u)}),Vi(t).forEach(function(i){to(e,i)||(Wi(e,i)&&u.isMergeableObject(t[i])?r[i]=Qs(i,u)(e[i],t[i],u):r[i]=De(t[i],u))}),r}function fe(e,t,u){u=u||{},u.arrayMerge=u.arrayMerge||Zs,u.isMergeableObject=u.isMergeableObject||Ws,u.cloneUnlessOtherwiseSpecified=De;var r=Array.isArray(t),i=Array.isArray(e),a=r===i;return a?r?u.arrayMerge(e,t,u):uo(e,t,u):De(t,u)}fe.all=function(t,u){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(r,i){return fe(r,i,u)},{})};var ro=fe;Gi.exports=ro});var ya=X(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});function m0(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var wa=m0(nn("crypto")),g0=(e,t,u)=>wa.createHmac(e,Buffer.from(t,"hex")).update(Buffer.from(u,"hex")).digest().toString("hex"),b0=(e,t)=>wa.randomBytes(e).toString(t);Tt.createDigest=g0;Tt.createRandomBytes=b0});var ka=X(Du=>{"use strict";var x0="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",va=[255,255,26,27,28,29,30,31,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255];function w0(e){var t=Math.floor(e.length/5);return e.length%5===0?t:t+1}Du.encode=function(e){Buffer.isBuffer(e)||(e=new Buffer(e));for(var t=0,u=0,r=0,i=0,a=new Buffer(w0(e)*8);t<e.length;){var n=e[t];r>3?(i=n&255>>r,r=(r+5)%8,i=i<<r|(t+1<e.length?e[t+1]:0)>>8-r,t++):(i=n>>8-(r+5)&31,r=(r+5)%8,r===0&&t++),a[u]=x0.charCodeAt(i),u++}for(t=u;t<a.length;t++)a[t]=61;return a};Du.decode=function(e){var t=0,u=0,r,i=0;Buffer.isBuffer(e)||(e=new Buffer(e));for(var a=new Buffer(Math.ceil(e.length*5/8)),n=0;n<e.length&&e[n]!==61;n++){var s=e[n]-48;if(s<va.length)u=va[s],t<=3?(t=(t+5)%8,t===0?(r|=u,a[i]=r,i++,r=0):r|=255&u<<8-t):(t=(t+5)%8,r|=255&u>>>t,a[i]=r,i++,r=255&u<<8-t);else throw new Error("Invalid input - it is not base32 encoded string")}return a.slice(0,i)}});var Ta=X($u=>{"use strict";var Sa=ka();$u.encode=Sa.encode;$u.decode=Sa.decode});var Aa=X(Et=>{"use strict";Object.defineProperty(Et,"__esModule",{value:!0});function y0(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var Ea=y0(Ta()),v0=(e,t)=>Ea.decode(e).toString(t),k0=(e,t)=>Ea.encode(Buffer.from(e,t).toString("ascii")).toString().replace(/=/g,"");Et.keyDecoder=v0;Et.keyEncoder=k0});var Ka=X(p=>{"use strict";Object.defineProperty(p,"__esModule",{value:!0});function Dt(e){return Object.keys(e).map(t=>e[t])}(function(e){e.SHA1="sha1",e.SHA256="sha256",e.SHA512="sha512"})(p.HashAlgorithms||(p.HashAlgorithms={}));var Lt=Dt(p.HashAlgorithms);(function(e){e.ASCII="ascii",e.BASE64="base64",e.HEX="hex",e.LATIN1="latin1",e.UTF8="utf8"})(p.KeyEncodings||(p.KeyEncodings={}));var Cu=Dt(p.KeyEncodings);(function(e){e.HOTP="hotp",e.TOTP="totp"})(p.Strategy||(p.Strategy={}));var Bu=Dt(p.Strategy),$t=()=>{throw new Error("Please provide an options.createDigest implementation.")};function Ru(e){return/^(\d+)$/.test(e)}function qu(e,t,u){return e.length>=t?e:`${Array(t+1).join(u)}${e}`.slice(-1*t)}function Mu(e){let t=`otpauth://${e.type}/{labelPrefix}:{accountName}?secret={secret}{query}`,u=[];if(Bu.indexOf(e.type)<0)throw new Error(`Expecting options.type to be one of ${Bu.join(", ")}. Received ${e.type}.`);if(e.type==="hotp"){if(e.counter==null||typeof e.counter!="number")throw new Error('Expecting options.counter to be a number when options.type is "hotp".');u.push(`&counter=${e.counter}`)}return e.type==="totp"&&e.step&&u.push(`&period=${e.step}`),e.digits&&u.push(`&digits=${e.digits}`),e.algorithm&&u.push(`&algorithm=${e.algorithm.toUpperCase()}`),e.issuer&&u.push(`&issuer=${encodeURIComponent(e.issuer)}`),t.replace("{labelPrefix}",encodeURIComponent(e.issuer||e.accountName)).replace("{accountName}",encodeURIComponent(e.accountName)).replace("{secret}",e.secret).replace("{query}",u.join(""))}var _t=class e{constructor(t={}){this._defaultOptions=Object.freeze({...t}),this._options=Object.freeze({})}create(t={}){return new e(t)}clone(t={}){let u=this.create({...this._defaultOptions,...t});return u.options=this._options,u}get options(){return Object.freeze({...this._defaultOptions,...this._options})}set options(t){this._options=Object.freeze({...this._options,...t})}allOptions(){return this.options}resetOptions(){this._options=Object.freeze({})}};function Hu(e){if(typeof e.createDigest!="function")throw new Error("Expecting options.createDigest to be a function.");if(typeof e.createHmacKey!="function")throw new Error("Expecting options.createHmacKey to be a function.");if(typeof e.digits!="number")throw new Error("Expecting options.digits to be a number.");if(!e.algorithm||Lt.indexOf(e.algorithm)<0)throw new Error(`Expecting options.algorithm to be one of ${Lt.join(", ")}. Received ${e.algorithm}.`);if(!e.encoding||Cu.indexOf(e.encoding)<0)throw new Error(`Expecting options.encoding to be one of ${Cu.join(", ")}. Received ${e.encoding}.`)}var _a=(e,t,u)=>Buffer.from(t,u).toString("hex");function Ia(){return{algorithm:p.HashAlgorithms.SHA1,createHmacKey:_a,createDigest:$t,digits:6,encoding:p.KeyEncodings.ASCII}}function Na(e){let t={...Ia(),...e};return Hu(t),Object.freeze(t)}function Da(e){let t=e.toString(16);return qu(t,16,"0")}function $a(e,t){let u=Buffer.from(e,"hex"),r=u[u.length-1]&15,a=((u[r]&127)<<24|(u[r+1]&255)<<16|(u[r+2]&255)<<8|u[r+3]&255)%Math.pow(10,t);return qu(String(a),t,"0")}function S0(e,t,u){let r=Da(t),i=u.createHmacKey(u.algorithm,e,u.encoding);return u.createDigest(u.algorithm,i,r)}function Ct(e,t,u){let r=u.digest||S0(e,t,u);return $a(r,u.digits)}function Ca(e,t,u,r){if(!Ru(e))return!1;let i=Ct(t,u,r);return e===i}function Ba(e,t,u,r,i){return Mu({algorithm:i.algorithm,digits:i.digits,type:p.Strategy.HOTP,accountName:e,counter:r,issuer:t,secret:u})}var It=class e extends _t{create(t={}){return new e(t)}allOptions(){return Na(this.options)}generate(t,u){return Ct(t,u,this.allOptions())}check(t,u,r){return Ca(t,u,r,this.allOptions())}verify(t){if(typeof t!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(t.token,t.secret,t.counter)}keyuri(t,u,r,i){return Ba(t,u,r,i,this.allOptions())}};function Pa(e){if(typeof e=="number")return[Math.abs(e),Math.abs(e)];if(Array.isArray(e)){let[t,u]=e;if(typeof t=="number"&&typeof u=="number")return[Math.abs(t),Math.abs(u)]}throw new Error("Expecting options.window to be an number or [number, number].")}function Uu(e){if(Hu(e),Pa(e.window),typeof e.epoch!="number")throw new Error("Expecting options.epoch to be a number.");if(typeof e.step!="number")throw new Error("Expecting options.step to be a number.")}var At=(e,t,u)=>{let r=e.length,i=Buffer.from(e,t).toString("hex");if(r<u){let a=new Array(u-r+1).join(i);return Buffer.from(a,"hex").slice(0,u).toString("hex")}return i},Fu=(e,t,u)=>{switch(e){case p.HashAlgorithms.SHA1:return At(t,u,20);case p.HashAlgorithms.SHA256:return At(t,u,32);case p.HashAlgorithms.SHA512:return At(t,u,64);default:throw new Error(`Expecting algorithm to be one of ${Lt.join(", ")}. Received ${e}.`)}};function Oa(){return{algorithm:p.HashAlgorithms.SHA1,createDigest:$t,createHmacKey:Fu,digits:6,encoding:p.KeyEncodings.ASCII,epoch:Date.now(),step:30,window:0}}function Ra(e){let t={...Oa(),...e};return Uu(t),Object.freeze(t)}function qa(e,t){return Math.floor(e/t/1e3)}function Bt(e,t){let u=qa(t.epoch,t.step);return Ct(e,u,t)}function La(e,t,u,r){let i=[];if(r===0)return i;for(let a=1;a<=r;a++){let n=t*a*u;i.push(e+n)}return i}function Ma(e,t,u){let r=Pa(u),i=t*1e3;return{current:e,past:La(e,-1,i,r[0]),future:La(e,1,i,r[1])}}function ju(e,t,u){if(!Ru(e))return!1;let r=Bt(t,u);return e===r}function Pu(e,t,u,r){let i=null;return e.some((a,n)=>ju(t,u,{...r,epoch:a})?(i=n+1,!0):!1),i}function Vu(e,t,u){if(ju(e,t,u))return 0;let r=Ma(u.epoch,u.step,u.window),i=Pu(r.past,e,t,u);return i!==null?i*-1:Pu(r.future,e,t,u)}function Wu(e,t){return Math.floor(e/1e3)%t}function Ha(e,t){return t-Wu(e,t)}function Ua(e,t,u,r){return Mu({algorithm:r.algorithm,digits:r.digits,step:r.step,type:p.Strategy.TOTP,accountName:e,issuer:t,secret:u})}var Nt=class e extends It{create(t={}){return new e(t)}allOptions(){return Ra(this.options)}generate(t){return Bt(t,this.allOptions())}checkDelta(t,u){return Vu(t,u,this.allOptions())}check(t,u){return typeof this.checkDelta(t,u)=="number"}verify(t){if(typeof t!="object")throw new Error("Expecting argument 0 of verify to be an object");return this.check(t.token,t.secret)}timeRemaining(){let t=this.allOptions();return Ha(t.epoch,t.step)}timeUsed(){let t=this.allOptions();return Wu(t.epoch,t.step)}keyuri(t,u,r){return Ua(t,u,r,this.allOptions())}};function Fa(e){if(Uu(e),typeof e.keyDecoder!="function")throw new Error("Expecting options.keyDecoder to be a function.");if(e.keyEncoder&&typeof e.keyEncoder!="function")throw new Error("Expecting options.keyEncoder to be a function.")}function ja(){return{algorithm:p.HashAlgorithms.SHA1,createDigest:$t,createHmacKey:Fu,digits:6,encoding:p.KeyEncodings.HEX,epoch:Date.now(),step:30,window:0}}function Va(e){let t={...ja(),...e};return Fa(t),Object.freeze(t)}function Gu(e,t){return t.keyEncoder(e,t.encoding)}function Pt(e,t){return t.keyDecoder(e,t.encoding)}function Wa(e,t){let u=t.createRandomBytes(e,t.encoding);return Gu(u,t)}function Ga(e,t){return Bt(Pt(e,t),t)}function za(e,t,u){return Vu(e,Pt(t,u),u)}var Ou=class e extends Nt{create(t={}){return new e(t)}allOptions(){return Va(this.options)}generate(t){return Ga(t,this.allOptions())}checkDelta(t,u){return za(t,u,this.allOptions())}encode(t){return Gu(t,this.allOptions())}decode(t){return Pt(t,this.allOptions())}generateSecret(t=10){return Wa(t,this.allOptions())}};p.Authenticator=Ou;p.HASH_ALGORITHMS=Lt;p.HOTP=It;p.KEY_ENCODINGS=Cu;p.OTP=_t;p.STRATEGY=Bu;p.TOTP=Nt;p.authenticatorCheckWithWindow=za;p.authenticatorDecoder=Pt;p.authenticatorDefaultOptions=ja;p.authenticatorEncoder=Gu;p.authenticatorGenerateSecret=Wa;p.authenticatorOptionValidator=Fa;p.authenticatorOptions=Va;p.authenticatorToken=Ga;p.createDigestPlaceholder=$t;p.hotpCheck=Ca;p.hotpCounter=Da;p.hotpCreateHmacKey=_a;p.hotpDefaultOptions=Ia;p.hotpDigestToToken=$a;p.hotpKeyuri=Ba;p.hotpOptions=Na;p.hotpOptionsValidator=Hu;p.hotpToken=Ct;p.isTokenValid=Ru;p.keyuri=Mu;p.objectValues=Dt;p.padStart=qu;p.totpCheck=ju;p.totpCheckByEpoch=Pu;p.totpCheckWithWindow=Vu;p.totpCounter=qa;p.totpCreateHmacKey=Fu;p.totpDefaultOptions=Oa;p.totpEpochAvailable=Ma;p.totpKeyuri=Ua;p.totpOptions=Ra;p.totpOptionsValidator=Uu;p.totpPadSecret=At;p.totpTimeRemaining=Ha;p.totpTimeUsed=Wu;p.totpToken=Bt});var Ya=X($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});var Ot=ya(),Ja=Aa(),zu=Ka(),T0=new zu.HOTP({createDigest:Ot.createDigest}),E0=new zu.TOTP({createDigest:Ot.createDigest}),A0=new zu.Authenticator({createDigest:Ot.createDigest,createRandomBytes:Ot.createRandomBytes,keyDecoder:Ja.keyDecoder,keyEncoder:Ja.keyEncoder});$e.authenticator=A0;$e.hotp=T0;$e.totp=E0});var Za=X(Ku=>{"use strict";Object.defineProperty(Ku,"__esModule",{value:!0});var Xa=Ya();Object.keys(Xa).forEach(function(e){e!=="default"&&Object.defineProperty(Ku,e,{enumerable:!0,get:function(){return Xa[e]}})})});import*as Mr from"fs/promises";import*as Fe from"vm";function Hr(e,t,u,r=!1){if(e[t])if(r)o.info(`Overriding existing function: ${t}`),delete e[t];else{o.error(`The name ${t} is already defined in the global scope`);return}try{let i;if(Fe.isContext(e)?i=new Fe.Script(u,{importModuleDynamically:async a=>await import(a)}).runInContext(e):i=(0,eval)(u),typeof i!="function")throw new Error("The injected code must be a function");e[t]=i}catch(i){o.error(`Error injecting user function ${t}: ${i.message}`)}}async function sn(e,t,u=!1){try{let r=await Mr.readFile(t,"utf8"),i=JSON.parse(r);o.info(`Loading ${Object.keys(i).length} user functions...`);for(let[a,n]of Object.entries(i))Hr(e,a,n,u)}catch(r){throw o.error("Failed to load user functions:",r),r}}import*as Xt from"fs/promises";async function on(e){try{let t=await Xt.readFile(e,"utf8"),u=JSON.parse(t);return o.info(`Loaded ${u.length} knowledges from file`),u}catch(t){if(t.code==="ENOENT")return o.debug("No knowledges file found"),[];throw o.error("Failed to load knowledges:",t),t}}async function cn(e){try{let t=await Xt.readFile(e,"utf8"),u=JSON.parse(t);return o.info(`Loaded ${u.length} knowledge mappings from file`),u}catch(t){if(t.code==="ENOENT")return o.debug("No knowledge mappings file found"),[];throw o.error("Failed to load knowledge mappings:",t),t}}async function ln(e,t){if(!e.body)throw new Error("Response body is null");let u=e.body.getReader(),r=new TextDecoder,i="";try{for(;;){let{done:a,value:n}=await u.read();if(a)break;i+=r.decode(n,{stream:!0});let s=i.split(`
|
|
4
4
|
`);i=s.pop()||"";for(let c of s){let l=null;if(c.startsWith("data: "))try{let f=c.slice(6);f.trim()&&(l=JSON.parse(f))}catch(f){console.error(`Failed to parse SSE event: ${c}`,f);continue}l&&t(l)}}}finally{u.releaseLock()}}import{z as Ur}from"zod";var dn=Ur.object({instruction:Ur.string().describe('The instruction of the operation to perform. Can only include one operation. Do not inlcude element indexes just describe the element, e.g. "select the text "Hello, world!" in "Hello, world!""')});function Fr(e){e.register({name:"perform_accurate_operation",description:"Perform an operation that requires accurate interaction like dragging or interacting with a specific area of an element. Only use this action when neccecary.",schema:dn,usesElementIndex:!1,async execute(t,u){let{instruction:r}=t,i={page:u.page,agentServices:u.agentServices,domService:u.domService},a=await Zu(r,i,{});if(a.status==="error"||!a.actionEntity)return{success:!1,actionEntity:{action_description:r,action_data:{action_name:"perform_accurate_operation",kwargs:{instruction:r}}},error:a.error||"Failed to generate action"};let{actionEntity:n}=a,s=await Ir(n,i);return{success:s.success,actionEntity:n,message:s.success?`Successfully executed action: ${n.action_data?.action_name}`:void 0,error:s.error}}})}var S;(function(e){e.Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"})(S||(S={}));function jr(e){return e.type===S.Tag||e.type===S.Script||e.type===S.Style}var Vr=S.Root,Wr=S.Text,Gr=S.Directive,zr=S.Comment,Kr=S.Script,Jr=S.Style,Yr=S.Tag,Xr=S.CDATA,Zr=S.Doctype;var je=class{constructor(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}get parentNode(){return this.parent}set parentNode(t){this.parent=t}get previousSibling(){return this.prev}set previousSibling(t){this.prev=t}get nextSibling(){return this.next}set nextSibling(t){this.next=t}cloneNode(t=!1){return ti(this,t)}},me=class extends je{constructor(t){super(),this.data=t}get nodeValue(){return this.data}set nodeValue(t){this.data=t}},te=class extends me{constructor(){super(...arguments),this.type=S.Text}get nodeType(){return 3}},ge=class extends me{constructor(){super(...arguments),this.type=S.Comment}get nodeType(){return 8}},be=class extends me{constructor(t,u){super(u),this.name=t,this.type=S.Directive}get nodeType(){return 1}},xe=class extends je{constructor(t){super(),this.children=t}get firstChild(){var t;return(t=this.children[0])!==null&&t!==void 0?t:null}get lastChild(){return this.children.length>0?this.children[this.children.length-1]:null}get childNodes(){return this.children}set childNodes(t){this.children=t}},we=class extends xe{constructor(){super(...arguments),this.type=S.CDATA}get nodeType(){return 4}},ue=class extends xe{constructor(){super(...arguments),this.type=S.Root}get nodeType(){return 9}},ye=class extends xe{constructor(t,u,r=[],i=t==="script"?S.Script:t==="style"?S.Style:S.Tag){super(r),this.name=t,this.attribs=u,this.type=i}get nodeType(){return 1}get tagName(){return this.name}set tagName(t){this.name=t}get attributes(){return Object.keys(this.attribs).map(t=>{var u,r;return{name:t,value:this.attribs[t],namespace:(u=this["x-attribsNamespace"])===null||u===void 0?void 0:u[t],prefix:(r=this["x-attribsPrefix"])===null||r===void 0?void 0:r[t]}})}};function W(e){return jr(e)}function Qt(e){return e.type===S.CDATA}function Ve(e){return e.type===S.Text}function eu(e){return e.type===S.Comment}function fn(e){return e.type===S.Directive}function ei(e){return e.type===S.Root}function ti(e,t=!1){let u;if(Ve(e))u=new te(e.data);else if(eu(e))u=new ge(e.data);else if(W(e)){let r=t?Zt(e.children):[],i=new ye(e.name,{...e.attribs},r);r.forEach(a=>a.parent=i),e.namespace!=null&&(i.namespace=e.namespace),e["x-attribsNamespace"]&&(i["x-attribsNamespace"]={...e["x-attribsNamespace"]}),e["x-attribsPrefix"]&&(i["x-attribsPrefix"]={...e["x-attribsPrefix"]}),u=i}else if(Qt(e)){let r=t?Zt(e.children):[],i=new we(r);r.forEach(a=>a.parent=i),u=i}else if(ei(e)){let r=t?Zt(e.children):[],i=new ue(r);r.forEach(a=>a.parent=i),e["x-mode"]&&(i["x-mode"]=e["x-mode"]),u=i}else if(fn(e)){let r=new be(e.name,e.data);e["x-name"]!=null&&(r["x-name"]=e["x-name"],r["x-publicId"]=e["x-publicId"],r["x-systemId"]=e["x-systemId"]),u=r}else throw new Error(`Not implemented yet: ${e.type}`);return u.startIndex=e.startIndex,u.endIndex=e.endIndex,e.sourceCodeLocation!=null&&(u.sourceCodeLocation=e.sourceCodeLocation),u}function Zt(e){let t=e.map(u=>ti(u,!0));for(let u=1;u<t.length;u++)t[u].prev=t[u-1],t[u-1].next=t[u];return t}var ui={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},re=class{constructor(t,u,r){this.dom=[],this.root=new ue(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,typeof u=="function"&&(r=u,u=ui),typeof t=="object"&&(u=t,t=void 0),this.callback=t??null,this.options=u??ui,this.elementCB=r??null}onparserinit(t){this.parser=t}onreset(){this.dom=[],this.root=new ue(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null}onend(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))}onerror(t){this.handleCallback(t)}onclosetag(){this.lastNode=null;let t=this.tagStack.pop();this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(t)}onopentag(t,u){let r=this.options.xmlMode?S.Tag:void 0,i=new ye(t,u,void 0,r);this.addNode(i),this.tagStack.push(i)}ontext(t){let{lastNode:u}=this;if(u&&u.type===S.Text)u.data+=t,this.options.withEndIndices&&(u.endIndex=this.parser.endIndex);else{let r=new te(t);this.addNode(r),this.lastNode=r}}oncomment(t){if(this.lastNode&&this.lastNode.type===S.Comment){this.lastNode.data+=t;return}let u=new ge(t);this.addNode(u),this.lastNode=u}oncommentend(){this.lastNode=null}oncdatastart(){let t=new te(""),u=new we([t]);this.addNode(u),t.parent=u,this.lastNode=t}oncdataend(){this.lastNode=null}onprocessinginstruction(t,u){let r=new be(t,u);this.addNode(r)}handleCallback(t){if(typeof this.callback=="function")this.callback(t,this.dom);else if(t)throw t}addNode(t){let u=this.tagStack[this.tagStack.length-1],r=u.children[u.children.length-1];this.options.withStartIndices&&(t.startIndex=this.parser.startIndex),this.options.withEndIndices&&(t.endIndex=this.parser.endIndex),u.children.push(t),r&&(t.prev=r,r.next=t),t.parent=u,this.lastNode=null}};var hn=/\n/g;function pn(e){let t=[...e.matchAll(hn)].map(r=>r.index||0);t.unshift(-1);let u=tu(t,0,t.length);return r=>ii(u,r)}function tu(e,t,u){if(u-t==1)return{offset:e[t],index:t+1};let r=Math.ceil((t+u)/2),i=tu(e,t,r),a=tu(e,r,u);return{offset:i.offset,low:i,high:a}}function ii(e,t){return function(u){return Object.prototype.hasOwnProperty.call(u,"index")}(e)?{line:e.index,column:t-e.offset}:ii(e.high.offset<t?e.high:e.low,t)}function uu(e,t="",u={}){let r=typeof t!="string"?t:u,i=typeof t=="string"?t:"",a=e.map(mn),n=!!r.lineNumbers;return function(s,c=0){let l=n?pn(s):()=>({line:0,column:0}),f=c,m=[];e:for(;f<s.length;){let x=!1;for(let g of a){g.regex.lastIndex=f;let b=g.regex.exec(s);if(b&&b[0].length>0){if(!g.discard){let v=l(f),y=typeof g.replace=="string"?b[0].replace(new RegExp(g.regex.source,g.regex.flags),g.replace):b[0];m.push({state:i,name:g.name,text:y,offset:f,len:b[0].length,line:v.line,column:v.column})}if(f=g.regex.lastIndex,x=!0,g.push){let v=g.push(s,f);m.push(...v.tokens),f=v.offset}if(g.pop)break e;break}}if(!x)break}return{tokens:m,offset:f,complete:s.length<=f}}}function mn(e,t){return{...e,regex:gn(e,t)}}function gn(e,t){if(e.name.length===0)throw new Error(`Rule #${t} has empty name, which is not allowed.`);if(function(u){return Object.prototype.hasOwnProperty.call(u,"regex")}(e))return function(u){if(u.global)throw new Error(`Regular expression /${u.source}/${u.flags} contains the global flag, which is not allowed.`);return u.sticky?u:new RegExp(u.source,u.flags+"y")}(e.regex);if(function(u){return Object.prototype.hasOwnProperty.call(u,"str")}(e)){if(e.str.length===0)throw new Error(`Rule #${t} ("${e.name}") has empty "str" property, which is not allowed.`);return new RegExp(ri(e.str),"y")}return new RegExp(ri(e.name),"y")}function ri(e){return e.replace(/[-[\]{}()*+!<=:?./\\^$|#\s,]/g,"\\$&")}function j(e,t){return(u,r)=>{let i=r,a;return r<u.tokens.length?(a=e(u.tokens[r],u,r),a!==void 0&&i++):t?.(u,r),a===void 0?{matched:!1}:{matched:!0,position:i,value:a}}}function ru(e,t){return e.matched?{matched:!0,position:e.position,value:t(e.value,e.position)}:e}function We(e,t){return e.matched?t(e):e}function N(e,t){return(u,r)=>ru(e(u,r),(i,a)=>t(i,u,r,a))}function ve(e,t){return(u,r)=>{let i=e(u,r);return i.matched?i:{matched:!0,position:r,value:t}}}function ie(...e){return(t,u)=>{for(let r of e){let i=r(t,u);if(i.matched)return i}return{matched:!1}}}function Z(e,t){return(u,r)=>{let i=e(u,r);return i.matched?i:t(u,r)}}function bn(e,t){return(u,r)=>{let i=[],a=!0;do{let n=e(u,r);n.matched&&t(n.value,i.length+1,u,r,n.position)?(i.push(n.value),r=n.position):a=!1}while(a);return{matched:!0,position:r,value:i}}}function Ge(e){return bn(e,()=>!0)}function ai(e){return $(e,Ge(e),(t,u)=>[t,...u])}function $(e,t,u){return(r,i)=>We(e(r,i),a=>ru(t(r,a.position),(n,s)=>u(a.value,n,r,i,s)))}function ni(e,t){return $(e,t,u=>u)}function iu(e,t){return $(e,t,(u,r)=>r)}function ze(e,t,u,r){return(i,a)=>We(e(i,a),n=>We(t(i,n.position),s=>ru(u(i,s.position),(c,l)=>r(n.value,s.value,c,i,a,l))))}function au(e,t,u){return ze(e,t,u,(r,i)=>i)}function xn(...e){return(t,u)=>{let r=[],i=u;for(let a of e){let n=a(t,i);if(n.matched)r.push(n.value),i=n.position;else return{matched:!1}}return{matched:!0,position:i,value:r}}}function si(...e){return wn(xn(...e))}function wn(e){return N(e,t=>t.flatMap(u=>u))}function yn(e,t){return(u,r)=>{let i=!0,a=e,n=r;do{let s=t(a,u,n)(u,n);s.matched?(a=s.value,n=s.position):i=!1}while(i);return{matched:!0,position:n,value:a}}}function vn(e,t,u){return yn(e,r=>N(t,(i,a,n,s)=>u(r,i,a,n,s)))}function nu(e,t,u){return kn(e,r=>vn(r,$(t,u,(i,a)=>[i,a]),(i,[a,n])=>a(i,n)))}function kn(e,t){return(u,r)=>We(e(u,r),i=>t(i.value,u,r,i.position)(u,i.position))}var Tn="(?:[ \\t\\r\\n\\f]*)",hi="(?:\\n|\\r\\n|\\r|\\f)",Ye="[^\\x00-\\x7F]",Te="(?:\\\\[0-9a-f]{1,6}(?:\\r\\n|[ \\n\\r\\t\\f])?)",Ee="(?:\\\\[^\\n\\r\\f0-9a-f])",En=`(?:[_a-z]|${Ye}|${Te}|${Ee})`,pi=`(?:[_a-z0-9-]|${Ye}|${Te}|${Ee})`,An=`(?:${pi}+)`,Ln=`(?:[-]?${En}${pi}*)`,_n=`'([^\\n\\r\\f\\\\']|\\\\${hi}|${Ye}|${Te}|${Ee})*'`,In=`"([^\\n\\r\\f\\\\"]|\\\\${hi}|${Ye}|${Te}|${Ee})*"`,Nn=uu([{name:"ws",regex:new RegExp(Tn)},{name:"hash",regex:new RegExp(`#${An}`,"i")},{name:"ident",regex:new RegExp(Ln,"i")},{name:"str1",regex:new RegExp(_n,"i")},{name:"str2",regex:new RegExp(In,"i")},{name:"*"},{name:"."},{name:","},{name:"["},{name:"]"},{name:"="},{name:">"},{name:"|"},{name:"+"},{name:"~"},{name:"^"},{name:"$"}]),Dn=uu([{name:"unicode",regex:new RegExp(Te,"i")},{name:"escape",regex:new RegExp(Ee,"i")},{name:"any",regex:new RegExp("[\\s\\S]","i")}]);function mi([e,t,u],[r,i,a]){return[e+r,t+i,u+a]}function $n(e){return e.reduce(mi,[0,0,0])}var Cn=j(e=>e.name==="unicode"?String.fromCodePoint(parseInt(e.text.slice(1),16)):void 0),Bn=j(e=>e.name==="escape"?e.text.slice(1):void 0),Pn=j(e=>e.name==="any"?e.text:void 0),On=N(Ge(ie(Cn,Bn,Pn)),e=>e.join(""));function cu(e){let t=Dn(e);return On({tokens:t.tokens,options:void 0},0).value}function A(e){return j(t=>t.name===e?!0:void 0)}var lu=j(e=>e.name==="ws"?null:void 0),su=ve(lu,null);function ne(e){return au(su,e,su)}var Se=j(e=>e.name==="ident"?cu(e.text):void 0),Rn=j(e=>e.name==="hash"?cu(e.text.slice(1)):void 0),qn=j(e=>e.name.startsWith("str")?cu(e.text.slice(1,-1)):void 0),gi=ni(ve(Se,""),A("|")),du=Z($(gi,Se,(e,t)=>({name:t,namespace:e})),N(Se,e=>({name:e,namespace:null}))),Mn=Z($(gi,A("*"),e=>({type:"universal",namespace:e,specificity:[0,0,0]})),N(A("*"),()=>({type:"universal",namespace:null,specificity:[0,0,0]}))),Hn=N(du,({name:e,namespace:t})=>({type:"tag",name:e,namespace:t,specificity:[0,0,1]})),Un=$(A("."),Se,(e,t)=>({type:"class",name:t,specificity:[0,1,0]})),Fn=N(Rn,e=>({type:"id",name:e,specificity:[1,0,0]})),oi=j(e=>{if(e.name==="ident"){if(e.text==="i"||e.text==="I")return"i";if(e.text==="s"||e.text==="S")return"s"}}),jn=Z($(qn,ve(iu(su,oi),null),(e,t)=>({value:e,modifier:t})),$(Se,ve(iu(lu,oi),null),(e,t)=>({value:e,modifier:t}))),Vn=ie(N(A("="),()=>"="),$(A("~"),A("="),()=>"~="),$(A("|"),A("="),()=>"|="),$(A("^"),A("="),()=>"^="),$(A("$"),A("="),()=>"$="),$(A("*"),A("="),()=>"*=")),Wn=ze(A("["),ne(du),A("]"),(e,{name:t,namespace:u})=>({type:"attrPresence",name:t,namespace:u,specificity:[0,1,0]})),Gn=au(A("["),ze(ne(du),Vn,ne(jn),({name:e,namespace:t},u,{value:r,modifier:i})=>({type:"attrValue",name:e,namespace:t,matcher:u,value:r,modifier:i,specificity:[0,1,0]})),A("]")),zn=Z(Wn,Gn),Kn=Z(Mn,Hn),ci=ie(Fn,Un,zn),li=N(Z(si(Kn,Ge(ci)),ai(ci)),e=>({type:"compound",list:e,specificity:$n(e.map(t=>t.specificity))})),Jn=ie(N(A(">"),()=>">"),N(A("+"),()=>"+"),N(A("~"),()=>"~"),$(A("|"),A("|"),()=>"||")),Yn=Z(ne(Jn),N(lu,()=>" ")),ou=nu(li,N(Yn,e=>(t,u)=>({type:"compound",list:[...u.list,{type:"combinator",combinator:e,left:t,specificity:t.specificity}],specificity:mi(t.specificity,u.specificity)})),li),K0=nu(N(ou,e=>({type:"list",list:[e]})),N(ne(A(",")),()=>(e,t)=>({type:"list",list:[...e.list,t]})),ou);function Xn(e,t){if(!(typeof t=="string"||t instanceof String))throw new Error("Expected a selector string. Actual input is not a string!");let u=Nn(t);if(!u.complete)throw new Error(`The input "${t}" was only partially tokenized, stopped at offset ${u.offset}!
|
|
5
5
|
`+di(t,u.offset));let r=ne(e)({tokens:u.tokens,options:void 0},0);if(!r.matched)throw new Error(`No match for "${t}" input!`);if(r.position<u.tokens.length){let i=u.tokens[r.position];throw new Error(`The input "${t}" was only partially parsed, stopped at offset ${i.offset}!
|
|
6
6
|
`+di(t,i.offset,i.len))}return r.value}function di(e,t,u=1){return`${e.replace(/(\t)|(\r)|(\n)/g,(r,i,a)=>i?"\u2409":a?"\u240D":"\u240A")}
|
|
@@ -96,10 +96,10 @@ To: ${x.to}
|
|
|
96
96
|
Date: ${x.date}
|
|
97
97
|
|
|
98
98
|
Body:
|
|
99
|
-
${x.body}`,b=await Qo(g,i,t.model);o.info(`Extracted content: ${b}`),b&&b!=="NOT_FOUND"&&m.push({content:b,email_subject:x.subject,email_from:x.from,email_date:x.date})}if(m.length>0){let x=m[0],g=`$email_${t.extraction_type}`;t.extraction_type==="custom"?g="$email_extracted_content":t.extraction_type==="activation_link"?g="$email_magic_link":t.extraction_type==="verification_code"&&(g="$email_otp_code");let b=(new Date().getTime()-a.getTime())/1e3;return o.info(`Successfully extracted content after ${s} attempts in ${b.toFixed(1)} seconds`),{data:x.content,result_variable:g,status:"success",message:`Successfully extracted content from email: ${x.email_subject.substring(0,50)}... (attempts: ${s})`}}else o.info(`Found emails but no extractable content in attempt ${s}`)}else o.info(`No emails found in attempt ${s}`)}catch(l){o.warn(`Error in polling attempt ${s}: ${l.message}`)}if(new Date(Date.now()+r*1e3)>=n){o.info("Not enough time for another polling attempt");break}o.info(`Waiting ${r} seconds before next attempt...`),await new Promise(l=>setTimeout(l,r*1e3))}let c=(new Date().getTime()-a.getTime())/1e3;return{data:void 0,status:"error",message:`No emails with extractable content found after ${s} attempts over ${c.toFixed(1)} seconds`}}catch(i){return o.error(`Error extracting email content: ${i.message}`),{data:void 0,status:"error",message:`Error extracting email content: ${i.message}`}}}import{z as Y}from"zod";function ca(e){switch(e){case"verification_code":return"email_otp_code";case"activation_link":return"email_magic_link";case"custom":return"email_extracted_content";default:return"email_content"}}var la=class{getMailgunConfig(){let e=Ft().env||{};if(e.MAILGUN_API_KEY)return{apiKey:e.MAILGUN_API_KEY,domain:e.MAILGUN_DOMAIN||""}}async execute(e,t,u){let r=t.action_data;if(!r)throw new Error("Action data not found");let i=this.getMailgunConfig();if(!i)throw new Error("Mailgun configuration not provided. Please configure MAILGUN_API_KEY and MAILGUN_DOMAIN in SDK config.");let a=r.kwargs,n=u.getModel?.()||"gemini-2.5-pro",s=await oa(i,{model:n,forward_email:a.forward_email,extraction_type:a.extraction_type,prompt:a.prompt,filters:{from_email:a.filter_from_email,to_email:a.filter_to_email,subject:a.filter_subject,body_contains:a.filter_body_contains},timeout:a.timeout});if(s.status==="success"&&s.data){let c=s.result_variable?.replace(/^\$/,"")||ca(a.extraction_type);u.variableStore.set(c,s.data),o.info(`[extract_email_content] Extracted and saved to ${c}`)}else throw new Error(s.message||"Failed to extract email content")}transpile(e){let t=e.action_data?.kwargs||{};return['await agent.execAction("extract_email_content", page, {',` action_data: { kwargs: ${JSON.stringify(t)} },`,"});"]}},e0=Y.object({forward_email:Y.string().describe("Email address where emails are forwarded to (Mailgun inbox)"),extraction_type:Y.enum(["verification_code","activation_link","custom"]).describe("Type of content to extract: verification_code for OTP codes, activation_link for magic links, custom for custom prompts"),prompt:Y.string().optional().describe("Custom extraction prompt (required when extraction_type is custom)"),filter_from_email:Y.string().optional().describe("Filter emails by sender address"),filter_to_email:Y.string().optional().describe("Filter emails by recipient address"),filter_subject:Y.string().optional().describe("Filter emails by subject (partial match)"),filter_body_contains:Y.string().optional().describe("Filter emails by body content (partial match)"),timeout:Y.number().optional().describe("Timeout in seconds for polling (default: 60)")});function da(e,t){e.register({name:"extract_email_content",description:"Extract verification codes, magic links, or custom content from emails received via Mailgun. Polls the Mailgun inbox for matching emails and uses AI to extract the requested content.",schema:e0,async execute(u,r){let{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:m}=u,{page:x,agentServices:g}=r;o.info(`[extract_email_content] Extracting ${a} from ${i}`);try{let b={action_description:`Extract ${a} from email`,action_data:{action_name:"extract_email_content",kwargs:{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:m}}};await t.execute(x,b,g);let v=ca(a);return{success:!0,actionEntity:b,message:`Extracted ${a} and saved to $${v}`}}catch(b){return{success:!1,error:b.message,actionEntity:{action_description:`Extract ${a} from email (failed)`,action_data:{action_name:"extract_email_content",kwargs:{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:m}},feedback:b.message}}}}})}var ft=null;async function V(){if(ft)return ft;let e=(await import("./handler-
|
|
99
|
+
${x.body}`,b=await Qo(g,i,t.model);o.info(`Extracted content: ${b}`),b&&b!=="NOT_FOUND"&&m.push({content:b,email_subject:x.subject,email_from:x.from,email_date:x.date})}if(m.length>0){let x=m[0],g=`$email_${t.extraction_type}`;t.extraction_type==="custom"?g="$email_extracted_content":t.extraction_type==="activation_link"?g="$email_magic_link":t.extraction_type==="verification_code"&&(g="$email_otp_code");let b=(new Date().getTime()-a.getTime())/1e3;return o.info(`Successfully extracted content after ${s} attempts in ${b.toFixed(1)} seconds`),{data:x.content,result_variable:g,status:"success",message:`Successfully extracted content from email: ${x.email_subject.substring(0,50)}... (attempts: ${s})`}}else o.info(`Found emails but no extractable content in attempt ${s}`)}else o.info(`No emails found in attempt ${s}`)}catch(l){o.warn(`Error in polling attempt ${s}: ${l.message}`)}if(new Date(Date.now()+r*1e3)>=n){o.info("Not enough time for another polling attempt");break}o.info(`Waiting ${r} seconds before next attempt...`),await new Promise(l=>setTimeout(l,r*1e3))}let c=(new Date().getTime()-a.getTime())/1e3;return{data:void 0,status:"error",message:`No emails with extractable content found after ${s} attempts over ${c.toFixed(1)} seconds`}}catch(i){return o.error(`Error extracting email content: ${i.message}`),{data:void 0,status:"error",message:`Error extracting email content: ${i.message}`}}}import{z as Y}from"zod";function ca(e){switch(e){case"verification_code":return"email_otp_code";case"activation_link":return"email_magic_link";case"custom":return"email_extracted_content";default:return"email_content"}}var la=class{getMailgunConfig(){let e=Ft().env||{};if(e.MAILGUN_API_KEY)return{apiKey:e.MAILGUN_API_KEY,domain:e.MAILGUN_DOMAIN||""}}async execute(e,t,u){let r=t.action_data;if(!r)throw new Error("Action data not found");let i=this.getMailgunConfig();if(!i)throw new Error("Mailgun configuration not provided. Please configure MAILGUN_API_KEY and MAILGUN_DOMAIN in SDK config.");let a=r.kwargs,n=u.getModel?.()||"gemini-2.5-pro",s=await oa(i,{model:n,forward_email:a.forward_email,extraction_type:a.extraction_type,prompt:a.prompt,filters:{from_email:a.filter_from_email,to_email:a.filter_to_email,subject:a.filter_subject,body_contains:a.filter_body_contains},timeout:a.timeout});if(s.status==="success"&&s.data){let c=s.result_variable?.replace(/^\$/,"")||ca(a.extraction_type);u.variableStore.set(c,s.data),o.info(`[extract_email_content] Extracted and saved to ${c}`)}else throw new Error(s.message||"Failed to extract email content")}transpile(e){let t=e.action_data?.kwargs||{};return['await agent.execAction("extract_email_content", page, {',` action_data: { kwargs: ${JSON.stringify(t)} },`,"});"]}},e0=Y.object({forward_email:Y.string().describe("Email address where emails are forwarded to (Mailgun inbox)"),extraction_type:Y.enum(["verification_code","activation_link","custom"]).describe("Type of content to extract: verification_code for OTP codes, activation_link for magic links, custom for custom prompts"),prompt:Y.string().optional().describe("Custom extraction prompt (required when extraction_type is custom)"),filter_from_email:Y.string().optional().describe("Filter emails by sender address"),filter_to_email:Y.string().optional().describe("Filter emails by recipient address"),filter_subject:Y.string().optional().describe("Filter emails by subject (partial match)"),filter_body_contains:Y.string().optional().describe("Filter emails by body content (partial match)"),timeout:Y.number().optional().describe("Timeout in seconds for polling (default: 60)")});function da(e,t){e.register({name:"extract_email_content",description:"Extract verification codes, magic links, or custom content from emails received via Mailgun. Polls the Mailgun inbox for matching emails and uses AI to extract the requested content.",schema:e0,async execute(u,r){let{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:m}=u,{page:x,agentServices:g}=r;o.info(`[extract_email_content] Extracting ${a} from ${i}`);try{let b={action_description:`Extract ${a} from email`,action_data:{action_name:"extract_email_content",kwargs:{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:m}}};await t.execute(x,b,g);let v=ca(a);return{success:!0,actionEntity:b,message:`Extracted ${a} and saved to $${v}`}}catch(b){return{success:!1,error:b.message,actionEntity:{action_description:`Extract ${a} from email (failed)`,action_data:{action_name:"extract_email_content",kwargs:{forward_email:i,extraction_type:a,prompt:n,filter_from_email:s,filter_to_email:c,filter_subject:l,filter_body_contains:f,timeout:m}},feedback:b.message}}}}})}var ft=null;async function V(){if(ft)return ft;let e=(await import("./handler-2TZO7EYS.js")).default;return ft=new e,ft}async function ht(e){let t=await V(),u=t.getAction("click"),r=t.getAction("hover"),i=t.getAction("right_click"),a=t.getAction("double_click");return Lr(e,u),br(e,r),or(e,i),kr(e,a),"Click, hover, double-click, right-click, or drag elements"}async function pt(e){let t=await V(),u=t.getAction("go_to_url"),r=t.getAction("go_back"),i=t.getAction("reload_page");return gr(e,u),mr(e,r),sr(e,i),"Navigate to URLs, go back, or reload the page"}async function mt(e){let t=await V(),u=t.getAction("clear_input"),r=t.getAction("input_text"),i=t.getAction("press");return Ar(e,u),xr(e,r),wr(e,i),"Type text into inputs, clear input values, or press keyboard keys"}async function gt(e){let t=await V(),u=t.getAction("scroll_on_element"),r=t.getAction("scroll_to_text"),i=t.getAction("scroll");return dr(e,u),fr(e,r),lr(e,i),"Scroll the page or scroll to specific text/elements"}async function bt(e){let t=await V(),u=t.getAction("close_tab"),r=t.getAction("switch_tab");return yr(e,u),tr(e,r),"Switch between browser tabs or close tabs"}async function xt(e){let t=await V(),u=t.getAction("upload_file"),r=t.getAction("wait_for_download_complete");return rr(e,u),ar(e,r),"Upload files or wait for downloads to complete"}async function wt(e){let t=await V(),u=t.getAction("get_dropdown_options"),r=t.getAction("select_dropdown_option"),i=t.getAction("set_date_for_native_date_picker");return pr(e,u),hr(e,r),er(e,i),"Get dropdown options, select dropdown values, or set date for native date picker input"}async function yt(e){let t=await V(),u=t.getAction("wait"),r=t.getAction("save_variable"),i=t.getAction("done");return ir(e,u),cr(e,r),vr(e,i),Fr(e),"Wait for conditions, save variables, or complete tasks"}async function vt(e){let t=(await V()).getAction("generate_2fa_code");Sr(e,t);let u=new la;return(await import("./handler-2TZO7EYS.js")).default.registerAction("extract_email_content",u),da(e,u),"Generate 2FA codes or extract email/activation codes"}async function kt(e){let t=await V(),u=t.getAction("verify"),r=t.getAction("ai_extract"),i=t.getAction("ai_wait_until");return Tr(e,u),Er(e,r),nr(e,i),"Perform AI-powered assertions, extractions, or wait conditions"}async function fa(e){let[t,u,r,i,a,n,s,c,l,f]=await Promise.all([ht(e),pt(e),mt(e),gt(e),bt(e),xt(e),wt(e),yt(e),vt(e),kt(e)]);return{mouse:t,navigation:u,input:r,scroll:i,tabs:a,files:n,forms:s,utility:c,auth:l,ai:f}}function ha(e){return[`- Mouse: ${e.mouse}`,`- Navigation: ${e.navigation}`,`- Input: ${e.input}`,`- Scroll: ${e.scroll}`,`- Tabs: ${e.tabs}`,`- Files: ${e.files}`,`- Forms: ${e.forms}`,`- Utility: ${e.utility}`,`- Auth: ${e.auth}`,`- AI: ${e.ai}`].join(`
|
|
100
100
|
`)}var t0=[ht(P),pt(P),mt(P),gt(P),bt(P),xt(P),wt(P),yt(P),kt(P),vt(P)],u0=Promise.all(t0);async function r0(){await u0}function i0(){return P}function a0(e=!0){let t=new Oe;return e&&(ht(t),pt(t),mt(t),gt(t),bt(t),xt(t),wt(t),vt(t),yt(t),kt(t)),t}async function n0(){let e=new Oe,t=await fa(e),u=ha(t);return{registry:e,capabilities:t,summary:u}}function s0(){return["- Mouse: Click, hover, double-click, right-click or drag on elements","- Navigation: Navigate to URLs, go back, or reload the page","- Input: Type text into inputs, clear input fields, or press keyboard keys","- Scroll: Scroll the page or scroll to specific text/elements","- Tabs: Switch between browser tabs or close tabs","- Files: Upload files or wait for downloads to complete","- Forms: Get dropdown options or select dropdown values","- Utility: Wait for conditions, save variables, or complete tasks","- Auth: Generate 2FA codes or extract email/activation codes","- AI: Perform AI-powered verifications, extractions, or wait conditions"].join(`
|
|
101
101
|
`)}var o0=class{constructor(e,t){this.registry=e,this.getContext=t}getToolDefinitions(){return this.registry.getTools().filter(e=>e.availability.mcp).map(e=>({name:e.name,description:e.description,inputSchema:Pe(e.schema)}))}getToolDefinitionsFiltered(e){let t=new Set(e);return this.registry.getTools().filter(u=>t.has(u.name)&&u.availability.mcp).map(u=>({name:u.name,description:u.description,inputSchema:Pe(u.schema)}))}async createServer(e="web-sdk-tools"){throw new Error("MCP server creation not yet implemented. Install and configure an MCP SDK like @modelcontextprotocol/sdk")}async executeTool(e,t){let u=await this.getContext(),r=await this.registry.execute(e,t,u);return{content:[{type:"text",text:r.success?r.message||"Tool executed successfully":r.error||"Tool execution failed"}]}}getToolCount(){return this.registry.size()}getToolNames(){return this.registry.getToolNames()}};function c0(e){return e.getTools().map(t=>({name:t.name,description:t.description,inputSchema:Pe(t.schema)}))}import Nu from"fs";import St from"path";import{chromium as pa,firefox as l0,webkit as d0}from"playwright";var f0=class{constructor(e={}){e.testDir&&(this.testDir=e.testDir,this.videoBasePath=St.join(e.testDir,"videos"),this.statesBasePath=St.join(e.testDir,"states"),this.downloadsBasePath=St.join(e.testDir,"downloads"),Nu.mkdirSync(this.videoBasePath,{recursive:!0}),Nu.mkdirSync(this.statesBasePath,{recursive:!0}),Nu.mkdirSync(this.downloadsBasePath,{recursive:!0})),this.terminationTimeout=e.terminationTimeout??null,this.defaultHeadless=e.headless??!1,this.additionalArgs=e.additionalArgs??[]}async launchBrowser(e={}){let t=e.debugPort,u=e.headless??this.defaultHeadless,r=Or(e.deviceName),i=Pr(e.deviceName),a=r===pe.Chromium,n=!!e.extensionPath;o.info(`[BrowserManager] Launching ${r} browser for device: ${e.deviceName||"default"}${t?` on port ${t}`:""}`);let s={headless:u};if(a){n&&u&&(o.warn("[BrowserManager] Extension requested in headless mode; forcing headed mode to load extension."),u=!1,s.headless=!1);let w=[];(e.enableCamera||e.enableMicrophone)&&(w.push("--use-fake-device-for-media-stream","--use-fake-ui-for-media-stream"),e.enableMicrophone&&e.fakeAudioCapturePath&&(w.push(`--use-file-for-fake-audio-capture=${e.fakeAudioCapturePath}`),o.info(`[BrowserManager] Using fake audio capture file: ${e.fakeAudioCapturePath}`)));let E=n&&e.extensionPath?[`--disable-extensions-except=${e.extensionPath}`,`--load-extension=${e.extensionPath}`]:[];s.args=[..._r(t,e.disableSecurity??!0,u),...w,...E,...this.additionalArgs],i&&(s.channel=i,o.debug(`[BrowserManager] Launching browser with channel: ${i}`))}let c=$r(e.deviceName),l=Br(e.deviceName),f={acceptDownloads:!0,...c,timezoneId:"America/Los_Angeles",locale:e.locale||"en-US"};e.localStorageStatePath&&(f.storageState=e.localStorageStatePath),e.recordVideo&&this.videoBasePath&&(f.recordVideo={dir:this.videoBasePath,size:{width:l.width,height:l.height}}),e.proxy&&(f.proxy=e.proxy);let m,x,g;if(n&&a){if(e.userDataDir)g=e.userDataDir;else if(this.testDir)g=St.join(this.testDir,"user-data");else throw new Error("[BrowserManager] testDir is required to launch a persistent context with an extension");let w={...s,...f};x=await pa.launchPersistentContext(g,w),m=x.browser(),o.info(`[BrowserManager] Launched persistent context for extension at ${e.extensionPath}`)}else{switch(r){case pe.Firefox:m=await l0.launch(s);break;case pe.Webkit:m=await d0.launch(s);break;case pe.Chromium:default:m=await pa.launch(s);break}x=await m.newContext(f)}if(x.addInitScript(Wt),e.enableCamera||e.enableMicrophone)if(!a)o.warn("[BrowserManager] Camera/microphone enabled but browser is not Chromium; ignoring.");else{let w=[];e.enableCamera&&w.push("camera"),e.enableMicrophone&&w.push("microphone");try{await x.grantPermissions(w),o.info(`[BrowserManager] Granted permissions: ${w.join(", ")}`)}catch(E){o.warn("[BrowserManager] Failed to grant camera/microphone permissions:",E)}}if(e.cookies&&e.cookies.length>0){let w=(Date.now()+31536e6)/1e3,E=e.cookies.map(D=>({...D,expires:w}));await x.addCookies(E),o.info(`[BrowserManager] Added ${e.cookies.length} cookies to browser context with expires=${w}`)}let b=Cr(e.deviceName);o.info(`[BrowserManager] windowSize=${JSON.stringify(b)}`),a&&x.on("page",async w=>{try{await zt(w,b.width,b.height)}catch(E){o.warn("[BrowserManager] Failed to set window bounds via CDP:",E)}});let v="";if(a&&t!==void 0)try{v=await Gt(t)}catch(w){o.warn("[BrowserManager] Failed to get CDP WebSocket URL:",w)}let y={debugPort:t,browser:m,context:x,startTime:new Date,timeout:null,browserWsUrl:v,downloadsBasePath:this.downloadsBasePath,browserType:r,userDataDir:g};if(this.terminationTimeout!==null){let w=setTimeout(()=>{o.info(`[BrowserManager] Browser auto-terminated after ${this.terminationTimeout}ms`),this.terminateBrowser(y).catch(E=>o.error("[BrowserManager] Error terminating browser:",E))},this.terminationTimeout);y.timeout=w}return y}async terminateBrowser(e){e.timeout&&clearTimeout(e.timeout),await e.context.close(),await e.browser.close()}getVideoBasePath(){return this.videoBasePath}getStatesBasePath(){return this.statesBasePath}getDownloadsBasePath(){return this.downloadsBasePath}};var h0=e=>{if(!e||e===Nr)return"desktop";let t=Dr(e);return t&&t.isMobile?"mobile":"desktop"};var p0=(e=>(e.Desktop="desktop",e.Mobile="mobile",e))(p0||{});var ma=class{constructor(e){this.currentPage=null,this.currentIndex=-1,this.context=e,this.initialize()}initialize(){this.context.on("page",async t=>{await this.handleNewPage(t)});let e=this.context.pages();e.length>0&&(this.currentPage=e[0],this.currentIndex=0);for(let t of e)this.setupPageListeners(t)}async handleNewPage(e){try{this.setupPageListeners(e);let t=this.context.pages().indexOf(e);await this.setCurrentPage(e,t)}catch{}}setupPageListeners(e){e.on("close",async()=>{await this.handlePageClose(e)})}async handlePageClose(e){try{if(this.currentPage===e){let t=this.context.pages(),u=t.slice().reverse().find(r=>!r.isClosed());u&&await this.setCurrentPage(u,t.indexOf(u))}}catch{}}async setCurrentPage(e,t){let u=this.currentPage!==e;this.currentPage=e,this.currentIndex=t,u&&await e.bringToFront()}async switchToPage(e){let t=this.context.pages();if(e<0||e>=t.length)throw new Error(`Invalid page index: ${e}. Available pages: 0-${t.length-1}`);let u=t[e];if(u.isClosed())throw new Error(`Page at index ${e} is closed`);return await this.setCurrentPage(u,e),u}async closePage(e){let t=this.context.pages();if(e<0||e>=t.length)throw new Error(`Invalid page index: ${e}. Available pages: 0-${t.length-1}`);let u=t[e];if(u.isClosed())throw new Error(`Page at index ${e} is already closed`);await u.close()}getCurrentPage(){return this.currentPage}getCurrentIndex(){return this.currentIndex}getAllPages(){return this.context.pages()}getPageCount(){return this.context.pages().length}};async function ga(e,t=3e3,u=1e3){try{await qe(e,t,u)}catch{}}async function ba(e,t,u){let r=u*1e3,i=100,a=Date.now();for(;!t.downloadStatus||t.downloadStatus.status==="inProgress";){if(Date.now()-a>r){let n;throw t.downloadStatus?n=`Timed out after ${r}ms waiting for download to complete`:n="No download in progress or completed",o.error(n),new Error(n)}await e.waitForTimeout(i)}if(t.downloadStatus.status==="failed"){let n=`Download failed: ${t.downloadStatus.error||"Unknown error"}`;throw o.error(n),new Error(n)}t.agentNote=`Download completed: ${t.downloadStatus.filename}`}async function xa(e,t,u,r=60,i){let a=Math.min(r,280),n=Math.max(10,a/10)*1e3,s=Date.now()+a*1e3;for(o.info(`Waiting for condition: "${t}" (timeout: ${a}s)`);;){let c=Date.now();try{if(await u(e,t,i))return o.info(`Condition met: "${t}"`),!0}catch(f){o.warn(`Error evaluating condition: ${f.message}`)}if(Date.now()>s)return o.warn(`Timeout waiting for condition: "${t}"`),!1;let l=n-(Date.now()-c);l>0&&await e.waitForTimeout(l)}}var en=Xu(Za(),1);import*as Qa from"fs";import*as Ce from"path";function tn(e){return e.url()===":"}var Ju=class{constructor(e){this.context=e,this.testDataFileNames=[],this.extensionEnabled=!1}setTestDataDownloader(e,t){this.testDataDownloader=e,this.testDataFileNames=t??[]}setupPageTracking(e){this.tabManager=new ma(e)}async switchTab(e){if(!this.tabManager)throw new Error("Tab manager not initialized");return await this.tabManager.switchToPage(e)}async closeTab(e){if(!this.tabManager)throw new Error("Tab manager not initialized");await this.tabManager.closePage(e)}getCurrentPage(){return this.tabManager?this.tabManager.getCurrentPage():null}validatePage(e){let t=this.getCurrentPage();if(t&&t!==e&&!t.isClosed())return o.info(`[validatePage] Page changed, switching to ${t.url()}`),t;if(e.isClosed()){let u=e.context().pages().filter(r=>!r.isClosed());if(u.length>0){let r=u[u.length-1];return o.info(`[validatePage] Page closed, switching to ${r.url()}`),r}o.error("[validatePage] No valid pages found")}return e}replaceVariables(e){return Jt(e,this.context.variableStore.getAll())}getTestDataFileNames(){return this.testDataFileNames}getTestDataFilePath(e){let t=this.context.testDataDir||process.cwd();return Ce.join(t,e)}async downloadTestDataFiles(e){if(e.length===0){o.debug("[AgentServices] No file paths provided for download");return}let t=this.context.testDataDir||process.cwd(),u=e.filter(r=>{let i=Ce.basename(r),a=Ce.join(t,i),n=Qa.existsSync(a);return n&&o.debug(`[AgentServices] File already exists locally: ${i}`),!n});if(u.length===0){o.debug("[AgentServices] All files exist locally, no download needed");return}if(!this.testDataDownloader){o.debug("[AgentServices] No test data downloader configured, assuming files are pre-populated");return}o.info(`[AgentServices] Downloading ${u.length} test data files: ${u.join(", ")}`),await this.testDataDownloader(u,t)}async waitForDownloadComplete(e,t){return ba(e,this.context,t)}getRecentDownloadedFilePath(){return this.context.downloadStatus?this.context.downloadStatus.status!=="completed"?(o.debug(`Download is ${this.context.downloadStatus.status}, not completed`),null):this.context.downloadStatus.filePath?(o.info(`Retrieved recent download path: ${this.context.downloadStatus.filePath}`),this.context.downloadStatus.filePath):(o.warn("Download completed but file path is missing"),null):(o.debug("No download found"),null)}addSensitive(e,t){this.context.variableStore.set(e,t,!0)}saveVariable(e,t){let u=e.startsWith("$")?e.slice(1):e;this.context.variableStore.set(u,t),o.debug(`Saved variable: ${u} = ${JSON.stringify(t)}`),this.context.agentNote=`A new value is saved to the variable "${u}".`}addNote(e){!e||e.trim()===""||(this.context.agentNote?this.context.agentNote+=`
|
|
102
|
-
${e.trim()}`:this.context.agentNote=e.trim())}readVariable(e){let t=e.startsWith("$")?e.slice(1):e,u=this.context.variableStore.get(t);return o.debug(`Read variable: ${t} = ${JSON.stringify(u)}`),u}async generate2faCode(e){try{let t=en.authenticator.generate(e);return o.info(`Generated 2FA code: ${t}`),t}catch(t){throw o.error(`Failed to generate 2FA code: ${t.message}`),new Error(`Failed to generate 2FA code: ${t.message}`)}}async getDOMText(e){return await e.evaluate(()=>document.body.innerText)}async waitUntilStable(e,t){return qe(e,t)}setPage(e){this.context.setPage?(o.info("[AgentServices] Calling setPage callback"),this.context.setPage(e)):o.debug("[AgentServices] setPage callback not configured")}getModel(){if(!this.context.model)throw new Error("No LLM model configured. An LLM model is required for AI-powered actions (login, verify, ai_extract, ai_wait_until, etc.). Set GOOGLE_API_KEY or ANTHROPIC_API_KEY in your MCP server configuration.");return this.context.model}get variableStore(){return this.context.variableStore}getDownloadDir(){return this.context.downloadDir}getActionSettings(){return this.context.organizationSettings?.action_code_conversion_settings||{}}getInteractiveClassNames(){return this.context.organizationSettings?.agent_settings?.interactive_class_names||[]}isUseCleanScreenshotForAssertion(){return this.context.organizationSettings?.use_clean_screenshot_for_assertion||!1}isKnowledgeImagesEnabled(){return this.context.organizationSettings?.agent_settings?.enable_knowledge_images||!1}isSlicedScreenshotsEnabled(){return this.context.organizationSettings?.agent_settings?.use_sliced_screenshots||!1}isResizeSlicedScreenshotsEnabled(){return this.context.organizationSettings?.agent_settings?.resize_sliced_screenshots||!1}isAccessibilityTreeEnabled(){return this.context.organizationSettings?.agent_settings?.use_accessibility_tree||!1}isActionIntentFilteringEnabled(){return this.context.organizationSettings?.agent_settings?.use_action_intent_filtering||!1}isDomTreeTsEnabled(){let e=process.env.USE_DOM_TREE_TS;return e!==void 0?e==="true"||e==="1":this.context.organizationSettings?.agent_settings?.use_dom_tree_ts||!1}setExtensionEnabled(e){this.extensionEnabled=e}getDomServiceOptions(){return{useDomTreeTs:this.isDomTreeTsEnabled(),domTreeRoot:this.extensionEnabled?"document":"body"}}setKnowledgeRetriever(e){this.knowledgeRetriever=e}hasKnowledgeRetriever(){return this.knowledgeRetriever!==void 0}async retrieveKnowledges(e,t,u,r){if(!this.knowledgeRetriever)return o.debug("[AgentServices] No knowledge retriever configured"),[];try{let i=await this.knowledgeRetriever(e,t,u,r);return o.debug(`[AgentServices] Retrieved ${i.length} knowledges for statement`),i}catch(i){return o.warn(`[AgentServices] Failed to retrieve knowledges: ${i.message}`),[]}}};var un=(e=>(e.Started="started",e.Action="action",e.Completion="completion",e.Error="error",e.Aborted="aborted",e.Keepalive="keepalive",e))(un||{}),Yu=class extends Error{constructor(e){super(e),this.name="AgentTaskFailedError",this.details=e}};import*as I from"fs";import*as C from"path";var L0=1,_0=3,I0=40;function Be(e,t){let u={};for(let[r,i]of Object.entries(e))u[r]=t.has(r)?"*****":i;return u}var rn=class{constructor(e){this.context=e,this._newActionEntities=new Map,this.agentServices=new Ju(e),this.context.tokenUsages||(this.context.tokenUsages=[])}getNewActionEntities(){return this._newActionEntities}async getActionHandler(){if(!this._actionHandler){let{default:e}=await import("./handler-
|
|
102
|
+
${e.trim()}`:this.context.agentNote=e.trim())}readVariable(e){let t=e.startsWith("$")?e.slice(1):e,u=this.context.variableStore.get(t);return o.debug(`Read variable: ${t} = ${JSON.stringify(u)}`),u}async generate2faCode(e){try{let t=en.authenticator.generate(e);return o.info(`Generated 2FA code: ${t}`),t}catch(t){throw o.error(`Failed to generate 2FA code: ${t.message}`),new Error(`Failed to generate 2FA code: ${t.message}`)}}async getDOMText(e){return await e.evaluate(()=>document.body.innerText)}async waitUntilStable(e,t){return qe(e,t)}setPage(e){this.context.setPage?(o.info("[AgentServices] Calling setPage callback"),this.context.setPage(e)):o.debug("[AgentServices] setPage callback not configured")}getModel(){if(!this.context.model)throw new Error("No LLM model configured. An LLM model is required for AI-powered actions (login, verify, ai_extract, ai_wait_until, etc.). Set GOOGLE_API_KEY or ANTHROPIC_API_KEY in your MCP server configuration.");return this.context.model}get variableStore(){return this.context.variableStore}getDownloadDir(){return this.context.downloadDir}getActionSettings(){return this.context.organizationSettings?.action_code_conversion_settings||{}}getInteractiveClassNames(){return this.context.organizationSettings?.agent_settings?.interactive_class_names||[]}isUseCleanScreenshotForAssertion(){return this.context.organizationSettings?.use_clean_screenshot_for_assertion||!1}isKnowledgeImagesEnabled(){return this.context.organizationSettings?.agent_settings?.enable_knowledge_images||!1}isSlicedScreenshotsEnabled(){return this.context.organizationSettings?.agent_settings?.use_sliced_screenshots||!1}isResizeSlicedScreenshotsEnabled(){return this.context.organizationSettings?.agent_settings?.resize_sliced_screenshots||!1}isAccessibilityTreeEnabled(){return this.context.organizationSettings?.agent_settings?.use_accessibility_tree||!1}isActionIntentFilteringEnabled(){return this.context.organizationSettings?.agent_settings?.use_action_intent_filtering||!1}isDomTreeTsEnabled(){let e=process.env.USE_DOM_TREE_TS;return e!==void 0?e==="true"||e==="1":this.context.organizationSettings?.agent_settings?.use_dom_tree_ts||!1}setExtensionEnabled(e){this.extensionEnabled=e}getDomServiceOptions(){return{useDomTreeTs:this.isDomTreeTsEnabled(),domTreeRoot:this.extensionEnabled?"document":"body"}}setKnowledgeRetriever(e){this.knowledgeRetriever=e}hasKnowledgeRetriever(){return this.knowledgeRetriever!==void 0}async retrieveKnowledges(e,t,u,r){if(!this.knowledgeRetriever)return o.debug("[AgentServices] No knowledge retriever configured"),[];try{let i=await this.knowledgeRetriever(e,t,u,r);return o.debug(`[AgentServices] Retrieved ${i.length} knowledges for statement`),i}catch(i){return o.warn(`[AgentServices] Failed to retrieve knowledges: ${i.message}`),[]}}};var un=(e=>(e.Started="started",e.Action="action",e.Completion="completion",e.Error="error",e.Aborted="aborted",e.Keepalive="keepalive",e))(un||{}),Yu=class extends Error{constructor(e){super(e),this.name="AgentTaskFailedError",this.details=e}};import*as I from"fs";import*as C from"path";var L0=1,_0=3,I0=40;function Be(e,t){let u={};for(let[r,i]of Object.entries(e))u[r]=t.has(r)?"*****":i;return u}var rn=class{constructor(e){this.context=e,this._newActionEntities=new Map,this.agentServices=new Ju(e),this.context.tokenUsages||(this.context.tokenUsages=[])}getNewActionEntities(){return this._newActionEntities}async getActionHandler(){if(!this._actionHandler){let{default:e}=await import("./handler-2TZO7EYS.js");this._actionHandler=new e}return this._actionHandler}async execAction(e,t,u){let r=(await this.getActionHandler()).getAction(e);if(!r)throw new Error(`Unknown action: ${e}`);await r.execute(t,u,this.agentServices)}async dismissModalIfPresent(e,t){try{let u=await this.execute(e,`TASK: Check if there is an INTRUSIVE POPUP blocking the page, and dismiss it if present.
|
|
103
103
|
|
|
104
104
|
ONLY dismiss intrusive popups such as:
|
|
105
105
|
- Cookie/GDPR consent banners
|
|
@@ -133,7 +133,7 @@ If the page is not signed in, sign in with the OAuth provider "${a.provider_name
|
|
|
133
133
|
`}t.additional_prompt&&(i+=`
|
|
134
134
|
Additional instructions: ${t.additional_prompt}
|
|
135
135
|
`);try{k.log("Level 3: Attempting agent-based login"),k.log(`Login prompt:
|
|
136
|
-
${i}`);let a=this.agentServices.knowledgeRetriever,n=!1;this.agentServices.hasKnowledgeRetriever()&&a&&(k.log("Setting up login knowledge retriever..."),this.agentServices.setKnowledgeRetriever(async(x,g,b,v)=>await a(x,g,b,"login")),n=!0,k.log("Login knowledge retriever configured"));let s;try{if(s=await this.run(e,i,"login"),!s.success)return k.log("Level 3 FAILED: Agent login failed"),o.info("Login: Failed"),{success:!1,page:e}}finally{n&&a&&(this.agentServices.setKnowledgeRetriever(a),k.log("Restored original knowledge retriever"))}let c=await e.context().storageState(),l;if(t.num_verification_exprs!==0)try{k.log("Generating validation locators for future login verification...");let x=await qr(e,t.site_url,{verification_hint:t.verification_hint,num_verification_exprs:t.num_verification_exprs},async(g,b)=>this.run(g,b),async g=>this.getDOMText(g));x?(l=x,k.log(`Generated ${l.length} validation locator(s): ${JSON.stringify(l)}`)):k.log("Failed to generate validation locators, login will still succeed")}catch(x){k.log(`Error generating validation locators: ${x.message}`)}else k.log("Skipping validation locator generation (num_verification_exprs=0)");k.log("Level 3 SUCCESS: Agent login succeeded"),o.info("Login: Agent login succeeded");let f=s.actions||[],m=f.length>0?f:u?.cached_actions;return{success:!0,page:e,storage_state:c,cached_actions:m,validation_exprs:l}}catch(a){return k.error(`Agent login failed: ${a.message}`),o.info("Login: Failed"),{success:!1,page:e}}}async executeCachedLogin(e,t,u){let r=(await import("./handler-
|
|
136
|
+
${i}`);let a=this.agentServices.knowledgeRetriever,n=!1;this.agentServices.hasKnowledgeRetriever()&&a&&(k.log("Setting up login knowledge retriever..."),this.agentServices.setKnowledgeRetriever(async(x,g,b,v)=>await a(x,g,b,"login")),n=!0,k.log("Login knowledge retriever configured"));let s;try{if(s=await this.run(e,i,"login"),!s.success)return k.log("Level 3 FAILED: Agent login failed"),o.info("Login: Failed"),{success:!1,page:e}}finally{n&&a&&(this.agentServices.setKnowledgeRetriever(a),k.log("Restored original knowledge retriever"))}let c=await e.context().storageState(),l;if(t.num_verification_exprs!==0)try{k.log("Generating validation locators for future login verification...");let x=await qr(e,t.site_url,{verification_hint:t.verification_hint,num_verification_exprs:t.num_verification_exprs},async(g,b)=>this.run(g,b),async g=>this.getDOMText(g));x?(l=x,k.log(`Generated ${l.length} validation locator(s): ${JSON.stringify(l)}`)):k.log("Failed to generate validation locators, login will still succeed")}catch(x){k.log(`Error generating validation locators: ${x.message}`)}else k.log("Skipping validation locator generation (num_verification_exprs=0)");k.log("Level 3 SUCCESS: Agent login succeeded"),o.info("Login: Agent login succeeded");let f=s.actions||[],m=f.length>0?f:u?.cached_actions;return{success:!0,page:e,storage_state:c,cached_actions:m,validation_exprs:l}}catch(a){return k.error(`Agent login failed: ${a.message}`),o.info("Login: Failed"),{success:!1,page:e}}}async executeCachedLogin(e,t,u){let r=(await import("./handler-2TZO7EYS.js")).default,i=new r;for(let a=0;a<t.length;a++){let n=t[a];k.log(`Executing cached action ${a+1}/${t.length}: ${n.action_description||n.action_data?.action_name}`);try{if(!n.action_data){k.log(`Action ${a+1} missing action_data, skipping`);continue}await i.execute(e,n,this.agentServices),await this.waitUntilStable(e,5e3)}catch(s){return k.error(`Cached action ${a+1} failed: ${s.message}`),{success:!1}}}return u&&u.length>0&&!await Yt(e,u)?{success:!1}:{success:!0}}getCompletedExecutionHistory(){if(!this.context.executionHistory||this.context.executionHistory.length===0)return[];let e=this.context.executionHistory[this.context.executionHistory.length-1];return!e[1]||e[1].trim()===""?this.context.executionHistory.slice(0,-1):this.context.executionHistory}addToExecutionHistory(e,t){this.context.executionHistory||(this.context.executionHistory=[]),this.context.executionHistory.push([e,t])}async createStepResult(e,t,u){if(!this.context.stepTracking||this.context.stepTracking.results[t])return;this.context.stepTracking.currentStepId=t,this.context.stepTracking.onStepChange&&this.context.stepTracking.onStepChange(t),e=await this.agentServices.validatePage(e),await this.waitUntilStable(e);let r={description:u,startTime:Date.now(),artifacts:[]};if(this.context.stepTracking.artifactsDir){let i=C.join(this.context.stepTracking.artifactsDir,t.replace(/\./g,"-"));I.mkdirSync(i,{recursive:!0});let a=C.join(i,"screenshot.png");await e.screenshot({type:"png",path:a}),r.screenshot=a}this.context.stepTracking.results[t]=r}saveDebugInfoToFiles(e,t,u){let r={};if(!this.context.stepTracking?.artifactsDir)return o.debug("[saveDebugInfoToFiles] No artifacts directory configured, skipping debug info save"),r;let i=C.join(this.context.stepTracking.artifactsDir,e.replace(/\./g,"-"));try{if(I.mkdirSync(i,{recursive:!0}),t.systemPrompt){let a=C.join(i,"system_prompt.txt");I.writeFileSync(a,t.systemPrompt),r.system_prompt_path=a,o.debug(`[saveDebugInfoToFiles] Saved system prompt to: ${a}`)}if(t.userPrompt)if(typeof t.userPrompt=="string"){let a=C.join(i,"user_prompt.txt");I.writeFileSync(a,t.userPrompt),r.user_prompt_path=a,o.debug(`[saveDebugInfoToFiles] Saved user prompt to: ${a}`)}else{let a=t.userPrompt.map(c=>Array.isArray(c.content)?{...c,content:c.content.map(l=>l.type==="image"&&l.file?.startsWith("data:")?{...l,file:"[base64 image data stripped]"}:l)}:c),n=C.join(i,"messages.json"),s={system:t.systemPrompt,messages:a};I.writeFileSync(n,JSON.stringify(s,null,2)),r.messages_path=n,o.debug(`[saveDebugInfoToFiles] Saved messages to: ${n}`)}if(t.rawLlmResponse){let a=u?u.replace(/[\/\\:]/g,"-"):"llm",n=C.join(i,`${a}_response.txt`);I.writeFileSync(n,t.rawLlmResponse),r.response_path=n,o.debug(`[saveDebugInfoToFiles] Saved LLM response to: ${n}`)}if(t.screenshotWithSom){let a=C.join(i,"screenshot.png");I.writeFileSync(a,Buffer.from(t.screenshotWithSom,"base64")),r.screenshot_path=a,o.debug(`[saveDebugInfoToFiles] Saved SOM screenshot to: ${a}`)}if(t.reasoningContent){let a=C.join(i,"reasoning.txt");I.writeFileSync(a,t.reasoningContent),r.reasoning_path=a,o.debug(`[saveDebugInfoToFiles] Saved reasoning to: ${a}`)}o.debug(`[saveDebugInfoToFiles] Saved ${Object.keys(r).length} artifacts for step ${e}`)}catch(a){o.error(`[saveDebugInfoToFiles] Failed to save debug info for step ${e}:`,a)}return r}async updateStepResult(e,t,u,r,i){if(!this.context.stepTracking)return;let a=this.context.stepTracking.results[e];if(a){if(t&&(a.status=t,this.context.stepTracking.currentStepId=void 0,this.context.stepTracking.onStepChange&&this.context.stepTracking.onStepChange(void 0)),u!==void 0&&(a.message=u),r&&a.artifacts.push(r),i){let n=i.tokenUsages?.[0]?.model,s=this.saveDebugInfoToFiles(e,i,n);Object.keys(s).length>0&&a.artifacts.push(s)}a.duration=Date.now()-a.startTime,this.context.stepTracking.onStepComplete&&this.context.stepTracking.onStepComplete(e,a)}}async writeExecutionResults(e,t){try{if(await I.promises.mkdir(e,{recursive:!0}),this.context.stepTracking?.results&&Object.keys(this.context.stepTracking.results).length>0){let u=C.join(e,"test-results.json");await I.promises.writeFile(u,JSON.stringify(this.context.stepTracking.results,null,2)),o.debug(`Test results written to: ${u}`)}if(t?.tokenUsages&&this.context.tokenUsages&&this.context.tokenUsages.length>0){let u=C.join(e,"token-usages.json");await I.promises.writeFile(u,JSON.stringify(this.context.tokenUsages,null,2)),o.debug(`Token usages written to: ${u}`)}if(this.context.aiActionDetails&&this.context.aiActionDetails.length>0){let u=C.join(e,"ai-actions.json");await I.promises.writeFile(u,JSON.stringify(this.context.aiActionDetails,null,2)),o.debug(`AI action details written to: ${u}`)}}catch(u){throw o.error("Failed to write execution results:",u),u}}};function N0(){let e=new Date,t=new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).formatToParts(e),u=t.find(w=>w.type==="year").value,r=t.find(w=>w.type==="month").value,i=t.find(w=>w.type==="day").value,a=t.find(w=>w.type==="hour").value,n=t.find(w=>w.type==="minute").value,s=t.find(w=>w.type==="second").value,c=String(e.getMilliseconds()).padStart(3,"0"),l=`${u}-${r}-${i}T${a}:${n}:${s}.${c}`,f=e.toISOString().slice(0,-1),m=Date.parse(l+"Z"),x=Date.parse(f+"Z"),g=Math.round((x-m)/(1e3*60)),b=String(Math.floor(Math.abs(g)/60)).padStart(2,"0"),v=String(Math.abs(g)%60).padStart(2,"0"),y=g<=0?"+":"-";return`${u}-${r}-${i}T${a}:${n}:${s}.${c}${y}${b}:${v}`}function an(e){let t=e.variableStore;return t.has("currentTime")||t.set("currentTime",N0()),{model:e.model,variableStore:t,organizationId:e.organizationId,organizationSettings:e.organizationSettings,executionHistory:e.executionHistory||[],testDataDir:e.testDataDir,downloadDir:e.downloadDir,useNativeGenerator:e.useNativeGenerator,autoDisableModal:e.autoDisableModal,tokenUsages:[],aiActionDetails:[]}}function x1(e){let t=new Rr,u=new Set(e.sensitiveKeys||[]);if(e.variables)for(let[i,a]of Object.entries(e.variables))t.set(i,a,u.has(i));let r=an({model:e.model,variableStore:t,testDataDir:e.testDataDir,downloadDir:e.downloadDir});return new rn(r)}var w1="1.0.0";export{Hr as a,sn as b,on as c,cn as d,ln as e,r0 as f,i0 as g,a0 as h,n0 as i,s0 as j,o0 as k,c0 as l,f0 as m,h0 as n,Ju as o,un as p,Yu as q,rn as r,an as s,x1 as t,w1 as u};
|
|
137
137
|
/*! Bundled license information:
|
|
138
138
|
|
|
139
139
|
@otplib/plugin-crypto/index.js:
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from "module";
|
|
2
|
+
const require = __createRequire(import.meta.url);
|
|
3
|
+
var Ge=[/iphone/i,/ipad/i,/android/i,/pixel/i,/galaxy/i,/mobile/i,/nexus/i,/blackberry/i,/kindle/i];function Fe(e){if(!e)return"desktop";for(let t of Ge)if(t.test(e))return"mobile";return"desktop"}function Be(e,t){if(!e||typeof e!="string")return e;let i=t instanceof Map?Object.fromEntries(t):t,r=n=>{let s=n.startsWith("$")?n.slice(1):n,a=i[s]??i[`$${s}`];return a!=null?String(a):void 0},o=e;return o=o.replace(/\{\{\s*\$?([^}]+?)\s*\}\}/g,(n,s)=>{let a=r(s.trim());return a!==void 0?a:n}),o=o.replace(/<secret>\$?([\w-]+)<\/secret>/g,(n,s)=>{let a=r(s);return a!==void 0?a:n}),o=o.replace(/\$\{([^}]+)\}/g,(n,s)=>{let a=r(s.trim());return a!==void 0?a:n}),o=o.replace(/\$([a-zA-Z_]\w*)/g,(n,s)=>{let a=r(s);return a!==void 0?a:n}),o}var He=class{version;goal;url;constructor(e,t){this.version=e,this.goal=t.goal,this.url=t.url}generatePrelude(){let e=`// version ${this.version}
|
|
4
|
+
`,t=this.goal,i=this.url;e+=`// Navigate to the specified URL
|
|
5
|
+
const targetUrl = process.env.PLAYWRIGHT_STARTING_URL || '${i}';
|
|
6
|
+
if (targetUrl !== null) {
|
|
7
|
+
await page.goto(targetUrl, { waitUntil: 'domcontentloaded' });
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// wait for page to load and give it a chance to stabilize
|
|
11
|
+
await page.waitForLoadState('load', { timeout: 15000 });
|
|
12
|
+
await page.waitForTimeout(2000);
|
|
13
|
+
|
|
14
|
+
`,e+=` // Goal:
|
|
15
|
+
`;let r=t.trim().split(`
|
|
16
|
+
`);for(let o of r)e+=` // ${o}
|
|
17
|
+
`;return e}generatePostlude(){return""}};var M="android:",T="ios:";function Ne(e){return e?e.startsWith(M)?"android":e.startsWith(T)?"ios":"web":"web"}function Re(e){return e?e.startsWith(M)||e.startsWith(T):!1}function ze(e){return!!e&&e.startsWith(M)}function Ue(e){return!!e&&e.startsWith(T)}function Ve(e){return e.startsWith(M)?e.slice(M.length):e.startsWith(T)?e.slice(T.length):e}function $e(e){return`${M}${e}`}function Xe(e){return`${T}${e}`}function R(e){return e?e.startsWith("http://")||e.startsWith("https://"):!1}function Ye(e){return e?!R(e):!1}function q(e){return e?R(e)?["web"]:["android","ios"]:["web","android","ios"]}function Je(e,t){if(!t)return!0;let i=q(t);return e==="desktop"||e==="mobile"?i.includes("web"):i.includes(e)}function je(e){return e.startsWith(T)?e:`${T}${e}`}function qe(e){let t=e.iosVersion?` (iOS ${e.iosVersion})`:"";return e.deviceType==="simulator"?`${e.name}${t} - Simulator`:`${e.name}${t}`}function Ze(e){return!!(/^[0-9a-fA-F]{40}$/.test(e)||/^[0-9a-fA-F]{8}-[0-9a-fA-F]{16}$/.test(e))}var Z="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",z=112,Q=1920,ee=1080,te=1920,ie=1080-z,re=1280,oe=720,ne=500,ae=500,L="Desktop Chrome",se=(e=>(e.Chromium="chromium",e.Firefox="firefox",e.Webkit="webkit",e))(se||{}),B={"Blackberry PlayBook":{name:"Blackberry PlayBook",userAgent:"Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/26.0 Safari/536.2+",screen:{width:600,height:1024},viewport:{width:600,height:1024},deviceScaleFactor:1,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"BlackBerry Z30":{name:"BlackBerry Z30",userAgent:"Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/26.0 Mobile Safari/537.10+",screen:{width:360,height:640},viewport:{width:360,height:640},deviceScaleFactor:2,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"Galaxy Note 3":{name:"Galaxy Note 3",userAgent:"Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/26.0 Mobile Safari/534.30",screen:{width:360,height:640},viewport:{width:360,height:640},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"Galaxy Note II":{name:"Galaxy Note II",userAgent:"Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/26.0 Mobile Safari/534.30",screen:{width:360,height:640},viewport:{width:360,height:640},deviceScaleFactor:2,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"Galaxy S III":{name:"Galaxy S III",userAgent:"Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/26.0 Mobile Safari/534.30",screen:{width:360,height:640},viewport:{width:360,height:640},deviceScaleFactor:2,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"Galaxy S5":{name:"Galaxy S5",userAgent:"Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36",screen:{width:360,height:640},viewport:{width:360,height:640},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Galaxy S8":{name:"Galaxy S8",userAgent:"Mozilla/5.0 (Linux; Android 7.0; SM-G950U Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36",screen:{width:360,height:740},viewport:{width:360,height:740},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Galaxy S9+":{name:"Galaxy S9+",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; SM-G965U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36",screen:{width:320,height:658},viewport:{width:320,height:658},deviceScaleFactor:4.5,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Galaxy S24":{name:"Galaxy S24",userAgent:"Mozilla/5.0 (Linux; Android 14; SM-S921U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36",screen:{width:360,height:780},viewport:{width:360,height:780},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Galaxy A55":{name:"Galaxy A55",userAgent:"Mozilla/5.0 (Linux; Android 14; SM-A556B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36",screen:{width:480,height:1040},viewport:{width:480,height:1040},deviceScaleFactor:2.25,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Galaxy Tab S4":{name:"Galaxy Tab S4",userAgent:"Mozilla/5.0 (Linux; Android 8.1.0; SM-T837A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Safari/537.36",screen:{width:712,height:1138},viewport:{width:712,height:1138},deviceScaleFactor:2.25,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Galaxy Tab S9":{name:"Galaxy Tab S9",userAgent:"Mozilla/5.0 (Linux; Android 14; SM-X710) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Safari/537.36",screen:{width:640,height:1024},viewport:{width:640,height:1024},deviceScaleFactor:2.5,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"iPad (gen 5)":{name:"iPad (gen 5)",userAgent:"Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:768,height:1024},viewport:{width:768,height:1024},deviceScaleFactor:2,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPad (gen 6)":{name:"iPad (gen 6)",userAgent:"Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:768,height:1024},viewport:{width:768,height:1024},deviceScaleFactor:2,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPad (gen 7)":{name:"iPad (gen 7)",userAgent:"Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:810,height:1080},viewport:{width:810,height:1080},deviceScaleFactor:2,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPad (gen 11)":{name:"iPad (gen 11)",userAgent:"Mozilla/5.0 (iPad; CPU OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/19E241 Safari/604.1",screen:{width:656,height:944},viewport:{width:656,height:944},deviceScaleFactor:2.5,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPad Mini":{name:"iPad Mini",userAgent:"Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:768,height:1024},viewport:{width:768,height:1024},deviceScaleFactor:2,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPad Pro 11":{name:"iPad Pro 11",userAgent:"Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:834,height:1194},viewport:{width:834,height:1194},deviceScaleFactor:2,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 6":{name:"iPhone 6",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/26.0 Mobile/15A372 Safari/604.1",screen:{width:375,height:667},viewport:{width:375,height:667},deviceScaleFactor:2,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 6 Plus":{name:"iPhone 6 Plus",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/26.0 Mobile/15A372 Safari/604.1",screen:{width:414,height:736},viewport:{width:414,height:736},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 7":{name:"iPhone 7",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/26.0 Mobile/15A372 Safari/604.1",screen:{width:375,height:667},viewport:{width:375,height:667},deviceScaleFactor:2,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 7 Plus":{name:"iPhone 7 Plus",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/26.0 Mobile/15A372 Safari/604.1",screen:{width:414,height:736},viewport:{width:414,height:736},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 8":{name:"iPhone 8",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/26.0 Mobile/15A372 Safari/604.1",screen:{width:375,height:667},viewport:{width:375,height:667},deviceScaleFactor:2,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 8 Plus":{name:"iPhone 8 Plus",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/26.0 Mobile/15A372 Safari/604.1",screen:{width:414,height:736},viewport:{width:414,height:736},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone SE":{name:"iPhone SE",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/26.0 Mobile/14E304 Safari/602.1",screen:{width:320,height:568},viewport:{width:320,height:568},deviceScaleFactor:2,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone SE (3rd gen)":{name:"iPhone SE (3rd gen)",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/26.0 Mobile/19E241 Safari/602.1",screen:{width:375,height:667},viewport:{width:375,height:667},deviceScaleFactor:2,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone X":{name:"iPhone X",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/26.0 Mobile/15A372 Safari/604.1",screen:{width:375,height:812},viewport:{width:375,height:812},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone XR":{name:"iPhone XR",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:414,height:896},viewport:{width:414,height:896},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 11":{name:"iPhone 11",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:414,height:896},viewport:{width:414,height:715},deviceScaleFactor:2,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 11 Pro":{name:"iPhone 11 Pro",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:375,height:812},viewport:{width:375,height:635},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 11 Pro Max":{name:"iPhone 11 Pro Max",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:414,height:896},viewport:{width:414,height:715},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 12":{name:"iPhone 12",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:390,height:844},viewport:{width:390,height:664},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 12 Pro":{name:"iPhone 12 Pro",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:390,height:844},viewport:{width:390,height:664},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 12 Pro Max":{name:"iPhone 12 Pro Max",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:428,height:926},viewport:{width:428,height:746},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 12 Mini":{name:"iPhone 12 Mini",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:375,height:812},viewport:{width:375,height:629},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 13":{name:"iPhone 13",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:390,height:844},viewport:{width:390,height:664},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 13 Pro":{name:"iPhone 13 Pro",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:390,height:844},viewport:{width:390,height:664},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 13 Pro Max":{name:"iPhone 13 Pro Max",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:428,height:926},viewport:{width:428,height:746},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 13 Mini":{name:"iPhone 13 Mini",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:375,height:812},viewport:{width:375,height:629},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 14":{name:"iPhone 14",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:390,height:844},viewport:{width:390,height:664},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 14 Plus":{name:"iPhone 14 Plus",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:428,height:926},viewport:{width:428,height:746},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 14 Pro":{name:"iPhone 14 Pro",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:393,height:852},viewport:{width:393,height:660},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 14 Pro Max":{name:"iPhone 14 Pro Max",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:430,height:932},viewport:{width:430,height:740},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 15":{name:"iPhone 15",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:393,height:852},viewport:{width:393,height:659},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 15 Plus":{name:"iPhone 15 Plus",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:430,height:932},viewport:{width:430,height:739},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 15 Pro":{name:"iPhone 15 Pro",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:393,height:852},viewport:{width:393,height:659},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"iPhone 15 Pro Max":{name:"iPhone 15 Pro Max",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1",screen:{width:430,height:932},viewport:{width:430,height:739},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"Kindle Fire HDX":{name:"Kindle Fire HDX",userAgent:"Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true",screen:{width:800,height:1280},viewport:{width:800,height:1280},deviceScaleFactor:2,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"LG Optimus L70":{name:"LG Optimus L70",userAgent:"Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/141.0.7390.16 Mobile Safari/537.36",screen:{width:384,height:640},viewport:{width:384,height:640},deviceScaleFactor:1.25,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Microsoft Lumia 550":{name:"Microsoft Lumia 550",userAgent:"Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 550) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36 Edge/14.14263",screen:{width:360,height:640},viewport:{width:360,height:640},deviceScaleFactor:2,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Microsoft Lumia 950":{name:"Microsoft Lumia 950",userAgent:"Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36 Edge/14.14263",screen:{width:360,height:640},viewport:{width:360,height:640},deviceScaleFactor:4,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Nexus 10":{name:"Nexus 10",userAgent:"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Safari/537.36",screen:{width:800,height:1280},viewport:{width:800,height:1280},deviceScaleFactor:2,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Nexus 4":{name:"Nexus 4",userAgent:"Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36",screen:{width:384,height:640},viewport:{width:384,height:640},deviceScaleFactor:2,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Nexus 5":{name:"Nexus 5",userAgent:"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36",screen:{width:360,height:640},viewport:{width:360,height:640},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Nexus 5X":{name:"Nexus 5X",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36",screen:{width:412,height:732},viewport:{width:412,height:732},deviceScaleFactor:2.625,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Nexus 6":{name:"Nexus 6",userAgent:"Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36",screen:{width:412,height:732},viewport:{width:412,height:732},deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Nexus 6P":{name:"Nexus 6P",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36",screen:{width:412,height:732},viewport:{width:412,height:732},deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Nexus 7":{name:"Nexus 7",userAgent:"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Safari/537.36",screen:{width:600,height:960},viewport:{width:600,height:960},deviceScaleFactor:2,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Nokia Lumia 520":{name:"Nokia Lumia 520",userAgent:"Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)",screen:{width:320,height:533},viewport:{width:320,height:533},deviceScaleFactor:1.5,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Nokia N9":{name:"Nokia N9",userAgent:"Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13",screen:{width:480,height:854},viewport:{width:480,height:854},deviceScaleFactor:1,isMobile:!0,hasTouch:!0,defaultBrowserType:"webkit"},"Pixel 2":{name:"Pixel 2",userAgent:"Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36",screen:{width:411,height:731},viewport:{width:411,height:731},deviceScaleFactor:2.625,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Pixel 2 XL":{name:"Pixel 2 XL",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36",screen:{width:411,height:823},viewport:{width:411,height:823},deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Pixel 3":{name:"Pixel 3",userAgent:"Mozilla/5.0 (Linux; Android 9; Pixel 3 Build/PQ1A.181105.017.A1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36",screen:{width:393,height:786},viewport:{width:393,height:786},deviceScaleFactor:2.75,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Pixel 4":{name:"Pixel 4",userAgent:"Mozilla/5.0 (Linux; Android 10; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36",screen:{width:353,height:745},viewport:{width:353,height:745},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Pixel 4a (5G)":{name:"Pixel 4a (5G)",userAgent:"Mozilla/5.0 (Linux; Android 11; Pixel 4a (5G)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36",screen:{width:412,height:892},viewport:{width:412,height:765},deviceScaleFactor:2.63,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Pixel 5":{name:"Pixel 5",userAgent:"Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36",screen:{width:393,height:851},viewport:{width:393,height:727},deviceScaleFactor:2.75,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Pixel 7":{name:"Pixel 7",userAgent:"Mozilla/5.0 (Linux; Android 14; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36",screen:{width:412,height:915},viewport:{width:412,height:839},deviceScaleFactor:2.625,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Moto G4":{name:"Moto G4",userAgent:"Mozilla/5.0 (Linux; Android 7.0; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Mobile Safari/537.36",screen:{width:360,height:640},viewport:{width:360,height:640},deviceScaleFactor:3,isMobile:!0,hasTouch:!0,defaultBrowserType:"chromium"},"Desktop Chrome HiDPI":{name:"Desktop Chrome HiDPI",userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Safari/537.36",screen:{width:1792,height:1120},viewport:{width:1280,height:720},deviceScaleFactor:2,isMobile:!1,hasTouch:!1,defaultBrowserType:"chromium"},"Desktop Edge HiDPI":{name:"Desktop Edge HiDPI",userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Safari/537.36 Edg/141.0.7390.16",screen:{width:1792,height:1120},viewport:{width:1280,height:720},deviceScaleFactor:2,isMobile:!1,hasTouch:!1,defaultBrowserType:"chromium"},"Desktop Firefox HiDPI":{name:"Desktop Firefox HiDPI",userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:142.0.1) Gecko/20100101 Firefox/142.0.1",screen:{width:1792,height:1120},viewport:{width:1280,height:720},deviceScaleFactor:2,isMobile:!1,hasTouch:!1,defaultBrowserType:"firefox"},"Desktop Safari":{name:"Desktop Safari",userAgent:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Safari/605.1.15",screen:{width:1792,height:1120},viewport:{width:1280,height:720},deviceScaleFactor:2,isMobile:!1,hasTouch:!1,defaultBrowserType:"webkit"},"Desktop Chrome":{name:"Desktop Chrome",displayName:"Playwright Chromium",userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Safari/537.36",screen:{width:1920,height:1080},viewport:{width:1920,height:1080},deviceScaleFactor:1,isMobile:!1,hasTouch:!1,defaultBrowserType:"chromium"},"Desktop Chrome Medium Resolution":{name:"Desktop Chrome Medium Resolution",displayName:"Playwright Chromium",userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Safari/537.36",screen:{width:1280,height:720},viewport:{width:1280,height:720},deviceScaleFactor:1,isMobile:!1,hasTouch:!1,defaultBrowserType:"chromium"},"Desktop Chrome (Branded)":{name:"Desktop Chrome (Branded)",displayName:"Google Chrome",userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Safari/537.36",screen:{width:1920,height:1080},viewport:{width:1920,height:1080},deviceScaleFactor:1,isMobile:!1,hasTouch:!1,defaultBrowserType:"chromium",channel:"chrome"},"Desktop Chrome Medium Resolution (Branded)":{name:"Desktop Chrome Medium Resolution (Branded)",displayName:"Google Chrome",userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Safari/537.36",screen:{width:1280,height:720},viewport:{width:1280,height:720},deviceScaleFactor:1,isMobile:!1,hasTouch:!1,defaultBrowserType:"chromium",channel:"chrome"},"Desktop Edge":{name:"Desktop Edge",userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Safari/537.36 Edg/141.0.7390.16",screen:{width:1920,height:1080},viewport:{width:1280,height:720},deviceScaleFactor:1,isMobile:!1,hasTouch:!1,defaultBrowserType:"chromium"},"Desktop Edge (Branded)":{name:"Desktop Edge (Branded)",displayName:"Microsoft Edge",userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Safari/537.36 Edg/141.0.7390.16",screen:{width:1920,height:1080},viewport:{width:1920,height:1080},deviceScaleFactor:1,isMobile:!1,hasTouch:!1,defaultBrowserType:"chromium",channel:"msedge"},"Desktop Edge Medium Resolution (Branded)":{name:"Desktop Edge Medium Resolution (Branded)",displayName:"Microsoft Edge",userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.16 Safari/537.36 Edg/141.0.7390.16",screen:{width:1280,height:720},viewport:{width:1280,height:720},deviceScaleFactor:1,isMobile:!1,hasTouch:!1,defaultBrowserType:"chromium",channel:"msedge"},"Desktop Firefox":{name:"Desktop Firefox",userAgent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:142.0.1) Gecko/20100101 Firefox/142.0.1",screen:{width:1920,height:1080},viewport:{width:1280,height:720},deviceScaleFactor:1,isMobile:!1,hasTouch:!1,defaultBrowserType:"firefox"}},le=(e=>(e.Desktop="desktop",e.Mobile="mobile",e))(le||{}),ce={desktop:["Desktop Chrome","Desktop Chrome Medium Resolution","Desktop Chrome (Branded)","Desktop Chrome Medium Resolution (Branded)","Desktop Edge (Branded)","Desktop Edge Medium Resolution (Branded)","Desktop Safari"],mobile:["iPhone 15 Pro Max","iPhone 15 Pro","iPhone 15 Plus","iPhone 15","iPhone 14 Pro Max","iPhone 14 Pro","iPhone 14 Plus","iPhone 14","iPhone 13 Pro Max","iPhone 13 Pro","iPhone 13","iPhone 13 Mini","iPhone 12 Pro Max","iPhone 12 Pro","iPhone 12","iPhone 12 Mini","iPhone 11 Pro Max","iPhone 11 Pro","iPhone 11","iPhone XR","iPhone X","iPhone SE (3rd gen)","iPhone SE","iPhone 8 Plus","iPhone 8","iPhone 7 Plus","iPhone 7","iPhone 6 Plus","iPhone 6","Galaxy S24","Galaxy A55","Galaxy S9+","Galaxy S8","Galaxy S5","Galaxy Note 3","Galaxy Note II","Galaxy S III","Pixel 7","Pixel 5","Pixel 4a (5G)","Pixel 4","Pixel 3","Pixel 2 XL","Pixel 2","Nexus 6P","Nexus 6","Nexus 5X","Nexus 5","Nexus 4","Moto G4","LG Optimus L70","Microsoft Lumia 950","Microsoft Lumia 550","Nokia Lumia 520","Nokia N9","BlackBerry Z30"]},K=(e,t=!1)=>{let i=["chromium"];return t&&i.push("webkit"),ce[e].map(r=>B[r]).filter(r=>r.defaultBrowserType&&i.includes(r.defaultBrowserType))},Qe=()=>Object.keys(B),H=e=>B[e],et={desktop:{label:"Desktop",type:"desktop",devices:K("desktop")},mobile:{label:"Mobile Web",type:"mobile",devices:K("mobile")}},tt={desktop:{label:"Desktop",type:"desktop",devices:K("desktop",!0)},mobile:{label:"Mobile Web",type:"mobile",devices:K("mobile",!0)}},U=(e,t=!1)=>{let i={userAgent:Z,viewport:{width:te,height:ie},isMobile:!1,hasTouch:!1};if(!e||e===L)return i;let r=H(e);if(!r)return i;let{width:o,height:n}=r.viewport,s=Math.max(ne/o,1),a=Math.max(ae/n,1),c=Math.max(s,a),d={width:Math.round(o*c),height:Math.round(n*c)};return{userAgent:r.userAgent,viewport:t?d:r.viewport,isMobile:r.isMobile,hasTouch:r.hasTouch}},it=e=>{let t={width:Q,height:ee};if(!e||e===L)return t;let i=U(e);return i.viewport?{width:i.viewport.width,height:i.viewport.height+z}:t},rt=e=>{let t={width:re,height:oe};if(!e||e===L)return t;let i=U(e);return i.viewport?{width:i.viewport.width,height:i.viewport.height}:t},ot=e=>!e||e===L?void 0:H(e)?.channel,nt=e=>!e||e===L?"chromium":H(e)?.defaultBrowserType??"chromium";var he=(e=>(e.PASSWORD="password",e.OAUTH2="oauth2",e.SSO="sso",e.API="api",e))(he||{}),ue=(e=>(e.SMS="sms",e.EMAIL="email",e.TOTP="totp",e))(ue||{});import{z as l}from"zod";var de=l.enum(["JS_CODE","AI_MODE"]),V=l.object({type:de,expression:l.string()}),pe=l.enum(["DRAFT","STEP","ACTION","IF_ELSE","WHILE_LOOP"]),I=l.object({uid:l.string(),type:pe}),fe=l.object({action_data:l.object({action_name:l.string(),kwargs:l.record(l.any()).optional(),args:l.array(l.any()).optional()}),action_description:l.string().optional(),url:l.string().optional(),xpath:l.string().nullable().optional(),locator:l.string().nullable().optional(),css_selector:l.string().nullable().optional(),unique_selector:l.string().nullable().optional(),element_index:l.number().nullable().optional(),frame_path:l.array(l.any()).optional(),artifacts:l.record(l.any()).optional(),feedback:l.string().optional(),original_browser_use_action:l.any().optional()}).passthrough(),me=I.extend({type:l.literal("DRAFT"),description:l.string()}),ge=I.extend({type:l.literal("ACTION"),description:l.string(),action_entity:fe.optional(),locator:l.string().optional(),use_pure_vision:l.boolean().optional()}),k=l.lazy(()=>l.union([me,ge,I.extend({type:l.literal("STEP"),description:l.string().optional().default(""),statements:l.array(k),reference_id:l.number().optional()}),I.extend({type:l.literal("IF_ELSE"),description:l.string().optional(),condition:V,then:l.array(k),else:l.array(k).optional()}),I.extend({type:l.literal("WHILE_LOOP"),description:l.string().optional(),condition:V,body:l.array(k),timeout_ms:l.number().optional()})])),$=l.object({version:l.string().optional(),goal:l.string(),url:l.string().optional(),final_feedback:l.string().optional(),completed:l.boolean().optional(),success:l.boolean().optional(),statements:l.array(k),teardown:l.array(k).optional(),last_modified_at:l.string().optional()});import{stringify as X,parse as Y,parseAllDocuments as at}from"yaml";import{v4 as y}from"uuid";function Se(e,t){let i={...t?.test_case_id!==void 0?{test_case_id:t.test_case_id}:{},...t?.name?{name:t.name}:{},goal:e.goal,url:e.url,statements:e.statements.map(D)};return e.final_feedback&&(i.final_feedback=e.final_feedback),e.teardown&&e.teardown.length>0&&(i.teardown=e.teardown.map(D)),i}var J={lineWidth:120,defaultKeyType:"PLAIN",defaultStringType:"PLAIN"};function st(e,t){return X(Se(e,t),J)}function lt(e){return e.map(t=>X(t,J)).join(`---
|
|
18
|
+
`)}function D(e){switch(e.type){case"DRAFT":return ct(e);case"ACTION":return ht(e);case"STEP":return ut(e);case"IF_ELSE":return dt(e);case"WHILE_LOOP":return pt(e)}}function ct(e){return e.description}function ht(e){let t=e.action_entity?.action_data?.action_name??e.action_entity?.action?.action_name,i=e.action_entity?.action_data?.kwargs??e.action_entity?.action?.kwargs;if(t==="verify"){let a=i?.statement;if(typeof a=="string"&&!e.action_entity?.locator&&!e.action_entity?.xpath)return{VERIFY:a}}if(t==="go_to_url"){let a=i?.url;if(typeof a=="string"&&!e.action_entity?.locator&&!e.action_entity?.xpath){let c={URL:a};return i?.new_tab===!0&&(c.new_tab=!0),typeof i?.timeout_seconds=="number"&&(c.timeout_seconds=i.timeout_seconds),c}}if(t==="js_code"){let a=i?.code;if(typeof a=="string"&&!e.action_entity?.locator&&!e.action_entity?.xpath)return{JS:a}}if(!e.action_entity)return e.description;let r=e.action_entity.action_data??e.action_entity.action;if(!r)return e.description;let o={action:r.action_name,description:e.description},n=e.locator??e.action_entity.locator;n&&(o.locator=n);let s=e.action_entity.xpath;if(s&&(o.xpath=s),e.use_pure_vision&&(o.use_pure_vision=!0),r.kwargs&&Object.keys(r.kwargs).length>0)for(let[a,c]of Object.entries(r.kwargs))o[a]=c;return r.args&&r.args.length>0&&(o.args=r.args),o}function ut(e){let t={STEP:e.description,statements:e.statements.map(D)};return e.reference_id!==void 0&&(t.reference_id=e.reference_id),t}function dt(e){let t={IF:Me(e.condition),THEN:e.then.map(D)};return e.else&&e.else.length>0&&(t.ELSE=e.else.map(D)),t}function pt(e){let t={WHILE:Me(e.condition),DO:e.body.map(D)};return e.timeout_ms!==void 0&&(t.timeout_ms=e.timeout_ms),t}function Me(e){return e.type==="JS_CODE"?`js:${e.expression}`:e.expression}function ft(e){let t=at(e),i;if(t.length>1||t.length===1&&!Array.isArray(t[0]?.toJSON()))i=t.map((r,o)=>r.errors.length>0?{__parseError:`Document ${o+1}: ${r.errors[0].message}`}:r.toJSON());else{let r;try{r=Y(e)}catch(o){throw new Error(`Invalid YAML: ${o instanceof Error?o.message:String(o)}`)}if(!Array.isArray(r))throw new Error("Expected a YAML array or multi-document YAML (separated by ---)");i=r}return i.map((r,o)=>{try{if(r&&typeof r=="object"&&"__parseError"in r)return{error:r.__parseError};if(!r||typeof r!="object")return{error:`Item ${o+1}: expected an object`};let n=r,s=typeof n.name=="string"&&n.name.trim()||void 0,a=typeof n.goal=="string"?n.goal.trim():"";if(!a)return{error:`Item ${o+1}: missing "goal" field`};if(Array.isArray(n.statements))try{let c=X(n,J),d=C(c);return{name:s,goal:d.goal,testFlow:d}}catch{}return{name:s,goal:a}}catch(n){return{error:`Item ${o+1}: ${n instanceof Error?n.message:String(n)}`}}})}function mt(e){try{let t=Y(e);if(!t||typeof t!="object")return{};let i={};return typeof t.test_case_id=="number"&&Number.isFinite(t.test_case_id)&&(i.test_case_id=t.test_case_id),typeof t.name=="string"&&t.name.trim()&&(i.name=t.name.trim()),i}catch{return{}}}var we=1024*1024;function C(e){if(e.length>we)throw new Error(`YAML input too large (${e.length} bytes, max ${we})`);let t=Y(e);if(!t||typeof t!="object")throw new Error("Invalid YAML: expected an object at root level");let i={version:"1.2.0",goal:t.goal,url:t.url,statements:W(t.statements??[])};t.final_feedback&&(i.final_feedback=t.final_feedback),t.teardown&&Array.isArray(t.teardown)&&(i.teardown=W(t.teardown));let r=$.safeParse(i);if(!r.success)throw new Error(`Invalid TestFlow after YAML conversion: ${JSON.stringify(r.error.errors)}`);return r.data}function W(e){if(!Array.isArray(e))throw new Error("Expected an array of statements");return e.map(gt)}function gt(e){if(typeof e=="string")return wt(e);if(typeof e!="object"||e===null)throw new Error(`Invalid statement: expected string or object, got ${typeof e}`);let t=e;if("IF"in t)return St(t);if("WHILE"in t)return Mt(t);if("STEP"in t)return Tt(t);if("VERIFY"in t){let i=t.VERIFY;return{uid:y(),type:"ACTION",description:`Verify: ${i}`,action_entity:{action_description:`Verify: ${i}`,action_data:{action_name:"verify",kwargs:{statement:typeof i=="string"?i:String(i)}}}}}if("URL"in t){let i=t.URL,r=t.new_tab===!0?!0:void 0,o=typeof t.timeout_seconds=="number"?t.timeout_seconds:void 0,n={url:typeof i=="string"?i:String(i)};return r&&(n.new_tab=!0),o!==void 0&&(n.timeout_seconds=o),{uid:y(),type:"ACTION",description:`Navigate to ${i}`,action_entity:{action_description:`Navigate to ${i}`,action_data:{action_name:"go_to_url",kwargs:n}}}}if("JS"in t){let i=t.JS;return{uid:y(),type:"ACTION",description:"JS code block",action_entity:{action_description:"JS code block",action_data:{action_name:"js_code",kwargs:{code:typeof i=="string"?i:String(i)}}}}}if("action"in t)return bt(t);if("description"in t&&typeof t.description=="string")return{uid:y(),type:"DRAFT",description:t.description};throw new Error(`Cannot infer statement type from object: ${JSON.stringify(t)}`)}function wt(e){return{uid:y(),type:"DRAFT",description:e}}function Te(e){if(typeof e!="string")throw new Error(`Condition must be a string, got ${typeof e}`);return e.startsWith("js:")?{type:"JS_CODE",expression:e.slice(3)}:{type:"AI_MODE",expression:e}}function St(e){let t=Te(e.IF),i=e.THEN;if(!Array.isArray(i))throw new Error("IF_ELSE requires a THEN array");let r={uid:y(),type:"IF_ELSE",condition:t,then:W(i)};return"ELSE"in e&&Array.isArray(e.ELSE)&&(r.else=W(e.ELSE)),r}function Mt(e){let t=Te(e.WHILE),i=e.DO;if(!Array.isArray(i))throw new Error("WHILE_LOOP requires a DO array");let r={uid:y(),type:"WHILE_LOOP",condition:t,body:W(i)};return typeof e.timeout_ms=="number"&&(r.timeout_ms=e.timeout_ms),r}function Tt(e){let t=typeof e.STEP=="string"?e.STEP:"";if(!Array.isArray(e.statements))throw new Error("STEP requires a statements array");let i={uid:y(),type:"STEP",description:t,statements:W(e.statements)};return typeof e.reference_id=="number"&&(i.reference_id=e.reference_id),i}var yt=new Set(["action","description","locator","xpath","use_pure_vision"]);function bt(e){let t=typeof e.action=="string"?e.action:String(e.action),i=typeof e.description=="string"?e.description:"",r=typeof e.locator=="string"?e.locator:void 0,o=typeof e.xpath=="string"?e.xpath:void 0,n=typeof e.use_pure_vision=="boolean"?e.use_pure_vision:void 0,s={};for(let[d,h]of Object.entries(e))yt.has(d)||(s[d]=h);let a={action_description:i,action_data:{action_name:t,kwargs:Object.keys(s).length>0?s:{}}};r&&(a.locator=r),o&&(a.xpath=o);let c={uid:y(),type:"ACTION",description:i,action_entity:a};return n&&(c.use_pure_vision=!0),c}import{parse as Pt,stringify as At}from"yaml";function ye(e,t){let i=[];t.version!=="1.0"&&i.push(`Unsupported patch version: ${t.version}`),(!Array.isArray(t.operations)||t.operations.length===0)&&i.push("Patch must have at least one operation");for(let r=0;r<t.operations.length;r++){let o=t.operations[r],n=`operations[${r}]`;switch(o.reason||i.push(`${n}: missing reason`),o.op){case"remove":{(typeof o.index!="number"||o.index<0||o.index>=e.length)&&i.push(`${n}: index ${o.index} out of bounds (0..${e.length-1})`);break}case"modify":{(typeof o.index!="number"||o.index<0||o.index>=e.length)&&i.push(`${n}: index ${o.index} out of bounds (0..${e.length-1})`),(o.statement===void 0||o.statement===null)&&i.push(`${n}: missing statement`);break}case"insert":{(typeof o.index!="number"||o.index<0||o.index>=e.length)&&i.push(`${n}: index ${o.index} out of bounds (0..${e.length-1})`),o.position!=="before"&&o.position!=="after"&&i.push(`${n}: position must be 'before' or 'after'`),(o.statement===void 0||o.statement===null)&&i.push(`${n}: missing statement`);break}default:i.push(`${n}: unknown operation type "${o.op}"`)}}return{valid:i.length===0,errors:i}}function be(e,t){let i=ye(e,t);if(!i.valid)throw new Error(`Invalid patch: ${i.errors.join("; ")}`);let r=[...e],o=t.operations.map((a,c)=>({...a,originalOrder:c})),n={remove:0,modify:1,insert:2},s=[...o].sort((a,c)=>a.index!==c.index?c.index-a.index:n[a.op]-n[c.op]);for(let a of s)switch(a.op){case"remove":r.splice(a.index,1);break;case"modify":r[a.index]=a.statement;break;case"insert":a.position==="before"?r.splice(a.index,0,a.statement):r.splice(a.index+1,0,a.statement);break}return r}function vt(e,t){let i=Pt(e);if(!i||typeof i!="object")throw new Error("Invalid YAML: expected an object at root level");let r=i.statements;if(!Array.isArray(r))throw new Error('YAML must have a "statements" array');let o=be(r,t);i.statements=o;let n=At(i,{lineWidth:120,defaultKeyType:"PLAIN",defaultStringType:"PLAIN"});return C(n),{modifiedYaml:n,modifiedStatements:o}}var A=e=>{let t=[];switch(e.type){case"STEP":e.statements&&t.push({key:"statements",statements:e.statements});break;case"IF_ELSE":e.then&&t.push({key:"then",statements:e.then}),e.else&&t.push({key:"else",statements:e.else});break;case"WHILE_LOOP":e.body&&t.push({key:"body",statements:e.body});break}return t},w=(e,t,i=void 0,r="root")=>{for(let o=0;o<e.length;o++){let n=e[o],s=n.uid;if(s===t)return{stableId:s,path:[o],statement:n,parent:i,containerKey:r,index:o};let a=A(n);for(let c of a){let d=w(c.statements,t,n,c.key);if(d)return{...d,path:[o,c.key,...d.path]}}}return null},_=(e,t,i)=>{let r=w(e,t);if(!r)return null;let{statement:o,parent:n,containerKey:s,index:a}=r,c=null;switch(o.type){case"DRAFT":case"ACTION":c=E(e,r)||O(e,r);break;case"STEP":if(o.statements&&o.statements.length>0)return o.statements[0];c=E(e,r)||O(e,r);break;case"IF_ELSE":if(i===!0&&o.then&&o.then.length>0)return o.then[0];if(i===!1&&o.else&&o.else.length>0)return o.else[0];c=E(e,r)||O(e,r);break;case"WHILE_LOOP":if(i===!0&&o.body&&o.body.length>0)return o.body[0];c=E(e,r)||O(e,r);break;default:c=E(e,r)||O(e,r);break}if(n&&n.type==="WHILE_LOOP"&&s==="body"){if(!c)return n;let d=w(e,c.uid);if(!d||d.parent!==n)return n}return c},E=(e,t)=>{if(!t.parent)return e[t.index+1]||null;let r=A(t.parent).find(o=>o.key===t.containerKey);return r&&t.index+1<r.statements.length?r.statements[t.index+1]:null},O=(e,t)=>{if(!t.parent)return null;let i=t.parent.uid,r=w(e,i);return r?E(e,r)||O(e,r):null},N=e=>{let t=[],i=r=>{for(let o of r){t.push(o);let n=A(o);for(let s of n)i(s.statements)}};return i(e),t},kt=e=>{switch(e.type){case"DRAFT":case"ACTION":return!0;case"STEP":return!0;case"IF_ELSE":case"WHILE_LOOP":return!0;default:return!1}},_t=(e,t,i)=>{if(!w(e,t))return null;if(i===null){let a=[],c=t;for(;c!==null&&w(e,c);)if(a.push(c),c=_(e,c)?.uid||null,a.length>1e3)return null;return a}if(!w(e,i))return null;if(t===i)return[];let n=[],s=t;for(;s&&s!==i;){let a=w(e,s);if(!a)break;if(n.push(s),a.statement.type==="IF_ELSE"){let c=Et(a.statement,i);c?s=_(e,s,c==="then")?.uid||null:s=_(e,s)?.uid||null}else a.statement.type==="WHILE_LOOP"?Ot(a.statement,i)?s=_(e,s,!0)?.uid||null:s=_(e,s,!1)?.uid||null:s=_(e,s)?.uid||null;if(n.length>1e3)return null}return s===i?n:null},Et=(e,t)=>{if(e.type!=="IF_ELSE")return null;let i=e;return i.then&&w(i.then,t)?"then":i.else&&w(i.else,t)?"else":null},Ot=(e,t)=>{if(e.type!=="WHILE_LOOP")return!1;let i=e;return!!(i.body&&w(i.body,t))};function Pe(e){for(let t of e){if(t.type==="STEP"&&t.reference_id)return!0;let i=A(t);for(let r of i)if(Pe(r.statements))return!0}return!1}function xt(e){let t=new Set;function i(r){for(let o of r){o.type==="STEP"&&o.reference_id&&t.add(o.reference_id);let n=A(o);for(let s of n)i(s.statements)}}return i(e),Array.from(t)}var Lt=e=>e.startsWith("ai_")?!0:["js_code","function","assert","verify","wait_for_download_complete","extract_activation_code","extract_email_content"].includes(e),It=e=>!["js_code","function","assert","ai_assert","verify","ai_extract","ai_wait_until","upload_file","login","extract_activation_code","extract_email_content","ai_step"].includes(e),x=(e,t,i)=>{e.forEach((r,o)=>{let n=`${t}.${o}`;r.type==="DRAFT"?i[n]={description:r.description||"Draft",action_entity:void 0}:r.type==="ACTION"?i[n]={description:r.description||"Action",action_entity:r.action_entity}:r.type==="STEP"&&r.statements?x(r.statements,n,i):r.type==="IF_ELSE"?(i[n]={description:"IF "+(r.condition?.expression||""),action_entity:void 0},r.then&&x(r.then,`${n}.then`,i),r.else&&x(r.else,`${n}.else`,i)):r.type==="WHILE_LOOP"&&(i[n]={description:"WHILE "+(r.condition?.expression||""),action_entity:void 0},r.body&&x(r.body,`${n}.body`,i))})};function Dt(e){if(!e?.statements||!Array.isArray(e.statements))return{};let t={};return x(e.statements,"main",t),e.teardown&&Array.isArray(e.teardown)&&x(e.teardown,"teardown",t),t}function P(e,t,i){let r=e+".",o=t.filter(([h])=>h===e||h.startsWith(r));if(o.length===0)return[];let n=[],s=new Set;for(let[h]of o){let u=h===e?"":h.slice(r.length);if(!u)continue;let m=u.split(".")[0];s.has(m)||s.add(m)}let a=Array.from(s);a.sort((h,u)=>{let m=/^\d+$/.test(h)?parseInt(h,10):-1,S=/^\d+$/.test(u)?parseInt(u,10):-1;return m>=0&&S>=0?m-S:h==="then"&&u==="else"?-1:h==="else"&&u==="then"||h==="body"?1:u==="body"?-1:h.localeCompare(u)});function c(h){return i[h]}function d(h){let u=h.match(/^(IF|WHILE)\s+([\s\S]+)$/);return{type:"JS_CODE",expression:(u?u[2].trim():h)||"true"}}for(let h of a){let u=e?`${e}.${h}`:h,m=c(u),S=m?.description??"",G=u;if(h==="then"){let p=`${e}.then`,b=`${e}.else`,f=P(p,t,i),v=P(b,t,i),F=c(e),Ke=F?d(F.description):{type:"JS_CODE",expression:"true"};n.push({uid:e,type:"IF_ELSE",condition:Ke,then:f,...v.length>0?{else:v}:{}});continue}if(h==="else")continue;if(h==="body"){let p=`${e}.body`,b=P(p,t,i),f=c(e),v=f?d(f.description):{type:"JS_CODE",expression:"true"};n.push({uid:e,type:"WHILE_LOOP",condition:v,body:b});continue}let g=`${e}.${h}`,Ie=t.some(([p])=>p.startsWith(g+".then.")||p===g+".then"),De=t.some(([p])=>p.startsWith(g+".else.")||p===g+".else"),We=t.some(([p])=>p.startsWith(g+".body.")||p===g+".body"),Ce=t.filter(([p])=>{if(!p.startsWith(g+"."))return!1;let f=p.slice(g.length+1).split(".")[0];return/^\d+$/.test(f)&&f!=="then"&&f!=="else"&&f!=="body"});if(Ie||De){let p=g+".then",b=g+".else",f=P(p,t,i),v=P(b,t,i),F=m?d(S):{type:"JS_CODE",expression:"true"};n.push({uid:u,type:"IF_ELSE",condition:F,then:f,...v.length>0?{else:v}:{}})}else if(We){let p=g+".body",b=P(p,t,i),f=m?d(S):{type:"JS_CODE",expression:"true"};n.push({uid:u,type:"WHILE_LOOP",condition:f,body:b})}else if(Ce.length>0){let p=P(g,t,i);n.push({uid:u,type:"STEP",description:S||"Group",statements:p})}else n.push({uid:u,type:"ACTION",description:S||"Action",action_entity:m?.action_entity})}return n}function Wt(e){let t=Object.entries(e),i=r=>{let o=r+".";return t.some(([s])=>s===r||s.startsWith(o))?P(r,t,e):[]};return{before:i("before"),main:i("main"),teardown:i("teardown"),after:i("after")}}var Ct=.5;function Kt(e,t){let i=t?.coverageThreshold??Ct,r=[],o=[],n;try{n=C(e)}catch(u){return{valid:!1,errors:[`Invalid YAML: ${u.message}`],warnings:[],stats:{total:0,withLocator:0,coverage:0}}}!n.goal&&!n.suite&&r.push('Missing required field: "goal"'),!n.statements?.length&&!n.suite&&r.push('Missing required field: "statements"');let s=[...N(n.statements??[]),...n.teardown?N(n.teardown):[]],a=0,c=0;for(let u of s)if(!(u.type!=="DRAFT"&&u.type!=="ACTION"||(u.description?.toLowerCase()??"").startsWith("verify:"))){if(u.type==="ACTION"){let G=u.action_entity?.action_data?.action_name??"";if(G==="verify"||G==="ai_assert"||G==="done")continue}if(a++,u.type==="ACTION"){let S=u;(S.action_entity?.locator||S.action_entity?.xpath)&&c++}}let d=a>0?c/a:0,h=Math.round(d*100);return a>0&&d<i&&o.push(`Low locator coverage: ${c}/${a} statements (${h}%) have locators. Tests with locators replay ~10x faster. Use MCP tools (act, get_locator) to enrich your test flow.`),{valid:r.length===0,errors:r,warnings:o,stats:{total:a,withLocator:c,coverage:h}}}function Gt(){return{version:"1.0",entries:{}}}function Ft(e,t){return{action_entity:e,updated_at:new Date().toISOString(),updated_by:{source:"runner",test_run_id:t}}}function Bt(e,t){let i=t?.entries[e.uid],r=i?.action_entity??e.action_entity;return e.locator&&r?{...r,locator:e.locator}:i?i.action_entity:e.action_entity?e.action_entity:null}function Ht(e,t,i,r){return e.entries[t]={action_entity:i,updated_at:new Date().toISOString(),updated_by:r},e}function Nt(e,t){let i=e??{version:"1.0",entries:{}};for(let[r,o]of t)i.entries[r]=o;return i}function Rt(e){return e?Object.keys(e.entries).length===0:!0}function zt(e){return e?Object.keys(e.entries).length:0}function Ut(e,t){if(!t||Object.keys(t.entries).length===0)return e;let i=j(e.statements,t),r=e.teardown?j(e.teardown,t):void 0;return{...e,statements:i,teardown:r}}function j(e,t){return e.map(i=>Vt(i,t))}function Vt(e,t){if(e.type==="ACTION"){let o=e,n=t.entries[o.uid];return n?{...o,action_entity:n.action_entity}:o}let i=A(e);if(i.length===0)return e;let r={};for(let o of i)r[o.key]=j(o.statements,t);return{...e,...r}}var Ae=(e=>(e.DRAFT="DRAFT",e.STEP="STEP",e.ACTION="ACTION",e.IF_ELSE="IF_ELSE",e.WHILE_LOOP="WHILE_LOOP",e))(Ae||{}),ve=(e=>(e.JS_CODE="JS_CODE",e.AI_MODE="AI_MODE",e))(ve||{}),$t=18e4;var Xt=class ke{data={};sensitive=new Set;get(t){return this.data[t]}set(t,i,r=!1){this.data[t]=i,r?this.sensitive.add(t):this.sensitive.has(t)&&this.sensitive.delete(t)}getAll(){return{...this.data}}isSensitive(t){return this.sensitive.has(t)}getAllSensitiveKeys(){return new Set(this.sensitive)}delete(t){return this.sensitive.delete(t),delete this.data[t]}clear(){this.data={},this.sensitive.clear()}has(t){return t in this.data}get size(){return Object.keys(this.data).length}merge(t){for(let[i,r]of Object.entries(t.getAll()))this.set(i,r,t.isSensitive(i))}toJSON(){return{data:{...this.data},sensitiveKeys:Array.from(this.sensitive)}}static fromJSON(t){let i=new ke;if(t.data){let r=new Set(t.sensitiveKeys||[]);for(let[o,n]of Object.entries(t.data))i.set(o,n,r.has(o))}return i}};var _e="claude-sonnet-4-6",Ee="gemini-2.5-pro",Oe="claude-haiku-4-5",xe="gemini-2.5-pro";function Yt(e){return{copilot:e?.models?.copilot||_e,webagent:e?.models?.webagent||Ee}}function Jt(e){if(e){if(e.WEB_AGENT_MODEL)return e.WEB_AGENT_MODEL;if(e.ANTHROPIC_API_KEY)return Oe;if(e.GOOGLE_API_KEY)return xe}}var Le=(e=>(e.INITIALIZING="initializing",e.READY="ready",e.PROCESSING="processing",e.STOPPING="stopping",e.WAITING_USER="waiting_user",e.COMPLETED="completed",e.FAILED="failed",e))(Le||{});function jt(e){let t=e.trim();if(!t||t.startsWith("List of devices"))return null;let i=t.split(/\s+/);if(i.length<2)return null;let r=i[0],o=i[1],n="usb";return r.startsWith("emulator-")?n="emulator":r.includes(":")&&(n="wifi"),{id:r,state:o,connectionType:n}}function qt(e){return e.startsWith(M)?e:`${M}${e}`}function Zt(e){return e.model?`${e.model} (${e.id})`:e.connectionType==="emulator"?`Android Emulator (${e.id})`:e.id}export{Fe as a,Be as b,He as c,M as d,T as e,Ne as f,Re as g,ze as h,Ue as i,Ve as j,$e as k,Xe as l,R as m,Ye as n,q as o,Je as p,je as q,qe as r,Ze as s,Z as t,z as u,Q as v,ee as w,te as x,ie as y,re as z,oe as A,ne as B,ae as C,L as D,se as E,B as F,le as G,ce as H,K as I,Qe as J,H as K,et as L,tt as M,U as N,it as O,rt as P,ot as Q,nt as R,he as S,ue as T,de as U,V,pe as W,I as X,fe as Y,me as Z,ge as _,k as $,$ as aa,Se as ba,st as ca,lt as da,ft as ea,mt as fa,C as ga,ye as ha,be as ia,vt as ja,A as ka,w as la,_ as ma,E as na,O as oa,N as pa,kt as qa,_t as ra,Pe as sa,xt as ta,Lt as ua,It as va,x as wa,Dt as xa,Wt as ya,Kt as za,Gt as Aa,Ft as Ba,Bt as Ca,Ht as Da,Nt as Ea,Rt as Fa,zt as Ga,Ut as Ha,Ae as Ia,ve as Ja,$t as Ka,Xt as La,_e as Ma,Ee as Na,Oe as Oa,xe as Pa,Yt as Qa,Jt as Ra,Le as Sa,jt as Ta,qt as Ua,Zt as Va};
|
|
@@ -5,7 +5,7 @@ import{a as Ee}from"./chunk-CYBAFQLF.js";import{c as Sn}from"./chunk-FBJSHHRD.js
|
|
|
5
5
|
Content-Type: ${a}\r
|
|
6
6
|
\r
|
|
7
7
|
`,typeof o.content=="string"?yield o.content:yield*o.content,yield`\r
|
|
8
|
-
`}yield n}static#a;static#i;static async#s(){return this.#a||=(await import("./dist-DAIQ7AOS.js")).HttpsProxyAgent,this.#a}static async#l(){let e=typeof window<"u"&&!!window;return this.#i||=e?window.fetch:(await import("./src-2RQUBO3W.js")).default,this.#i}static mergeHeaders(e,...r){e=e instanceof Headers?e:new Headers(e);for(let n of r)(n instanceof Headers?n:new Headers(n)).forEach((a,i)=>{i==="set-cookie"?e.append(i,a):e.set(i,a)});return e}};Xr.Gaxios=Io;Yr=Io});var rt=ee(ct=>{"use strict";var wb=ct&&ct.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var o=Object.getOwnPropertyDescriptor(e,r);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,o)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),Eb=ct&&ct.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&wb(e,t,r)};Object.defineProperty(ct,"__esModule",{value:!0});ct.instance=ct.Gaxios=ct.GaxiosError=void 0;ct.request=xb;var Zu=Xu();Object.defineProperty(ct,"Gaxios",{enumerable:!0,get:function(){return Zu.Gaxios}});var Tb=ci();Object.defineProperty(ct,"GaxiosError",{enumerable:!0,get:function(){return Tb.GaxiosError}});Eb(pi(),ct);ct.instance=new Zu.Gaxios;async function xb(t){return ct.instance.request(t)}});var hi=ee((Qu,Ao)=>{"use strict";(function(t){"use strict";var e,r=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,n=Math.ceil,o=Math.floor,a="[BigNumber Error] ",i=a+"Number primitive has more than 15 significant digits: ",s=1e14,l=14,c=9007199254740991,p=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],h=1e7,m=1e9;function g(P){var N,R,Q,E=F.prototype={constructor:F,toString:null,valueOf:null},re=new F(1),Z=20,Y=4,ce=-7,B=21,J=-1e7,fe=1e7,j=!1,ye=1,Se=0,he={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xA0",suffix:""},Ue="0123456789abcdefghijklmnopqrstuvwxyz",z=!0;function F(d,f){var v,C,S,k,M,x,A,O,I=this;if(!(I instanceof F))return new F(d,f);if(f==null){if(d&&d._isBigNumber===!0){I.s=d.s,!d.c||d.e>fe?I.c=I.e=null:d.e<J?I.c=[I.e=0]:(I.e=d.e,I.c=d.c.slice());return}if((x=typeof d=="number")&&d*0==0){if(I.s=1/d<0?(d=-d,-1):1,d===~~d){for(k=0,M=d;M>=10;M/=10,k++);k>fe?I.c=I.e=null:(I.e=k,I.c=[d]);return}O=String(d)}else{if(!r.test(O=String(d)))return Q(I,O,x);I.s=O.charCodeAt(0)==45?(O=O.slice(1),-1):1}(k=O.indexOf("."))>-1&&(O=O.replace(".","")),(M=O.search(/e/i))>0?(k<0&&(k=M),k+=+O.slice(M+1),O=O.substring(0,M)):k<0&&(k=O.length)}else{if(_(f,2,Ue.length,"Base"),f==10&&z)return I=new F(d),ae(I,Z+I.e+1,Y);if(O=String(d),x=typeof d=="number"){if(d*0!=0)return Q(I,O,x,f);if(I.s=1/d<0?(O=O.slice(1),-1):1,F.DEBUG&&O.replace(/^0\.0*|\./,"").length>15)throw Error(i+d)}else I.s=O.charCodeAt(0)===45?(O=O.slice(1),-1):1;for(v=Ue.slice(0,f),k=M=0,A=O.length;M<A;M++)if(v.indexOf(C=O.charAt(M))<0){if(C=="."){if(M>k){k=A;continue}}else if(!S&&(O==O.toUpperCase()&&(O=O.toLowerCase())||O==O.toLowerCase()&&(O=O.toUpperCase()))){S=!0,M=-1,k=0;continue}return Q(I,String(d),x,f)}x=!1,O=R(O,f,10,I.s),(k=O.indexOf("."))>-1?O=O.replace(".",""):k=O.length}for(M=0;O.charCodeAt(M)===48;M++);for(A=O.length;O.charCodeAt(--A)===48;);if(O=O.slice(M,++A)){if(A-=M,x&&F.DEBUG&&A>15&&(d>c||d!==o(d)))throw Error(i+I.s*d);if((k=k-M-1)>fe)I.c=I.e=null;else if(k<J)I.c=[I.e=0];else{if(I.e=k,I.c=[],M=(k+1)%l,k<0&&(M+=l),M<A){for(M&&I.c.push(+O.slice(0,M)),A-=l;M<A;)I.c.push(+O.slice(M,M+=l));M=l-(O=O.slice(M)).length}else M-=A;for(;M--;O+="0");I.c.push(+O)}}else I.c=[I.e=0]}F.clone=g,F.ROUND_UP=0,F.ROUND_DOWN=1,F.ROUND_CEIL=2,F.ROUND_FLOOR=3,F.ROUND_HALF_UP=4,F.ROUND_HALF_DOWN=5,F.ROUND_HALF_EVEN=6,F.ROUND_HALF_CEIL=7,F.ROUND_HALF_FLOOR=8,F.EUCLID=9,F.config=F.set=function(d){var f,v;if(d!=null)if(typeof d=="object"){if(d.hasOwnProperty(f="DECIMAL_PLACES")&&(v=d[f],_(v,0,m,f),Z=v),d.hasOwnProperty(f="ROUNDING_MODE")&&(v=d[f],_(v,0,8,f),Y=v),d.hasOwnProperty(f="EXPONENTIAL_AT")&&(v=d[f],v&&v.pop?(_(v[0],-m,0,f),_(v[1],0,m,f),ce=v[0],B=v[1]):(_(v,-m,m,f),ce=-(B=v<0?-v:v))),d.hasOwnProperty(f="RANGE"))if(v=d[f],v&&v.pop)_(v[0],-m,-1,f),_(v[1],1,m,f),J=v[0],fe=v[1];else if(_(v,-m,m,f),v)J=-(fe=v<0?-v:v);else throw Error(a+f+" cannot be zero: "+v);if(d.hasOwnProperty(f="CRYPTO"))if(v=d[f],v===!!v)if(v)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))j=v;else throw j=!v,Error(a+"crypto unavailable");else j=v;else throw Error(a+f+" not true or false: "+v);if(d.hasOwnProperty(f="MODULO_MODE")&&(v=d[f],_(v,0,9,f),ye=v),d.hasOwnProperty(f="POW_PRECISION")&&(v=d[f],_(v,0,m,f),Se=v),d.hasOwnProperty(f="FORMAT"))if(v=d[f],typeof v=="object")he=v;else throw Error(a+f+" not an object: "+v);if(d.hasOwnProperty(f="ALPHABET"))if(v=d[f],typeof v=="string"&&!/^.?$|[+\-.\s]|(.).*\1/.test(v))z=v.slice(0,10)=="0123456789",Ue=v;else throw Error(a+f+" invalid: "+v)}else throw Error(a+"Object expected: "+d);return{DECIMAL_PLACES:Z,ROUNDING_MODE:Y,EXPONENTIAL_AT:[ce,B],RANGE:[J,fe],CRYPTO:j,MODULO_MODE:ye,POW_PRECISION:Se,FORMAT:he,ALPHABET:Ue}},F.isBigNumber=function(d){if(!d||d._isBigNumber!==!0)return!1;if(!F.DEBUG)return!0;var f,v,C=d.c,S=d.e,k=d.s;e:if({}.toString.call(C)=="[object Array]"){if((k===1||k===-1)&&S>=-m&&S<=m&&S===o(S)){if(C[0]===0){if(S===0&&C.length===1)return!0;break e}if(f=(S+1)%l,f<1&&(f+=l),String(C[0]).length==f){for(f=0;f<C.length;f++)if(v=C[f],v<0||v>=s||v!==o(v))break e;if(v!==0)return!0}}}else if(C===null&&S===null&&(k===null||k===1||k===-1))return!0;throw Error(a+"Invalid BigNumber: "+d)},F.maximum=F.max=function(){return _e(arguments,-1)},F.minimum=F.min=function(){return _e(arguments,1)},F.random=function(){var d=9007199254740992,f=Math.random()*d&2097151?function(){return o(Math.random()*d)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(v){var C,S,k,M,x,A=0,O=[],I=new F(re);if(v==null?v=Z:_(v,0,m),M=n(v/l),j)if(crypto.getRandomValues){for(C=crypto.getRandomValues(new Uint32Array(M*=2));A<M;)x=C[A]*131072+(C[A+1]>>>11),x>=9e15?(S=crypto.getRandomValues(new Uint32Array(2)),C[A]=S[0],C[A+1]=S[1]):(O.push(x%1e14),A+=2);A=M/2}else if(crypto.randomBytes){for(C=crypto.randomBytes(M*=7);A<M;)x=(C[A]&31)*281474976710656+C[A+1]*1099511627776+C[A+2]*4294967296+C[A+3]*16777216+(C[A+4]<<16)+(C[A+5]<<8)+C[A+6],x>=9e15?crypto.randomBytes(7).copy(C,A):(O.push(x%1e14),A+=7);A=M/7}else throw j=!1,Error(a+"crypto unavailable");if(!j)for(;A<M;)x=f(),x<9e15&&(O[A++]=x%1e14);for(M=O[--A],v%=l,M&&v&&(x=p[l-v],O[A]=o(M/x)*x);O[A]===0;O.pop(),A--);if(A<0)O=[k=0];else{for(k=-1;O[0]===0;O.splice(0,1),k-=l);for(A=1,x=O[0];x>=10;x/=10,A++);A<l&&(k-=l-A)}return I.e=k,I.c=O,I}}(),F.sum=function(){for(var d=1,f=arguments,v=new F(f[0]);d<f.length;)v=v.plus(f[d++]);return v},R=function(){var d="0123456789";function f(v,C,S,k){for(var M,x=[0],A,O=0,I=v.length;O<I;){for(A=x.length;A--;x[A]*=C);for(x[0]+=k.indexOf(v.charAt(O++)),M=0;M<x.length;M++)x[M]>S-1&&(x[M+1]==null&&(x[M+1]=0),x[M+1]+=x[M]/S|0,x[M]%=S)}return x.reverse()}return function(v,C,S,k,M){var x,A,O,I,U,se,ie,Ce,me=v.indexOf("."),Be=Z,Ie=Y;for(me>=0&&(I=Se,Se=0,v=v.replace(".",""),Ce=new F(C),se=Ce.pow(v.length-me),Se=I,Ce.c=f(X(y(se.c),se.e,"0"),10,S,d),Ce.e=Ce.c.length),ie=f(v,C,S,M?(x=Ue,d):(x=d,Ue)),O=I=ie.length;ie[--I]==0;ie.pop());if(!ie[0])return x.charAt(0);if(me<0?--O:(se.c=ie,se.e=O,se.s=k,se=N(se,Ce,Be,Ie,S),ie=se.c,U=se.r,O=se.e),A=O+Be+1,me=ie[A],I=S/2,U=U||A<0||ie[A+1]!=null,U=Ie<4?(me!=null||U)&&(Ie==0||Ie==(se.s<0?3:2)):me>I||me==I&&(Ie==4||U||Ie==6&&ie[A-1]&1||Ie==(se.s<0?8:7)),A<1||!ie[0])v=U?X(x.charAt(1),-Be,x.charAt(0)):x.charAt(0);else{if(ie.length=A,U)for(--S;++ie[--A]>S;)ie[A]=0,A||(++O,ie=[1].concat(ie));for(I=ie.length;!ie[--I];);for(me=0,v="";me<=I;v+=x.charAt(ie[me++]));v=X(v,O,x.charAt(0))}return v}}(),N=function(){function d(C,S,k){var M,x,A,O,I=0,U=C.length,se=S%h,ie=S/h|0;for(C=C.slice();U--;)A=C[U]%h,O=C[U]/h|0,M=ie*A+O*se,x=se*A+M%h*h+I,I=(x/k|0)+(M/h|0)+ie*O,C[U]=x%k;return I&&(C=[I].concat(C)),C}function f(C,S,k,M){var x,A;if(k!=M)A=k>M?1:-1;else for(x=A=0;x<k;x++)if(C[x]!=S[x]){A=C[x]>S[x]?1:-1;break}return A}function v(C,S,k,M){for(var x=0;k--;)C[k]-=x,x=C[k]<S[k]?1:0,C[k]=x*M+C[k]-S[k];for(;!C[0]&&C.length>1;C.splice(0,1));}return function(C,S,k,M,x){var A,O,I,U,se,ie,Ce,me,Be,Ie,ge,Oe,xe,at,zr,dt,sr,Xe=C.s==S.s?1:-1,Ye=C.c,He=S.c;if(!Ye||!Ye[0]||!He||!He[0])return new F(!C.s||!S.s||(Ye?He&&Ye[0]==He[0]:!He)?NaN:Ye&&Ye[0]==0||!He?Xe*0:Xe/0);for(me=new F(Xe),Be=me.c=[],O=C.e-S.e,Xe=k+O+1,x||(x=s,O=T(C.e/l)-T(S.e/l),Xe=Xe/l|0),I=0;He[I]==(Ye[I]||0);I++);if(He[I]>(Ye[I]||0)&&O--,Xe<0)Be.push(1),U=!0;else{for(at=Ye.length,dt=He.length,I=0,Xe+=2,se=o(x/(He[0]+1)),se>1&&(He=d(He,se,x),Ye=d(Ye,se,x),dt=He.length,at=Ye.length),xe=dt,Ie=Ye.slice(0,dt),ge=Ie.length;ge<dt;Ie[ge++]=0);sr=He.slice(),sr=[0].concat(sr),zr=He[0],He[1]>=x/2&&zr++;do{if(se=0,A=f(He,Ie,dt,ge),A<0){if(Oe=Ie[0],dt!=ge&&(Oe=Oe*x+(Ie[1]||0)),se=o(Oe/zr),se>1)for(se>=x&&(se=x-1),ie=d(He,se,x),Ce=ie.length,ge=Ie.length;f(ie,Ie,Ce,ge)==1;)se--,v(ie,dt<Ce?sr:He,Ce,x),Ce=ie.length,A=1;else se==0&&(A=se=1),ie=He.slice(),Ce=ie.length;if(Ce<ge&&(ie=[0].concat(ie)),v(Ie,ie,ge,x),ge=Ie.length,A==-1)for(;f(He,Ie,dt,ge)<1;)se++,v(Ie,dt<ge?sr:He,ge,x),ge=Ie.length}else A===0&&(se++,Ie=[0]);Be[I++]=se,Ie[0]?Ie[ge++]=Ye[xe]||0:(Ie=[Ye[xe]],ge=1)}while((xe++<at||Ie[0]!=null)&&Xe--);U=Ie[0]!=null,Be[0]||Be.splice(0,1)}if(x==s){for(I=1,Xe=Be[0];Xe>=10;Xe/=10,I++);ae(me,k+(me.e=I+O*l-1)+1,M,U)}else me.e=O,me.r=+U;return me}}();function ve(d,f,v,C){var S,k,M,x,A;if(v==null?v=Y:_(v,0,8),!d.c)return d.toString();if(S=d.c[0],M=d.e,f==null)A=y(d.c),A=C==1||C==2&&(M<=ce||M>=B)?V(A,M):X(A,M,"0");else if(d=ae(new F(d),f,v),k=d.e,A=y(d.c),x=A.length,C==1||C==2&&(f<=k||k<=ce)){for(;x<f;A+="0",x++);A=V(A,k)}else if(f-=M+(C===2&&k>M),A=X(A,k,"0"),k+1>x){if(--f>0)for(A+=".";f--;A+="0");}else if(f+=k-x,f>0)for(k+1==x&&(A+=".");f--;A+="0");return d.s<0&&S?"-"+A:A}function _e(d,f){for(var v,C,S=1,k=new F(d[0]);S<d.length;S++)C=new F(d[S]),(!C.s||(v=b(k,C))===f||v===0&&k.s===f)&&(k=C);return k}function ue(d,f,v){for(var C=1,S=f.length;!f[--S];f.pop());for(S=f[0];S>=10;S/=10,C++);return(v=C+v*l-1)>fe?d.c=d.e=null:v<J?d.c=[d.e=0]:(d.e=v,d.c=f),d}Q=function(){var d=/^(-?)0([xbo])(?=\w[\w.]*$)/i,f=/^([^.]+)\.$/,v=/^\.([^.]+)$/,C=/^-?(Infinity|NaN)$/,S=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(k,M,x,A){var O,I=x?M:M.replace(S,"");if(C.test(I))k.s=isNaN(I)?null:I<0?-1:1;else{if(!x&&(I=I.replace(d,function(U,se,ie){return O=(ie=ie.toLowerCase())=="x"?16:ie=="b"?2:8,!A||A==O?se:U}),A&&(O=A,I=I.replace(f,"$1").replace(v,"0.$1")),M!=I))return new F(I,O);if(F.DEBUG)throw Error(a+"Not a"+(A?" base "+A:"")+" number: "+M);k.s=null}k.c=k.e=null}}();function ae(d,f,v,C){var S,k,M,x,A,O,I,U=d.c,se=p;if(U){e:{for(S=1,x=U[0];x>=10;x/=10,S++);if(k=f-S,k<0)k+=l,M=f,A=U[O=0],I=o(A/se[S-M-1]%10);else if(O=n((k+1)/l),O>=U.length)if(C){for(;U.length<=O;U.push(0));A=I=0,S=1,k%=l,M=k-l+1}else break e;else{for(A=x=U[O],S=1;x>=10;x/=10,S++);k%=l,M=k-l+S,I=M<0?0:o(A/se[S-M-1]%10)}if(C=C||f<0||U[O+1]!=null||(M<0?A:A%se[S-M-1]),C=v<4?(I||C)&&(v==0||v==(d.s<0?3:2)):I>5||I==5&&(v==4||C||v==6&&(k>0?M>0?A/se[S-M]:0:U[O-1])%10&1||v==(d.s<0?8:7)),f<1||!U[0])return U.length=0,C?(f-=d.e+1,U[0]=se[(l-f%l)%l],d.e=-f||0):U[0]=d.e=0,d;if(k==0?(U.length=O,x=1,O--):(U.length=O+1,x=se[l-k],U[O]=M>0?o(A/se[S-M]%se[M])*x:0),C)for(;;)if(O==0){for(k=1,M=U[0];M>=10;M/=10,k++);for(M=U[0]+=x,x=1;M>=10;M/=10,x++);k!=x&&(d.e++,U[0]==s&&(U[0]=1));break}else{if(U[O]+=x,U[O]!=s)break;U[O--]=0,x=1}for(k=U.length;U[--k]===0;U.pop());}d.e>fe?d.c=d.e=null:d.e<J&&(d.c=[d.e=0])}return d}function K(d){var f,v=d.e;return v===null?d.toString():(f=y(d.c),f=v<=ce||v>=B?V(f,v):X(f,v,"0"),d.s<0?"-"+f:f)}return E.absoluteValue=E.abs=function(){var d=new F(this);return d.s<0&&(d.s=1),d},E.comparedTo=function(d,f){return b(this,new F(d,f))},E.decimalPlaces=E.dp=function(d,f){var v,C,S,k=this;if(d!=null)return _(d,0,m),f==null?f=Y:_(f,0,8),ae(new F(k),d+k.e+1,f);if(!(v=k.c))return null;if(C=((S=v.length-1)-T(this.e/l))*l,S=v[S])for(;S%10==0;S/=10,C--);return C<0&&(C=0),C},E.dividedBy=E.div=function(d,f){return N(this,new F(d,f),Z,Y)},E.dividedToIntegerBy=E.idiv=function(d,f){return N(this,new F(d,f),0,1)},E.exponentiatedBy=E.pow=function(d,f){var v,C,S,k,M,x,A,O,I,U=this;if(d=new F(d),d.c&&!d.isInteger())throw Error(a+"Exponent not an integer: "+K(d));if(f!=null&&(f=new F(f)),x=d.e>14,!U.c||!U.c[0]||U.c[0]==1&&!U.e&&U.c.length==1||!d.c||!d.c[0])return I=new F(Math.pow(+K(U),x?d.s*(2-D(d)):+K(d))),f?I.mod(f):I;if(A=d.s<0,f){if(f.c?!f.c[0]:!f.s)return new F(NaN);C=!A&&U.isInteger()&&f.isInteger(),C&&(U=U.mod(f))}else{if(d.e>9&&(U.e>0||U.e<-1||(U.e==0?U.c[0]>1||x&&U.c[1]>=24e7:U.c[0]<8e13||x&&U.c[0]<=9999975e7)))return k=U.s<0&&D(d)?-0:0,U.e>-1&&(k=1/k),new F(A?1/k:k);Se&&(k=n(Se/l+2))}for(x?(v=new F(.5),A&&(d.s=1),O=D(d)):(S=Math.abs(+K(d)),O=S%2),I=new F(re);;){if(O){if(I=I.times(U),!I.c)break;k?I.c.length>k&&(I.c.length=k):C&&(I=I.mod(f))}if(S){if(S=o(S/2),S===0)break;O=S%2}else if(d=d.times(v),ae(d,d.e+1,1),d.e>14)O=D(d);else{if(S=+K(d),S===0)break;O=S%2}U=U.times(U),k?U.c&&U.c.length>k&&(U.c.length=k):C&&(U=U.mod(f))}return C?I:(A&&(I=re.div(I)),f?I.mod(f):k?ae(I,Se,Y,M):I)},E.integerValue=function(d){var f=new F(this);return d==null?d=Y:_(d,0,8),ae(f,f.e+1,d)},E.isEqualTo=E.eq=function(d,f){return b(this,new F(d,f))===0},E.isFinite=function(){return!!this.c},E.isGreaterThan=E.gt=function(d,f){return b(this,new F(d,f))>0},E.isGreaterThanOrEqualTo=E.gte=function(d,f){return(f=b(this,new F(d,f)))===1||f===0},E.isInteger=function(){return!!this.c&&T(this.e/l)>this.c.length-2},E.isLessThan=E.lt=function(d,f){return b(this,new F(d,f))<0},E.isLessThanOrEqualTo=E.lte=function(d,f){return(f=b(this,new F(d,f)))===-1||f===0},E.isNaN=function(){return!this.s},E.isNegative=function(){return this.s<0},E.isPositive=function(){return this.s>0},E.isZero=function(){return!!this.c&&this.c[0]==0},E.minus=function(d,f){var v,C,S,k,M=this,x=M.s;if(d=new F(d,f),f=d.s,!x||!f)return new F(NaN);if(x!=f)return d.s=-f,M.plus(d);var A=M.e/l,O=d.e/l,I=M.c,U=d.c;if(!A||!O){if(!I||!U)return I?(d.s=-f,d):new F(U?M:NaN);if(!I[0]||!U[0])return U[0]?(d.s=-f,d):new F(I[0]?M:Y==3?-0:0)}if(A=T(A),O=T(O),I=I.slice(),x=A-O){for((k=x<0)?(x=-x,S=I):(O=A,S=U),S.reverse(),f=x;f--;S.push(0));S.reverse()}else for(C=(k=(x=I.length)<(f=U.length))?x:f,x=f=0;f<C;f++)if(I[f]!=U[f]){k=I[f]<U[f];break}if(k&&(S=I,I=U,U=S,d.s=-d.s),f=(C=U.length)-(v=I.length),f>0)for(;f--;I[v++]=0);for(f=s-1;C>x;){if(I[--C]<U[C]){for(v=C;v&&!I[--v];I[v]=f);--I[v],I[C]+=s}I[C]-=U[C]}for(;I[0]==0;I.splice(0,1),--O);return I[0]?ue(d,I,O):(d.s=Y==3?-1:1,d.c=[d.e=0],d)},E.modulo=E.mod=function(d,f){var v,C,S=this;return d=new F(d,f),!S.c||!d.s||d.c&&!d.c[0]?new F(NaN):!d.c||S.c&&!S.c[0]?new F(S):(ye==9?(C=d.s,d.s=1,v=N(S,d,0,3),d.s=C,v.s*=C):v=N(S,d,0,ye),d=S.minus(v.times(d)),!d.c[0]&&ye==1&&(d.s=S.s),d)},E.multipliedBy=E.times=function(d,f){var v,C,S,k,M,x,A,O,I,U,se,ie,Ce,me,Be,Ie=this,ge=Ie.c,Oe=(d=new F(d,f)).c;if(!ge||!Oe||!ge[0]||!Oe[0])return!Ie.s||!d.s||ge&&!ge[0]&&!Oe||Oe&&!Oe[0]&&!ge?d.c=d.e=d.s=null:(d.s*=Ie.s,!ge||!Oe?d.c=d.e=null:(d.c=[0],d.e=0)),d;for(C=T(Ie.e/l)+T(d.e/l),d.s*=Ie.s,A=ge.length,U=Oe.length,A<U&&(Ce=ge,ge=Oe,Oe=Ce,S=A,A=U,U=S),S=A+U,Ce=[];S--;Ce.push(0));for(me=s,Be=h,S=U;--S>=0;){for(v=0,se=Oe[S]%Be,ie=Oe[S]/Be|0,M=A,k=S+M;k>S;)O=ge[--M]%Be,I=ge[M]/Be|0,x=ie*O+I*se,O=se*O+x%Be*Be+Ce[k]+v,v=(O/me|0)+(x/Be|0)+ie*I,Ce[k--]=O%me;Ce[k]=v}return v?++C:Ce.splice(0,1),ue(d,Ce,C)},E.negated=function(){var d=new F(this);return d.s=-d.s||null,d},E.plus=function(d,f){var v,C=this,S=C.s;if(d=new F(d,f),f=d.s,!S||!f)return new F(NaN);if(S!=f)return d.s=-f,C.minus(d);var k=C.e/l,M=d.e/l,x=C.c,A=d.c;if(!k||!M){if(!x||!A)return new F(S/0);if(!x[0]||!A[0])return A[0]?d:new F(x[0]?C:S*0)}if(k=T(k),M=T(M),x=x.slice(),S=k-M){for(S>0?(M=k,v=A):(S=-S,v=x),v.reverse();S--;v.push(0));v.reverse()}for(S=x.length,f=A.length,S-f<0&&(v=A,A=x,x=v,f=S),S=0;f;)S=(x[--f]=x[f]+A[f]+S)/s|0,x[f]=s===x[f]?0:x[f]%s;return S&&(x=[S].concat(x),++M),ue(d,x,M)},E.precision=E.sd=function(d,f){var v,C,S,k=this;if(d!=null&&d!==!!d)return _(d,1,m),f==null?f=Y:_(f,0,8),ae(new F(k),d,f);if(!(v=k.c))return null;if(S=v.length-1,C=S*l+1,S=v[S]){for(;S%10==0;S/=10,C--);for(S=v[0];S>=10;S/=10,C++);}return d&&k.e+1>C&&(C=k.e+1),C},E.shiftedBy=function(d){return _(d,-c,c),this.times("1e"+d)},E.squareRoot=E.sqrt=function(){var d,f,v,C,S,k=this,M=k.c,x=k.s,A=k.e,O=Z+4,I=new F("0.5");if(x!==1||!M||!M[0])return new F(!x||x<0&&(!M||M[0])?NaN:M?k:1/0);if(x=Math.sqrt(+K(k)),x==0||x==1/0?(f=y(M),(f.length+A)%2==0&&(f+="0"),x=Math.sqrt(+f),A=T((A+1)/2)-(A<0||A%2),x==1/0?f="5e"+A:(f=x.toExponential(),f=f.slice(0,f.indexOf("e")+1)+A),v=new F(f)):v=new F(x+""),v.c[0]){for(A=v.e,x=A+O,x<3&&(x=0);;)if(S=v,v=I.times(S.plus(N(k,S,O,1))),y(S.c).slice(0,x)===(f=y(v.c)).slice(0,x))if(v.e<A&&--x,f=f.slice(x-3,x+1),f=="9999"||!C&&f=="4999"){if(!C&&(ae(S,S.e+Z+2,0),S.times(S).eq(k))){v=S;break}O+=4,x+=4,C=1}else{(!+f||!+f.slice(1)&&f.charAt(0)=="5")&&(ae(v,v.e+Z+2,1),d=!v.times(v).eq(k));break}}return ae(v,v.e+Z+1,Y,d)},E.toExponential=function(d,f){return d!=null&&(_(d,0,m),d++),ve(this,d,f,1)},E.toFixed=function(d,f){return d!=null&&(_(d,0,m),d=d+this.e+1),ve(this,d,f)},E.toFormat=function(d,f,v){var C,S=this;if(v==null)d!=null&&f&&typeof f=="object"?(v=f,f=null):d&&typeof d=="object"?(v=d,d=f=null):v=he;else if(typeof v!="object")throw Error(a+"Argument not an object: "+v);if(C=S.toFixed(d,f),S.c){var k,M=C.split("."),x=+v.groupSize,A=+v.secondaryGroupSize,O=v.groupSeparator||"",I=M[0],U=M[1],se=S.s<0,ie=se?I.slice(1):I,Ce=ie.length;if(A&&(k=x,x=A,A=k,Ce-=k),x>0&&Ce>0){for(k=Ce%x||x,I=ie.substr(0,k);k<Ce;k+=x)I+=O+ie.substr(k,x);A>0&&(I+=O+ie.slice(k)),se&&(I="-"+I)}C=U?I+(v.decimalSeparator||"")+((A=+v.fractionGroupSize)?U.replace(new RegExp("\\d{"+A+"}\\B","g"),"$&"+(v.fractionGroupSeparator||"")):U):I}return(v.prefix||"")+C+(v.suffix||"")},E.toFraction=function(d){var f,v,C,S,k,M,x,A,O,I,U,se,ie=this,Ce=ie.c;if(d!=null&&(x=new F(d),!x.isInteger()&&(x.c||x.s!==1)||x.lt(re)))throw Error(a+"Argument "+(x.isInteger()?"out of range: ":"not an integer: ")+K(x));if(!Ce)return new F(ie);for(f=new F(re),O=v=new F(re),C=A=new F(re),se=y(Ce),k=f.e=se.length-ie.e-1,f.c[0]=p[(M=k%l)<0?l+M:M],d=!d||x.comparedTo(f)>0?k>0?f:O:x,M=fe,fe=1/0,x=new F(se),A.c[0]=0;I=N(x,f,0,1),S=v.plus(I.times(C)),S.comparedTo(d)!=1;)v=C,C=S,O=A.plus(I.times(S=O)),A=S,f=x.minus(I.times(S=f)),x=S;return S=N(d.minus(v),C,0,1),A=A.plus(S.times(O)),v=v.plus(S.times(C)),A.s=O.s=ie.s,k=k*2,U=N(O,C,k,Y).minus(ie).abs().comparedTo(N(A,v,k,Y).minus(ie).abs())<1?[O,C]:[A,v],fe=M,U},E.toNumber=function(){return+K(this)},E.toPrecision=function(d,f){return d!=null&&_(d,1,m),ve(this,d,f,2)},E.toString=function(d){var f,v=this,C=v.s,S=v.e;return S===null?C?(f="Infinity",C<0&&(f="-"+f)):f="NaN":(d==null?f=S<=ce||S>=B?V(y(v.c),S):X(y(v.c),S,"0"):d===10&&z?(v=ae(new F(v),Z+S+1,Y),f=X(y(v.c),v.e,"0")):(_(d,2,Ue.length,"Base"),f=R(X(y(v.c),S,"0"),10,d,C,!0)),C<0&&v.c[0]&&(f="-"+f)),f},E.valueOf=E.toJSON=function(){return K(this)},E._isBigNumber=!0,P!=null&&F.set(P),F}function T(P){var N=P|0;return P>0||P===N?N:N-1}function y(P){for(var N,R,Q=1,E=P.length,re=P[0]+"";Q<E;){for(N=P[Q++]+"",R=l-N.length;R--;N="0"+N);re+=N}for(E=re.length;re.charCodeAt(--E)===48;);return re.slice(0,E+1||1)}function b(P,N){var R,Q,E=P.c,re=N.c,Z=P.s,Y=N.s,ce=P.e,B=N.e;if(!Z||!Y)return null;if(R=E&&!E[0],Q=re&&!re[0],R||Q)return R?Q?0:-Y:Z;if(Z!=Y)return Z;if(R=Z<0,Q=ce==B,!E||!re)return Q?0:!E^R?1:-1;if(!Q)return ce>B^R?1:-1;for(Y=(ce=E.length)<(B=re.length)?ce:B,Z=0;Z<Y;Z++)if(E[Z]!=re[Z])return E[Z]>re[Z]^R?1:-1;return ce==B?0:ce>B^R?1:-1}function _(P,N,R,Q){if(P<N||P>R||P!==o(P))throw Error(a+(Q||"Argument")+(typeof P=="number"?P<N||P>R?" out of range: ":" not an integer: ":" not a primitive number: ")+String(P))}function D(P){var N=P.c.length-1;return T(P.e/l)==N&&P.c[N]%2!=0}function V(P,N){return(P.length>1?P.charAt(0)+"."+P.slice(1):P)+(N<0?"e":"e+")+N}function X(P,N,R){var Q,E;if(N<0){for(E=R+".";++N;E+=R);P=E+P}else if(Q=P.length,++N>Q){for(E=R,N-=Q;--N;E+=R);P+=E}else N<Q&&(P=P.slice(0,N)+"."+P.slice(N));return P}e=g(),e.default=e.BigNumber=e,typeof define=="function"&&define.amd?define(function(){return e}):typeof Ao<"u"&&Ao.exports?Ao.exports=e:(t||(t=typeof self<"u"&&self?self:window),t.BigNumber=e)})(Qu)});var nd=ee((YA,rd)=>{"use strict";var ed=hi(),td=rd.exports;(function(){"use strict";function t(c){return c<10?"0"+c:c}var e=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,r=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,n,o,a={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},i;function s(c){return r.lastIndex=0,r.test(c)?'"'+c.replace(r,function(p){var h=a[p];return typeof h=="string"?h:"\\u"+("0000"+p.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+c+'"'}function l(c,p){var h,m,g,T,y=n,b,_=p[c],D=_!=null&&(_ instanceof ed||ed.isBigNumber(_));switch(_&&typeof _=="object"&&typeof _.toJSON=="function"&&(_=_.toJSON(c)),typeof i=="function"&&(_=i.call(p,c,_)),typeof _){case"string":return D?_:s(_);case"number":return isFinite(_)?String(_):"null";case"boolean":case"null":case"bigint":return String(_);case"object":if(!_)return"null";if(n+=o,b=[],Object.prototype.toString.apply(_)==="[object Array]"){for(T=_.length,h=0;h<T;h+=1)b[h]=l(h,_)||"null";return g=b.length===0?"[]":n?`[
|
|
8
|
+
`}yield n}static#a;static#i;static async#s(){return this.#a||=(await import("./dist-HN2P3FRX.js")).HttpsProxyAgent,this.#a}static async#l(){let e=typeof window<"u"&&!!window;return this.#i||=e?window.fetch:(await import("./src-CXU6MEQY.js")).default,this.#i}static mergeHeaders(e,...r){e=e instanceof Headers?e:new Headers(e);for(let n of r)(n instanceof Headers?n:new Headers(n)).forEach((a,i)=>{i==="set-cookie"?e.append(i,a):e.set(i,a)});return e}};Xr.Gaxios=Io;Yr=Io});var rt=ee(ct=>{"use strict";var wb=ct&&ct.__createBinding||(Object.create?function(t,e,r,n){n===void 0&&(n=r);var o=Object.getOwnPropertyDescriptor(e,r);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,o)}:function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]}),Eb=ct&&ct.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&wb(e,t,r)};Object.defineProperty(ct,"__esModule",{value:!0});ct.instance=ct.Gaxios=ct.GaxiosError=void 0;ct.request=xb;var Zu=Xu();Object.defineProperty(ct,"Gaxios",{enumerable:!0,get:function(){return Zu.Gaxios}});var Tb=ci();Object.defineProperty(ct,"GaxiosError",{enumerable:!0,get:function(){return Tb.GaxiosError}});Eb(pi(),ct);ct.instance=new Zu.Gaxios;async function xb(t){return ct.instance.request(t)}});var hi=ee((Qu,Ao)=>{"use strict";(function(t){"use strict";var e,r=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,n=Math.ceil,o=Math.floor,a="[BigNumber Error] ",i=a+"Number primitive has more than 15 significant digits: ",s=1e14,l=14,c=9007199254740991,p=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],h=1e7,m=1e9;function g(P){var N,R,Q,E=F.prototype={constructor:F,toString:null,valueOf:null},re=new F(1),Z=20,Y=4,ce=-7,B=21,J=-1e7,fe=1e7,j=!1,ye=1,Se=0,he={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xA0",suffix:""},Ue="0123456789abcdefghijklmnopqrstuvwxyz",z=!0;function F(d,f){var v,C,S,k,M,x,A,O,I=this;if(!(I instanceof F))return new F(d,f);if(f==null){if(d&&d._isBigNumber===!0){I.s=d.s,!d.c||d.e>fe?I.c=I.e=null:d.e<J?I.c=[I.e=0]:(I.e=d.e,I.c=d.c.slice());return}if((x=typeof d=="number")&&d*0==0){if(I.s=1/d<0?(d=-d,-1):1,d===~~d){for(k=0,M=d;M>=10;M/=10,k++);k>fe?I.c=I.e=null:(I.e=k,I.c=[d]);return}O=String(d)}else{if(!r.test(O=String(d)))return Q(I,O,x);I.s=O.charCodeAt(0)==45?(O=O.slice(1),-1):1}(k=O.indexOf("."))>-1&&(O=O.replace(".","")),(M=O.search(/e/i))>0?(k<0&&(k=M),k+=+O.slice(M+1),O=O.substring(0,M)):k<0&&(k=O.length)}else{if(_(f,2,Ue.length,"Base"),f==10&&z)return I=new F(d),ae(I,Z+I.e+1,Y);if(O=String(d),x=typeof d=="number"){if(d*0!=0)return Q(I,O,x,f);if(I.s=1/d<0?(O=O.slice(1),-1):1,F.DEBUG&&O.replace(/^0\.0*|\./,"").length>15)throw Error(i+d)}else I.s=O.charCodeAt(0)===45?(O=O.slice(1),-1):1;for(v=Ue.slice(0,f),k=M=0,A=O.length;M<A;M++)if(v.indexOf(C=O.charAt(M))<0){if(C=="."){if(M>k){k=A;continue}}else if(!S&&(O==O.toUpperCase()&&(O=O.toLowerCase())||O==O.toLowerCase()&&(O=O.toUpperCase()))){S=!0,M=-1,k=0;continue}return Q(I,String(d),x,f)}x=!1,O=R(O,f,10,I.s),(k=O.indexOf("."))>-1?O=O.replace(".",""):k=O.length}for(M=0;O.charCodeAt(M)===48;M++);for(A=O.length;O.charCodeAt(--A)===48;);if(O=O.slice(M,++A)){if(A-=M,x&&F.DEBUG&&A>15&&(d>c||d!==o(d)))throw Error(i+I.s*d);if((k=k-M-1)>fe)I.c=I.e=null;else if(k<J)I.c=[I.e=0];else{if(I.e=k,I.c=[],M=(k+1)%l,k<0&&(M+=l),M<A){for(M&&I.c.push(+O.slice(0,M)),A-=l;M<A;)I.c.push(+O.slice(M,M+=l));M=l-(O=O.slice(M)).length}else M-=A;for(;M--;O+="0");I.c.push(+O)}}else I.c=[I.e=0]}F.clone=g,F.ROUND_UP=0,F.ROUND_DOWN=1,F.ROUND_CEIL=2,F.ROUND_FLOOR=3,F.ROUND_HALF_UP=4,F.ROUND_HALF_DOWN=5,F.ROUND_HALF_EVEN=6,F.ROUND_HALF_CEIL=7,F.ROUND_HALF_FLOOR=8,F.EUCLID=9,F.config=F.set=function(d){var f,v;if(d!=null)if(typeof d=="object"){if(d.hasOwnProperty(f="DECIMAL_PLACES")&&(v=d[f],_(v,0,m,f),Z=v),d.hasOwnProperty(f="ROUNDING_MODE")&&(v=d[f],_(v,0,8,f),Y=v),d.hasOwnProperty(f="EXPONENTIAL_AT")&&(v=d[f],v&&v.pop?(_(v[0],-m,0,f),_(v[1],0,m,f),ce=v[0],B=v[1]):(_(v,-m,m,f),ce=-(B=v<0?-v:v))),d.hasOwnProperty(f="RANGE"))if(v=d[f],v&&v.pop)_(v[0],-m,-1,f),_(v[1],1,m,f),J=v[0],fe=v[1];else if(_(v,-m,m,f),v)J=-(fe=v<0?-v:v);else throw Error(a+f+" cannot be zero: "+v);if(d.hasOwnProperty(f="CRYPTO"))if(v=d[f],v===!!v)if(v)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))j=v;else throw j=!v,Error(a+"crypto unavailable");else j=v;else throw Error(a+f+" not true or false: "+v);if(d.hasOwnProperty(f="MODULO_MODE")&&(v=d[f],_(v,0,9,f),ye=v),d.hasOwnProperty(f="POW_PRECISION")&&(v=d[f],_(v,0,m,f),Se=v),d.hasOwnProperty(f="FORMAT"))if(v=d[f],typeof v=="object")he=v;else throw Error(a+f+" not an object: "+v);if(d.hasOwnProperty(f="ALPHABET"))if(v=d[f],typeof v=="string"&&!/^.?$|[+\-.\s]|(.).*\1/.test(v))z=v.slice(0,10)=="0123456789",Ue=v;else throw Error(a+f+" invalid: "+v)}else throw Error(a+"Object expected: "+d);return{DECIMAL_PLACES:Z,ROUNDING_MODE:Y,EXPONENTIAL_AT:[ce,B],RANGE:[J,fe],CRYPTO:j,MODULO_MODE:ye,POW_PRECISION:Se,FORMAT:he,ALPHABET:Ue}},F.isBigNumber=function(d){if(!d||d._isBigNumber!==!0)return!1;if(!F.DEBUG)return!0;var f,v,C=d.c,S=d.e,k=d.s;e:if({}.toString.call(C)=="[object Array]"){if((k===1||k===-1)&&S>=-m&&S<=m&&S===o(S)){if(C[0]===0){if(S===0&&C.length===1)return!0;break e}if(f=(S+1)%l,f<1&&(f+=l),String(C[0]).length==f){for(f=0;f<C.length;f++)if(v=C[f],v<0||v>=s||v!==o(v))break e;if(v!==0)return!0}}}else if(C===null&&S===null&&(k===null||k===1||k===-1))return!0;throw Error(a+"Invalid BigNumber: "+d)},F.maximum=F.max=function(){return _e(arguments,-1)},F.minimum=F.min=function(){return _e(arguments,1)},F.random=function(){var d=9007199254740992,f=Math.random()*d&2097151?function(){return o(Math.random()*d)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(v){var C,S,k,M,x,A=0,O=[],I=new F(re);if(v==null?v=Z:_(v,0,m),M=n(v/l),j)if(crypto.getRandomValues){for(C=crypto.getRandomValues(new Uint32Array(M*=2));A<M;)x=C[A]*131072+(C[A+1]>>>11),x>=9e15?(S=crypto.getRandomValues(new Uint32Array(2)),C[A]=S[0],C[A+1]=S[1]):(O.push(x%1e14),A+=2);A=M/2}else if(crypto.randomBytes){for(C=crypto.randomBytes(M*=7);A<M;)x=(C[A]&31)*281474976710656+C[A+1]*1099511627776+C[A+2]*4294967296+C[A+3]*16777216+(C[A+4]<<16)+(C[A+5]<<8)+C[A+6],x>=9e15?crypto.randomBytes(7).copy(C,A):(O.push(x%1e14),A+=7);A=M/7}else throw j=!1,Error(a+"crypto unavailable");if(!j)for(;A<M;)x=f(),x<9e15&&(O[A++]=x%1e14);for(M=O[--A],v%=l,M&&v&&(x=p[l-v],O[A]=o(M/x)*x);O[A]===0;O.pop(),A--);if(A<0)O=[k=0];else{for(k=-1;O[0]===0;O.splice(0,1),k-=l);for(A=1,x=O[0];x>=10;x/=10,A++);A<l&&(k-=l-A)}return I.e=k,I.c=O,I}}(),F.sum=function(){for(var d=1,f=arguments,v=new F(f[0]);d<f.length;)v=v.plus(f[d++]);return v},R=function(){var d="0123456789";function f(v,C,S,k){for(var M,x=[0],A,O=0,I=v.length;O<I;){for(A=x.length;A--;x[A]*=C);for(x[0]+=k.indexOf(v.charAt(O++)),M=0;M<x.length;M++)x[M]>S-1&&(x[M+1]==null&&(x[M+1]=0),x[M+1]+=x[M]/S|0,x[M]%=S)}return x.reverse()}return function(v,C,S,k,M){var x,A,O,I,U,se,ie,Ce,me=v.indexOf("."),Be=Z,Ie=Y;for(me>=0&&(I=Se,Se=0,v=v.replace(".",""),Ce=new F(C),se=Ce.pow(v.length-me),Se=I,Ce.c=f(X(y(se.c),se.e,"0"),10,S,d),Ce.e=Ce.c.length),ie=f(v,C,S,M?(x=Ue,d):(x=d,Ue)),O=I=ie.length;ie[--I]==0;ie.pop());if(!ie[0])return x.charAt(0);if(me<0?--O:(se.c=ie,se.e=O,se.s=k,se=N(se,Ce,Be,Ie,S),ie=se.c,U=se.r,O=se.e),A=O+Be+1,me=ie[A],I=S/2,U=U||A<0||ie[A+1]!=null,U=Ie<4?(me!=null||U)&&(Ie==0||Ie==(se.s<0?3:2)):me>I||me==I&&(Ie==4||U||Ie==6&&ie[A-1]&1||Ie==(se.s<0?8:7)),A<1||!ie[0])v=U?X(x.charAt(1),-Be,x.charAt(0)):x.charAt(0);else{if(ie.length=A,U)for(--S;++ie[--A]>S;)ie[A]=0,A||(++O,ie=[1].concat(ie));for(I=ie.length;!ie[--I];);for(me=0,v="";me<=I;v+=x.charAt(ie[me++]));v=X(v,O,x.charAt(0))}return v}}(),N=function(){function d(C,S,k){var M,x,A,O,I=0,U=C.length,se=S%h,ie=S/h|0;for(C=C.slice();U--;)A=C[U]%h,O=C[U]/h|0,M=ie*A+O*se,x=se*A+M%h*h+I,I=(x/k|0)+(M/h|0)+ie*O,C[U]=x%k;return I&&(C=[I].concat(C)),C}function f(C,S,k,M){var x,A;if(k!=M)A=k>M?1:-1;else for(x=A=0;x<k;x++)if(C[x]!=S[x]){A=C[x]>S[x]?1:-1;break}return A}function v(C,S,k,M){for(var x=0;k--;)C[k]-=x,x=C[k]<S[k]?1:0,C[k]=x*M+C[k]-S[k];for(;!C[0]&&C.length>1;C.splice(0,1));}return function(C,S,k,M,x){var A,O,I,U,se,ie,Ce,me,Be,Ie,ge,Oe,xe,at,zr,dt,sr,Xe=C.s==S.s?1:-1,Ye=C.c,He=S.c;if(!Ye||!Ye[0]||!He||!He[0])return new F(!C.s||!S.s||(Ye?He&&Ye[0]==He[0]:!He)?NaN:Ye&&Ye[0]==0||!He?Xe*0:Xe/0);for(me=new F(Xe),Be=me.c=[],O=C.e-S.e,Xe=k+O+1,x||(x=s,O=T(C.e/l)-T(S.e/l),Xe=Xe/l|0),I=0;He[I]==(Ye[I]||0);I++);if(He[I]>(Ye[I]||0)&&O--,Xe<0)Be.push(1),U=!0;else{for(at=Ye.length,dt=He.length,I=0,Xe+=2,se=o(x/(He[0]+1)),se>1&&(He=d(He,se,x),Ye=d(Ye,se,x),dt=He.length,at=Ye.length),xe=dt,Ie=Ye.slice(0,dt),ge=Ie.length;ge<dt;Ie[ge++]=0);sr=He.slice(),sr=[0].concat(sr),zr=He[0],He[1]>=x/2&&zr++;do{if(se=0,A=f(He,Ie,dt,ge),A<0){if(Oe=Ie[0],dt!=ge&&(Oe=Oe*x+(Ie[1]||0)),se=o(Oe/zr),se>1)for(se>=x&&(se=x-1),ie=d(He,se,x),Ce=ie.length,ge=Ie.length;f(ie,Ie,Ce,ge)==1;)se--,v(ie,dt<Ce?sr:He,Ce,x),Ce=ie.length,A=1;else se==0&&(A=se=1),ie=He.slice(),Ce=ie.length;if(Ce<ge&&(ie=[0].concat(ie)),v(Ie,ie,ge,x),ge=Ie.length,A==-1)for(;f(He,Ie,dt,ge)<1;)se++,v(Ie,dt<ge?sr:He,ge,x),ge=Ie.length}else A===0&&(se++,Ie=[0]);Be[I++]=se,Ie[0]?Ie[ge++]=Ye[xe]||0:(Ie=[Ye[xe]],ge=1)}while((xe++<at||Ie[0]!=null)&&Xe--);U=Ie[0]!=null,Be[0]||Be.splice(0,1)}if(x==s){for(I=1,Xe=Be[0];Xe>=10;Xe/=10,I++);ae(me,k+(me.e=I+O*l-1)+1,M,U)}else me.e=O,me.r=+U;return me}}();function ve(d,f,v,C){var S,k,M,x,A;if(v==null?v=Y:_(v,0,8),!d.c)return d.toString();if(S=d.c[0],M=d.e,f==null)A=y(d.c),A=C==1||C==2&&(M<=ce||M>=B)?V(A,M):X(A,M,"0");else if(d=ae(new F(d),f,v),k=d.e,A=y(d.c),x=A.length,C==1||C==2&&(f<=k||k<=ce)){for(;x<f;A+="0",x++);A=V(A,k)}else if(f-=M+(C===2&&k>M),A=X(A,k,"0"),k+1>x){if(--f>0)for(A+=".";f--;A+="0");}else if(f+=k-x,f>0)for(k+1==x&&(A+=".");f--;A+="0");return d.s<0&&S?"-"+A:A}function _e(d,f){for(var v,C,S=1,k=new F(d[0]);S<d.length;S++)C=new F(d[S]),(!C.s||(v=b(k,C))===f||v===0&&k.s===f)&&(k=C);return k}function ue(d,f,v){for(var C=1,S=f.length;!f[--S];f.pop());for(S=f[0];S>=10;S/=10,C++);return(v=C+v*l-1)>fe?d.c=d.e=null:v<J?d.c=[d.e=0]:(d.e=v,d.c=f),d}Q=function(){var d=/^(-?)0([xbo])(?=\w[\w.]*$)/i,f=/^([^.]+)\.$/,v=/^\.([^.]+)$/,C=/^-?(Infinity|NaN)$/,S=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(k,M,x,A){var O,I=x?M:M.replace(S,"");if(C.test(I))k.s=isNaN(I)?null:I<0?-1:1;else{if(!x&&(I=I.replace(d,function(U,se,ie){return O=(ie=ie.toLowerCase())=="x"?16:ie=="b"?2:8,!A||A==O?se:U}),A&&(O=A,I=I.replace(f,"$1").replace(v,"0.$1")),M!=I))return new F(I,O);if(F.DEBUG)throw Error(a+"Not a"+(A?" base "+A:"")+" number: "+M);k.s=null}k.c=k.e=null}}();function ae(d,f,v,C){var S,k,M,x,A,O,I,U=d.c,se=p;if(U){e:{for(S=1,x=U[0];x>=10;x/=10,S++);if(k=f-S,k<0)k+=l,M=f,A=U[O=0],I=o(A/se[S-M-1]%10);else if(O=n((k+1)/l),O>=U.length)if(C){for(;U.length<=O;U.push(0));A=I=0,S=1,k%=l,M=k-l+1}else break e;else{for(A=x=U[O],S=1;x>=10;x/=10,S++);k%=l,M=k-l+S,I=M<0?0:o(A/se[S-M-1]%10)}if(C=C||f<0||U[O+1]!=null||(M<0?A:A%se[S-M-1]),C=v<4?(I||C)&&(v==0||v==(d.s<0?3:2)):I>5||I==5&&(v==4||C||v==6&&(k>0?M>0?A/se[S-M]:0:U[O-1])%10&1||v==(d.s<0?8:7)),f<1||!U[0])return U.length=0,C?(f-=d.e+1,U[0]=se[(l-f%l)%l],d.e=-f||0):U[0]=d.e=0,d;if(k==0?(U.length=O,x=1,O--):(U.length=O+1,x=se[l-k],U[O]=M>0?o(A/se[S-M]%se[M])*x:0),C)for(;;)if(O==0){for(k=1,M=U[0];M>=10;M/=10,k++);for(M=U[0]+=x,x=1;M>=10;M/=10,x++);k!=x&&(d.e++,U[0]==s&&(U[0]=1));break}else{if(U[O]+=x,U[O]!=s)break;U[O--]=0,x=1}for(k=U.length;U[--k]===0;U.pop());}d.e>fe?d.c=d.e=null:d.e<J&&(d.c=[d.e=0])}return d}function K(d){var f,v=d.e;return v===null?d.toString():(f=y(d.c),f=v<=ce||v>=B?V(f,v):X(f,v,"0"),d.s<0?"-"+f:f)}return E.absoluteValue=E.abs=function(){var d=new F(this);return d.s<0&&(d.s=1),d},E.comparedTo=function(d,f){return b(this,new F(d,f))},E.decimalPlaces=E.dp=function(d,f){var v,C,S,k=this;if(d!=null)return _(d,0,m),f==null?f=Y:_(f,0,8),ae(new F(k),d+k.e+1,f);if(!(v=k.c))return null;if(C=((S=v.length-1)-T(this.e/l))*l,S=v[S])for(;S%10==0;S/=10,C--);return C<0&&(C=0),C},E.dividedBy=E.div=function(d,f){return N(this,new F(d,f),Z,Y)},E.dividedToIntegerBy=E.idiv=function(d,f){return N(this,new F(d,f),0,1)},E.exponentiatedBy=E.pow=function(d,f){var v,C,S,k,M,x,A,O,I,U=this;if(d=new F(d),d.c&&!d.isInteger())throw Error(a+"Exponent not an integer: "+K(d));if(f!=null&&(f=new F(f)),x=d.e>14,!U.c||!U.c[0]||U.c[0]==1&&!U.e&&U.c.length==1||!d.c||!d.c[0])return I=new F(Math.pow(+K(U),x?d.s*(2-D(d)):+K(d))),f?I.mod(f):I;if(A=d.s<0,f){if(f.c?!f.c[0]:!f.s)return new F(NaN);C=!A&&U.isInteger()&&f.isInteger(),C&&(U=U.mod(f))}else{if(d.e>9&&(U.e>0||U.e<-1||(U.e==0?U.c[0]>1||x&&U.c[1]>=24e7:U.c[0]<8e13||x&&U.c[0]<=9999975e7)))return k=U.s<0&&D(d)?-0:0,U.e>-1&&(k=1/k),new F(A?1/k:k);Se&&(k=n(Se/l+2))}for(x?(v=new F(.5),A&&(d.s=1),O=D(d)):(S=Math.abs(+K(d)),O=S%2),I=new F(re);;){if(O){if(I=I.times(U),!I.c)break;k?I.c.length>k&&(I.c.length=k):C&&(I=I.mod(f))}if(S){if(S=o(S/2),S===0)break;O=S%2}else if(d=d.times(v),ae(d,d.e+1,1),d.e>14)O=D(d);else{if(S=+K(d),S===0)break;O=S%2}U=U.times(U),k?U.c&&U.c.length>k&&(U.c.length=k):C&&(U=U.mod(f))}return C?I:(A&&(I=re.div(I)),f?I.mod(f):k?ae(I,Se,Y,M):I)},E.integerValue=function(d){var f=new F(this);return d==null?d=Y:_(d,0,8),ae(f,f.e+1,d)},E.isEqualTo=E.eq=function(d,f){return b(this,new F(d,f))===0},E.isFinite=function(){return!!this.c},E.isGreaterThan=E.gt=function(d,f){return b(this,new F(d,f))>0},E.isGreaterThanOrEqualTo=E.gte=function(d,f){return(f=b(this,new F(d,f)))===1||f===0},E.isInteger=function(){return!!this.c&&T(this.e/l)>this.c.length-2},E.isLessThan=E.lt=function(d,f){return b(this,new F(d,f))<0},E.isLessThanOrEqualTo=E.lte=function(d,f){return(f=b(this,new F(d,f)))===-1||f===0},E.isNaN=function(){return!this.s},E.isNegative=function(){return this.s<0},E.isPositive=function(){return this.s>0},E.isZero=function(){return!!this.c&&this.c[0]==0},E.minus=function(d,f){var v,C,S,k,M=this,x=M.s;if(d=new F(d,f),f=d.s,!x||!f)return new F(NaN);if(x!=f)return d.s=-f,M.plus(d);var A=M.e/l,O=d.e/l,I=M.c,U=d.c;if(!A||!O){if(!I||!U)return I?(d.s=-f,d):new F(U?M:NaN);if(!I[0]||!U[0])return U[0]?(d.s=-f,d):new F(I[0]?M:Y==3?-0:0)}if(A=T(A),O=T(O),I=I.slice(),x=A-O){for((k=x<0)?(x=-x,S=I):(O=A,S=U),S.reverse(),f=x;f--;S.push(0));S.reverse()}else for(C=(k=(x=I.length)<(f=U.length))?x:f,x=f=0;f<C;f++)if(I[f]!=U[f]){k=I[f]<U[f];break}if(k&&(S=I,I=U,U=S,d.s=-d.s),f=(C=U.length)-(v=I.length),f>0)for(;f--;I[v++]=0);for(f=s-1;C>x;){if(I[--C]<U[C]){for(v=C;v&&!I[--v];I[v]=f);--I[v],I[C]+=s}I[C]-=U[C]}for(;I[0]==0;I.splice(0,1),--O);return I[0]?ue(d,I,O):(d.s=Y==3?-1:1,d.c=[d.e=0],d)},E.modulo=E.mod=function(d,f){var v,C,S=this;return d=new F(d,f),!S.c||!d.s||d.c&&!d.c[0]?new F(NaN):!d.c||S.c&&!S.c[0]?new F(S):(ye==9?(C=d.s,d.s=1,v=N(S,d,0,3),d.s=C,v.s*=C):v=N(S,d,0,ye),d=S.minus(v.times(d)),!d.c[0]&&ye==1&&(d.s=S.s),d)},E.multipliedBy=E.times=function(d,f){var v,C,S,k,M,x,A,O,I,U,se,ie,Ce,me,Be,Ie=this,ge=Ie.c,Oe=(d=new F(d,f)).c;if(!ge||!Oe||!ge[0]||!Oe[0])return!Ie.s||!d.s||ge&&!ge[0]&&!Oe||Oe&&!Oe[0]&&!ge?d.c=d.e=d.s=null:(d.s*=Ie.s,!ge||!Oe?d.c=d.e=null:(d.c=[0],d.e=0)),d;for(C=T(Ie.e/l)+T(d.e/l),d.s*=Ie.s,A=ge.length,U=Oe.length,A<U&&(Ce=ge,ge=Oe,Oe=Ce,S=A,A=U,U=S),S=A+U,Ce=[];S--;Ce.push(0));for(me=s,Be=h,S=U;--S>=0;){for(v=0,se=Oe[S]%Be,ie=Oe[S]/Be|0,M=A,k=S+M;k>S;)O=ge[--M]%Be,I=ge[M]/Be|0,x=ie*O+I*se,O=se*O+x%Be*Be+Ce[k]+v,v=(O/me|0)+(x/Be|0)+ie*I,Ce[k--]=O%me;Ce[k]=v}return v?++C:Ce.splice(0,1),ue(d,Ce,C)},E.negated=function(){var d=new F(this);return d.s=-d.s||null,d},E.plus=function(d,f){var v,C=this,S=C.s;if(d=new F(d,f),f=d.s,!S||!f)return new F(NaN);if(S!=f)return d.s=-f,C.minus(d);var k=C.e/l,M=d.e/l,x=C.c,A=d.c;if(!k||!M){if(!x||!A)return new F(S/0);if(!x[0]||!A[0])return A[0]?d:new F(x[0]?C:S*0)}if(k=T(k),M=T(M),x=x.slice(),S=k-M){for(S>0?(M=k,v=A):(S=-S,v=x),v.reverse();S--;v.push(0));v.reverse()}for(S=x.length,f=A.length,S-f<0&&(v=A,A=x,x=v,f=S),S=0;f;)S=(x[--f]=x[f]+A[f]+S)/s|0,x[f]=s===x[f]?0:x[f]%s;return S&&(x=[S].concat(x),++M),ue(d,x,M)},E.precision=E.sd=function(d,f){var v,C,S,k=this;if(d!=null&&d!==!!d)return _(d,1,m),f==null?f=Y:_(f,0,8),ae(new F(k),d,f);if(!(v=k.c))return null;if(S=v.length-1,C=S*l+1,S=v[S]){for(;S%10==0;S/=10,C--);for(S=v[0];S>=10;S/=10,C++);}return d&&k.e+1>C&&(C=k.e+1),C},E.shiftedBy=function(d){return _(d,-c,c),this.times("1e"+d)},E.squareRoot=E.sqrt=function(){var d,f,v,C,S,k=this,M=k.c,x=k.s,A=k.e,O=Z+4,I=new F("0.5");if(x!==1||!M||!M[0])return new F(!x||x<0&&(!M||M[0])?NaN:M?k:1/0);if(x=Math.sqrt(+K(k)),x==0||x==1/0?(f=y(M),(f.length+A)%2==0&&(f+="0"),x=Math.sqrt(+f),A=T((A+1)/2)-(A<0||A%2),x==1/0?f="5e"+A:(f=x.toExponential(),f=f.slice(0,f.indexOf("e")+1)+A),v=new F(f)):v=new F(x+""),v.c[0]){for(A=v.e,x=A+O,x<3&&(x=0);;)if(S=v,v=I.times(S.plus(N(k,S,O,1))),y(S.c).slice(0,x)===(f=y(v.c)).slice(0,x))if(v.e<A&&--x,f=f.slice(x-3,x+1),f=="9999"||!C&&f=="4999"){if(!C&&(ae(S,S.e+Z+2,0),S.times(S).eq(k))){v=S;break}O+=4,x+=4,C=1}else{(!+f||!+f.slice(1)&&f.charAt(0)=="5")&&(ae(v,v.e+Z+2,1),d=!v.times(v).eq(k));break}}return ae(v,v.e+Z+1,Y,d)},E.toExponential=function(d,f){return d!=null&&(_(d,0,m),d++),ve(this,d,f,1)},E.toFixed=function(d,f){return d!=null&&(_(d,0,m),d=d+this.e+1),ve(this,d,f)},E.toFormat=function(d,f,v){var C,S=this;if(v==null)d!=null&&f&&typeof f=="object"?(v=f,f=null):d&&typeof d=="object"?(v=d,d=f=null):v=he;else if(typeof v!="object")throw Error(a+"Argument not an object: "+v);if(C=S.toFixed(d,f),S.c){var k,M=C.split("."),x=+v.groupSize,A=+v.secondaryGroupSize,O=v.groupSeparator||"",I=M[0],U=M[1],se=S.s<0,ie=se?I.slice(1):I,Ce=ie.length;if(A&&(k=x,x=A,A=k,Ce-=k),x>0&&Ce>0){for(k=Ce%x||x,I=ie.substr(0,k);k<Ce;k+=x)I+=O+ie.substr(k,x);A>0&&(I+=O+ie.slice(k)),se&&(I="-"+I)}C=U?I+(v.decimalSeparator||"")+((A=+v.fractionGroupSize)?U.replace(new RegExp("\\d{"+A+"}\\B","g"),"$&"+(v.fractionGroupSeparator||"")):U):I}return(v.prefix||"")+C+(v.suffix||"")},E.toFraction=function(d){var f,v,C,S,k,M,x,A,O,I,U,se,ie=this,Ce=ie.c;if(d!=null&&(x=new F(d),!x.isInteger()&&(x.c||x.s!==1)||x.lt(re)))throw Error(a+"Argument "+(x.isInteger()?"out of range: ":"not an integer: ")+K(x));if(!Ce)return new F(ie);for(f=new F(re),O=v=new F(re),C=A=new F(re),se=y(Ce),k=f.e=se.length-ie.e-1,f.c[0]=p[(M=k%l)<0?l+M:M],d=!d||x.comparedTo(f)>0?k>0?f:O:x,M=fe,fe=1/0,x=new F(se),A.c[0]=0;I=N(x,f,0,1),S=v.plus(I.times(C)),S.comparedTo(d)!=1;)v=C,C=S,O=A.plus(I.times(S=O)),A=S,f=x.minus(I.times(S=f)),x=S;return S=N(d.minus(v),C,0,1),A=A.plus(S.times(O)),v=v.plus(S.times(C)),A.s=O.s=ie.s,k=k*2,U=N(O,C,k,Y).minus(ie).abs().comparedTo(N(A,v,k,Y).minus(ie).abs())<1?[O,C]:[A,v],fe=M,U},E.toNumber=function(){return+K(this)},E.toPrecision=function(d,f){return d!=null&&_(d,1,m),ve(this,d,f,2)},E.toString=function(d){var f,v=this,C=v.s,S=v.e;return S===null?C?(f="Infinity",C<0&&(f="-"+f)):f="NaN":(d==null?f=S<=ce||S>=B?V(y(v.c),S):X(y(v.c),S,"0"):d===10&&z?(v=ae(new F(v),Z+S+1,Y),f=X(y(v.c),v.e,"0")):(_(d,2,Ue.length,"Base"),f=R(X(y(v.c),S,"0"),10,d,C,!0)),C<0&&v.c[0]&&(f="-"+f)),f},E.valueOf=E.toJSON=function(){return K(this)},E._isBigNumber=!0,P!=null&&F.set(P),F}function T(P){var N=P|0;return P>0||P===N?N:N-1}function y(P){for(var N,R,Q=1,E=P.length,re=P[0]+"";Q<E;){for(N=P[Q++]+"",R=l-N.length;R--;N="0"+N);re+=N}for(E=re.length;re.charCodeAt(--E)===48;);return re.slice(0,E+1||1)}function b(P,N){var R,Q,E=P.c,re=N.c,Z=P.s,Y=N.s,ce=P.e,B=N.e;if(!Z||!Y)return null;if(R=E&&!E[0],Q=re&&!re[0],R||Q)return R?Q?0:-Y:Z;if(Z!=Y)return Z;if(R=Z<0,Q=ce==B,!E||!re)return Q?0:!E^R?1:-1;if(!Q)return ce>B^R?1:-1;for(Y=(ce=E.length)<(B=re.length)?ce:B,Z=0;Z<Y;Z++)if(E[Z]!=re[Z])return E[Z]>re[Z]^R?1:-1;return ce==B?0:ce>B^R?1:-1}function _(P,N,R,Q){if(P<N||P>R||P!==o(P))throw Error(a+(Q||"Argument")+(typeof P=="number"?P<N||P>R?" out of range: ":" not an integer: ":" not a primitive number: ")+String(P))}function D(P){var N=P.c.length-1;return T(P.e/l)==N&&P.c[N]%2!=0}function V(P,N){return(P.length>1?P.charAt(0)+"."+P.slice(1):P)+(N<0?"e":"e+")+N}function X(P,N,R){var Q,E;if(N<0){for(E=R+".";++N;E+=R);P=E+P}else if(Q=P.length,++N>Q){for(E=R,N-=Q;--N;E+=R);P+=E}else N<Q&&(P=P.slice(0,N)+"."+P.slice(N));return P}e=g(),e.default=e.BigNumber=e,typeof define=="function"&&define.amd?define(function(){return e}):typeof Ao<"u"&&Ao.exports?Ao.exports=e:(t||(t=typeof self<"u"&&self?self:window),t.BigNumber=e)})(Qu)});var nd=ee((YA,rd)=>{"use strict";var ed=hi(),td=rd.exports;(function(){"use strict";function t(c){return c<10?"0"+c:c}var e=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,r=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,n,o,a={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},i;function s(c){return r.lastIndex=0,r.test(c)?'"'+c.replace(r,function(p){var h=a[p];return typeof h=="string"?h:"\\u"+("0000"+p.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+c+'"'}function l(c,p){var h,m,g,T,y=n,b,_=p[c],D=_!=null&&(_ instanceof ed||ed.isBigNumber(_));switch(_&&typeof _=="object"&&typeof _.toJSON=="function"&&(_=_.toJSON(c)),typeof i=="function"&&(_=i.call(p,c,_)),typeof _){case"string":return D?_:s(_);case"number":return isFinite(_)?String(_):"null";case"boolean":case"null":case"bigint":return String(_);case"object":if(!_)return"null";if(n+=o,b=[],Object.prototype.toString.apply(_)==="[object Array]"){for(T=_.length,h=0;h<T;h+=1)b[h]=l(h,_)||"null";return g=b.length===0?"[]":n?`[
|
|
9
9
|
`+n+b.join(`,
|
|
10
10
|
`+n)+`
|
|
11
11
|
`+y+"]":"["+b.join(",")+"]",n=y,g}if(i&&typeof i=="object")for(T=i.length,h=0;h<T;h+=1)typeof i[h]=="string"&&(m=i[h],g=l(m,_),g&&b.push(s(m)+(n?": ":":")+g));else Object.keys(_).forEach(function(V){var X=l(V,_);X&&b.push(s(V)+(n?": ":":")+X)});return g=b.length===0?"{}":n?`{
|