@midscene/android-playground 1.4.8 → 1.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,10 @@
1
- /*! For license information please see index.4fd271a2.js.LICENSE.txt */
1
+ /*! For license information please see index.60642267.js.LICENSE.txt */
2
2
  (()=>{var e,A,t,r,n,o,i,a={85737(e){function A(e){return Promise.resolve().then(function(){var A=Error("Cannot find module '"+e+"'");throw A.code="MODULE_NOT_FOUND",A})}A.keys=()=>[],A.resolve=A,A.id=85737,e.exports=A},9998(e){function A(e){return Promise.resolve().then(function(){var A=Error("Cannot find module '"+e+"'");throw A.code="MODULE_NOT_FOUND",A})}A.keys=()=>[],A.resolve=A,A.id=9998,e.exports=A},63348(e){function A(e){return Promise.resolve().then(function(){var A=Error("Cannot find module '"+e+"'");throw A.code="MODULE_NOT_FOUND",A})}A.keys=()=>[],A.resolve=A,A.id=63348,e.exports=A},51560(e){function A(e){return Promise.resolve().then(function(){var A=Error("Cannot find module '"+e+"'");throw A.code="MODULE_NOT_FOUND",A})}A.keys=()=>[],A.resolve=A,A.id=51560,e.exports=A},15608(e,A,t){"use strict";var r=t(65723),n=t(58997),o=t(18926),i={};i.d=(e,A)=>{for(var t in A)i.o(A,t)&&!i.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},i.o=(e,A)=>Object.prototype.hasOwnProperty.call(e,A),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};i.r(a),i.d(a,{create:()=>o.vt});let{create:s}=a,l="midscene-auto-zoom",c="midscene-background-visible",d="midscene-elements-visible",u="midscene-model-call-details",p="midscene-dark-mode",g="midscene-playback-speed",f=e=>{if("undefined"==typeof window)return;var A=new URLSearchParams(window.location.search).get(e);if(null===A)return;let t=A.trim().toLowerCase();return!!["1","true","yes","on"].includes(t)||!["0","false","no","off"].includes(t)&&void 0},m=s(e=>{let A="false"!==localStorage.getItem(l),t="false"!==localStorage.getItem(c),r="false"!==localStorage.getItem(d),n="true"===localStorage.getItem(u),o="true"===localStorage.getItem(p),i=Number.parseFloat(localStorage.getItem(g)||"1"),a=Number.isNaN(i)?1:i,s=f("focusOnCursor"),m=f("showElementMarkers"),h=f("darkMode"),y=void 0===h?o:h;return void 0!==h&&localStorage.setItem(p,y.toString()),{backgroundVisible:t,elementsVisible:void 0===m?r:m,autoZoom:void 0===s?A:s,modelCallDetailsEnabled:n,darkModeEnabled:y,playbackSpeed:[.5,1,1.5,2].includes(a)?a:1,setBackgroundVisible:A=>{e({backgroundVisible:A}),localStorage.setItem(c,A.toString())},setElementsVisible:A=>{e({elementsVisible:A}),localStorage.setItem(d,A.toString())},setAutoZoom:A=>{e({autoZoom:A}),localStorage.setItem(l,A.toString())},setModelCallDetailsEnabled:A=>{e({modelCallDetailsEnabled:A}),localStorage.setItem(u,A.toString())},setDarkModeEnabled:A=>{e({darkModeEnabled:A}),localStorage.setItem(p,A.toString())},setPlaybackSpeed:A=>{e({playbackSpeed:A}),localStorage.setItem(g,A.toString())}}}),h="midscene-env-config",y="midscene-service-mode",E="midscene-tracking-active-tab",v="midscene-deep-think",b="midscene-screenshot-included",C="midscene-dom-included",k="midscene-ime-strategy",S="midscene-auto-dismiss-keyboard",I="midscene-keyboard-dismiss-strategy",R="midscene-always-refresh-screen-info",x=()=>localStorage.getItem(h)||"",j=e=>{let A=e.split("\n"),t={};return A.forEach(e=>{let A=e.trim();if(A.startsWith("#"))return;let r=A.replace(/^export\s+/i,"").replace(/;$/,"").trim().match(/^(\w+)=(.*)$/);if(r){let[,e,A]=r,n=A.trim();(n.startsWith("'")&&n.endsWith("'")||n.startsWith('"')&&n.endsWith('"'))&&(n=n.slice(1,-1)),t[e]=n}}),t},P=s((e,A)=>{let t=x(),r=j(t),n=window.location.href.startsWith("chrome-extension"),o=localStorage.getItem(y),i="false"!==localStorage.getItem(E),a="true"===localStorage.getItem(v),s="false"!==localStorage.getItem(b),l=localStorage.getItem(C)||"false";return{serviceMode:n?"In-Browser-Extension":o||"Server",setServiceMode:A=>{if(n)throw Error("serviceMode cannot be set in extension");e({serviceMode:A}),localStorage.setItem(y,A)},config:r,configString:t,setConfig:A=>e({config:A}),loadConfig:A=>{e({config:j(A),configString:A}),localStorage.setItem(h,A)},syncFromStorage:()=>{let A=x();e({config:j(A),configString:A})},forceSameTabNavigation:i,setForceSameTabNavigation:A=>{e({forceSameTabNavigation:A}),localStorage.setItem(E,A.toString())},deepThink:a,setDeepThink:A=>{e({deepThink:A}),localStorage.setItem(v,A.toString())},screenshotIncluded:s,setScreenshotIncluded:A=>{e({screenshotIncluded:A}),localStorage.setItem(b,A.toString())},domIncluded:"visible-only"===l?"visible-only":"true"===l,setDomIncluded:A=>{e({domIncluded:A}),localStorage.setItem(C,A.toString())},popupTab:"playground",setPopupTab:A=>{e({popupTab:A})},imeStrategy:localStorage.getItem(k)||"yadb-for-non-ascii",setImeStrategy:A=>{e({imeStrategy:A}),localStorage.setItem(k,A)},autoDismissKeyboard:"false"!==localStorage.getItem(S),setAutoDismissKeyboard:A=>{e({autoDismissKeyboard:A}),localStorage.setItem(S,A.toString())},keyboardDismissStrategy:localStorage.getItem(I)||"esc-first",setKeyboardDismissStrategy:A=>{e({keyboardDismissStrategy:A}),localStorage.setItem(I,A)},alwaysRefreshScreenInfo:"true"===localStorage.getItem(R),setAlwaysRefreshScreenInfo:A=>{e({alwaysRefreshScreenInfo:A}),localStorage.setItem(R,A.toString())}}});var w=t(64565),N=t(50217),O=t(29368);let K=()=>{let e=(0,N.j)(O.v4),A="";e&&(console.warn("MIDSCENE_DEBUG_MODEL_PROFILE is deprecated, use DEBUG=midscene:ai:profile instead"),A="ai:profile"),(0,N.j)(O.$l)&&(console.warn("MIDSCENE_DEBUG_MODEL_RESPONSE is deprecated, use DEBUG=midscene:ai:response instead"),A=A?"ai:*":"ai:call"),A&&(0,w.Nw)(A)};var T=t(85409);function B(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}let D={modelName:O._q,socksProxy:O.T4,httpProxy:O.Yf,openaiBaseURL:O.kX,openaiApiKey:O.Lh,openaiExtraConfig:O.Z7,modelFamily:O.v,timeout:O.Yg,temperature:O.V7,retryCount:O.vC,retryInterval:O.xg,reasoningEffort:O.y2,reasoningEnabled:O.nc,reasoningBudget:O.fS},M={modelName:O.xP,socksProxy:O.mZ,httpProxy:O.zQ,openaiBaseURL:O.zG,openaiApiKey:O.OK,openaiExtraConfig:O.ag,modelFamily:O.OY,timeout:O.Z$,temperature:O.Cn,retryCount:O.sg,retryInterval:O.wu,reasoningEffort:O.Vb,reasoningEnabled:O.u1,reasoningBudget:O.aO},z={modelName:O.HR,socksProxy:O.iw,httpProxy:O.FU,openaiBaseURL:O.$H,openaiApiKey:O.IQ,openaiExtraConfig:O.I2,modelFamily:O.yR,timeout:O.zD,temperature:O.W4,retryCount:O.Km,retryInterval:O.aK,reasoningEffort:O.VM,reasoningEnabled:O.M1,reasoningBudget:O.AU};var Q=t(19152);let L=function(e){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"*";if("string"!=typeof e||0===e.length)return e;if(e.length<=6)return e;let t=e.substring(0,3),r=e.substring(e.length-3),n=e.length-6,o=A.repeat(n);return`${t}${o}${r}`},Z=e=>Object.fromEntries(Object.entries(e).map(e=>{let[A,t]=e;if(!t)return[A,t];if("string"==typeof t&&/key/i.test(A))return[A,L(t)];if("object"==typeof t){let e=JSON.stringify(t);if(/key/i.test(e))return[A,L(e)]}return[A,t]})),X={insight:D,planning:M,default:z},J=(e,A)=>{let t=(0,w.aZ)("ai:config");t("will decideModelConfig base on agent.modelConfig()",e,Z(A));let r=X[e];if(!A[r.modelName])return void t("no modelName found for intent",e);let n=(e=>{var A,t,r;let n,{keys:o,provider:i,useLegacyLogic:a=!1}=e;K(),(0,w.aZ)("ai:config")("enter parseOpenaiSdkConfig with keys:",o);let s=a?i[O.Jq]:void 0,l=a?i[O.jG]:void 0,c=a?i[O.$]:void 0,d=a?i[O.CA]:void 0,u=a?i[O.b6]:void 0,p=a?(e=>{let A=e[O.pp],t=e[O.yb],r=e[O.NF],n=e[O.JM],o=e[O.j_],i=[A&&O.pp,t&&O.yb,r&&O.NF,n&&O.JM,o&&O.j_].filter(Boolean);if(i.length>1)throw Error(`Only one vision mode can be enabled at a time. Currently enabled modes: ${i.join(", ")}. Please disable all but one mode.`);if(r)return"qwen3-vl";if(t)return"qwen2.5-vl";if(A)return"doubao-vision";if(o)return"gemini";if(n)if("1"===n)return"vlm-ui-tars";else if("DOUBAO"===n||"DOUBAO-1.5"===n)return"vlm-ui-tars-doubao-1.5";else return"vlm-ui-tars-doubao"})(i):void 0,g=i[o.modelFamily]||p,f=i[o.openaiApiKey]||s,m=i[o.openaiBaseURL]||l,h=i[o.socksProxy]||c,y=i[o.httpProxy]||d,E=i[o.modelName],v=i[o.openaiExtraConfig],b=((e,A)=>{if(A)try{return JSON.parse(A)}catch(A){throw Error(`Failed to parse ${e} as a JSON. ${A.message}`,{cause:A})}})(o.openaiExtraConfig,v||u),C=i[o.temperature]?Number(i[o.temperature]):0;if(g&&!O._j.includes(g))throw Error(`Invalid MIDSCENE_MODEL_FAMILY value: ${g}`);let k="vlm-ui-tars"===g?O.UH.V1_0:"vlm-ui-tars-doubao"===g||"vlm-ui-tars-doubao-1.5"===g?O.UH.DOUBAO_1_5_20B:void 0,S=k?`UI-TARS=${k}`:g?`${g} mode`:"";return{socksProxy:h,httpProxy:y,openaiBaseURL:m,openaiApiKey:f,openaiExtraConfig:b,modelFamily:g,uiTarsModelVersion:k,modelName:E,modelDescription:S,intent:"-",timeout:i[o.timeout]?Number(i[o.timeout]):void 0,temperature:C,retryCount:(()=>{if(!i[o.retryCount])return 1;let e=Number(i[o.retryCount]);if(!Number.isFinite(e))return 1;if(e<0)throw Error(`${o.retryCount} must be non-negative, got ${e}`);return e})(),retryInterval:(()=>{if(!i[o.retryInterval])return 2e3;let e=Number(i[o.retryInterval]);if(!Number.isFinite(e))return 2e3;if(e<0)throw Error(`${o.retryInterval} must be non-negative, got ${e}`);return e})(),reasoningEffort:(null==(A=i[o.reasoningEffort])?void 0:A.trim())||void 0,reasoningEnabled:"true"===(n=null==(r=i[o.reasoningEnabled])||null==(t=r.trim())?void 0:t.toLowerCase())||"1"===n||"false"!==n&&"0"!==n&&void 0,reasoningBudget:(()=>{var e;let A=null==(e=i[o.reasoningBudget])?void 0:e.trim();if(!A)return;let t=Number(A);return Number.isFinite(t)?t:void 0})()}})({keys:r,provider:A,useLegacyLogic:"default"===e});return n.intent=e,t("decideModelConfig result by agent.modelConfig() with intent",e,Z({...n})),(0,Q.vA)(n.openaiBaseURL,`failed to get base URL of model (intent=${e}). See https://midscenejs.com/model-strategy`),n.modelName||console.warn(`modelName is not set for intent ${e}, this may cause unexpected behavior. See https://midscenejs.com/model-strategy`),n};function U(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}let F=new class{initialize(){var e;let A;if(this.isInitialized)return;this.modelConfig?(this.isolatedMode=!0,A=this.normalizeModelConfig(this.modelConfig)):A=(null==(e=this.globalConfigManager)?void 0:e.getAllEnvConfig())||{};let t=J("default",A);if(!t)throw Error("Model configuration is incomplete: model name (MIDSCENE_MODEL_NAME) is required. See https://midscenejs.com/model-strategy.html");let r=J("insight",A),n=J("planning",A);this.modelConfigMap={default:{...t,createOpenAIClient:this.createOpenAIClientFn},insight:{...r||t,createOpenAIClient:this.createOpenAIClientFn},planning:{...n||t,createOpenAIClient:this.createOpenAIClientFn}},this.isInitialized=!0}normalizeModelConfig(e){return Object.entries(e).reduce((e,A)=>{let[t,r]=A;return null==r||(e[t]=String(r)),e},Object.create(null))}clearModelConfigMap(){if(this.isolatedMode)throw Error("ModelConfigManager work in isolated mode, so clearModelConfigMap should not be called");this.isInitialized=!1}getModelConfig(e){if(this.isInitialized||this.initialize(),!this.modelConfigMap)throw Error("modelConfigMap is not initialized, which should not happen");return this.modelConfigMap[e]}getUploadTestServerUrl(){let{openaiExtraConfig:e}=this.getModelConfig("default");return null==e?void 0:e.REPORT_SERVER_URL}registerGlobalConfigManager(e){this.globalConfigManager=e}throwErrorIfNonVLModel(){if(!this.getModelConfig("default").modelFamily)throw Error("MIDSCENE_MODEL_FAMILY is not set to a visual language model (VL model), the element localization can not be achieved. Check your model configuration. See https://midscenejs.com/model-strategy.html")}constructor(e,A){U(this,"modelConfigMap",void 0),U(this,"isInitialized",!1),U(this,"isolatedMode",!1),U(this,"globalConfigManager",void 0),U(this,"modelConfig",void 0),U(this,"createOpenAIClientFn",void 0),this.modelConfig=e,this.createOpenAIClientFn=A}},q=new class{getAllEnvConfig(){let e=O.tk.reduce((e,A)=>(e[A]=T.env[A],e),Object.create(null));if(!this.override)return e;{let{newConfig:A,extendMode:t}=this.override;return t?{...e,...A}:{...A}}}getEnvConfigValue(e){let A=this.getAllEnvConfig();if(e===O.Sk)throw Error("MATCH_BY_POSITION is discarded, use MIDSCENE_MODEL_FAMILY instead");if(!O.rd.includes(e))throw Error(`getEnvConfigValue with key ${e} is not supported.`);let t=A[e];return(this.keysHaveBeenRead[e]=!0,"string"==typeof t)?t.trim():t}getEnvConfigInBoolean(e){let A=this.getAllEnvConfig();if(!O.c$.includes(e))throw Error(`getEnvConfigInBoolean with key ${e} is not supported`);let t=A[e];return this.keysHaveBeenRead[e]=!0,!!t&&(!!/^(true|1)$/i.test(t)||!/^(false|0)$/i.test(t)&&!!t.trim())}getEnvConfigValueAsNumber(e){if(!O.rd.includes(e)&&!O.DL.includes(e))throw Error(`getEnvConfigValueAsNumber with key ${e} is not supported.`);let A=this.getAllEnvConfig()[e];if(this.keysHaveBeenRead[e]=!0,"string"!=typeof A)return;let t=A.trim();if(!t)return;let r=Number(t);return Number.isNaN(r)?void 0:r}registerModelConfigManager(e){this.globalModelConfigManager=e}overrideAIConfig(e){var A;let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];for(let A in e){if(![...O.Lg,...O.XE].includes(A))throw Error(`Failed to override AI config, invalid key: ${A}`);let t=e[A];if("string"!=typeof t)throw Error(`Failed to override AI config, value for key ${A} must be a string, but got with type ${typeof t}`);this.keysHaveBeenRead[A]&&console.warn(`Warning: try to override AI config with key ${A} ,but it has been read.`)}let r=t?{...null==(A=this.override)?void 0:A.newConfig,...e}:e;if(this.override={newConfig:{...r},extendMode:t},!this.globalModelConfigManager)throw Error("globalModelConfigManager is not registered, which should not happen");this.globalModelConfigManager.clearModelConfigMap()}constructor(){B(this,"override",void 0),B(this,"keysHaveBeenRead",{}),B(this,"globalModelConfigManager",void 0),K()}};q.registerModelConfigManager(F),F.registerGlobalConfigManager(q);let V=function(e){let A=arguments.length>1&&void 0!==arguments[1]&&arguments[1];q.overrideAIConfig(e,A)};var G=t(65359);let H=["#01204E"];function W(e){return"searchArea"===e?"#028391":"#fd5907"}var Y=t(1352),_=t(80955),$=t(16921),ee=t(40089),eA=t(65584),et=t(22155);function er(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function en(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){er(o,r,n,i,a,"next",e)}function a(e){er(o,r,n,i,a,"throw",e)}i(void 0)})}}function eo(e){let{getScreenshot:A,getInterfaceInfo:t,serverOnline:n,isUserOperating:o=!1,mjpegUrl:i}=e,[a,s]=(0,et.useState)(null),[l,c]=(0,et.useState)(!1),[d,u]=(0,et.useState)(null),[p,g]=(0,et.useState)(0),[f,m]=(0,et.useState)(null),h=!!(i&&n),y=(0,et.useRef)(null),E=(0,et.useRef)(!1),v=(0,et.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return en(function*(){if(n){c(!0),e&&u(null);try{let e=yield A();if(console.log("Screenshot API response:",e),null==e?void 0:e.screenshot){let A=e.screenshot.toString().trim();A?(s(A),u(null),g(Date.now())):u("Empty screenshot data received")}else u("No screenshot data in response")}catch(e){console.error("Screenshot fetch error:",e),u(e instanceof Error?e.message:"Failed to fetch screenshot")}finally{c(!1)}}})()},[A,n]),b=(0,et.useCallback)(()=>en(function*(){if(n&&t)try{let e=yield t();e&&m(e)}catch(e){console.error("Interface info fetch error:",e)}})(),[t,n]),C=(0,et.useCallback)(()=>{y.current&&clearInterval(y.current),console.log("Starting screenshot polling (5s interval)"),y.current=setInterval(()=>{!E.current&&n&&v(!1)},5e3)},[v,n]),k=(0,et.useCallback)(()=>{y.current&&(console.log("Stopping screenshot polling"),clearInterval(y.current),y.current=null)},[]),S=(0,et.useCallback)(()=>{console.log("Pausing screenshot polling"),E.current=!0},[]),I=(0,et.useCallback)(()=>{console.log("Resuming screenshot polling"),E.current=!1},[]),R=(0,et.useCallback)(()=>{v(!0)},[v]);return((0,et.useEffect)(()=>{if(!n){s(null),u(null),m(null),k();return}return(b(),h)?void k():(v(!1),C(),()=>{k()})},[n,h,C,k,v,b]),(0,et.useEffect)(()=>{n&&(o?S():(I(),v(!1)))},[o,S,I,v,n]),(0,et.useEffect)(()=>()=>{k()},[k]),n)?h||!l||a?h||!d||a?(0,r.jsxs)("div",{className:"screenshot-viewer",children:[(0,r.jsx)("div",{className:"screenshot-header",children:(0,r.jsx)("div",{className:"screenshot-title",children:(0,r.jsx)("h3",{children:(null==f?void 0:f.type)?f.type:"Device Name"})})}),(0,r.jsxs)("div",{className:"screenshot-container",children:[(0,r.jsxs)("div",{className:"screenshot-overlay",children:[(0,r.jsxs)("div",{className:"device-name-overlay",children:["Device Name",(0,r.jsx)(ee.A,{title:null==f?void 0:f.description,children:(0,r.jsx)(Y.A,{size:16,className:"info-icon"})})]}),!h&&(0,r.jsxs)("div",{className:"screenshot-controls",children:[p>0&&(0,r.jsxs)("span",{className:"last-update-time",children:["Last updated ",(e=>{if(!e)return"";let A=Math.floor((Date.now()-e)/1e3);return A<60?`${A}s ago`:A<3600?`${Math.floor(A/60)}m ago`:new Date(e).toLocaleTimeString()})(p)]}),(0,r.jsx)(ee.A,{title:"Refresh screenshot",children:(0,r.jsx)(eA.Ay,{icon:(0,r.jsx)(_.A,{}),onClick:R,loading:l,size:"small"})}),o&&(0,r.jsxs)("span",{className:"operation-indicator",children:[(0,r.jsx)($.A,{size:"small"})," Operating..."]})]})]}),(0,r.jsx)("div",{className:"screenshot-content",children:h?(0,r.jsx)("img",{src:i,alt:"Device Live Stream",className:"screenshot-image"}):a?(0,r.jsx)("img",{src:a.startsWith("data:image/")?a:`data:image/png;base64,${a}`,alt:"Device Screenshot",className:"screenshot-image",onLoad:()=>console.log("Screenshot image loaded successfully"),onError:e=>{console.error("Screenshot image load error:",e),console.error("Screenshot data preview:",a.substring(0,100)),u("Failed to load screenshot image")}}):(0,r.jsx)("div",{className:"screenshot-placeholder",children:(0,r.jsx)("p",{children:"No screenshot available"})})})]})]}):(0,r.jsx)("div",{className:"screenshot-viewer error",children:(0,r.jsxs)("div",{className:"screenshot-placeholder",children:[(0,r.jsx)("h3",{children:"\uD83D\uDCF1 Screen Preview"}),(0,r.jsx)("p",{className:"error-message",children:d})]})}):(0,r.jsxs)("div",{className:"screenshot-viewer loading",children:[(0,r.jsx)($.A,{size:"large"}),(0,r.jsx)("p",{children:"Loading screenshot..."})]}):(0,r.jsx)("div",{className:"screenshot-viewer offline",children:(0,r.jsxs)("div",{className:"screenshot-placeholder",children:[(0,r.jsx)("h3",{children:"\uD83D\uDCF1 Screen Preview"}),(0,r.jsx)("p",{children:"Start the playground server to see real-time screenshots"})]})})}var ei=t(46453),ea=t(22770),es=t(34458),el=t(72644),ec=t(89289);t(16990),t(95678),t(46732),t(8963),t(25592);var ed=t(13078);(0,w.aZ)("img"),(0,w.aZ)("img");var eu=t(46244);(0,w.aZ)("ai:common");let ep=eu.z.object({left:eu.z.number(),top:eu.z.number()}),eg=eu.z.object({width:eu.z.number(),height:eu.z.number()});ep.and(eg).and(eu.z.object({zoom:eu.z.number().optional()}));let ef=eu.z.object({images:eu.z.array(eu.z.object({name:eu.z.string(),url:eu.z.string()})).optional(),convertHttpImage2Base64:eu.z.boolean().optional()}),em=eu.z.union([eu.z.string(),eu.z.object({prompt:eu.z.string()}).and(ef.partial())]),eh=eu.z.object({prompt:em,deepThink:eu.z.boolean().optional(),cacheable:eu.z.boolean().optional(),xpath:eu.z.union([eu.z.string(),eu.z.boolean()]).optional()}).passthrough(),ey=(e,A)=>{var t;return e&&(null==(t=e._def)?void 0:t.typeName)==="ZodObject"&&e.shape?Object.keys(e.shape).filter(t=>{var r;let n=e.shape[t];return!!(e=>{var A,t;let r=e;if((null==(A=r._def)?void 0:A.typeName)==="ZodOptional"&&(r=r._def.innerType),(null==(t=r._def)?void 0:t.typeName)==="ZodObject"){let e=r._def.shape();if("midscene_location_field_flag"in e||"prompt"in e&&e.prompt)return!0}return!1})(n)&&(!A||(null==(r=n._def)?void 0:r.typeName)!=="ZodOptional")}):[]};(0,w.aZ)("auto-glm-parser"),(0,w.aZ)("ai:inspect"),(0,w.aZ)("ai:section"),(0,w.aZ)("planning"),(0,w.aZ)("planning",{console:!0}),(0,w.aZ)("auto-glm-actions"),(0,w.aZ)("auto-glm-planning");var eE=t(85409);let ev={0:{keyCode:48,key:"0",code:"Digit0"},1:{keyCode:49,key:"1",code:"Digit1"},2:{keyCode:50,key:"2",code:"Digit2"},3:{keyCode:51,key:"3",code:"Digit3"},4:{keyCode:52,key:"4",code:"Digit4"},5:{keyCode:53,key:"5",code:"Digit5"},6:{keyCode:54,key:"6",code:"Digit6"},7:{keyCode:55,key:"7",code:"Digit7"},8:{keyCode:56,key:"8",code:"Digit8"},9:{keyCode:57,key:"9",code:"Digit9"},Power:{key:"Power",code:"Power"},Eject:{key:"Eject",code:"Eject"},Abort:{keyCode:3,code:"Abort",key:"Cancel"},Help:{keyCode:6,code:"Help",key:"Help"},Backspace:{keyCode:8,code:"Backspace",key:"Backspace"},Tab:{keyCode:9,code:"Tab",key:"Tab"},Numpad5:{keyCode:12,shiftKeyCode:101,key:"Clear",code:"Numpad5",shiftKey:"5",location:3},NumpadEnter:{keyCode:13,code:"NumpadEnter",key:"Enter",text:"\r",location:3},Enter:{keyCode:13,code:"Enter",key:"Enter",text:"\r"},"\r":{keyCode:13,code:"Enter",key:"Enter",text:"\r"},"\n":{keyCode:13,code:"Enter",key:"Enter",text:"\r"},ShiftLeft:{keyCode:16,code:"ShiftLeft",key:"Shift",location:1},ShiftRight:{keyCode:16,code:"ShiftRight",key:"Shift",location:2},ControlLeft:{keyCode:17,code:"ControlLeft",key:"Control",location:1},ControlRight:{keyCode:17,code:"ControlRight",key:"Control",location:2},AltLeft:{keyCode:18,code:"AltLeft",key:"Alt",location:1},AltRight:{keyCode:18,code:"AltRight",key:"Alt",location:2},Pause:{keyCode:19,code:"Pause",key:"Pause"},CapsLock:{keyCode:20,code:"CapsLock",key:"CapsLock"},Escape:{keyCode:27,code:"Escape",key:"Escape"},Convert:{keyCode:28,code:"Convert",key:"Convert"},NonConvert:{keyCode:29,code:"NonConvert",key:"NonConvert"},Space:{keyCode:32,code:"Space",key:" "},Numpad9:{keyCode:33,shiftKeyCode:105,key:"PageUp",code:"Numpad9",shiftKey:"9",location:3},PageUp:{keyCode:33,code:"PageUp",key:"PageUp"},Numpad3:{keyCode:34,shiftKeyCode:99,key:"PageDown",code:"Numpad3",shiftKey:"3",location:3},PageDown:{keyCode:34,code:"PageDown",key:"PageDown"},End:{keyCode:35,code:"End",key:"End"},Numpad1:{keyCode:35,shiftKeyCode:97,key:"End",code:"Numpad1",shiftKey:"1",location:3},Home:{keyCode:36,code:"Home",key:"Home"},Numpad7:{keyCode:36,shiftKeyCode:103,key:"Home",code:"Numpad7",shiftKey:"7",location:3},ArrowLeft:{keyCode:37,code:"ArrowLeft",key:"ArrowLeft"},Numpad4:{keyCode:37,shiftKeyCode:100,key:"ArrowLeft",code:"Numpad4",shiftKey:"4",location:3},Numpad8:{keyCode:38,shiftKeyCode:104,key:"ArrowUp",code:"Numpad8",shiftKey:"8",location:3},ArrowUp:{keyCode:38,code:"ArrowUp",key:"ArrowUp"},ArrowRight:{keyCode:39,code:"ArrowRight",key:"ArrowRight"},Numpad6:{keyCode:39,shiftKeyCode:102,key:"ArrowRight",code:"Numpad6",shiftKey:"6",location:3},Numpad2:{keyCode:40,shiftKeyCode:98,key:"ArrowDown",code:"Numpad2",shiftKey:"2",location:3},ArrowDown:{keyCode:40,code:"ArrowDown",key:"ArrowDown"},Select:{keyCode:41,code:"Select",key:"Select"},Open:{keyCode:43,code:"Open",key:"Execute"},PrintScreen:{keyCode:44,code:"PrintScreen",key:"PrintScreen"},Insert:{keyCode:45,code:"Insert",key:"Insert"},Numpad0:{keyCode:45,shiftKeyCode:96,key:"Insert",code:"Numpad0",shiftKey:"0",location:3},Delete:{keyCode:46,code:"Delete",key:"Delete"},NumpadDecimal:{keyCode:46,shiftKeyCode:110,code:"NumpadDecimal",key:"\0",shiftKey:".",location:3},Digit0:{keyCode:48,code:"Digit0",shiftKey:")",key:"0"},Digit1:{keyCode:49,code:"Digit1",shiftKey:"!",key:"1"},Digit2:{keyCode:50,code:"Digit2",shiftKey:"@",key:"2"},Digit3:{keyCode:51,code:"Digit3",shiftKey:"#",key:"3"},Digit4:{keyCode:52,code:"Digit4",shiftKey:"$",key:"4"},Digit5:{keyCode:53,code:"Digit5",shiftKey:"%",key:"5"},Digit6:{keyCode:54,code:"Digit6",shiftKey:"^",key:"6"},Digit7:{keyCode:55,code:"Digit7",shiftKey:"&",key:"7"},Digit8:{keyCode:56,code:"Digit8",shiftKey:"*",key:"8"},Digit9:{keyCode:57,code:"Digit9",shiftKey:"(",key:"9"},KeyA:{keyCode:65,code:"KeyA",shiftKey:"A",key:"a"},KeyB:{keyCode:66,code:"KeyB",shiftKey:"B",key:"b"},KeyC:{keyCode:67,code:"KeyC",shiftKey:"C",key:"c"},KeyD:{keyCode:68,code:"KeyD",shiftKey:"D",key:"d"},KeyE:{keyCode:69,code:"KeyE",shiftKey:"E",key:"e"},KeyF:{keyCode:70,code:"KeyF",shiftKey:"F",key:"f"},KeyG:{keyCode:71,code:"KeyG",shiftKey:"G",key:"g"},KeyH:{keyCode:72,code:"KeyH",shiftKey:"H",key:"h"},KeyI:{keyCode:73,code:"KeyI",shiftKey:"I",key:"i"},KeyJ:{keyCode:74,code:"KeyJ",shiftKey:"J",key:"j"},KeyK:{keyCode:75,code:"KeyK",shiftKey:"K",key:"k"},KeyL:{keyCode:76,code:"KeyL",shiftKey:"L",key:"l"},KeyM:{keyCode:77,code:"KeyM",shiftKey:"M",key:"m"},KeyN:{keyCode:78,code:"KeyN",shiftKey:"N",key:"n"},KeyO:{keyCode:79,code:"KeyO",shiftKey:"O",key:"o"},KeyP:{keyCode:80,code:"KeyP",shiftKey:"P",key:"p"},KeyQ:{keyCode:81,code:"KeyQ",shiftKey:"Q",key:"q"},KeyR:{keyCode:82,code:"KeyR",shiftKey:"R",key:"r"},KeyS:{keyCode:83,code:"KeyS",shiftKey:"S",key:"s"},KeyT:{keyCode:84,code:"KeyT",shiftKey:"T",key:"t"},KeyU:{keyCode:85,code:"KeyU",shiftKey:"U",key:"u"},KeyV:{keyCode:86,code:"KeyV",shiftKey:"V",key:"v"},KeyW:{keyCode:87,code:"KeyW",shiftKey:"W",key:"w"},KeyX:{keyCode:88,code:"KeyX",shiftKey:"X",key:"x"},KeyY:{keyCode:89,code:"KeyY",shiftKey:"Y",key:"y"},KeyZ:{keyCode:90,code:"KeyZ",shiftKey:"Z",key:"z"},MetaLeft:{keyCode:91,code:"MetaLeft",key:"Meta",location:1},MetaRight:{keyCode:92,code:"MetaRight",key:"Meta",location:2},ContextMenu:{keyCode:93,code:"ContextMenu",key:"ContextMenu"},NumpadMultiply:{keyCode:106,code:"NumpadMultiply",key:"*",location:3},NumpadAdd:{keyCode:107,code:"NumpadAdd",key:"+",location:3},NumpadSubtract:{keyCode:109,code:"NumpadSubtract",key:"-",location:3},NumpadDivide:{keyCode:111,code:"NumpadDivide",key:"/",location:3},F1:{keyCode:112,code:"F1",key:"F1"},F2:{keyCode:113,code:"F2",key:"F2"},F3:{keyCode:114,code:"F3",key:"F3"},F4:{keyCode:115,code:"F4",key:"F4"},F5:{keyCode:116,code:"F5",key:"F5"},F6:{keyCode:117,code:"F6",key:"F6"},F7:{keyCode:118,code:"F7",key:"F7"},F8:{keyCode:119,code:"F8",key:"F8"},F9:{keyCode:120,code:"F9",key:"F9"},F10:{keyCode:121,code:"F10",key:"F10"},F11:{keyCode:122,code:"F11",key:"F11"},F12:{keyCode:123,code:"F12",key:"F12"},F13:{keyCode:124,code:"F13",key:"F13"},F14:{keyCode:125,code:"F14",key:"F14"},F15:{keyCode:126,code:"F15",key:"F15"},F16:{keyCode:127,code:"F16",key:"F16"},F17:{keyCode:128,code:"F17",key:"F17"},F18:{keyCode:129,code:"F18",key:"F18"},F19:{keyCode:130,code:"F19",key:"F19"},F20:{keyCode:131,code:"F20",key:"F20"},F21:{keyCode:132,code:"F21",key:"F21"},F22:{keyCode:133,code:"F22",key:"F22"},F23:{keyCode:134,code:"F23",key:"F23"},F24:{keyCode:135,code:"F24",key:"F24"},NumLock:{keyCode:144,code:"NumLock",key:"NumLock"},ScrollLock:{keyCode:145,code:"ScrollLock",key:"ScrollLock"},AudioVolumeMute:{keyCode:173,code:"AudioVolumeMute",key:"AudioVolumeMute"},AudioVolumeDown:{keyCode:174,code:"AudioVolumeDown",key:"AudioVolumeDown"},AudioVolumeUp:{keyCode:175,code:"AudioVolumeUp",key:"AudioVolumeUp"},MediaTrackNext:{keyCode:176,code:"MediaTrackNext",key:"MediaTrackNext"},MediaTrackPrevious:{keyCode:177,code:"MediaTrackPrevious",key:"MediaTrackPrevious"},MediaStop:{keyCode:178,code:"MediaStop",key:"MediaStop"},MediaPlayPause:{keyCode:179,code:"MediaPlayPause",key:"MediaPlayPause"},Semicolon:{keyCode:186,code:"Semicolon",shiftKey:":",key:";"},Equal:{keyCode:187,code:"Equal",shiftKey:"+",key:"="},NumpadEqual:{keyCode:187,code:"NumpadEqual",key:"=",location:3},Comma:{keyCode:188,code:"Comma",shiftKey:"<",key:","},Minus:{keyCode:189,code:"Minus",shiftKey:"_",key:"-"},Period:{keyCode:190,code:"Period",shiftKey:">",key:"."},Slash:{keyCode:191,code:"Slash",shiftKey:"?",key:"/"},Backquote:{keyCode:192,code:"Backquote",shiftKey:"~",key:"`"},BracketLeft:{keyCode:219,code:"BracketLeft",shiftKey:"{",key:"["},Backslash:{keyCode:220,code:"Backslash",shiftKey:"|",key:"\\"},BracketRight:{keyCode:221,code:"BracketRight",shiftKey:"}",key:"]"},Quote:{keyCode:222,code:"Quote",shiftKey:'"',key:"'"},AltGraph:{keyCode:225,code:"AltGraph",key:"AltGraph"},Props:{keyCode:247,code:"Props",key:"CrSel"},Cancel:{keyCode:3,key:"Cancel",code:"Abort"},Clear:{keyCode:12,key:"Clear",code:"Numpad5",location:3},Shift:{keyCode:16,key:"Shift",code:"ShiftLeft",location:1},Control:{keyCode:17,key:"Control",code:"ControlLeft",location:1},Alt:{keyCode:18,key:"Alt",code:"AltLeft",location:1},Accept:{keyCode:30,key:"Accept"},ModeChange:{keyCode:31,key:"ModeChange"}," ":{keyCode:32,key:" ",code:"Space"},Print:{keyCode:42,key:"Print"},Execute:{keyCode:43,key:"Execute",code:"Open"},"\0":{keyCode:46,key:"\0",code:"NumpadDecimal",location:3},a:{keyCode:65,key:"a",code:"KeyA"},b:{keyCode:66,key:"b",code:"KeyB"},c:{keyCode:67,key:"c",code:"KeyC"},d:{keyCode:68,key:"d",code:"KeyD"},e:{keyCode:69,key:"e",code:"KeyE"},f:{keyCode:70,key:"f",code:"KeyF"},g:{keyCode:71,key:"g",code:"KeyG"},h:{keyCode:72,key:"h",code:"KeyH"},i:{keyCode:73,key:"i",code:"KeyI"},j:{keyCode:74,key:"j",code:"KeyJ"},k:{keyCode:75,key:"k",code:"KeyK"},l:{keyCode:76,key:"l",code:"KeyL"},m:{keyCode:77,key:"m",code:"KeyM"},n:{keyCode:78,key:"n",code:"KeyN"},o:{keyCode:79,key:"o",code:"KeyO"},p:{keyCode:80,key:"p",code:"KeyP"},q:{keyCode:81,key:"q",code:"KeyQ"},r:{keyCode:82,key:"r",code:"KeyR"},s:{keyCode:83,key:"s",code:"KeyS"},t:{keyCode:84,key:"t",code:"KeyT"},u:{keyCode:85,key:"u",code:"KeyU"},v:{keyCode:86,key:"v",code:"KeyV"},w:{keyCode:87,key:"w",code:"KeyW"},x:{keyCode:88,key:"x",code:"KeyX"},y:{keyCode:89,key:"y",code:"KeyY"},z:{keyCode:90,key:"z",code:"KeyZ"},Meta:{keyCode:91,key:"Meta",code:"MetaLeft",location:1},"*":{keyCode:106,key:"*",code:"NumpadMultiply",location:3},"+":{keyCode:107,key:"+",code:"NumpadAdd",location:3},"-":{keyCode:109,key:"-",code:"NumpadSubtract",location:3},"/":{keyCode:111,key:"/",code:"NumpadDivide",location:3},";":{keyCode:186,key:";",code:"Semicolon"},"=":{keyCode:187,key:"=",code:"Equal"},",":{keyCode:188,key:",",code:"Comma"},".":{keyCode:190,key:".",code:"Period"},"`":{keyCode:192,key:"`",code:"Backquote"},"[":{keyCode:219,key:"[",code:"BracketLeft"},"\\":{keyCode:220,key:"\\",code:"Backslash"},"]":{keyCode:221,key:"]",code:"BracketRight"},"'":{keyCode:222,key:"'",code:"Quote"},Attn:{keyCode:246,key:"Attn"},CrSel:{keyCode:247,key:"CrSel",code:"Props"},ExSel:{keyCode:248,key:"ExSel"},EraseEof:{keyCode:249,key:"EraseEof"},Play:{keyCode:250,key:"Play"},ZoomOut:{keyCode:251,key:"ZoomOut"},")":{keyCode:48,key:")",code:"Digit0"},"!":{keyCode:49,key:"!",code:"Digit1"},"@":{keyCode:50,key:"@",code:"Digit2"},"#":{keyCode:51,key:"#",code:"Digit3"},$:{keyCode:52,key:"$",code:"Digit4"},"%":{keyCode:53,key:"%",code:"Digit5"},"^":{keyCode:54,key:"^",code:"Digit6"},"&":{keyCode:55,key:"&",code:"Digit7"},"(":{keyCode:57,key:"(",code:"Digit9"},A:{keyCode:65,key:"A",code:"KeyA"},B:{keyCode:66,key:"B",code:"KeyB"},C:{keyCode:67,key:"C",code:"KeyC"},D:{keyCode:68,key:"D",code:"KeyD"},E:{keyCode:69,key:"E",code:"KeyE"},F:{keyCode:70,key:"F",code:"KeyF"},G:{keyCode:71,key:"G",code:"KeyG"},H:{keyCode:72,key:"H",code:"KeyH"},I:{keyCode:73,key:"I",code:"KeyI"},J:{keyCode:74,key:"J",code:"KeyJ"},K:{keyCode:75,key:"K",code:"KeyK"},L:{keyCode:76,key:"L",code:"KeyL"},M:{keyCode:77,key:"M",code:"KeyM"},N:{keyCode:78,key:"N",code:"KeyN"},O:{keyCode:79,key:"O",code:"KeyO"},P:{keyCode:80,key:"P",code:"KeyP"},Q:{keyCode:81,key:"Q",code:"KeyQ"},R:{keyCode:82,key:"R",code:"KeyR"},S:{keyCode:83,key:"S",code:"KeyS"},T:{keyCode:84,key:"T",code:"KeyT"},U:{keyCode:85,key:"U",code:"KeyU"},V:{keyCode:86,key:"V",code:"KeyV"},W:{keyCode:87,key:"W",code:"KeyW"},X:{keyCode:88,key:"X",code:"KeyX"},Y:{keyCode:89,key:"Y",code:"KeyY"},Z:{keyCode:90,key:"Z",code:"KeyZ"},":":{keyCode:186,key:":",code:"Semicolon"},"<":{keyCode:188,key:"<",code:"Comma"},_:{keyCode:189,key:"_",code:"Minus"},">":{keyCode:190,key:">",code:"Period"},"?":{keyCode:191,key:"?",code:"Slash"},"~":{keyCode:192,key:"~",code:"Backquote"},"{":{keyCode:219,key:"{",code:"BracketLeft"},"|":{keyCode:220,key:"|",code:"Backslash"},"}":{keyCode:221,key:"}",code:"BracketRight"},'"':{keyCode:222,key:'"',code:"Quote"},SoftLeft:{key:"SoftLeft",code:"SoftLeft",location:4},SoftRight:{key:"SoftRight",code:"SoftRight",location:4},Camera:{keyCode:44,key:"Camera",code:"Camera",location:4},Call:{key:"Call",code:"Call",location:4},EndCall:{keyCode:95,key:"EndCall",code:"EndCall",location:4},VolumeDown:{keyCode:182,key:"VolumeDown",code:"VolumeDown",location:4},VolumeUp:{keyCode:183,key:"VolumeUp",code:"VolumeUp",location:4}};Object.entries(ev).reduce((e,A)=>{let[t,r]=A,n=t.toLowerCase();return n!==t&&(e[n]=r),e},{});let eb="undefined"!=typeof window?/Mac|iPod|iPhone|iPad/.test(window.navigator.platform):"darwin"===eE.platform;ev.Enter.key,ev.Enter.key,eb?ev.Meta.key:ev.Control.key,ev.Shift.key,ev.Alt.key,ev.Space.key,ev.PageDown.key,ev.PageDown.key,ev.PageUp.key,ev.PageUp.key,t(22788),(0,w.aZ)("ui-tars-planning"),(0,w.aZ)("ui-tars-planning",{console:!0}),t(91182),t(63612),t(83198),t(79383),t(85409);let eC=(0,w.aZ)("yaml:utils");function ek(e,A){let t;eC("will call buildDetailedLocateParam",e,A);let r=e||(null==A?void 0:A.prompt)||(null==A?void 0:A.locate),n=!1,o=!0;return("object"==typeof A&&null!==A&&(n=A.deepThink??!1,o=A.cacheable??!0,t=A.xpath,e&&A.prompt&&e!==A.prompt&&console.warn("conflict prompt for item",e,A,"maybe you put the prompt in the wrong place"),r=r||A.prompt),r)?{prompt:r,deepThink:n,cacheable:o,xpath:t}:void eC("no prompt, will return undefined in buildDetailedLocateParam",A)}t(85409),(0,w.aZ)("yaml-player");let eS=["aiQuery","aiBoolean","aiNumber","aiString","aiAsk","aiAssert","aiWaitFor"];async function eI(e,A){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!(null==e?void 0:e.paramSchema)||!("shape"in e.paramSchema))return[A.prompt||"",t];let r=e.paramSchema,n=r&&"shape"in r?Object.keys(r.shape):[],{deviceOptions:o,...i}=t,a={...i,...t.deviceOptions||{}};return n.forEach(e=>{void 0!==A[e]&&null!==A[e]&&""!==A[e]&&(a[e]=A[e])}),r&&ey(r).forEach(e=>{let r=A[e];if(r&&"string"==typeof r){let A=ek(r,{deepThink:t.deepThink,cacheable:!0});A&&(a[e]=A)}}),[a]}async function eR(e,A,t,r,n){let o=null==t?void 0:t.find(e=>e.interfaceAlias===A||e.name===A);if(o&&"function"==typeof e.callActionInActionSpace)if(r.params){let A=await eI(o,r.params,n);return await e.callActionInActionSpace(o.name,A[0])}else{let A=r.prompt?ek(r.prompt,{deepThink:n.deepThink,cacheable:!0}):void 0,{deviceOptions:t,...i}=n,a={locate:A,...i,...n.deviceOptions||{}};return await e.callActionInActionSpace(o.name,a)}{let t=r.prompt;if("aiAssert"===A){var i;let{pass:A,thought:r}=await (null==e||null==(i=e.aiAssert)?void 0:i.call(e,t||"",void 0,{keepRawResponse:!0,...n}))||{};return{pass:A||!1,thought:r||""}}if(e&&"function"==typeof e[A])return await e[A](t,n);throw Error(`Unknown action type: ${A}`)}}var ex=t(76970),ej=t(52801),eP=t(8963).Buffer,ew={"node:fs"(e){e.exports=ej}},eN={},eO=function e(A){var t=eN[A];if(void 0!==t)return t.exports;var r=eN[A]={exports:{}};return ew[A](r,r.exports,e),r.exports}("node:fs");Q.NB;let eK=Q.x3;function eT(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}class eB{static create(e,A){return new eB((0,Q.uR)(),e,A)}get id(){return this._id}get format(){return this._format}get extension(){return"jpeg"===this._format?"jpeg":"png"}get capturedAt(){return this._capturedAt}get base64(){if(null!==this._base64)return this._base64;if(null!==this._persistedPath){let e=(0,ex.readFileSync)(this._persistedPath);return`data:image/${this._format};base64,${e.toString("base64")}`}if(null!==this._persistedHtmlPath){var e,A;let t,r,n=(e=this._persistedHtmlPath,A=this._id,t=`<script type="midscene-image" data-id="${A}">`,r=null,!function(e,A,t,r){let n=(0,eO.openSync)(e,"r"),o=(0,eO.statSync)(e).size,i=eP.alloc(65536),a=0,s="",l=!1,c="";try{for(;a<o;){let e=(0,eO.readSync)(n,i,0,65536,a),o=s+i.toString("utf-8",0,e);a+=e;let d=0;for(;d<o.length;)if(l){let e=o.indexOf(t,d);if(-1!==e){if(c+=o.slice(d,e),r(c))return;l=!1,c="",d=e+t.length}else{c+=o.slice(d,-t.length),s=o.slice(-t.length);break}}else{let e=o.indexOf(A,d);if(-1!==e){l=!0;let n=(c=o.slice(e+A.length)).indexOf(t);if(-1!==n){if(r(c.slice(0,n)))return;l=!1,c="",d=e+A.length+n+t.length}else{s=c.slice(-t.length),c=c.slice(0,-t.length);break}}else{s=o.slice(-A.length);break}}}}finally{(0,eO.closeSync)(n)}}(e,t,"<\/script>",e=>(r=eK(e),!0)),r);if(n)return n;throw Error(`Screenshot ${this._id}: cannot recover from HTML (id not found in ${this._persistedHtmlPath})`)}throw Error(`Screenshot ${this._id}: base64 data released without recovery path`)}hasBase64(){return null!==this._base64}markPersistedInline(e){this._persistedAs={$screenshot:this._id,capturedAt:this._capturedAt},this._persistedHtmlPath=e,this._base64=null}markPersistedToPath(e,A){this._persistedAs={base64:e,capturedAt:this._capturedAt},this._persistedPath=A,this._base64=null}toSerializable(){return this._persistedAs??{$screenshot:this._id,capturedAt:this._capturedAt}}static isSerialized(e){return"object"==typeof e&&null!==e&&("$screenshot"in e&&"string"==typeof e.$screenshot||"base64"in e&&"string"==typeof e.base64)&&"capturedAt"in e&&"number"==typeof e.capturedAt}get rawBase64(){return this.base64.replace(/^data:image\/(png|jpeg|jpg);base64,/,"")}constructor(e,A,t){eT(this,"_id",void 0),eT(this,"_base64",void 0),eT(this,"_format",void 0),eT(this,"_capturedAt",void 0),eT(this,"_persistedAs",null),eT(this,"_persistedPath",null),eT(this,"_persistedHtmlPath",null),this._id=e,this._base64=A,this._format=function(e){return e.startsWith("data:image/jpeg")||e.startsWith("data:image/jpg")?"jpeg":"png"}(A),this._capturedAt=t}}var eD=t(8963).Buffer;function eM(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function ez(e,A){var t,r;return A&&(null==(t=A.constructor)?void 0:t.name)==="Page"?"[Page object]":A&&(null==(r=A.constructor)?void 0:r.name)==="Browser"?"[Browser object]":A&&"function"==typeof A.toSerializable?A.toSerializable():A}function eQ(e,A){return"screenshot"!==e||"object"!=typeof A||null===A||eB.isSerialized(A)||"base64"in A&&A.base64,A}class eL{serialize(e){return JSON.stringify(this.toJSON(),ez,e)}toJSON(){return{logTime:this.logTime,name:this.name,description:this.description,tasks:this.tasks.map(e=>({...e,recorder:e.recorder||[]})),aiActContext:this.aiActContext}}static fromSerializedString(e){return new eL(JSON.parse(e,eQ))}static fromJSON(e){return new eL(e)}collectScreenshots(){let e=[];for(let t of this.tasks){var A;if((null==(A=t.uiContext)?void 0:A.screenshot)instanceof eB&&e.push(t.uiContext.screenshot),t.recorder)for(let A of t.recorder)A.screenshot instanceof eB&&e.push(A.screenshot)}return e}constructor(e){eM(this,"logTime",void 0),eM(this,"name",void 0),eM(this,"description",void 0),eM(this,"tasks",void 0),eM(this,"aiActContext",void 0),this.logTime=e.logTime,this.name=e.name,this.description=e.description,this.tasks=e.tasks,this.aiActContext=e.aiActContext}}class eZ{serialize(e){return JSON.stringify(this.toJSON(),ez,e)}serializeWithInlineScreenshots(e){let A=e=>e instanceof eB?{base64:e.base64}:Array.isArray(e)?e.map(A):e&&"object"==typeof e?Object.fromEntries(Object.entries(e).map(e=>{let[t,r]=e;return[t,A(r)]})):e;return JSON.stringify(A(this.toJSON()),null,e)}toJSON(){return{sdkVersion:this.sdkVersion,groupName:this.groupName,groupDescription:this.groupDescription,modelBriefs:this.modelBriefs,executions:this.executions.map(e=>e.toJSON())}}static fromSerializedString(e){return new eZ(JSON.parse(e,eQ))}static fromJSON(e){return new eZ(e)}collectAllScreenshots(){let e=[];for(let A of this.executions)e.push(...A.collectScreenshots());return e}serializeToFiles(e){let A=`${e}.screenshots`;(0,ex.existsSync)(A)||(0,ex.mkdirSync)(A,{recursive:!0});let t={};for(let e of this.collectAllScreenshots())if(e.hasBase64()){let r=(0,ed.join)(A,`${e.id}.${e.extension}`),n=e.rawBase64;(0,ex.writeFileSync)(r,eD.from(n,"base64")),t[e.id]=r}(0,ex.writeFileSync)(`${e}.screenshots.json`,JSON.stringify(t),"utf-8"),(0,ex.writeFileSync)(e,this.serialize(),"utf-8")}static fromFilesAsInlineJson(e){let A=(0,ex.readFileSync)(e,"utf-8"),t=`${e}.screenshots.json`;if(!(0,ex.existsSync)(t))return A;let r=JSON.parse((0,ex.readFileSync)(t,"utf-8")),n={};for(let[e,A]of Object.entries(r))if((0,ex.existsSync)(A)){let t=(0,ex.readFileSync)(A),r=A.endsWith(".jpeg")||A.endsWith(".jpg")?"jpeg":"png";n[e]=`data:image/${r};base64,${t.toString("base64")}`}return JSON.stringify(function e(A,t){if("string"==typeof A)return A;if(Array.isArray(A))return A.map(A=>e(A,t));if("object"==typeof A&&null!==A){if("$screenshot"in A){let e=A.$screenshot,r="number"==typeof A.capturedAt?A.capturedAt:void 0;return"string"==typeof e?t[e]?{base64:t[e],capturedAt:r}:e.startsWith("data:image/")||e.startsWith("./")||e.startsWith("/")?{base64:e,capturedAt:r}:{base64:`./screenshots/${e}.png`,capturedAt:r}:(console.warn("Invalid $screenshot value type:",typeof e),{base64:""})}let r={};for(let[n,o]of Object.entries(A))r[n]=e(o,t);return r}return A}(JSON.parse(A),n))}static cleanupFiles(e){for(let A of[e,`${e}.screenshots.json`,`${e}.screenshots`])try{(0,ex.rmSync)(A,{force:!0,recursive:!0})}catch{}}static getFilePaths(e){return[e,`${e}.screenshots.json`,`${e}.screenshots`]}constructor(e){eM(this,"sdkVersion",void 0),eM(this,"groupName",void 0),eM(this,"groupDescription",void 0),eM(this,"modelBriefs",void 0),eM(this,"executions",void 0),this.sdkVersion=e.sdkVersion,this.groupName=e.groupName,this.groupDescription=e.groupDescription,this.modelBriefs=e.modelBriefs,this.executions=e.executions.map(e=>e instanceof eL?e:eL.fromJSON(e))}}function eX(e){return e.subType||e.type}function eJ(e){if(!e)return"";if("string"==typeof e)return e;if("object"==typeof e){if("object"==typeof e.prompt&&null!==e.prompt&&e.prompt.prompt)return e.prompt.prompt;if("string"==typeof e.prompt)return e.prompt;if("string"==typeof e.description)return e.description}return""}function eU(e){var A,t,r,n,o,i,a,s,l,c;let d;if("Planning"===e.type&&(d="Locate"===e.subType?eJ(null==e?void 0:e.param):(null==(A=e.output)?void 0:A.log)||(null==(t=e.param)?void 0:t.userInstruction)),"Insight"===e.type&&(d=function(e){if(!e)return{content:""};let A=e=>{var A;return(null==e||null==(A=e.multimodalPrompt)?void 0:A.images)&&Array.isArray(e.multimodalPrompt.images)?e.multimodalPrompt.images:void 0},t=e=>"string"==typeof e?e:JSON.stringify(e);if(e.demand)return{content:t(e.demand),images:A(e)};if(e.assertion)return{content:t(e.assertion),images:A(e)};if(e.dataDemand){let{dataDemand:r}=e;if("string"==typeof r)return{content:r};if("object"==typeof r)return{content:t(r.demand||r),images:A(r)}}return{content:""}}(null==e?void 0:e.param).content),"Action Space"===e.type){let A=null==e||null==(r=e.param)?void 0:r.locate,t=A?eJ(A):"";(d=e.thought||"","number"==typeof(null==e||null==(n=e.param)?void 0:n.timeMs))?d=`${null==e||null==(o=e.param)?void 0:o.timeMs}ms`:"string"==typeof(null==e||null==(i=e.param)?void 0:i.scrollType)?d=(c=null==e?void 0:e.param)?`${c.direction||"down"}, ${c.scrollType||"singleAction"}, ${c.distance||"distance-not-set"}`:"":"string"==typeof(null==e||null==(a=e.param)?void 0:a.direction)&&(null==e?void 0:e.subType)==="PullGesture"?d=function(e){if(!e)return"";let A=[];return A.push(`direction: ${e.direction||"down"}`),e.distance&&A.push(`distance: ${e.distance}`),e.duration&&A.push(`duration: ${e.duration}ms`),A.join(", ")}(null==e?void 0:e.param):void 0!==(null==e||null==(s=e.param)?void 0:s.value)?d=null==e||null==(l=e.param)?void 0:l.value:(null==e?void 0:e.param)&&"object"==typeof(null==e?void 0:e.param)&&Object.keys((null==e?void 0:e.param)||{}).length>0&&(d=null==e?void 0:e.param),t&&(d=d&&"object"!=typeof d?`${t} - ${d}`:t)}if(void 0===d)return"";if("string"==typeof d)return d;if("object"==typeof d){let e=eJ(d);return e||JSON.stringify(d,void 0,2)}return String(d)}(0,w.aZ)("ai:service"),(0,w.aZ)("task-runner"),t(13009),t(35207),t(1344),t(8963).Buffer,t(85409),t(8963).Buffer,t(9140),eu.z.object({locate:eh.describe("The element to be tapped")}),eu.z.object({locate:eh.describe("The element to be right clicked")}),eu.z.object({locate:eh.describe("The element to be double clicked")}),eu.z.object({locate:eh.describe("The element to be hovered")}),eu.z.object({value:eu.z.union([eu.z.string(),eu.z.number()]).transform(e=>String(e)).describe("The text to input. Provide the final content for replace/append modes, or an empty string when using clear mode to remove existing text."),locate:eh.describe("the position of the placeholder or text content in the target input field. If there is no content, locate the center of the input field.").optional(),mode:eu.z.enum(["replace","clear","typeOnly"]).default("replace").describe('Input mode: "replace" (default) - clear the field and input the value; "typeOnly" - type the value directly without clearing the field first; "clear" - clear the field without inputting new text.')}),eu.z.object({locate:eh.describe("The element to be clicked before pressing the key").optional(),keyName:eu.z.string().describe("The key to be pressed. Use '+' for key combinations, e.g., 'Control+A', 'Shift+Enter'")}),eu.z.object({scrollType:eu.z.enum(["singleAction","scrollToBottom","scrollToTop","scrollToRight","scrollToLeft"]).default("singleAction").describe('The scroll behavior: "singleAction" for a single scroll action, "scrollToBottom" for scrolling all the way to the bottom by rapidly scrolling 5-10 times (skipping intermediate content until reaching the bottom), "scrollToTop" for scrolling all the way to the top by rapidly scrolling 5-10 times (skipping intermediate content until reaching the top), "scrollToRight" for scrolling all the way to the right by rapidly scrolling multiple times, "scrollToLeft" for scrolling all the way to the left by rapidly scrolling multiple times'),direction:eu.z.enum(["down","up","right","left"]).default("down").describe('The direction to scroll. Only effective when scrollType is "singleAction".'),distance:eu.z.number().nullable().optional().describe("The distance in pixels to scroll"),locate:eh.optional().describe('Describe the target element to be scrolled on, like "the table" or "the list" or "the content area" or "the scrollable area". Do NOT provide a general intent like "scroll to find some element"')}),eu.z.object({from:eh.describe("The position to be dragged"),to:eh.describe("The position to be dropped")}),eu.z.object({locate:eh.describe("The element to be long pressed"),duration:eu.z.number().default(500).optional().describe("Long press duration in milliseconds")}),eu.z.object({start:eh.optional().describe("Starting point of the swipe gesture, if not specified, the center of the page will be used"),direction:eu.z.enum(["up","down","left","right"]).optional().describe("The direction to swipe (required when using distance). The direction means the direction of the finger swipe."),distance:eu.z.number().optional().describe("The distance in pixels to swipe (mutually exclusive with end)"),end:eh.optional().describe("Ending point of the swipe gesture (mutually exclusive with distance)"),duration:eu.z.number().default(300).describe("Duration of the swipe gesture in milliseconds"),repeat:eu.z.number().optional().describe("The number of times to repeat the swipe gesture. 1 for default, 0 for infinite (e.g. endless swipe until the end of the page)")}),eu.z.object({locate:eh.describe("The input field to be cleared").optional()}),eu.z.object({direction:eu.z.enum(["left","right"]).describe("The direction to move the cursor"),times:eu.z.number().int().min(1).default(1).describe("The number of times to move the cursor in the specified direction")}),eu.z.object({timeMs:eu.z.number().default(1e3).optional().describe("Sleep duration in milliseconds, defaults to 1000ms (1 second)")}),t(88586),t(59300),t(85409),t(8963).Buffer,(0,w.aZ)("cache"),(0,w.aZ)("agent:task-builder"),(0,w.aZ)("device-task-executor"),(0,w.aZ)("agent"),["read-only","read-write","write-only"].map(e=>`"${e}"`).join(", ");class eF{async getActionSpace(e){return[]}validateParams(e,A){if(!(null==A?void 0:A.paramSchema)||!this.actionNeedsStructuredParams(A))return{valid:!0};if(!e.params)return{valid:!1,errorMessage:"Parameters are required"};try{let t=this.prepareParamsForValidation(e.params,A);return A.paramSchema.parse(t),{valid:!0}}catch(e){return this.handleValidationError(e)}}createDisplayContent(e,A,t){return A&&e.params&&(null==t?void 0:t.paramSchema)?this.buildParamsDisplayList(e.params,t).join("\n")||e.prompt||"":e.prompt||""}formatBasicErrorMessage(e){return(null==e?void 0:e.message)||"Unknown error"}getSchemaKeys(e){if(!(null==e?void 0:e.paramSchema)||!("shape"in e.paramSchema))return[];let A=e.paramSchema;return A&&"shape"in A?Object.keys(A.shape):[]}filterValidParams(e){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t={};return Object.keys(e).forEach(r=>{A.includes(r)||void 0===e[r]||null===e[r]||""===e[r]||(t[r]=e[r])}),t}actionNeedsStructuredParams(e){return"object"!=typeof e.paramSchema||!("shape"in e.paramSchema)||Object.keys(e.paramSchema.shape||{}).length>0}prepareParamsForValidation(e,A){let t={...e};return A.paramSchema&&ey(A.paramSchema).forEach(e=>{"string"==typeof t[e]&&(t[e]={midscene_location_field_flag:!0,prompt:t[e],center:[0,0],rect:{left:0,top:0,width:0,height:0}})}),t}handleValidationError(e){if(e.errors&&e.errors.length>0){let A=e.errors.filter(e=>{let A=e.path.join(".");return!A.includes("center")&&!A.includes("rect")&&!A.includes("midscene_location_field_flag")}).map(e=>{let A=e.path.join(".");return`${A}: ${e.message}`});if(A.length>0)return{valid:!1,errorMessage:`Validation error: ${A.join(", ")}`}}let A=e instanceof Error?e.message:"Unknown validation error";return{valid:!1,errorMessage:`Parameter validation failed: ${A}`}}buildParamsDisplayList(e,A){let t=[],r=A.paramSchema;if(!(r&&"shape"in r))return t;let n=ey(r);return Object.keys(r.shape).forEach(A=>{let r=e[A];if(this.isValidParamValue(r)){let e=this.capitalizeFirstLetter(A),o=this.formatParamValue(A,r,n.includes(A));t.push(`${e}: ${o}`)}}),t}isValidParamValue(e){return null!=e&&""!==e}capitalizeFirstLetter(e){return e.charAt(0).toUpperCase()+e.slice(1)}formatParamValue(e,A,t){return t||"string"==typeof A?`"${A}"`:"number"==typeof A&&"distance"===e?`${A}px`:`${A}`}}function eq(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}class eV extends eF{get id(){return this._id}onDumpUpdate(e){this.dumpUpdateCallback=void 0,this.dumpUpdateCallback=e}setProgressCallback(e){this.progressCallback=void 0,this.progressCallback=e}async parseStructuredParams(e,A,t){return await eI(e,A,t)}formatErrorMessage(e){return((null==e?void 0:e.message)||"").includes("of different extension")?"Conflicting extension detected. Please disable the suspicious plugins and refresh the page. Guide: https://midscenejs.com/quick-experience.html#faq":this.formatBasicErrorMessage(e)}async getActionSpace(e){var A;if(!this.agent&&this.agentFactory)try{this.agent=await this.agentFactory()}catch(e){return console.warn("Failed to create agent for actionSpace:",e),[]}if(null==(A=this.agent)?void 0:A.getActionSpace)return await this.agent.getActionSpace();if(this.agent&&"interface"in this.agent&&"object"==typeof this.agent.interface){let e=this.agent.interface;if(null==e?void 0:e.actionSpace)return e.actionSpace()}return e&&"object"==typeof e&&"actionSpace"in e?e.actionSpace():[]}async checkStatus(){return!0}async overrideConfig(e){V(e),console.log("Config updated. Agent will be recreated on next execution.")}async detachDebuggerSafely(){try{var e,A;let t=null==(e=this.agent)?void 0:e.interface;await (null==t||null==(A=t.detachDebugger)?void 0:A.call(t))}catch(e){console.warn("Failed to detach debugger:",e)}}async executeAction(e,A,t){var r,n,o,i;let a;if(this.agentFactory){if(this.agent){console.log("Destroying old agent before execution...");try{await (null==(r=(n=this.agent).destroy)?void 0:r.call(n))}catch(e){console.warn("Failed to destroy old agent:",e)}this.agent=null}await this.recreateAgent()}if(!this.agent)throw Error("No agent available. Please provide either an agent instance or agentFactory.");let s=this.agent,l=await this.getActionSpace();try{null==(o=s.resetDump)||o.call(s)}catch(e){console.warn("Failed to reset dump before execution:",e)}t.requestId&&(this.currentRequestId=t.requestId,a=s.addDumpUpdateListener((e,A)=>{this.currentRequestId===t.requestId&&this.dumpUpdateCallback&&this.dumpUpdateCallback(e,A)}));try{let r=null,n=null;try{r=await eR(s,e,l,A,t)}catch(e){n=e}let o={result:r,dump:null,reportHTML:null,error:n?n instanceof Error?n.message:String(n):null};try{if(s.dumpDataString){let e=s.dumpDataString();e&&(o.dump=(null==(i=eZ.fromSerializedString(e).executions)?void 0:i[0])||null)}}catch(e){console.warn("Failed to get dump from agent:",e)}try{s.reportHTMLString&&(o.reportHTML=s.reportHTMLString()||null)}catch(e){}try{s.writeOutActionDumps&&s.writeOutActionDumps()}catch(e){}return o}finally{a&&a()}}async recreateAgent(){if(!this.agentFactory)throw Error("Cannot recreate agent: factory function not provided. Please provide agentFactory in PlaygroundConfig to enable agent recreation.");console.log("Creating new agent with latest config...");try{this.agent=await this.agentFactory(),console.log("Agent created successfully")}catch(e){throw console.error("Failed to create agent:",e),e}}async cancelTask(e){var A,t,r;if(!this.agent)return{error:"No active agent found for this requestId"};let n=null,o=null;try{if("function"==typeof this.agent.dumpDataString){let e=this.agent.dumpDataString();e&&(n=(null==(A=eZ.fromSerializedString(e).executions)?void 0:A[0])??null)}}catch(e){console.warn("[LocalExecutionAdapter] Failed to get dump data before cancel:",e)}try{if("function"==typeof this.agent.reportHTMLString){let e=this.agent.reportHTMLString();e&&"string"==typeof e&&!e.includes("REPLACE_ME_WITH_REPORT_HTML")&&(o=e)}}catch(e){console.warn("[LocalExecutionAdapter] reportHTMLString not available in this environment")}try{return await (null==(t=(r=this.agent).destroy)?void 0:t.call(r)),this.agent=null,{success:!0,dump:n,reportHTML:o}}catch(A){let e=A instanceof Error?A.message:"Unknown error";return console.error(`[LocalExecutionAdapter] Failed to cancel agent: ${e}`),{error:`Failed to cancel: ${e}`,dump:n,reportHTML:o}}}async getCurrentExecutionData(){let e={dump:null,reportHTML:null};try{var A,t,r;if(null==(A=this.agent)?void 0:A.dumpDataString){let A=this.agent.dumpDataString();A&&(e.dump=(null==(r=eZ.fromSerializedString(A).executions)?void 0:r[0])||null)}(null==(t=this.agent)?void 0:t.reportHTMLString)&&(e.reportHTML=this.agent.reportHTMLString()||null)}catch(e){console.error("Failed to get current execution data:",e)}return e}async getInterfaceInfo(){var e,A,t;if(!(null==(e=this.agent)?void 0:e.interface))return null;try{let e=this.agent.interface.interfaceType||"Unknown",r=(null==(A=(t=this.agent.interface).describe)?void 0:A.call(t))||void 0;return{type:e,description:r}}catch(e){return console.error("Failed to get interface info:",e),null}}constructor(e,A){super(),eq(this,"agent",void 0),eq(this,"agentFactory",void 0),eq(this,"dumpUpdateCallback",void 0),eq(this,"progressCallback",void 0),eq(this,"_id",void 0),eq(this,"currentRequestId",void 0),this.agent=e??null,this.agentFactory=A,this._id=(0,Q.uR)()}}function eG(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}class eH extends eF{onDumpUpdate(e){this.dumpUpdateCallback=void 0,this.dumpUpdateCallback=e}get id(){return this._id}validateParams(e,A){if(!(null==A?void 0:A.paramSchema)||!this.actionNeedsStructuredParams(A))return{valid:!0};if(!e.params)return{valid:!1,errorMessage:"Parameters are required"};if(A.paramSchema&&"object"==typeof A.paramSchema){let t=A.paramSchema;if(t.shape||"ZodObject"===t.type){let A=t.shape||{},r=Object.keys(A).filter(t=>{var r,n;let o=A[t];return!((null==o?void 0:o.isOptional)||(null==o||null==(r=o._def)?void 0:r.innerType)||(null==o||null==(n=o._def)?void 0:n.typeName)==="ZodOptional")&&(void 0===e.params[t]||""===e.params[t])});if(r.length>0)return{valid:!1,errorMessage:`Missing required parameters: ${r.join(", ")}`}}}return{valid:!0}}async parseStructuredParams(e,A,t){return await eI(e,A,t)}formatErrorMessage(e){let A=(null==e?void 0:e.message)||"",t=[{keyword:"adb",message:"ADB connection error. Please ensure device is connected and USB debugging is enabled."},{keyword:"UIAutomator",message:"UIAutomator error. Please ensure the UIAutomator server is running on the device."}].find(e=>{let{keyword:t}=e;return A.includes(t)});return t?t.message:this.formatBasicErrorMessage(e)}async executeAction(e,A,t){if(this.serverUrl&&"undefined"!=typeof window)return this.executeViaServer(e,A,t);throw Error("Remote execution adapter requires server URL for execution")}async executeViaServer(e,A,t){let r={type:e,prompt:A.prompt,...this.buildOptionalPayloadParams(t,A)};t.context&&(r.context=t.context),t.requestId&&this.dumpUpdateCallback&&this.startProgressPolling(t.requestId);try{let e=await fetch(`${this.serverUrl}/execute`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!e.ok){let A=await e.text().catch(()=>"Unknown error");throw Error(`Server request failed (${e.status}): ${A}`)}return await e.json()}catch(e){throw console.error("Execute via server failed:",e),e}finally{this.stopProgressPolling()}}buildOptionalPayloadParams(e,A){let t={};return[{key:"requestId",value:e.requestId},{key:"deepThink",value:e.deepThink},{key:"screenshotIncluded",value:e.screenshotIncluded},{key:"domIncluded",value:e.domIncluded},{key:"deviceOptions",value:e.deviceOptions},{key:"params",value:A.params}].forEach(e=>{let{key:A,value:r}=e;null!=r&&""!==r&&(t[A]=r)}),t}async getActionSpace(e){if(this.serverUrl&&"undefined"!=typeof window)try{let A=await fetch(`${this.serverUrl}/action-space`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({context:e})});if(!A.ok)throw Error(`Failed to get action space: ${A.statusText}`);let t=await A.json();return Array.isArray(t)?t:[]}catch(e){console.error("Failed to get action space from server:",e)}if(e&&"object"==typeof e&&"actionSpace"in e)try{let A=e.actionSpace,t=await A();return Array.isArray(t)?t:[]}catch(e){console.error("Failed to get action space from context:",e)}return[]}async checkStatus(){if(!this.serverUrl)return!1;try{let e=await fetch(`${this.serverUrl}/status`);if(200===e.status){try{let A=await e.json();A.id&&"string"==typeof A.id&&(this._id=A.id)}catch(e){console.debug("Failed to parse status response:",e)}return!0}return!1}catch(e){return console.warn("Server status check failed:",e),!1}}async overrideConfig(e){if(!this.serverUrl)throw Error("Server URL not configured");try{let A=await fetch(`${this.serverUrl}/config`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({aiConfig:e})});if(!A.ok){let e=await A.json().catch(()=>null),t=(null==e?void 0:e.error)||A.statusText;throw Error(t)}}catch(e){throw console.error("Failed to override server config:",e),e}}async getTaskProgress(e){if(!this.serverUrl)return{};if(!(null==e?void 0:e.trim()))return console.warn("Invalid requestId provided for task progress"),{};try{let A=await fetch(`${this.serverUrl}/task-progress/${encodeURIComponent(e)}`);if(!A.ok)return console.warn(`Task progress request failed: ${A.statusText}`),{};return await A.json()}catch(e){return console.error("Failed to poll task progress:",e),{}}}startProgressPolling(e){this.stopProgressPolling(),this.pollingIntervalId=setInterval(async()=>{try{let A=await this.getTaskProgress(e);A.executionDump&&this.dumpUpdateCallback&&this.dumpUpdateCallback("",A.executionDump)}catch(e){console.error("Error polling task progress:",e)}},500)}stopProgressPolling(){this.pollingIntervalId&&(clearInterval(this.pollingIntervalId),this.pollingIntervalId=void 0)}async cancelTask(e){if(!this.serverUrl)return{error:"No server URL configured"};if(!(null==e?void 0:e.trim()))return{error:"Invalid request ID"};try{let A=await fetch(`${this.serverUrl}/cancel/${encodeURIComponent(e)}`,{method:"POST"});if(!A.ok)return{error:`Cancel request failed: ${A.statusText}`};let t=await A.json();return{success:!0,...t}}catch(e){return console.error("Failed to cancel task:",e),{error:"Failed to cancel task"}}}async getScreenshot(){if(!this.serverUrl)return null;try{let e=await fetch(`${this.serverUrl}/screenshot`);if(!e.ok)return console.warn(`Screenshot request failed: ${e.statusText}`),null;return await e.json()}catch(e){return console.error("Failed to get screenshot:",e),null}}async getInterfaceInfo(){if(!this.serverUrl)return null;try{let e=await fetch(`${this.serverUrl}/interface-info`);if(!e.ok)return console.warn(`Interface info request failed: ${e.statusText}`),null;return await e.json()}catch(e){return console.error("Failed to get interface info:",e),null}}constructor(e){super(),eG(this,"serverUrl",void 0),eG(this,"_id",void 0),eG(this,"dumpUpdateCallback",void 0),eG(this,"pollingIntervalId",void 0),this.serverUrl=e}}class eW{createAdapter(e,A,t,r){switch(e){case"local-execution":if(!t&&!r)throw Error("Agent or agentFactory is required for local execution");return new eV(t,r);case"remote-execution":return new eH(A||("undefined"!=typeof window&&window.location.protocol.includes("http")?window.location.origin:"http://localhost:5800"));default:throw Error(`Unsupported execution type: ${e}`)}}async executeAction(e,A,t){return await this.adapter.executeAction(e,A,t)}async getActionSpace(e){return this.adapter.getActionSpace(e)}validateStructuredParams(e,A){return this.adapter.validateParams(e,A)}formatErrorMessage(e){return this.adapter.formatErrorMessage(e)}createDisplayContent(e,A,t){return this.adapter.createDisplayContent(e,A,t)}get id(){if(this.adapter instanceof eH||this.adapter instanceof eV)return this.adapter.id}async checkStatus(){return!(this.adapter instanceof eH)||this.adapter.checkStatus()}async overrideConfig(e){if(this.adapter instanceof eH)return this.adapter.overrideConfig(e)}async getTaskProgress(e){return this.adapter instanceof eH?this.adapter.getTaskProgress(e):{}}async cancelTask(e){return this.adapter instanceof eH?this.adapter.cancelTask(e):{error:"Cancel task not supported in local execution mode"}}onDumpUpdate(e){this.adapter instanceof eV?this.adapter.onDumpUpdate(e):this.adapter instanceof eH&&this.adapter.onDumpUpdate(e)}onProgressUpdate(e){this.adapter instanceof eV&&this.adapter.setProgressCallback(e)}async cancelExecution(e){if(this.adapter instanceof eH){let A=await this.adapter.cancelTask(e);if(A.success)return{dump:A.dump||null,reportHTML:A.reportHTML||null}}else if(this.adapter instanceof eV){let A=await this.adapter.cancelTask(e);if(A.success)return{dump:A.dump||null,reportHTML:A.reportHTML||null}}return null}async getCurrentExecutionData(){return this.adapter instanceof eV&&this.adapter.getCurrentExecutionData?await this.adapter.getCurrentExecutionData():{dump:null,reportHTML:null}}async getScreenshot(){return this.adapter instanceof eH?this.adapter.getScreenshot():null}async getInterfaceInfo(){return this.adapter instanceof eV||this.adapter instanceof eH?this.adapter.getInterfaceInfo():null}getServiceMode(){return this.adapter instanceof eV?"In-Browser-Extension":"Server"}constructor(e){!function(e,A,t){A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t}(this,"adapter",void 0),this.adapter=this.createAdapter(e.type,e.serverUrl,e.agent,e.agentFactory)}}function eY(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}let e_=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],[A,t]=(0,et.useState)(!0),{serviceMode:r}=P();return(0,et.useEffect)(()=>{let A=!1;if(e){var r;return Promise.resolve((r=function*(){for(;!A;){let e=new eW({type:"remote-execution"});(yield e.checkStatus())?t(!0):t(!1),yield new Promise(e=>setTimeout(e,1e3))}},function(){var e=this,A=arguments;return new Promise(function(t,n){var o=r.apply(e,A);function i(e){eY(o,t,n,i,a,"next",e)}function a(e){eY(o,t,n,i,a,"throw",e)}i(void 0)})})()),()=>{A=!0}}},[r,e]),A},e$=e=>{let{selectedDeviceId:A,scrcpyPlayerRef:t}=e,[n,o]=G.Ay.useMessage(),i=e_(!0);return(0,et.useCallback)(()=>{t.current&&(t.current.disconnectDevice(),n.info("Device disconnected"))},[t,n]),(0,r.jsxs)("div",{className:"device-header",children:[o,(0,r.jsxs)("div",{className:"device-title-container",children:[(0,r.jsx)("h2",{className:"device-title",children:"Device"}),(0,r.jsxs)("div",{className:"device-info-display",children:[(0,r.jsxs)("div",{className:"device-icon-container",children:[(0,r.jsx)(ec.A,{className:"device-icon"}),A&&i&&(0,r.jsx)("div",{className:"status-indicator",children:(0,r.jsx)("span",{className:"status-dot",style:{color:"#52c41a"},children:"●"})})]}),A?(0,r.jsx)("span",{className:"device-name",children:A}):(0,r.jsx)("span",{className:"device-name no-device",children:"No device selected"})]})]})]})},e0=e=>{let{hideLogo:A=!1}=e,{isDarkMode:t}=function(){let[e,A]=(0,et.useState)(!1);return(0,et.useEffect)(()=>{let e=()=>{var e;A("dark"===(null==(e=document.querySelector("[data-theme]"))?void 0:e.getAttribute("data-theme")))};e();let t=new MutationObserver(e),r=document.querySelector("[data-theme]")||document.documentElement;return t.observe(r,{attributes:!0,attributeFilter:["data-theme"]}),()=>t.disconnect()},[]),{isDarkMode:e}}();return A?null:(0,r.jsx)("div",{className:"logo",children:(0,r.jsx)("a",{href:"https://midscenejs.com/",target:"_blank",rel:"noreferrer",children:(0,r.jsx)("img",{alt:"Midscene_logo",src:t?"https://lf3-static.bytednsdoc.com/obj/eden-cn/nupipfups/Midscene/midscene_with_text_dark.png":"https://lf3-static.bytednsdoc.com/obj/eden-cn/nupipfups/Midscene/midscene_with_text_light.png"})})})};var e1=t(4177),e2=t(56766),e3=t(66419),e6=t(28594),e5=t(505),e7=t(64174);function e9(e){let{showTooltipWhenEmpty:A=!0,showModelName:t=!0,tooltipPlacement:n="bottom",mode:o="icon"}=e,{config:i,configString:a,loadConfig:s,syncFromStorage:l}=P(),[c,d]=(0,et.useState)(!1),[u,p]=(0,et.useState)(a),g=i.MIDSCENE_MODEL_NAME,f=(0,et.useRef)(null),m=e=>{l(),d(!0),e.preventDefault(),e.stopPropagation()};return(0,et.useEffect)(()=>{c&&p(a)},[c,a]),(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"10px",alignItems:"center",height:"100%",minHeight:"32px"},ref:f,children:[t?g:null,(0,r.jsx)(ee.A,{title:"Please set up your environment variables before using.",placement:n,align:{offset:[-10,5]},getPopupContainer:()=>f.current,open:!c&&(A?0===Object.keys(i).length:void 0),children:"icon"===o?(0,r.jsx)(e6.A,{onClick:m}):(0,r.jsx)("span",{onClick:m,style:{color:"#006AFF",cursor:"pointer"},children:"set up"})}),(0,r.jsxs)(e5.A,{title:"Model Env Config",open:c,onOk:()=>{d(!1),s(u)},onCancel:()=>{d(!1)},okText:"Save",style:{width:"800px",height:"100%",marginTop:"10%"},destroyOnClose:!0,maskClosable:!0,centered:!0,children:[(0,r.jsx)(e7.A.TextArea,{rows:7,placeholder:"MIDSCENE_MODEL_API_KEY=sk-...\nMIDSCENE_MODEL_NAME=gpt-4o-2024-08-06\n...",value:u,onChange:e=>p(e.target.value),style:{whiteSpace:"nowrap",wordWrap:"break-word"}}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{children:"The format is KEY=VALUE and separated by new lines."}),(0,r.jsxs)("p",{children:["These data will be saved ",(0,r.jsx)("strong",{children:"locally in your browser"}),"."]})]})]})]})}function e8(e){let{showEnvConfig:A=!0,showTooltipWhenEmpty:t=!1,showModelName:n=!1,githubUrl:o="https://github.com/web-infra-dev/midscene",helpUrl:i="https://midscenejs.com/quick-experience.html",className:a=""}=e;return(0,r.jsxs)("div",{className:`nav-actions ${a}`,children:[(0,r.jsx)(e3.A.Link,{href:o,target:"_blank",children:(0,r.jsx)(e1.A,{className:"nav-icon"})}),(0,r.jsx)(e3.A.Link,{href:i,target:"_blank",children:(0,r.jsx)(e2.A,{className:"nav-icon"})}),A&&(0,r.jsx)(e9,{showTooltipWhenEmpty:t,showModelName:n})]})}var e4=t(24707),Ae=t(9870),AA=t(99877),At=t(63147),Ar=t(56620),An=t(85810),Ao=t(90638);let Ai="Auto dismiss keyboard",Aa={aiAct:{group:"interaction",title:"Auto Planning: plan the steps and execute"},aiTap:{group:"interaction",title:"Click an element"},aiDoubleClick:{group:"interaction",title:"Double-click an element"},aiHover:{group:"interaction",title:"Hover over an element"},aiInput:{group:"interaction",title:"Input text into an element"},aiRightClick:{group:"interaction",title:"Right-click an element"},aiKeyboardPress:{group:"interaction",title:"Press keyboard keys"},aiScroll:{group:"interaction",title:"Scroll the page or element"},aiLocate:{group:"interaction",title:"Locate an element on the page"},aiQuery:{group:"extraction",title:"Extract data directly from the UI"},aiBoolean:{group:"extraction",title:"Get true/false answer"},aiNumber:{group:"extraction",title:"Extract numeric value"},aiString:{group:"extraction",title:"Extract text value"},aiAsk:{group:"extraction",title:"Ask a question about the UI"},aiAssert:{group:"validation",title:"Assert a condition is true"},aiWaitFor:{group:"validation",title:"Wait for a condition to be met"}},As=["aiAct","aiTap","aiQuery","aiAssert"],Al=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"web page";return{type:"system",content:`
3
3
  Welcome to Midscene.js Playground!
4
4
 
5
5
  This is a panel for experimenting and testing Midscene.js features. You can use natural language instructions to operate the ${e}, such as clicking buttons, filling in forms, querying information, etc.
6
6
 
7
7
  Please enter your instructions in the input box below to start experiencing.
8
- `,loading:!1,result:void 0,replayScriptsInfo:null,replayCounter:0,loadingProgressText:"",verticalMode:!1}};Al();let Ac={result:void 0,dump:null,reportHTML:null,error:null},Ad="data:image/png;base64,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",Au="data:image/png;base64,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",Ap=(e,A,t)=>{let r,n=(r=e.width/e.height>=A/t?e.width:e.height/t*A)>400?.1:r>50?.2:.3,o=Math.min(A,r+A*n*2),i=Math.min(e.left-A*n,A-o);i=Math.max(i,0);let a=Math.min(e.top-t*n,t-t/A*o);return{left:Math.round(i),top:Math.round(a=Math.max(a,0)),width:Math.round(o)}},Ag=e=>{var A,t,r;let n,o;if(!e)return console.warn("[allScriptsFromDump] dump is empty"),{scripts:[],modelBriefs:[]};let i=Array.isArray(e.executions)?e:{sdkVersion:"",groupName:"Execution",modelBriefs:[],executions:[e]},a=new Set,s=i.sdkVersion,l=new Set;if(null==(A=i.executions)||A.filter(Boolean).forEach(e=>{e.tasks.forEach(e=>{var A,t;if(null==(t=e.uiContext)||null==(A=t.shotSize)?void 0:A.width){let A=e.uiContext.shotSize.width,t=e.uiContext.shotSize.height;n||(n=A,o=t),a.add(`${A}x${t}`)}})}),!n||!o)return console.warn("width or height is missing in dump file"),{scripts:[],sdkVersion:s,modelBriefs:[]};let c=[],d=(null==(t=i.executions)?void 0:t.filter(Boolean))||[];for(let e=0;e<d.length;e++){let A=d[e],t=Af(A,-1,n,o,e);t&&c.push(...t),A.tasks.forEach(e=>{if(e.usage){let{model_name:A,model_description:t,intent:r}=e.usage;r&&A&&l.add(t?`${r}/${A}(${t})`:`${r}/${A}`)}})}let u=c.filter((e,A)=>A===c.length-1||"Done"!==e.title),p=(null==(r=i.modelBriefs)?void 0:r.length)?i.modelBriefs:[],g=(()=>{var e;let A=p.length?p:[...l];if(!A.length)return A;let t=null==(e=A[0])?void 0:e.split("/",2)[1];return t&&A.slice(1).every(e=>(null==e?void 0:e.split("/",2)[1])===t)?[t]:A})();return{scripts:u,width:n,height:o,sdkVersion:s,modelBriefs:g}},Af=function(e,A,t,r){let n;if(arguments.length>4&&void 0!==arguments[4]&&arguments[4],!e||!e.tasks.length||0===t||0===r)return null;let o=[];if(-1===A)o=e.tasks;else{let t=e.tasks.findIndex(e=>e===A);if(-1===t)return console.error("task not found, cannot generate animation scripts"),null;if(t===e.tasks.length-1)return null;for(let A=t;A<e.tasks.length&&(!(A>t)||"Planning"!==e.tasks[A].type||"Plan"!==e.tasks[A].subType);A++)o.push(e.tasks[A])}if(0===o.length)return null;let i=Ap({left:0,top:0,width:t,height:r},t,r),a=[],s=!1,l="";return o.forEach((e,A)=>{var c,d,u,p,g,f,m,h,y,E,v,b,C,k,S,I,R,x,j,P,w,N,O,K,T,B,D,M;let z=null==(M=o[A])?void 0:M.taskId;if(0===A&&(l=eU(e)),"Planning"===e.type){let A=[];if("Plan"===e.subType){let t=(null==(d=e.output)?void 0:d.actions)||[];if(t.length>0){let e=t[0],r=["locate","start","end"];if(e.param)for(let t in r.forEach(t=>{e.param[t]&&"object"==typeof e.param[t]&&"center"in(e.param[t]||{})&&A.push(e.param[t])}),e.param)!r.includes(t)&&"object"==typeof e.param[t]&&"center"in(e.param[t]||{})&&A.push(e.param[t])}}else"Locate"===e.subType&&(null==(c=e.output)?void 0:c.element)&&(A=[e.output.element]);let o=eX(e),i=eU(e),l=e.uiContext;if(null==l?void 0:l.screenshot){let c=(null==(u=l.shotSize)?void 0:u.width)||t,d=(null==(p=l.shotSize)?void 0:p.height)||r,g=l.screenshot.base64;a.push({type:"img",img:g,duration:300,title:o,subTitle:i,imageWidth:c,imageHeight:d,taskId:z}),A.forEach(A=>{var u,p,f,m,h,y;h=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({},Ap(A.rect,c,d)),y=y={pointerLeft:A.center[0],pointerTop:A.center[1]},Object.getOwnPropertyDescriptors?Object.defineProperties(h,Object.getOwnPropertyDescriptors(y)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(y)).forEach(function(e){Object.defineProperty(h,e,Object.getOwnPropertyDescriptor(y,e))}),n=h,a.push({type:"insight",img:g,context:l,camera:n,highlightElement:A,searchArea:null==(p=e.log)||null==(u=p.taskInfo)?void 0:u.searchArea,duration:400,insightCameraDuration:800,title:o,subTitle:A.description||i,imageWidth:(null==(f=l.shotSize)?void 0:f.width)||t,imageHeight:(null==(m=l.shotSize)?void 0:m.height)||r,taskId:z}),s=!0})}if(e.recorder&&e.recorder.length>0){let A=null==(g=e.recorder[0])?void 0:g.screenshot,n=(null==A?void 0:A.base64)||"";a.push({type:"img",img:n,duration:900,title:eX(e),subTitle:eU(e),imageWidth:(null==(m=e.uiContext)||null==(f=m.shotSize)?void 0:f.width)||t,imageHeight:(null==(y=e.uiContext)||null==(h=y.shotSize)?void 0:h.height)||r,taskId:z})}}else if("Action Space"===e.type){let A=eX(e),n=eU(e);a.push({type:"spinning-pointer",duration:300,title:A,subTitle:n,taskId:z}),s&&(a.push({type:"clear-insight",duration:200,title:A,subTitle:n,taskId:z}),s=!1),a.push({type:"pointer",img:Ad,duration:0,title:A,subTitle:n,taskId:z});let o=null==(v=e.recorder)||null==(E=v[0])?void 0:E.screenshot,l=(null==o?void 0:o.base64)||"";a.push({type:"img",img:l,duration:500,camera:"Sleep"===e.subType?i:void 0,title:A,subTitle:n,imageWidth:(null==(C=e.uiContext)||null==(b=C.shotSize)?void 0:b.width)||t,imageHeight:(null==(S=e.uiContext)||null==(k=S.shotSize)?void 0:k.height)||r,taskId:z})}else{let A=eX(e),n=eU(e),o=null==(R=e.recorder)||null==(I=R[e.recorder.length-1])?void 0:I.screenshot;if(o){let s=o.base64;a.push({type:"img",img:s,duration:900,camera:i,title:A,subTitle:n,imageWidth:(null==(j=e.uiContext)||null==(x=j.shotSize)?void 0:x.width)||t,imageHeight:(null==(w=e.uiContext)||null==(P=w.shotSize)?void 0:P.height)||r,taskId:z})}}if("finished"!==e.status){let A=eX(e),n=e.errorMessage||"unknown error",o=n.indexOf("NOT_IMPLEMENTED_AS_DESIGNED")>0?"Further actions cannot be performed in the current environment":n,s=null==(O=e.recorder)||null==(N=O[e.recorder.length-1])?void 0:N.screenshot,l=(null==s?void 0:s.base64)||"";a.push({type:"img",img:l,camera:i,duration:900,title:A,subTitle:o,imageWidth:(null==(T=e.uiContext)||null==(K=T.shotSize)?void 0:K.width)||t,imageHeight:(null==(D=e.uiContext)||null==(B=D.shotSize)?void 0:B.height)||r,taskId:z})}}),a.push({title:"End",subTitle:l,type:"img",duration:200,camera:i,taskId:void 0}),a};function Am(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function Ah(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){Am(o,r,n,i,a,"next",e)}function a(e){Am(o,r,n,i,a,"throw",e)}i(void 0)})}}function Ay(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}function AE(e,A){return A=null!=A?A:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(A)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}),e}function Av(e){var A;if(!e)return"";if("string"==typeof e)return e;if(null==e||null==(A=e.dump)?void 0:A.error)return e.dump.error;if(e.message)return String(e.message);try{return JSON.stringify(e)}catch(A){return String(e)}}function Ab(e){let A=new Set;return(null==e?void 0:e.tasks)&&Array.isArray(e.tasks)?e.tasks.forEach(e=>{if(e.usage){let{model_name:t,model_description:r,intent:n}=e.usage;n&&t&&A.add(r?`${n}/${t}(${r})`:`${n}/${t}`)}}):console.warn("[wrapExecutionDumpForReplay] Invalid dump structure:",e),{sdkVersion:"",groupName:"Playground Execution",modelBriefs:[...A],executions:[e]}}function AC(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}class Ak{initDB(){return new Promise((e,A)=>{let t=indexedDB.open(this.dbName,this.version);t.onerror=()=>A(t.error),t.onsuccess=()=>e(t.result),t.onupgradeneeded=e=>{let A=e.target.result;this.storeConfigs.forEach(e=>{let{name:t,keyPath:r}=e;A.objectStoreNames.contains(t)||A.createObjectStore(t,{keyPath:r}).createIndex("timestamp","timestamp",{unique:!1})})}})}async withTransaction(e,A,t){let r=(await this.dbPromise).transaction(e,A);return t(Array.isArray(e)?e.map(e=>r.objectStore(e)):r.objectStore(e))}promisifyRequest(e){return new Promise((A,t)=>{e.onsuccess=()=>A(e.result),e.onerror=()=>t(e.error)})}async put(e,A){await this.withTransaction(e,"readwrite",async e=>{await this.promisifyRequest(e.put(A))})}async get(e,A){return this.withTransaction(e,"readonly",async e=>this.promisifyRequest(e.get(A)))}async getAll(e){let A=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return this.withTransaction(e,"readonly",async e=>{let t=A?await this.promisifyRequest(e.index("timestamp").getAll()):await this.promisifyRequest(e.getAll());return A?t.sort((e,A)=>e.timestamp-A.timestamp):t})}async clear(e){await this.withTransaction(e,"readwrite",async e=>{await this.promisifyRequest(e.clear())})}async delete(e,A){await this.withTransaction(e,"readwrite",async e=>{await this.promisifyRequest(e.delete(A))})}async count(e){return this.withTransaction(e,"readonly",async e=>this.promisifyRequest(e.count()))}getDBPromise(){return this.dbPromise}constructor(e,A,t){AC(this,"dbPromise",void 0),AC(this,"dbName",void 0),AC(this,"version",void 0),AC(this,"storeConfigs",void 0),this.dbName=e,this.version=A,this.storeConfigs=t,this.dbPromise=this.initDB()}}let AS=async(e,A,t,r)=>{try{return await e()}catch(e){return console.error(A,e),e instanceof Error&&"QuotaExceededError"===e.name&&r&&(console.log("Storage quota exceeded, running cleanup..."),await r()),t}},AI=(e,A,t)=>async()=>{try{let r=await e.getAll(A);if(r.length>t){let n=r.sort((e,A)=>e.timestamp-A.timestamp).slice(0,r.length-t);await Promise.all(n.map(t=>e.delete(A,t.id)))}}catch(e){console.error(`Failed to cleanup ${A}:`,e)}};function AR(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function Ax(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){AR(o,r,n,i,a,"next",e)}function a(e){AR(o,r,n,i,a,"throw",e)}i(void 0)})}}function Aj(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function AP(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){Aj(e,A,t[A])})}return e}function Aw(e,A){return A=null!=A?A:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(A)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}),e}let AN="playground_messages",AO="playground_results";class AK{saveMessages(e){return Ax(function*(){yield AS(()=>Ax(function*(){yield this.dbManager.clear(AN);let A=e.slice(-100);yield Promise.all(A.map((e,A)=>{let t=Aw(AP({},e),{result:"result"===e.type?void 0:e.result}),r={id:e.id||`msg-${A}`,data:t,timestamp:e.timestamp?e.timestamp.getTime():Date.now()+A};return this.dbManager.put(AN,r)}))}).call(this),"Failed to save messages to IndexedDB",void 0,this.messagesCleanup)}).call(this)}loadMessages(){return Ax(function*(){return(yield AS(()=>Ax(function*(){let e=yield this.dbManager.getAll(AN,!0);return 0===e.length?[]:Promise.all(e.map(e=>Ax(function*(){let A=e.data,t=Aw(AP({},A),{timestamp:new Date(A.timestamp)});if("result"===A.type&&A.id){let e=yield this.loadResult(A.id);e&&(t.result=e.result,t.replayScriptsInfo=e.replayScriptsInfo,t.replayCounter=e.replayCounter,t.verticalMode=e.verticalMode)}return t}).call(this)))}).call(this),"Failed to load messages from IndexedDB",[],this.messagesCleanup))||[]}).call(this)}clearMessages(){return Ax(function*(){yield AS(()=>Ax(function*(){yield Promise.all([this.dbManager.clear(AN),this.dbManager.clear(AO)])}).call(this),"Failed to clear messages from IndexedDB")}).call(this)}saveResult(e,A){return Ax(function*(){yield AS(()=>Ax(function*(){let t=this.compressResultForStorage(A),r={id:e,data:t,timestamp:Date.now(),size:JSON.stringify(t).length};yield this.dbManager.put(AO,r)}).call(this),"Failed to save result to IndexedDB",void 0,this.resultsCleanup)}).call(this)}loadResult(e){return Ax(function*(){return(yield AS(()=>Ax(function*(){let A=yield this.dbManager.get(AO,e);return(null==A?void 0:A.data)||null}).call(this),"Failed to load result from IndexedDB",null))||null}).call(this)}compressResultForStorage(e){var A,t;if(!(null==(t=e.result)||null==(A=t.dump)?void 0:A.tasks))return e;let r=e.result.dump.tasks.map(e=>{var A;return Aw(AP({},e),{uiContext:e.uiContext?Aw(AP({},e.uiContext),{screenshot:e.uiContext.screenshot}):e.uiContext,recorder:null==(A=e.recorder)?void 0:A.map(e=>Aw(AP({},e),{screenshot:e.screenshot}))})});return Aw(AP({},e),{result:Aw(AP({},e.result),{dump:Aw(AP({},e.result.dump),{tasks:r})})})}compressScreenshotIfNeeded(e){if(!e)return e;if(e.length>1048576){let A=Math.round(e.length/1024);return`[COMPRESSED: ${A}KB screenshot removed for storage]`}return e}getStorageStats(){return Ax(function*(){return(yield AS(()=>Ax(function*(){let[e,A]=yield Promise.all([this.dbManager.count(AN),this.dbManager.count(AO)]);return{messageCount:e,resultCount:A}}).call(this),"Failed to get storage statistics",{messageCount:0,resultCount:0}))||{messageCount:0,resultCount:0}}).call(this)}cleanup(){return Ax(function*(){yield Promise.all([this.messagesCleanup(),this.resultsCleanup()])}).call(this)}constructor(e="playground"){Aj(this,"dbManager",void 0),Aj(this,"namespace",void 0),Aj(this,"messagesCleanup",void 0),Aj(this,"resultsCleanup",void 0),this.namespace=e,this.dbManager=new Ak(`midscene_playground_${e}`,1,[{name:AN,keyPath:"id"},{name:AO,keyPath:"id"}]),this.messagesCleanup=AI(this.dbManager,AN,100),this.resultsCleanup=AI(this.dbManager,AO,50)}}function AT(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function AB(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){AT(o,r,n,i,a,"next",e)}function a(e){AT(o,r,n,i,a,"throw",e)}i(void 0)})}}function AD(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function AM(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){AD(e,A,t[A])})}return e}function Az(e,A){return A=null!=A?A:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(A)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}),e}class AQ{checkStorageSpace(){try{let e="storage-test",A="x".repeat(102400);return localStorage.setItem(e,A),localStorage.removeItem(e),!0}catch(e){return!1}}saveMessages(e){return AB(function*(){try{this.checkStorageSpace()||(console.warn("Low storage space detected, clearing old data..."),yield this.handleQuotaExceeded());let A=e.slice(-this.maxStorageItems).map(e=>Az(AM({},e),{result:"result"===e.type?void 0:e.result})),t=JSON.stringify(A);localStorage.setItem(this.messagesKey,t)}catch(A){if(A instanceof DOMException&&"QuotaExceededError"===A.name){console.warn("LocalStorage quota exceeded, attempting to clear old data and retry..."),yield this.handleQuotaExceeded();try{let A=e.slice(-10).map(e=>Az(AM({},e),{result:"result"===e.type?void 0:e.result})),t=JSON.stringify(A);localStorage.setItem(this.messagesKey,t),console.info("Successfully saved recent messages after clearing storage")}catch(e){console.error("Failed to save even after clearing storage:",e),yield this.clearMessages()}}else console.error("Failed to save messages to localStorage:",A)}}).call(this)}loadMessages(){return AB(function*(){try{let e=localStorage.getItem(this.messagesKey);if(!e)return[];let A=JSON.parse(e);return yield Promise.all(A.map(e=>AB(function*(){if("result"===e.type&&e.id){let A=`${this.resultsKey}-${e.id}`,t=localStorage.getItem(A);if(t)try{let A=JSON.parse(t);return AM({},e,A)}catch(e){console.warn("Failed to parse stored result:",e)}}return e}).call(this)))}catch(e){return console.error("Failed to load messages from localStorage:",e),[]}}).call(this)}clearMessages(){return AB(function*(){try{localStorage.removeItem(this.messagesKey),Object.keys(localStorage).forEach(e=>{e.startsWith(this.resultsKey)&&localStorage.removeItem(e)})}catch(e){console.error("Failed to clear messages from localStorage:",e)}}).call(this)}saveResult(e,A){return AB(function*(){try{let t=`${this.resultsKey}-${e}`;localStorage.setItem(t,JSON.stringify(A))}catch(t){if(t instanceof DOMException&&"QuotaExceededError"===t.name){console.warn("LocalStorage quota exceeded when saving result, clearing old results..."),yield this.handleQuotaExceeded();try{let t=`${this.resultsKey}-${e}`;localStorage.setItem(t,JSON.stringify(A))}catch(e){console.error("Failed to save result even after clearing storage:",e)}}else console.error("Failed to save result to localStorage:",t)}}).call(this)}handleQuotaExceeded(){return AB(function*(){try{let e=Object.keys(localStorage),A=e.filter(e=>e.startsWith(this.resultsKey)),t=A.slice(0,Math.max(1,Math.floor(A.length/2)));t.forEach(e=>{localStorage.removeItem(e)}),console.info(`Cleared ${t.length} old result entries to free up storage space`);let r=e.filter(e=>e.includes("playground")||e.includes("agent")||e.startsWith("midscene"));if(r.length>10){let e=r.slice(0,Math.floor(r.length/3));e.forEach(e=>{e!==this.messagesKey&&localStorage.removeItem(e)}),console.info(`Cleared ${e.length} additional playground-related entries`)}}catch(e){console.error("Failed to handle quota exceeded:",e)}}).call(this)}constructor(e="playground"){AD(this,"messagesKey",void 0),AD(this,"resultsKey",void 0),AD(this,"maxStorageItems",50),this.messagesKey=`${e}-messages`,this.resultsKey=`${e}-results`}}class AL{saveMessages(e){return AB(function*(){this.messages=[...e]}).call(this)}loadMessages(){return AB(function*(){return[...this.messages]}).call(this)}clearMessages(){return AB(function*(){this.messages=[],this.results.clear()}).call(this)}saveResult(e,A){return AB(function*(){this.results.set(e,A)}).call(this)}constructor(){AD(this,"messages",[]),AD(this,"results",new Map)}}class AZ{saveMessages(e){return AB(function*(){})()}loadMessages(){return AB(function*(){return[]})()}clearMessages(){return AB(function*(){})()}saveResult(e,A){return AB(function*(){})()}}function AX(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"indexeddb",A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"playground";switch(e){case"indexeddb":if("undefined"!=typeof indexedDB)return new AK(A);return console.warn("IndexedDB not available, falling back to localStorage"),AX("localStorage",A);case"localStorage":if("undefined"!=typeof localStorage)return new AQ(A);return console.warn("localStorage not available, falling back to memory storage"),AX("memory",A);case"memory":return new AL;case"none":return new AZ;default:throw Error(`Unknown storage type: ${e}`)}}function AJ(){if("undefined"!=typeof indexedDB)try{return indexedDB.open("test",1).onerror=()=>{},"indexeddb"}catch(e){}if("undefined"!=typeof localStorage)try{return localStorage.setItem("test","test"),localStorage.removeItem("test"),"localStorage"}catch(e){}return"memory"}function AU(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function AF(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){AU(o,r,n,i,a,"next",e)}function a(e){AU(o,r,n,i,a,"throw",e)}i(void 0)})}}function Aq(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}function AV(e,A){return A=null!=A?A:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(A)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}),e}t(82982);var AG=t(20565),AH=t(18513);function AW(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}let AY=(e,A,t)=>{let r,{left:n,top:o,width:i,height:a}=e;r="element"===t?H[function(e){e||(e="unnamed");let A=5381;for(let t=0;t<e.length;t++)A=(A<<5)+A+e.charCodeAt(t);return A>>>0}(A)%H.length]:"searchArea"===t?W("searchArea"):W("element");let s=new AG.A1g;if(s.beginFill(r,.4),s.lineStyle(1,r,1),s.drawRect(n,o,i,a),s.endFill(),s.filters=[new AH.GD({blur:2,quality:3,alpha:.4,offset:{x:4,y:4},color:3355443})],!A)return[s];let l=new AG.EYj(A,{fontSize:18,fill:0});return l.x=n,l.y=Math.max(o-22,0),[s,l]},A_=e=>{var A;let t=e.highlightElements||[];t.map(e=>e.id);let n=e.highlightRect,o=e.highlightPoints;if(!(null==(A=e.uiContext)?void 0:A.shotSize))return(0,r.jsx)("div",{className:"blackboard",children:(0,r.jsx)("div",{className:"blackboard-main-content",style:{padding:"20px"},children:"No UI context available"})});let{shotSize:i,screenshot:a}=e.uiContext,s=(0,et.useMemo)(()=>a?"object"==typeof a&&"base64"in a?a.base64:"string"==typeof a?a:"":"",[a]),l=i.width,c=i.height,d=(0,et.useRef)(null),u=(0,et.useMemo)(()=>new AG.lgM,[]),[p,g]=(0,et.useState)(!1),f=(0,et.useMemo)(()=>new AG.mcf,[]),m=(0,et.useMemo)(()=>new AG.mcf,[]),[h,y]=(0,et.useState)(null),E=(0,et.useRef)(void 0),v=(0,et.useRef)(null),b=(0,et.useRef)([]),C=(0,et.useRef)([]);(0,et.useEffect)(()=>{var e;return Promise.resolve((e=function*(){if(!d.current||!l)return;yield u.init({width:l,height:c,background:0xffffff});let e=d.current;d.current.appendChild(u.canvas);let{clientWidth:A}=d.current.parentElement,t=.6*window.innerHeight;if(l/c<=A/t){let A=t/c;e.style.width=`${Math.floor(l*A)}px`,e.style.height=`${Math.floor(c*A)}px`}u.stage.addChild(f),u.stage.addChild(m),g(!0)},function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){AW(o,r,n,i,a,"next",e)}function a(e){AW(o,r,n,i,a,"throw",e)}i(void 0)})})()),()=>{console.log("will destroy"),null!==v.current&&(cancelAnimationFrame(v.current),v.current=null);try{u.destroy(!0,{children:!0,texture:!0})}catch(e){console.warn("destroy failed",e)}}},[u,l,c]),(0,et.useEffect)(()=>p?(u.stage.eventMode="static",u.stage.hitArea=new AG.M_G(0,0,l,c),u.stage.on("click",A=>{var t;console.log("pixi click",A);let{x:r,y:n}=A.data.global;null==(t=e.onCanvasClick)||t.call(e,[Math.round(r),Math.round(n)])}),()=>{var e;null==u||null==(e=u.stage)||e.off("click")}):void 0,[p,e.onCanvasClick,l,c]),(0,et.useEffect)(()=>{if(!p)return;let e=new Image;e.onload=()=>{if(!u.stage)return;let A=AG.gPd.from(e),t=new AG.kxk(A);t.x=0,t.y=0,t.width=l,t.height=c,t.eventMode="passive",u.stage.addChildAt(t,0),E.current=t,t.visible=!0},e.onerror=e=>{console.error("load screenshot failed",e)},s?e.src=s:console.error("screenshotBase64 is empty, cannot load image")},[u.stage,p,l,c,s]);let{highlightElementRects:k}=(0,et.useMemo)(()=>{if(f.removeChildren(),m.removeChildren(),f.eventMode="passive",m.eventMode="passive",b.current=[],C.current=[],n){let[e]=AY(n,"Search Area","searchArea");f.addChild(e)}return t.length&&t.forEach(e=>{let{rect:A,content:t,id:r}=e,n=AY(A,t,"highlight"),o=n[0],i=new AH.qx({distance:30,outerStrength:3,innerStrength:0,color:0xfd5907,quality:.5}),a=o.filters;Array.isArray(a)?o.filters=[...a,i]:a?o.filters=[a,i]:o.filters=[i],n.forEach(e=>f.addChild(e)),b.current.push(o),C.current.push(i)}),(null==o?void 0:o.length)&&o.forEach(e=>{let A=((e,A)=>{let[t,r]=e,n=W("element"),o=new AG.A1g;return o.beginFill(n,.4),o.drawCircle(t,r,10),o.endFill(),o})(e,0),t=new AH.qx({distance:25,outerStrength:2.5,innerStrength:0,color:0xfd5907,quality:.5});A.filters=[t],f.addChild(A),b.current.push(A),C.current.push(t)}),m.visible=!0,{highlightElementRects:[]}},[u,p,t,h,n,o]);(0,et.useEffect)(()=>{if(!p||0===b.current.length)return void console.log("Animation skipped:",{appInitialed:p,graphicsCount:b.current.length});console.log("Starting pulsing animation for",b.current.length,"graphics");let e=b.current,A=C.current,t=performance.now(),r=()=>{let n=(Math.sin((performance.now()-t)%1200/1200*Math.PI*2)+1)/2,o=.4+.6*n,i=2+3*n;e.forEach((e,t)=>{e.alpha=o,A[t]&&(A[t].outerStrength=i)}),v.current=requestAnimationFrame(r)};return r(),()=>{console.log("Stopping pulsing animation"),null!==v.current&&(cancelAnimationFrame(v.current),v.current=null)}},[p,t,o]);let S=null;return 1===k.length?S=(0,r.jsx)("div",{className:"bottom-tip",children:(0,r.jsxs)("div",{className:"bottom-tip-item",children:["Element: ",JSON.stringify(k[0])]})}):k.length>1&&(S=(0,r.jsx)("div",{className:"bottom-tip",children:(0,r.jsxs)("div",{className:"bottom-tip-item",children:["Element: ",JSON.stringify(k)]})})),(0,r.jsxs)("div",{className:"blackboard",children:[(0,r.jsx)("div",{className:"blackboard-main-content",style:{width:"100%"},ref:d}),(0,r.jsx)("div",{className:"bottom-tip",style:{display:e.hideController?"none":"block"},children:S})]})};var A$=t(49783),A0=t(37294),A1=t(14985),A2=t(31090),A3=t(92946),A6=t(60090),A5=t(53776);let A7=e=>{let{text:A,disabled:t=!1,speed:n=5,className:o="",colorTheme:i="blue"}=e,a={"--animation-duration":`${n}s`},s=`theme-${i}`;return(0,r.jsx)("div",{className:`shiny-text ${s} ${t?"disabled":""} ${o}`,style:a,children:A})},A9=(0,r.jsxs)("span",{children:["Don't worry, just one more step to launch the playground server.",(0,r.jsx)("br",{}),"Please run one of the commands under the midscene project directory:",(0,r.jsx)("br",{}),"a. ",(0,r.jsx)("strong",{children:"npx midscene-playground"}),(0,r.jsx)("br",{}),"b. ",(0,r.jsx)("strong",{children:"npx --yes @midscene/web"})]}),A8=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:A9;return(0,r.jsx)("div",{className:"server-tip",children:(0,r.jsx)(Ar.A,{message:"Playground Server Not Ready",description:e,type:"warning"})})},A4=(0,r.jsx)("div",{className:"result-empty-tip",style:{textAlign:"center"},children:(0,r.jsx)(A7,{disabled:!0,text:"The result will be shown here"})});var te=JSON.parse('{"content":[{"content":"Swag Labs","rect":{"left":895,"top":38,"width":130,"height":32,"zoom":1},"center":[960,54],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"d6c5e2f100","attributes":{"nodeType":"TEXT Node"},"indexId":0},{"content":"Username","rect":{"left":814,"top":154,"width":292,"height":40,"zoom":1},"center":[960,174],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"[_midscene_retrieve_task_id=\'a9021f480e\']","id":"a9021f480e","attributes":{"class":".input_error.form_input","placeholder":"Username","type":"text","data-test":"username","id":"user-name","name":"user-name","autocorrect":"off","autocapitalize":"none","htmlTagName":"<input>","nodeType":"FORM_ITEM Node"},"indexId":1},{"content":"Password","rect":{"left":814,"top":209,"width":292,"height":40,"zoom":1},"center":[960,229],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"[_midscene_retrieve_task_id=\'580f3b761d\']","id":"580f3b761d","attributes":{"class":".input_error.form_input","placeholder":"Password","type":"password","data-test":"password","id":"password","name":"password","autocorrect":"off","autocapitalize":"none","htmlTagName":"<input>","nodeType":"FORM_ITEM Node"},"indexId":2},{"content":"","rect":{"left":814,"top":253,"width":292,"height":45,"zoom":1},"center":[960,275],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"[_midscene_retrieve_task_id=\'3e1faf0fd6\']","id":"3e1faf0fd6","attributes":{"class":".error-message-container","nodeType":"CONTAINER Node"},"indexId":3},{"content":"Login","rect":{"left":814,"top":303,"width":292,"height":49,"zoom":1},"center":[960,327],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"[_midscene_retrieve_task_id=\'6db0b64062\']","id":"6db0b64062","attributes":{"type":"submit","class":".submit-button.btn_action","data-test":"login-button","id":"login-button","name":"login-button","value":"Login","htmlTagName":"<input>","nodeType":"FORM_ITEM Node"},"indexId":4},{"content":"Accepted usernames are:","rect":{"left":570,"top":435,"width":221,"height":21,"zoom":1},"center":[680,445],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"5ca36a5942","attributes":{"nodeType":"TEXT Node"},"indexId":5},{"content":"standard_user","rect":{"left":570,"top":479,"width":109,"height":19,"zoom":1},"center":[624,488],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"fd2fe54174","attributes":{"nodeType":"TEXT Node"},"indexId":6},{"content":"locked_out_user","rect":{"left":570,"top":503,"width":126,"height":19,"zoom":1},"center":[633,512],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"403daee75b","attributes":{"nodeType":"TEXT Node"},"indexId":7},{"content":"problem_user","rect":{"left":570,"top":527,"width":101,"height":19,"zoom":1},"center":[620,536],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"2b34f1e161","attributes":{"nodeType":"TEXT Node"},"indexId":8},{"content":"performance_glitch_user","rect":{"left":570,"top":551,"width":193,"height":19,"zoom":1},"center":[666,560],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"6ae63a4d9e","attributes":{"nodeType":"TEXT Node"},"indexId":9},{"content":"error_user","rect":{"left":570,"top":575,"width":84,"height":19,"zoom":1},"center":[612,584],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"76030282f1","attributes":{"nodeType":"TEXT Node"},"indexId":10},{"content":"visual_user","rect":{"left":570,"top":599,"width":92,"height":19,"zoom":1},"center":[616,608],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"f34b057726","attributes":{"nodeType":"TEXT Node"},"indexId":11},{"content":"Password for all users:","rect":{"left":960,"top":435,"width":221,"height":21,"zoom":1},"center":[1070,445],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"e693f608cd","attributes":{"nodeType":"TEXT Node"},"indexId":12},{"content":"secret_sauce","rect":{"left":960,"top":477,"width":101,"height":19,"zoom":1},"center":[1010,486],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"cde9de9828","attributes":{"nodeType":"TEXT Node"},"indexId":13}],"size":{"width":1920,"height":1080},"screenshotBase64":"data:image/png;base64,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8xecP25c2/qkSycuun/hzOuuG3nIiEcWLlz56xfbBgYAAIBPMwEagO3AQ4sW9evb9/h3q2tdXd2EsWN/8eCDlbeXfPOKsy+84OBhww4YMmTrb108YUJ9fd3Io46ccMklZ5xy6ueHD6+s9+nd1Kd3U9thu/bdpbFHQ1EUpVJp3uzZzzz/3NAv/uV5Ey+dMHbsgP79t23gqqqqAf37V1VVVd7W19f1/9znKq//dKedpl151Xev/96Bo7647De/mTJpUmW9saHhntvn/tfLr3xp9PGTp0z5m+OOG3/m2MpHN98255Irrjjh6GMuu+jCmbfOOXz06AcffnjbBgMAAIBPki04ANgObNq0afYP5559+uk/vvvuoihOPOaYt9ata9vxefkrLxdFsf7tt2u6dNn6W2vWvrnnwD0+22/Xp5Y8PeywUa2trR9+leqqqjETxv/n88/X1NQseeaZR375y6OOOOKaG25o359lwzvvbNmyZff+/ZcuW3b131+3Q8+epVKptbX1C8MPbm1tnXvXneVyefkrL9/xk5+cfPzxN82eVRTFaytWvPXWuqIofnD77Xf/9KftOw8AAADkCNAAbB9u/dGPLvzyOQcNPeDRxY+PGzPmlttu27Jly4d/ZcYPbimXSzdMndqvb99Fjz9+2ZWTX1q+/EOO39zcvN/gwdOnTOnevfuGDe/s1NT06muvtffPUbyxZs3Y888//eSTr7rs8tdXrZo1d26lMg8a+Bc79Oz5DzfNbDtyS3Pze767+Mkn230eAAAAyBGgAdg+rFq9+q5/vHfcmDFda2t3auoz9647P/IrfZqarp0x4+rrruvT1HTjtGu+dtFXzrrwgqIoVq5evc+gQZVjamtrBw0ceO+CBZXjr7zssr867rjnli6tbC29zdO+tW7dpk2b+u6888pVqyp7QBel3z29cIfGxueWvnD6+HO6VFePOvTQ22fe/PN/+edfL1u29MVlL7z44hEnjK4cVl9XX1fX9b3n/Yh7uAEAAODTxR7QAGw3Zt465/BRo75+8cVz75y3bv36tvVyuVwul4uiKJXL5XK59G7qnTxx4pRJk+rr6tesXbvmzbUtLS2V9V88+OCIgw46eNiwno2NE8+/4E+6daus79q3b9farpUzHHX4EYcceFDbJUqlUrlcLhWl37149xK/z8aNGx9+7LFxY8bs0Nh44P77/+2J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QoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoCE6ZwSAAAInUlEQVQGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIOJ/AFTldxexlFiCAAAAAElFTkSuQmCC","screenshotBase64WithElementMarker":"data:image/png;base64,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vn9Zpk27K62tozJ7ztxMn/5g9t9vdGruvufebGqvPQen5nOf/1K+9e2L06mpqTE77NAv+++3X0495eTstNNOebVd8J9fy/cvuSwvpl+/fvnhD76fTgfsv1923nmnPPXUghz+pqNyyCFvSEPXrrlj6rQ899zz+dAH359vf+fivJj9998v69evz2lnvCvDhg5J//79M/ePf8xTTy1IfX19vvPtr6d//x2yse2375NzPvyhfO0b38qnJ3w2l1z2g4wZ84YsXbI00+68MytWrMzee++V17/+oAAAALDtqA8AAADbjPr6+vznBV/Orrvskttu+02m3XlX7pg6LTU77NAvJ580Pp/8xL+nqakxmxq178jMn/9kRreOysZGj25NTV1dkZEjhmdTp/3TKVm3bl2+9/3LMvPhWZn58Kz06NEjb37TEfnSFz+bL37pq7n7nnuzqeOPPy5fvfCirF69JnvvtWcqlUqq1WqWr1iRRx+dlwcffCg/nXh1fnLl5Rk6dEheTU8//UyefvqZvJiVq1ZnY926dcvEn/w4Hz7n3Myc+XBuvPGm1AwevEc+8R8fT+uoUfn2dy7Oixm8x+4596Mfzoc/8i+597778/Cs2amrKzJy5Ii8591n5vUHH5QX8oEPvDfb990+3734kjz11IL87Gc/T0337t0zfvwJ+cynPpGGhoYAAACw7ags3rC6GgAAALZJq1atyh//9EgG7rxT+vXrl83tySf/kuUrVmTI3nunrq7I/+RTn/lsfvazn+ezEz6dU045ORtbt25dzj3v47nttt/kiMP/IRd/95vZWqxZsyZ//OMj2WWXgenTp3derjVr1uZPf/pTXve616W5uWdeio6Ojvz1r4uyYMGC9OnTJ7vuukuKoggAAADbnvoAAACwzerevXtGt47KlrLLLgPzUt1yy22pOfbYo7OphoaGfOB9Z+W2236TeY89lq1JU1NTRo0amVeqqakx++47Mi9HURQZMKB/BgzoHwAAALZtRQAAAGArtF2vXqmZPWduXsjDD89KzfB99gkAAADwX+oDAAAAW6Gjj/7HfOe738v73n92xh1zVIYP3yev221Q5sz9Y+6774Hc/pvfpq6uLm95y7EBAAAA/kt9AAAAYCv0kQ9/MGvWrMlPJ/4sP7v6mvzs6muysZ49e+Rb3/ha3vCGgwMAAAD8l/oAAADAVqhSqeTf/+1f84EPvDd3/GFqnn7mmSxduiyDBu2avffeK4P32CONjQ0BAAAA/j/1AQAAgK1YS3Nzxo07OgAAAMD/rggAAAAAAAAApVAEAAAAAAAAgFIoAgAAAAAAAEApFAEAAAAAAACgFIoAAAAAAAAAUApFAAAAAAAAACiFIgAAAAAAAACUQhEAAAAAAAAASqEIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohSIAAAAAAAAAlEIRAAAAAAAAAEqhCAAAAAAAAAClUAQAAAAAAACAUigCAAAAAAAAQCkUAQAAAAAAAKAUigAAAAAAAABQCkUAAAAAAAAAKIUiAAAAAAAAAJRCEQAAAAAAAABKoQgAAAAAAAAApVAEAAAAAAAAgFIoAgAAAAAAAEApFAEAAAAAAACgFIoAAAAAAAAAUApFAAAAAAAAACiFIgAAAAAAAACUQhEAAAAAAAAASqEIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohSIAAAAAAAAAlEJ9AAC2pPaOpK092dCRakdHAAAAyqhSFEl9kXStS+qKAABsKfUBANhS1qxPZUNHGhsb06WpS+rq6gIAAFBG7e3tWb9+fdauXptqfZE0dQkAwJZQHwCALWFVW7rU1adHr+YAAACUXV1dXerq6tLY2JiVq1Zl/aq2pHvXAABsbkUAADa3NevTpa4+Pbp3DwAAwLamR/fu6VJXn6xZHwCAza0IAMDm1N6RyoaO9OjePQAAANuqHt27p7KhI2nvCADA5lQEAGBzamtPY2NjAAAAtnWNjY1JW3sAADanIgAAm9OGjnTp0iUAAADbui5duiQbOgIAsDkVAQDYjKodHamrqwsAAMC2rq6uLtWOjgAAbE5FAAAAAAAAACiFIgAAAAAAAACUQhEAAAAAAAAASqEIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohSIAAAAAAAAAlEIRAAAAAAAAAEqhCAAAAAAAAAClUAQAAAAAAACAUigCAAAAAAAAQCkUAQAAAAAAAKAUigAAAAAAAABQCkUAAAAAAAAAKIUiAAAAAAAAAJRCEQAAAAAAAABKoQgAAAAAAAAApVAEAAAAAAAAgFIoAgAAAAAAAEApFAEAAAAAAACgFIoAAAAAAAAAUApFAAAAAAAAACiFIgAAAAAAAACUQhEAAAAAAAAASqEIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohfoAAABsTSqVALymVKsBAADYWtQHAABga1OtBuA1oVIJAADA1qQIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohSIAAAAAAAAAlEIRAAAAAAAAAEqhCAAAAAAAAAClUAQAAAAAAACAUigCAAAAAAAAQCkUAQAAAAAAAKAUigAAAAAAAABQCkUAAAAAAAAAKIUiAAAAAAAAAJRCfQAAADaXSiUAAAAAbDlFAAAAAAAAACiFIgAAAFtaS0uqjz2WjB2bl2L9+vX55je/meXLl2dT3/ve9/L0008HAAAAgKQIAADAltTSkup116Wy2255qarVap566qm0t7dnUwsXLsy6desCAAAAQFIfAACALWXs2GTSpFQCAAAAwOZQHwAAgC1l8uTk619PJk1KJk/Oq23x4sW59tprs2DBguywww45+OCDM2rUqHS66667cv/99+f555/PLrvskje96U0ZOHBgaiZOnJgRI0Zk7ty5mT17ds4777zccMMNGTFiRB566KE88sgj6dmzZ4444oiMHDkyne6+++5MnTo1K1asyIABA3LMMcdk4MCB6ejoyEUXXZSjjjoqt912W55//vnsvvvuOfnkk3PHHXdk+vTpqVQq2X///XPEEUek07x58/L73/8+Tz31VPr27ZuDDjooo0ePDgAAAMBLUR8AAIAtZdCgZP78ZOzYbA7XX399+vXrl3e+851ZsGBBLr/88uy+++5pbm7OnXfemXvuuSennnpqWlpaMmPGjFx22WX5yEc+kt69e2fx4sWZNGlSxowZk3e9611pamrK4sWLc91112X8+PF561vfmvvvvz8TJ07MwIED07t378yePTu//vWv8573vCc77rhj7r777lx22WX59Kc/nZpFixbl9ttvzzve8Y5s2LAhEydOzIUXXpghQ4bknHPOycKFC/PjH/84AwYMyLBhw/KXv/wlEydOzIknnpg99tgj8+bNyzXXXJOuXbtm+PDhAQAAAPjfFAEAANhS5s/P5lStVvPss89m8eLFGTRoUD75yU+mR48eqbnrrrtyxBFHpLm5OdVqNSNHjswOO+yQWbNmpdOQIUMyduzYDBw4MEVRpGafffbJkCFD0tjYmDe84Q3p0aNHnnzyydQMGDAgZ599dnbcccesWLEiQ4YMSVtbWxYuXJhORxxxRHr37p1+/fpl9OjRWb16dY477rh069Yte+yxRwYPHpzHH388NdOnT88+++yTXXfdNevXr88uu+yS1tbWPPDAAwEAAAB4KeoDAACwlSuKIkVRZMOGDdlYtVrNhg0b0qVLl9ScfPLJue222/KDH/wgGzZsSGtra4488sjU/PWvf80vf/nLtLS0ZGNtbW3p1L9//2xqhx12SKdKpZK+fftm5cqVqalUKvnFL36RZcuWpaWlJZVKJTVr1qxJp759+6bT9ttvn549e6axsTGdtt9++yxbtiw1Tz/9dB577LE88cQT2VivXr0CAAAA8FLUBwAAYCtXX1+fAQMGZOHChenbt286Pffcc6lUKunfv386OjqyZs2avOUtb0lRFHnuuedy2WWXpW/fvjnwwAPTt2/fHH/88dlzzz3Tqb29PZVKJZ2KosimKpVKXsztt9+eXr165X3ve19q1q5dmwkTJmRjRVFkY5VKJS+mX79+2XXXXXPUUUelU0dHRwAAAABeqiIAAACvASNGjMgtt9ySRYsWpWbVqlWZNGlShg4dmrq6ulQqlVx66aWZOnVqarbbbrt069Yt7e3tqRk1alRuueWWrFq1KjWPP/54JkyYkOeffz6v1Pr167N+/fpUq9V0dHTkxhtvTKVSySs1YsSI3HfffXnqqadSs3z58lxwwQWZPn16AAAAAF6K+gAAALwGvPGNb8yGDRvy3e9+Nx0dHeno6Mjw4cNz4oknpqZSqeS0007LxIkTM3ny5HR0dGTXXXdNa2trag4//PCsXbs2F1xwQerr69PR0ZG3ve1t6du3b16pN7/5zbn88svzuc99Lh0dHdl///3Tv3//vFJ77LFHxo0blx//+MepVqtZvXp1Dj300IwePToAAAAAL0V9AAAAXiPe9KY35U1velOWLVuWnj17piiKbGyXXXbJxz/+8axcuTL19fVpbGxMp0qlknHjxuXoo4/OihUr0tLSko198IMfzKY++MEPZlPvfe97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3LuXoyeO4xZcsSKB5ctzN0d+/pl8m437VbFCBZ576mkSkhLZtW8fQYGB+JYqxelz50jPyKBW9er4+fpyN7du3ebnX07g5elFo/r1+D0XL18m6eZN7kdxb2/atmlDGb/S7D6wn8tXr9KkUSNu3brNz7+cwM3L04snW7agauXKnDl3ngOHD5GXn8+dqlSqROcXXsBms3PyzBl27d+H0+nExTAMmjdpwt3cSEgg5upVCioXEMATjzfH38+Pn45GceLUKZxOJ3fzWMNGWCxmjhw7hsPhQET+2MUjUZisnoiIiIg8LKYUW44TERERkYfEmZ5LjaZNkP+vj5a8T6cOHVj+yUpCQkMRERH5b1azWjVK+/nR65VX6PbSy1y4dImW7doiIiL/08UjUZisnoiIiIg8LBZERERERERERP4N40aMpFOHDrjt3r8fERERERER+c+wICIiIiJ/uQvRFzlwuDRXrsYiIiLy3+7ipWgOHjmMS0xsLPOXLEZERERERET+MyyIiIiIyF9uwdKlLFi6FBERkcLg3Q8+4N0PPkBERERERET+8wxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERET+cmX8/WncoAEPk4eHB61btMBsNiMiIv+ddm/Z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QdGiRek/YgRff/sNNrudkLlzCZ0ylZBx40lNS2PuwoWMGjyEe3X5yhWGjBnD/BkzCBk3nhsJCcyYN4/+vXvj9s6iRaz+cAWXjh3n1u3bTJkzm0cbNsDthbZt+fSfy3Dr3qkTZ86d48mOL+DidDrp3r8fq5Yv59juPeTk5jJ+2jQWzpnDvcq32ZgZNp9Rg4cwa/LbnDh9irkL36NhvXq4ha9ZTYO6dTnw7XYsFgs5OTkMnzAep9OJS2JSEj0G9Gdp2LvMeXsKWdnZfLltK59Gfo5LKR8foo/+jFvixWhcqjZuRHpGBiIifxW73U58YgJ/JDklhT+Sk5vDvys5JYU/I3x1BGs3buBOdoeDO+Xk5pCTm8PvuZmczB9xOBwkp6byR+x2O8kpKfyR5JQURERERERE5OEzpdhynIiIiIg8JM70XGo0bcJ/mtlsxt+vNPGJCfwZFrOZ0n6liU9M4N9RtkwA8YkJ/J5yAQEkJCXhcDj4s/xLlyY1NRWb3U5Bn//rI557+mnutGrtWsZMnYKbYRiUslpJTk3l95jNZvz9ShOfmMDv8fP1JS09HbvdjoiIiIiI/P9dPBKFyeqJiIiIyMNiQURERORvwG63E5+YwJ9ls9uJT0zg3xWfmMAfuZGQwL8r6eZN7mbQW6MpWqQId7p1O4+CHA4Hyamp/BG73U58YgJ/JDklBREREREREREREflrWRARERGRv4Ws7GxERERERERERESkcDMQEREREREREREREREREZFCwUBERERERERERERERERERAoFAxERERERERERERERERERKRQMRERERERERERERERERESkUDAQEREREREREREREREREZFCwUBERERERERERERERERERAoFAxERERERERERERERERERKRQMRERERERERERERERERESkUDAQEREREREREREREREREZFCwUBERERERERERERERERERAoFAxEREZFCrE7t2rRu0YJ6jzzCw1Lc25tWzZvzoDVt3Bi/UqUQERERERERERERuVcGIiIiIoVYx7btGDloMJs/j2Rgnz48DFUqVWL9J5/yoC1fuJAmjR9FRERERERERERE5F5ZEBERESnE5i1ehMu7M2dRs1p15H/XuWNHalWvztyFCxEREREREREREZH/LhZERERE/gacODFhQv53zR9rwu28PEREREREREREROS/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2Wxw9PgJwldH4Fbaz4+lYe/SunlzihYtSv8RI/j622+4V6+/9hqjBg+hfNmynDh9im3ffUfDevXo9+abuFSrUoV506bzWKNGWMxmzkdH03/ECGKvxeHW+5XuTBw9ilJWH+KuX2f5Jyv5LDISlxfatuXTfy6joDPnzvFkxxcQEREREfm/7uKRKExWT0REREQeFlOKLceJiIiIyEPiTM+lRtMm/DfwL12a1NRUbHY7d+Pl6YVhmMjKzubP8vP1JS09Hbvdzt2ULFECu91Odk4OBQ3rP4BZkydzp8tXrtDs2WcoqGSJEthsdnJyc7gbT09PDJOJ7Jwc7lfsyVN4e3lxp0FvjWbTli24GYZBKauV5NRUfo+XpxfFPIqSkpbG7ynj709iUhIiIiIiIoXFxSNRmKyeiIiIiDwsFkRERETk/yfp5k3+SE5uDv+u5JQU/khGZiZ3E746grUbN3Anu8PBnTIyM/kjubm5/FkNW7fCxP+UlZ1NQQ6Hg+TUVP5ITm4OObk5/JHEpCRERERERERERETk3lkQERERkf/zbt++ze3bt/lPS01LQ0RERERERERERP7vMhARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgULIiIiIvJvqV2jBrm3bnH111+5m+Le3jRu0ACn08mps2dJS09HRERERERERERE5GGwICIiIiL/ljHD3+RK7FXmLlzI3fiXLs3IQYMp7edL2TIB1GnRHLvdjoiIiIiIiIiIiMiDZiAiIiIiD9WV2Fi6vt6Xrq+/Tmk/P3xLlUJERERERERERETkYTAQERERkb+E0+lERERERERERERE5GGyICIiIlKIbY1cy+TZs5g2YQKN6tXnl9OnmTJnNuejo3EJLF+edSs/4fbt28yYP4+eXbvR/tlnuBGfQLNnn8GluLc3oVND+McTT5Cfn893u3YxY9475OXn41aieAn+tWgxT7VqxZXYWN7/1wq27tjB/RjUty/dO3WmYmAgh48eZWbYfC7F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RERERERERAoFAxERERERERERERERERERKRQMRERERERERERERERERESkUDAQEREREREREREREREREZFCwUBERERERERERERERERERAoFAxERERERERERERERERERKRQMREREROSBKVq0KI8/9hitW7TAw8MDuX+B5cvTukULHn/sMYoWKcIfqVmtGkUsFh60IhYLrVu0oIjFgoiIiIiIiIiIyH8TAxERERF5IOo98ggXo47y7qzZTBk7FmvJksj9a1S/PiMHDWb5ewv51+Il/J4WTZtxYPsO3hw4iAfNarWyaVUEVqsVERERERERERGR/yYWREREROSB6NiuHTt27mTwmLeQP2/L9u1s2b6dl5/vwMRRo/g9p86e4cNPPmHLju38nt1bttDx1VfJzMpCRERERERERETk78CCiIiIiDwQ5cuWIyEpEXkwnE4nfyQzK4upoXP4PWX8/alTqzYmkwkREREREREREZG/CwsiIiIihdjWyLVMnj2LaRMm0KhefX45fZopc2ZzPjoat6DAQGZMmkTLps2IT0xk45bNvL9iBW5frV5DaT8/ItatxWIpwvD+/Snj70+dFs1JSEzkmX/8g5mTJlMuIACb3U6bJ/+BS5c+fYhPTMClVvXqhIwfT9PGj/LrtWt8vmED4asjcJs+YSLPPf00J8+cZv2XXxEaMpUaVasx6K3RbNqyhT1bt7Fh89e8OXAQu/ft45fTpxk5eDA79+5l+PhxuFhLliR0aghtWrfGYrGwa98+xk0LISMzE5dBfftiMpkoWyaALi++yG/xNwiPWM0XX3+Fm5+vL/OmTeeJxx8n7vp1tn3/He+vWIHT6cRtUN++dO/UmYqBgRw+epSZYfO5FBPDvSru7c17s+fwj1atyMvLIyMzE5fl4eGs/mI992L9J59QoVx5Ll+5wqC3RnPr1i0K2rQqggZ162Iymfhu4ybsDgdXYq/Sa/Bg3Px8fZk3bTpPPP44cdevs+3773h/xQqcTiduzR59lBGDBlE5KJivvtnG0o8+Iu76de5Fm9at6d+rN68NGojbgN59CA6qSEhoKC4mk4mpY8fRtk0bShQvzo979zBj/nzSMzJwCwoMZMakSbRs2oz4xEQ2btnM+ytW4PbV6jWU9vMjYt1aLJYiDO/fnzL+/tRp0ZyExEREREREREREROTvxTxx2pQZiIiIiDwst218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AFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAP5ve3BAAgAAgAAo+j+6H6ECFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwYYkQHKd0AqxtAAAAAElFTkSuQmCC","url":"https://www.saucedemo.com/"}');let tA=e=>{let{uiContextPreview:A,setUiContextPreview:t,showContextPreview:n}=e;return n?(0,r.jsxs)("div",{className:"form-part context-panel",children:[(0,r.jsx)("h3",{children:"UI Context"}),A?(0,r.jsx)(A_,{uiContext:A,hideController:!0}):(0,r.jsxs)("div",{children:[(e=>{switch(e){case"finished":case"passed":case"success":case"connected":return(0,r.jsx)("span",{style:{color:"#00AD4B"},children:(0,r.jsx)(A$.A,{})});case"finishedWithWarning":return(0,r.jsx)("span",{style:{color:"#f7bb05"},children:(0,r.jsx)(A0.A,{})});case"failed":case"closed":case"timedOut":case"interrupted":return(0,r.jsx)("span",{style:{color:"#FF0A0A"},children:(0,r.jsx)(A1.A,{})});case"pending":return(0,r.jsx)(A2.A,{});case"cancelled":case"skipped":return(0,r.jsx)(A3.A,{});case"running":return(0,r.jsx)(A6.A,{});default:return(0,r.jsx)(A5.A,{})}})("failed")," No UI context",(0,r.jsx)(eA.Ay,{type:"link",onClick:e=>{e.preventDefault(),t(te)},children:"Load Demo"}),(0,r.jsx)("div",{children:"To load the UI context, you can either use the demo data above, or click the 'Send to Playground' in the report page."})]})]}):null};var tt=t(54291);let tr=e=>{let{className:A=""}=e,{config:t}=P();return Object.keys(t||{}).length>=1?null:(0,r.jsxs)("div",{className:`env-config-reminder ${A}`,children:[(0,r.jsx)(tt.A,{className:"reminder-icon"}),(0,r.jsx)("span",{className:"reminder-text",children:"Please set up your environment variables before using."}),(0,r.jsx)(e9,{mode:"text",showTooltipWhenEmpty:!1})]})};var tn=t(12297),to=t(67062),ti=t(15862),ta=t(52107),ts=t(95625),tl=t(11269);let tc=e=>{var A,t;return(0,r.jsx)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),t=t={children:(0,r.jsx)("path",{fill:"currentColor",d:"M1.333 13v-2.5a.667.667 0 0 1 1.334 0V13c0 .184.149.333.333.333h2.5a.667.667 0 0 1 0 1.334H3c-.92 0-1.667-.746-1.667-1.667m12 0v-2.5a.667.667 0 0 1 1.334 0V13c0 .92-.746 1.667-1.667 1.667h-2.5a.667.667 0 0 1 0-1.334H13a.333.333 0 0 0 .333-.333m-12-7.5V3c0-.92.747-1.667 1.667-1.667h2.5a.667.667 0 0 1 0 1.334H3A.333.333 0 0 0 2.667 3v2.5a.667.667 0 0 1-1.334 0m12 0V3A.333.333 0 0 0 13 2.667h-2.5a.667.667 0 0 1 0-1.334H13c.92 0 1.667.747 1.667 1.667v2.5a.667.667 0 0 1-1.334 0M5.667 10.333h4.666V5.667H5.667zm6 .167c0 .644-.523 1.167-1.167 1.167h-5A1.167 1.167 0 0 1 4.333 10.5v-5c0-.644.523-1.167 1.167-1.167h5c.644 0 1.167.523 1.167 1.167z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},td=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),t=t={children:[(0,r.jsx)("path",{stroke:"currentColor",strokeLinejoin:"round",strokeWidth:1.333,d:"M11.333 13.667 14.667 8l-3.334-5.667H4.667L1.333 8l3.334 5.667z"}),(0,r.jsx)("path",{stroke:"currentColor",strokeLinejoin:"round",strokeWidth:1.333,d:"M8 9.667a1.667 1.667 0 1 0 0-3.334 1.667 1.667 0 0 0 0 3.334Z"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))};function tu(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}let tp=new Map,tg=e=>{var A;return(A=function*(){if(!tp.has(e))return AG.sP.load(e).then(A=>{tp.set(e,A)})},function(){var e=this,t=arguments;return new Promise(function(r,n){var o=A.apply(e,t);function i(e){tu(o,r,n,i,a,"next",e)}function a(e){tu(o,r,n,i,a,"throw",e)}i(void 0)})})()};function tf(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function tm(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){tf(o,r,n,i,a,"next",e)}function a(e){tf(o,r,n,i,a,"throw",e)}i(void 0)})}}function th(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function ty(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){th(e,A,t[A])})}return e}let tE="frame cancel (this is an error on purpose)";class tv{start(){let e=new MediaRecorder(this.canvas.captureStream(60),{mimeType:"video/webm"});return e.ondataavailable=e=>{e.data.size>0&&this.chunks.push(e.data)},e.onerror=e=>{console.error("MediaRecorder error:",e),G.Ay.error("Video recording failed. Please try again."),this.recording=!1,this.mediaRecorder=null},this.mediaRecorder=e,this.recording=!0,this.mediaRecorder.start()}stop(){this.recording&&this.mediaRecorder?(this.mediaRecorder.onstop=()=>{if(0===this.chunks.length){console.error("No video data captured"),G.Ay.error("Video export failed: No data captured.");return}let e=new Blob(this.chunks,{type:"video/webm"});if(0===e.size){console.error("Video blob is empty"),G.Ay.error("Video export failed: Empty file.");return}let A=URL.createObjectURL(e),t=document.createElement("a");t.href=A,t.download="midscene_replay.webm",t.click(),URL.revokeObjectURL(A)},this.mediaRecorder.stop(),this.recording=!1,this.mediaRecorder=null):console.warn("not recording")}constructor(e){th(this,"canvas",void 0),th(this,"mediaRecorder",null),th(this,"chunks",void 0),th(this,"recording",!1),this.canvas=e,this.chunks=[]}}function tb(e){var A;let t,[n,o]=(0,et.useState)(""),[i,a]=(0,et.useState)(""),{autoZoom:s,setAutoZoom:l,playbackSpeed:c,setPlaybackSpeed:d}=m();(0,et.useEffect)(()=>{(null==e?void 0:e.autoZoom)!==void 0&&l(e.autoZoom)},[null==e?void 0:e.autoZoom,l]);let u=null==e?void 0:e.replayScripts,p=(null==e?void 0:e.imageWidth)||1920,g=(null==e?void 0:e.imageHeight)||1080,f=(null==e?void 0:e.fitMode)||"height",h=(0,et.useRef)((null==u||null==(A=u[0])?void 0:A.img)||null),y=(0,et.useRef)(null),E=(0,et.useMemo)(()=>new AG.lgM,[]),v=(0,et.useRef)(null),b=(0,et.useRef)(null),[C,k]=(0,et.useState)(0),S=()=>{k(Date.now())},I=(0,et.useMemo)(()=>new AG.mcf,[]),R=(0,et.useMemo)(()=>{let e=new AG.mcf;return e.zIndex=1,e},[]),x={left:0,top:0,width:p,pointerLeft:Math.round(p/2),pointerTop:Math.round(g/2)},[j,P]=(0,et.useState)(-1),w=(0,et.useRef)(!1),N=(0,et.useRef)(!1);(0,et.useEffect)(()=>(w.current=!1,()=>{w.current=!0}),[]);let O=(0,et.useRef)(ty({},x)),K=(e,A)=>tm(function*(){let t=h.current;if(!t)return void console.warn("no image to update");let r=e||p,n=A||g;yield tm(function*(){if(N.current&&E.screen&&(E.screen.width!==r||E.screen.height!==n)){if(E.renderer.resize(r,n),y.current){let e=r/n;y.current.style.setProperty("--canvas-aspect-ratio",e.toString())}O.current={left:0,top:0,width:r,pointerLeft:Math.round(r/2),pointerTop:Math.round(n/2)}}})(),tp.get(t)||(console.warn("image not loaded",t),yield tg(t));let o=tp.get(t);if(!o)throw Error("texture not found");let i=AG.kxk.from(o);if(!i)throw Error("sprite not found");let a="main-img",s=I.getChildByLabel(a);s&&I.removeChild(s),i.label=a,i.zIndex=0,i.width=r,i.height=n,I.addChild(i)})(),T=e=>{var A,t;let r;b.current||(b.current=AG.kxk.from(Au),b.current.zIndex=3,b.current.anchor.set(.5,.5),b.current.scale.set(.5),b.current.label="spinning-pointer"),b.current.x=(null==(A=v.current)?void 0:A.x)||0,b.current.y=(null==(t=v.current)?void 0:t.y)||0,I.addChild(b.current);let n=!1,o=A=>{if(n)return;r||(r=A);let t=(Math.sin((A-r)/500-Math.PI/2)+1)/2*Math.PI*2;b.current&&(b.current.rotation=t),e(o)};return e(o),()=>{b.current&&I.removeChild(b.current),n=!0}},B=(e,A,t)=>tm(function*(){var r,n;tp.get(e)||(console.warn("image not loaded",e),yield tg(e));let o=tp.get(e);if(!o)throw Error("texture not found");let i=AG.kxk.from(o),a=null==(r=v.current)?void 0:r.x,s=null==(n=v.current)?void 0:n.y;if("number"==typeof A&&(a=A),"number"==typeof t&&(s=t),void 0===a||void 0===s)return void console.warn("invalid pointer position",A,t);if(v.current){let e=I.getChildByLabel("pointer");e&&I.removeChild(e)}v.current=i,v.current.x=a,v.current.y=s,v.current.label="pointer",v.current.zIndex=2,I.addChild(v.current)})(),D=(e,A)=>{var t;O.current=e;let r=A||(null==(t=E.screen)?void 0:t.width)||p,n=s?Math.max(1,r/e.width):1;I.scale.set(n),I.x=s?Math.round(0-e.left*n):0,I.y=s?Math.round(0-e.top*n):0;let o=I.getChildByLabel("pointer");o&&(o.scale.set(1/n),"number"==typeof e.pointerLeft&&"number"==typeof e.pointerTop&&(o.x=e.pointerLeft,o.y=e.pointerTop))},M=(e,A,t)=>tm(function*(){var r,n;let o=(null==(r=E.screen)?void 0:r.width)||p,i=(null==(n=E.screen)?void 0:n.height)||g;if(!s){let r=ty({},O.current),n=r.pointerLeft,i=r.pointerTop,a=performance.now();if("number"!=typeof e.pointerLeft||"number"!=typeof e.pointerTop||e.pointerLeft===n&&e.pointerTop===i)return;yield new Promise(s=>{let l=c=>{var d,u;let p=c-a,g=Math.min(p/A,1);D((d=ty({},r),u=u={pointerLeft:n+(e.pointerLeft-n)*g,pointerTop:i+(e.pointerTop-i)*g},Object.getOwnPropertyDescriptors?Object.defineProperties(d,Object.getOwnPropertyDescriptors(u)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(u)).forEach(function(e){Object.defineProperty(d,e,Object.getOwnPropertyDescriptor(u,e))}),d),o),p<A?t(l):s()};t(l)});return}let a=ty({},O.current),l=a.left,c=a.top,d=a.pointerLeft,u=a.pointerTop,f=a.width/o,m=performance.now(),h="number"==typeof e.pointerLeft&&"number"==typeof e.pointerTop&&(e.pointerLeft!==d||e.pointerTop!==u),y=h?.375*A:0,v=A-y;yield new Promise(r=>{let n=a=>{let s=ty({},O.current),p=a-m;if(h)if(p<=y){let A=Math.min(p/y,1);s.pointerLeft=d+(e.pointerLeft-d)*A,s.pointerTop=u+(e.pointerTop-u)*A}else s.pointerLeft=e.pointerLeft,s.pointerTop=e.pointerTop;if(p>y){let A=Math.min((p-y)/v,1),t=f+(e.width/o-f)*A,r=o*t;s.width=r;let n=l+(e.left-l)*A,a=c+(e.top-c)*A,d=n+r-o,u=a+i*t-i;s.left=d>0?n+d:n,s.top=u>0?a+u:a}D(s,o),p<A?t(n):r()};t(n)})})(),z=function(e,A,t){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return new Promise(n=>{let o=performance.now(),i=a=>{let s=a-o,l=Math.min(s/A,1);e.alpha=0===r?1-l:l,s<A?t(i):n()};t(i)})},Q=(e,A,t)=>tm(function*(){return z(e,A,t,0)})(),L=(e,A,t,r,n)=>tm(function*(){R.removeChildren();let o=[...e],i=o.length,a=0;yield new Promise(e=>{let s=performance.now(),l=c=>{var d;let u,p=c-s,g=Math.floor((0*(u=1-(d=Math.min(p/r,1)))*u*u+1.5*d*u*u+1.5*d*d*u+d*d*d)*i);for(;a<g;){let e=Math.floor(Math.random()*o.length),A=o.splice(e,1)[0];if(A){let[e]=AY(A.rect,A.content,"element");e.alpha=0,R.addChild(e),a++,z(e,80,n)}}if(p<r)n(l);else{for(;o.length>0;){let e=Math.floor(Math.random()*o.length),A=o.splice(e,1)[0],[t]=AY(A.rect,A.content,"element");t.alpha=1,R.addChild(t)}if(t){let[e]=AY(t,"Search Area","searchArea");e.alpha=1,R.addChild(e)}A.map(e=>{let[A]=AY(e.rect,e.content||"","highlight");A.alpha=1,R.addChild(A)}),e()}};n(l)})})(),[Z,X]=(0,et.useState)(!1),J=(0,et.useRef)(null),U=(0,et.useRef)(null),F=(0,et.useRef)(0);(0,et.useEffect)(()=>(Promise.resolve(tm(function*(){if(yield tm(function*(){y.current&&u&&(yield E.init({width:p,height:g,background:0xf4f4f4,autoDensity:!0,antialias:!0}),N.current=!0,y.current&&(y.current.appendChild(E.canvas),I.x=0,I.y=0,E.stage.addChild(I),R.x=0,R.y=0,I.addChild(R)))})(),y.current&&p&&g){let e=p/g;y.current.style.setProperty("--canvas-aspect-ratio",e.toString()),y.current.setAttribute("data-fit-mode",f);let A=y.current.closest(".player-container");A&&A.setAttribute("data-fit-mode",f)}S()})()),()=>{N.current=!1;try{E.destroy(!0,{children:!0,texture:!0})}catch(e){console.warn("destroy failed",e)}}),[p,g,f]),(0,et.useEffect)(()=>{if(C){let A,t,r;return t=++F.current,r=A=>{if(F.current===t){var r;null==e||null==(r=e.onTaskChange)||r.call(e,A)}},Promise.resolve(tm(function*(){var e,t,n;let i,s;if(!E||!N.current)throw Error("app is not initialized");if(!u)throw Error("scripts is required");let{frame:l,cancel:d,timeout:f,sleep:m}=(i=!1,s=[],{frame:e=>{if(i)throw Error(tE);requestAnimationFrame(()=>{i||e(performance.now())})},timeout:(e,A)=>{if(i)throw Error(tE);let t=window.setTimeout(()=>{i||e()},A);s.push(t)},sleep:e=>i?Promise.reject(Error(tE)):new Promise((A,t)=>{let r=window.setTimeout(()=>{i?t(Error(tE)):A()},e);s.push(r)}),isCancelled:()=>i,cancel:()=>{for(let e of(i=!0,s))clearTimeout(e);s.length=0}}),y=e=>e/c,v=e=>m(y(e));A=d,U.current=d;let b=u.filter(e=>!!e.img).map(e=>e.img);yield Promise.all([...b,Au,Ad].map(tg)),R.removeChildren(),yield B(Ad,p/2,g/2),yield K(),yield D(ty({},x));let C=y(u.reduce((e,A)=>e+A.duration+(A.camera&&A.insightCameraDuration?A.insightCameraDuration:0),0)),k=performance.now();P(0);let S=()=>{let e=Math.min((performance.now()-k)/C,1);if(P(e),e<1)return f(S,200)};l(S),J.current&&J.current.start();let I=null,j=null!=(t=null==(e=u[0])?void 0:e.taskId)?t:null;for(let e in j&&r(I=j),u){let A=u[e];o(A.title||""),a(A.subTitle||"");let t=null!=(n=A.taskId)?n:null;if(t!==I&&r(I=t),"sleep"===A.type)yield v(A.duration);else if("insight"===A.type){if(!A.img)throw Error("img is required");h.current=A.img,yield K(A.imageWidth,A.imageHeight);let e=A.highlightElement?[A.highlightElement]:[];if(yield L([],e,A.searchArea,y(A.duration),l),A.camera){if(!A.insightCameraDuration)throw Error("insightCameraDuration is required");yield M(A.camera,y(A.insightCameraDuration),l)}}else if("clear-insight"===A.type)yield Q(R,y(A.duration),l),R.removeChildren(),R.alpha=1;else if("img"===A.type)A.img&&A.img!==h.current&&(h.current=A.img,yield K(A.imageWidth,A.imageHeight)),A.camera?yield M(A.camera,y(A.duration),l):yield v(A.duration);else if("pointer"===A.type){if(!A.img)throw Error("pointer img is required");yield B(A.img)}else if("spinning-pointer"===A.type){let e=T(l);yield v(A.duration),e()}}r(null),J.current&&(yield v(1200),J.current.stop(),J.current=null,X(!1))})().catch(e=>{if(console.error("player error",e),(null==e?void 0:e.message)===tE){console.log("Animation cancelled (expected behavior)"),r(null);return}let A=!!J.current;if(J.current){try{J.current.stop()}catch(e){console.error("Error stopping recorder:",e)}J.current=null}X(!1),r(null),A&&G.Ay.error("Failed to export video. Please try again.")})),()=>{null==A||A(),U.current=null}}},[C]);let[q,V]=(0,et.useState)(!1),[H,W]=(0,et.useState)(!1),Y=Math.round(100*j),_=1===j;(0,et.useEffect)(()=>{if(_){let e=e=>{" "===e.key&&S()};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}},[_]);let eA=()=>{};return j<1?t=(0,r.jsx)($.A,{indicator:(0,r.jsx)(Ae.A,{spin:!0,color:"#333"}),size:"default"}):(t=(0,r.jsx)($.A,{indicator:(0,r.jsx)(tn.A,{color:"#333"}),size:"default"}),eA=()=>S()),(0,r.jsxs)("div",{className:"player-container",children:[(0,r.jsx)("div",{className:"canvas-container",ref:y}),(0,r.jsx)("div",{className:"player-timeline-wrapper",children:(0,r.jsx)("div",{className:"player-timeline",children:(0,r.jsx)("div",{className:"player-timeline-progress",style:{width:`${Y}%`,transition:0===j?"none":"0.3s"}})})}),(0,r.jsx)("div",{className:"player-tools-wrapper",children:(0,r.jsx)("div",{className:"player-tools",children:(0,r.jsxs)("div",{className:"player-control",children:[(0,r.jsxs)("div",{className:"status-text",children:[(0,r.jsx)("div",{className:"title",children:n}),(0,r.jsx)(ee.A,{title:i,children:(0,r.jsx)("div",{className:"subtitle",children:i})})]}),Z?null:(0,r.jsx)("div",{className:"status-icon",onMouseEnter:()=>V(!0),onMouseLeave:()=>V(!1),onClick:eA,children:t}),(null==e?void 0:e.reportFileContent)&&(null==e?void 0:e.canDownloadReport)!==!1?(0,r.jsx)(ee.A,{title:"Download Report",children:(0,r.jsx)("div",{className:"status-icon",onMouseEnter:()=>V(!0),onMouseLeave:()=>V(!1),onClick:()=>{let A,t,r;return A=new Blob([e.reportFileContent],{type:"text/html"}),t=URL.createObjectURL(A),void((r=document.createElement("a")).href=t,r.download="midscene_report.html",r.click())},children:(0,r.jsx)(to.A,{color:"#333"})})}):null,(0,r.jsx)(ee.A,{title:Z?"Generating...":"Export Video",children:(0,r.jsx)("div",{className:"status-icon",onClick:Z?void 0:()=>tm(function*(){J.current?console.warn("recorderSession exists"):E.canvas?(U.current&&(U.current(),U.current=null,yield new Promise(e=>setTimeout(e,100))),J.current=new tv(E.canvas),X(!0),S()):console.warn("canvas is not initialized")})(),style:{opacity:Z?.5:1,cursor:Z?"not-allowed":"pointer"},children:Z?(0,r.jsx)($.A,{size:"default",percent:Y}):(0,r.jsx)(ti.A,{})})}),(0,r.jsx)(ts.A,{trigger:["hover","click"],placement:"bottomRight",overlayStyle:{minWidth:"148px"},dropdownRender:()=>(0,r.jsxs)("div",{className:"player-settings-dropdown",children:[(0,r.jsxs)("div",{className:"player-settings-item",style:{display:"flex",alignItems:"center",justifyContent:"space-between",height:"32px",padding:"0 8px",borderRadius:"4px"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[(0,r.jsx)(tc,{style:{width:"16px",height:"16px"}}),(0,r.jsx)("span",{style:{fontSize:"12px",marginRight:"16px"},children:"Focus on cursor"})]}),(0,r.jsx)(tl.A,{size:"small",checked:s,onChange:e=>{l(e),S()}})]}),(0,r.jsx)("div",{className:"player-settings-divider"}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"4px",height:"32px",padding:"0 8px"},children:[(0,r.jsx)(ta.A,{style:{width:"16px",height:"16px"}}),(0,r.jsx)("span",{style:{fontSize:"12px"},children:"Playback speed"})]}),[.5,1,1.5,2].map(e=>(0,r.jsxs)("div",{onClick:()=>{d(e),S()},style:{height:"32px",lineHeight:"32px",padding:"0 8px 0 24px",fontSize:"12px",cursor:"pointer",borderRadius:"4px"},className:`player-speed-option${c===e?" active":""}`,children:[e,"x"]},e))]}),menu:{items:[]},children:(0,r.jsx)("div",{className:"status-icon",onMouseEnter:()=>W(!0),onMouseLeave:()=>W(!1),style:{cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",opacity:H?1:.7,transition:"opacity 0.2s"},children:(0,r.jsx)(td,{style:{width:"16px",height:"16px"}})})})]})})})]})}let tC=e=>{let{result:A,loading:t,serverValid:n,serviceMode:o,replayScriptsInfo:i,replayCounter:a,loadingProgressText:s,verticalMode:l=!1,notReadyMessage:c,fitMode:d,autoZoom:u,actionType:p,canDownloadReport:g}=e,f="result-wrapper";l&&(f+=" vertical-mode-result"),i&&l&&(f+=" result-wrapper-compact");let m=A4,h=p&&eS.includes(p);if(n||"Server"!==o)if(t)m=(0,r.jsxs)("div",{className:"loading-container",children:[(0,r.jsx)($.A,{spinning:t,indicator:(0,r.jsx)(Ae.A,{spin:!0})}),(0,r.jsx)("div",{className:"loading-progress-text loading-progress-text-progress",children:(0,r.jsx)(A7,{text:s,speed:3})})]});else if(null==A?void 0:A.error){let e=(0,r.jsx)("pre",{style:{color:"#ff4d4f",whiteSpace:"pre-wrap"},children:null==A?void 0:A.error});m=A.reportHTML||i?(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"16px",height:"100%"},children:[(0,r.jsxs)("div",{style:{flex:"0 0 auto",maxHeight:"40%",overflow:"auto"},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Error:"}),e]}),(0,r.jsxs)("div",{style:{flex:"1 1 auto",minHeight:0},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Report:"}),(0,r.jsx)(tb,{replayScripts:null==i?void 0:i.scripts,imageWidth:null==i?void 0:i.width,imageHeight:null==i?void 0:i.height,reportFileContent:A.reportHTML||null,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==o},a)]})]}):e}else if(h&&(null==A?void 0:A.result)!==void 0&&i){let e="string"==typeof(null==A?void 0:A.result)?(0,r.jsx)("pre",{children:null==A?void 0:A.result}):(0,r.jsx)("pre",{children:JSON.stringify(null==A?void 0:A.result,null,2)}),t=(null==A?void 0:A.reportHTML)||null;m=(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"16px",height:"100%"},children:[(0,r.jsxs)("div",{style:{flex:"0 0 auto"},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Output:"}),e]}),(0,r.jsxs)("div",{style:{flex:"1 1 auto",minHeight:0},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Report:"}),(0,r.jsx)(tb,{replayScripts:i.scripts,imageWidth:i.width,imageHeight:i.height,reportFileContent:t,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==o},a)]})]})}else if(i){let e=(null==A?void 0:A.reportHTML)||null;m=(0,r.jsx)(tb,{replayScripts:i.scripts,imageWidth:i.width,imageHeight:i.height,reportFileContent:e,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==o},a)}else if(h&&(null==A?void 0:A.result)!==void 0&&(null==A?void 0:A.reportHTML)){let e="string"==typeof(null==A?void 0:A.result)?(0,r.jsx)("pre",{children:null==A?void 0:A.result}):(0,r.jsx)("pre",{children:JSON.stringify(null==A?void 0:A.result,null,2)});m=(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"16px",height:"100%"},children:[(0,r.jsxs)("div",{style:{flex:"0 0 auto"},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Output:"}),e]}),(0,r.jsxs)("div",{style:{flex:"1 1 auto",minHeight:0},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Report:"}),(0,r.jsx)(tb,{reportFileContent:A.reportHTML,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==o},a)]})]})}else h&&(null==A?void 0:A.result)!==void 0?m="string"==typeof(null==A?void 0:A.result)?(0,r.jsx)("pre",{children:null==A?void 0:A.result}):(0,r.jsx)("pre",{children:JSON.stringify(null==A?void 0:A.result,null,2)}):(null==A?void 0:A.reportHTML)?m=(0,r.jsx)(tb,{reportFileContent:A.reportHTML,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==o},a):(null==A?void 0:A.result)!==void 0&&(m="string"==typeof(null==A?void 0:A.result)?(0,r.jsx)("pre",{children:null==A?void 0:A.result}):(0,r.jsx)("pre",{children:JSON.stringify(null==A?void 0:A.result,null,2)}));else m=A8(c);return(0,r.jsx)("div",{className:f,style:{height:"100%",display:"flex",flexDirection:"column",flex:"1 1 auto",justifyContent:"center"},children:m})},tk=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"none","aria-label":"Playground",viewBox:"0 0 20 20"},e),t=t={children:[(0,r.jsx)("rect",{width:20,height:20,fill:"#2B83FF",rx:10}),(0,r.jsx)("path",{fill:"#2B83FF",stroke:"#fff",strokeLinejoin:"round",strokeWidth:1.125,d:"M6.866 5.882a.56.56 0 0 1 .667-.078l3.248 1.875 3.247 1.875a.563.563 0 0 1 0 .974l-3.247 1.875-3.248 1.875a.563.563 0 0 1-.784-.74l1.749-3.497-1.75-3.498a.56.56 0 0 1 .118-.661Z"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))};var tS=t(28460),tI=t(83896),tR=t(91631),tx=t(64665),tj={};tj.d=(e,A)=>{for(var t in A)tj.o(A,t)&&!tj.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},tj.o=(e,A)=>Object.prototype.hasOwnProperty.call(e,A),tj.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var tP={};function tw(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}tj.r(tP),tj.d(tP,{create:()=>o.vt});let{create:tN}=tP,tO="midscene-prompt-history-v2",tK="midscene-last-selected-type",tT=tN((e,A)=>{let t;return{history:(t=localStorage.getItem(tO))?JSON.parse(t):{},lastSelectedType:localStorage.getItem(tK)||"aiAct",clearHistory:t=>{let r=tw({},A().history);delete r[t],e({history:r}),localStorage.setItem(tO,JSON.stringify(r))},addHistory:t=>{var r,n;let{type:o}=t,i=A().history,a=i[o]||[],s=JSON.stringify({prompt:t.prompt,params:t.params}),l=[t,...a.filter(e=>JSON.stringify({prompt:e.prompt,params:e.params})!==s)];l.length>10&&(l.length=10);let c=(r=tw({},i),n=n={[o]:l},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r);e({history:c}),localStorage.setItem(tO,JSON.stringify(c))},getHistoryForType:e=>A().history[e]||[],setLastSelectedType:A=>{e({lastSelectedType:A}),localStorage.setItem(tK,A)}}}),tB="ZodOptional",tD="ZodDefault",tM="ZodNullable",tz="ZodObject",tQ="midscene_location_field_flag",tL=e=>"object"==typeof e&&null!==e&&("shape"in e||"ZodObject"===e.type),tZ=e=>{var A,t,r;if((null==(A=e._def)?void 0:A.typeName)===tz){let A;if(e._def.shape&&(A="function"==typeof e._def.shape?e._def.shape():e._def.shape),!A&&e.shape&&(A=e.shape),A&&tQ in A)return!0;let r=(null==(t=e._def)?void 0:t.description)||e.description||"";if("string"==typeof r&&r.toLowerCase().includes("input field"))return!0}if("object"==typeof e&&null!==e){let A=e.description||(null==(r=e._def)?void 0:r.description)||"";if("string"==typeof A){let e=A.toLowerCase();if(e.includes("input field")||e.includes("element")||e.includes("locate"))return!0}if("ZodObject"===e.typeName||"ZodObject"===e.type)return"string"==typeof A&&A.toLowerCase().includes("input field")}return!1},tX=e=>{var A,t,r,n,o;let i=e,a=!1,s=!1;for(;(null==(A=i._def)?void 0:A.typeName)===tB||(null==(t=i._def)?void 0:t.typeName)===tD||(null==(r=i._def)?void 0:r.typeName)===tM;)(null==(n=i._def)?void 0:n.typeName)===tB&&(a=!0),(null==(o=i._def)?void 0:o.typeName)===tD&&(s=!0),i=i._def.innerType||i;return{actualField:i,isOptional:a,hasDefault:s}},tJ=e=>{if(!e)return"";let A=e.startsWith("ai")?e.slice(2):e;if(A.startsWith("IOS"))return A.substring(3).replace(/([A-Z])/g," $1").replace(/^/,"IOS").trim();let t=A.replace(/([A-Z])/g," $1").trim(),r=t.split(" ");return r.length>3?r.slice(-3).join(" "):t};var tU=t(16356);let tF=e=>{var A,t;return(0,r.jsx)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:27,height:27,fill:"none",viewBox:"0 0 27 27"},e),t=t={children:(0,r.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeOpacity:.85,strokeWidth:1.333,d:"M19.527 8.855h-2M14.86 7.522v2.667M14.86 8.855H7.527M10.194 13.522H7.527M12.86 12.189v2.666M20.193 13.522H12.86M19.527 18.189h-2M14.86 16.855v2.667M14.86 18.189H7.527"})},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},tq=e=>{let A,{showDeepThinkOption:t=!1,enableTracking:n=!1,showDataExtractionOptions:o=!1,hideDomAndScreenshotOptions:i=!1,deviceType:a}=e,s=P(e=>e.forceSameTabNavigation),l=P(e=>e.setForceSameTabNavigation),c=P(e=>e.deepThink),d=P(e=>e.setDeepThink),u=P(e=>e.screenshotIncluded),p=P(e=>e.setScreenshotIncluded),g=P(e=>e.domIncluded),f=P(e=>e.setDomIncluded),m=P(e=>e.imeStrategy),h=P(e=>e.setImeStrategy),y=P(e=>e.autoDismissKeyboard),E=P(e=>e.setAutoDismissKeyboard),v=P(e=>e.keyboardDismissStrategy),b=P(e=>e.setKeyboardDismissStrategy),C=P(e=>e.alwaysRefreshScreenInfo),k=P(e=>e.setAlwaysRefreshScreenInfo);if(!n&&!t&&!o&&"android"!==a&&"ios"!==a)return null;let S=(A=[],n&&A.push({label:(0,r.jsx)(tU.A,{onChange:e=>l(e.target.checked),checked:s,children:"Limit popup to current tab"}),key:"track-config"}),t&&A.push({label:(0,r.jsx)(tU.A,{onChange:e=>{d(e.target.checked)},checked:c,children:"Deep Think"}),key:"deep-think-config"}),o&&!i&&(A.push({label:(0,r.jsx)(tU.A,{onChange:e=>{p(e.target.checked)},checked:u,children:"Include screenshot in request"}),key:"screenshot-included-config"}),A.push({label:(0,r.jsxs)("div",{style:{padding:"4px 0"},children:[(0,r.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:"Include DOM info in request"}),(0,r.jsxs)(tx.A.Group,{size:"small",value:g,onChange:e=>f(e.target.value),children:[(0,r.jsx)(tx.A,{value:!1,children:"Off"}),(0,r.jsx)(tx.A,{value:!0,children:"All"}),(0,r.jsx)(tx.A,{value:"visible-only",children:"Visible only"})]})]}),key:"dom-included-config"})),"android"===a&&(A.push({label:(0,r.jsxs)("div",{style:{padding:"4px 0"},children:[(0,r.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:"IME strategy"}),(0,r.jsxs)(tx.A.Group,{size:"small",value:m,onChange:e=>h(e.target.value),children:[(0,r.jsx)(tx.A,{value:"always-yadb",children:"Always YADB"}),(0,r.jsx)(tx.A,{value:"yadb-for-non-ascii",children:"YADB for non-ASCII"})]})]}),key:"ime-strategy-config"}),A.push({label:(0,r.jsx)(tU.A,{onChange:e=>E(e.target.checked),checked:y,children:Ai}),key:"auto-dismiss-keyboard-config"}),A.push({label:(0,r.jsxs)("div",{style:{padding:"4px 0"},children:[(0,r.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:"Keyboard dismiss strategy"}),(0,r.jsxs)(tx.A.Group,{size:"small",value:v,onChange:e=>b(e.target.value),children:[(0,r.jsx)(tx.A,{value:"esc-first",children:"ESC first"}),(0,r.jsx)(tx.A,{value:"back-first",children:"Back first"})]})]}),key:"keyboard-dismiss-strategy-config"}),A.push({label:(0,r.jsx)(tU.A,{onChange:e=>k(e.target.checked),checked:C,children:"Always refresh screen info"}),key:"always-refresh-screen-info-config"})),"ios"===a&&A.push({label:(0,r.jsx)(tU.A,{onChange:e=>E(e.target.checked),checked:y,children:Ai}),key:"auto-dismiss-keyboard-config"}),A);return(0,r.jsx)("div",{className:"selector-trigger",children:(0,r.jsx)(ts.A,{menu:{items:S},trigger:["click"],children:(0,r.jsx)(tF,{width:24,height:24})})})};var tV=t(9076),tG=t(95932);let{TextArea:tH}=e7.A,tW=(e,A)=>`${e}${A?" (Optional)":""}`,tY=e=>{let{name:A,label:t,isRequired:n,marginBottom:o,placeholder:i}=e,a=i||`Enter ${A}`;return(0,r.jsx)(An.A.Item,{name:["params",A],label:tW(t,!n),rules:n?[{required:!0,message:`Please input ${A}`}]:[],style:{marginBottom:o},colon:!1,children:(0,r.jsx)(e7.A,{placeholder:a})},A)},t_=e=>{let{name:A,label:t,isRequired:n,marginBottom:o,placeholder:i}=e,a=i||`Describe the ${A}, use natural language`;return(0,r.jsx)(An.A.Item,{name:["params",A],label:tW(t,!n),rules:n?[{required:!0,message:`The ${A} is required`}]:[],style:{marginBottom:o},colon:!1,children:(0,r.jsx)(tH,{rows:2,placeholder:a})},A)},t$=e=>{var A;let{name:t,label:n,fieldSchema:o,isRequired:i,marginBottom:a,placeholder:s}=e,l=((null==(A=o._def)?void 0:A.values)||[]).map(e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)}));return(0,r.jsx)(An.A.Item,{name:["params",t],label:n,rules:i?[{required:!0,message:`Please select ${t}`}]:[],style:{marginBottom:a},colon:!1,children:(0,r.jsx)(tV.A,{placeholder:s||`Select ${t}`,options:l})},t)},t0=e=>{let{name:A,label:t,isRequired:n,marginBottom:o,placeholder:i}=e,a=500*("distance"===A),s=i&&Number(i)||a,l="distance"===A?1e4:void 0;return(0,r.jsx)(An.A.Item,{name:["params",A],label:`${t}${"distance"===A?" (px)":""}`,rules:n?[{required:!0,message:`Please input ${A}`},{type:"number",min:0,message:`${t} must be at least 0`}]:[{type:"number",min:0,message:`${t} must be at least 0`}],style:{flex:"distance"===A?1:void 0,marginBottom:o},colon:!1,children:(0,r.jsx)(tG.A,{placeholder:s.toString(),min:0,max:l,step:"distance"===A?10:1,style:{width:"100%"}})},A)},t1=e=>{let{name:A,label:t,isRequired:n,marginBottom:o,placeholder:i}=e;return(0,r.jsx)(An.A.Item,{name:["params",A],label:tW(t,!n),rules:n?[{required:!0,message:`Please select ${A}`}]:[],style:{marginBottom:o},colon:!1,children:(0,r.jsx)(tV.A,{placeholder:i||`Select ${A}`,options:[{value:!0,label:"True"},{value:!1,label:"False"}]})},A)},t2=e=>{var A,t;return(0,r.jsx)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:18,height:16,fill:"none",viewBox:"0 0 18 16"},e),t=t={children:(0,r.jsx)("path",{stroke:"#333",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.333,d:"m3.124 2.667 11.162 10.666M3.124 13.333 14.286 2.667"})},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},t3=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:25,height:25,fill:"none",viewBox:"0 0 25 25"},e),t=t={children:[(0,r.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeOpacity:.85,strokeWidth:1.33,d:"M6.63 9.021c-2.862 6.126 2.197 10.501 6.063 10.501a7 7 0 1 0-6.063-10.5"}),(0,r.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeOpacity:.85,strokeWidth:1.33,d:"M12.695 8.322v4.203l2.967 2.968"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},t6=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:19,height:19,fill:"none",viewBox:"0 0 19 19"},e),t=t={children:[(0,r.jsxs)("g",{stroke:"currentColor",strokeLinejoin:"round",strokeOpacity:.65,strokeWidth:1.5,clipPath:"url(#magnifying-glass_svg__a)",children:[(0,r.jsx)("path",{d:"M8.397 14.29a6.375 6.375 0 1 0 0-12.75 6.375 6.375 0 0 0 0 12.75Z"}),(0,r.jsx)("path",{strokeLinecap:"round",d:"M10.519 5.42a3 3 0 0 0-2.122-.88 3 3 0 0 0-2.121.88M12.98 12.499l3.182 3.182"})]}),(0,r.jsx)("defs",{children:(0,r.jsx)("clipPath",{id:"magnifying-glass_svg__a",children:(0,r.jsx)("path",{fill:"#fff",d:"M.522.04h18v18h-18z"})})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},{Text:t5}=e3.A,t7=e=>{let{onSelect:A,history:t,currentType:n}=e,[o,i]=(0,et.useState)(!1),[a,s]=(0,et.useState)(""),l=tT(e=>e.clearHistory),c=(0,et.useRef)(null),d=(0,et.useMemo)(()=>{let e=Date.now(),A=e-6048e5,r=e-31536e6,n=t.filter(e=>e.prompt.toLowerCase().includes(a.toLowerCase()));return{recent7Days:n.filter(e=>e.timestamp>=A),recent1Year:n.filter(e=>e.timestamp<A&&e.timestamp>=r),older:n.filter(e=>e.timestamp<r)}},[t,a]);(0,et.useEffect)(()=>{if(!o)return;let e=e=>{c.current&&!c.current.contains(e.target)&&i(!1)},A=setTimeout(()=>{document.addEventListener("click",e)},100);return()=>{clearTimeout(A),document.removeEventListener("click",e)}},[o]);let u=(e,t)=>0===t.length?null:(0,r.jsxs)("div",{className:"history-group",children:[(0,r.jsx)("div",{className:"history-group-title",children:e}),t.map((e,t)=>(0,r.jsx)("div",{className:"history-item",onClick:()=>{A(e),i(!1)},children:e.prompt},`${e.timestamp}-${t}`))]},e);return(0,r.jsxs)("div",{className:"history-selector-wrapper",children:[(0,r.jsx)("div",{className:"selector-trigger",onClick:()=>i(!0),children:(0,r.jsx)(t3,{width:24,height:24})}),o&&(0,r.jsx)("div",{className:"history-modal-overlay",ref:c,children:(0,r.jsxs)("div",{className:"history-modal-container",children:[(0,r.jsxs)("div",{className:"history-modal-header",children:[(0,r.jsxs)(t5,{strong:!0,style:{fontSize:"16px"},children:["History (",t.length,")"]}),(0,r.jsx)(eA.Ay,{size:"small",type:"text",icon:(0,r.jsx)(t2,{width:16,height:16}),onClick:()=>i(!1),className:"close-button"})]}),(0,r.jsx)("div",{className:"history-search-section",children:(0,r.jsxs)("div",{className:"search-input-wrapper",children:[(0,r.jsx)(e7.A,{placeholder:"Search",value:a,onChange:e=>s(e.target.value),prefix:(0,r.jsx)(t6,{width:18,height:18}),className:"search-input",allowClear:!0}),(0,r.jsx)(eA.Ay,{type:"link",onClick:()=>{l(n),s(""),i(!1)},className:"clear-button",disabled:0===t.length,children:"Clear"})]})}),(0,r.jsx)("div",{className:"history-content",children:0===t.length?(0,r.jsx)("div",{className:"no-results",children:(0,r.jsx)(t5,{type:"secondary",children:"No history record"})}):(0,r.jsxs)(r.Fragment,{children:[u("Last 7 days",d.recent7Days),u("Last 1 year",d.recent1Year),u("Earlier",d.older),a&&0===d.recent7Days.length&&0===d.recent1Year.length&&0===d.older.length&&(0,r.jsx)("div",{className:"no-results",children:(0,r.jsx)(t5,{type:"secondary",children:"No matching history record"})})]})})]})})]})};function t9(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}let{TextArea:t8}=e7.A,t4=e=>{let A,t,n,o,i,a,{runButtonEnabled:s,form:l,serviceMode:c,selectedType:d,dryMode:u,stoppable:p,loading:g,onRun:f,onStop:m,clearPromptAfterRun:h=!0,actionSpace:y,hideDomAndScreenshotOptions:E=!1,deviceType:v}=e,[b,C]=(0,et.useState)(!1),[k,S]=(0,et.useState)(""),I="aiQuery"===d?"What do you want to query?":"aiAssert"===d?"What do you want to assert?":"aiTap"===d?"What element do you want to tap?":"aiDoubleClick"===d?"What element do you want to double-click?":"aiHover"===d?"What element do you want to hover over?":"aiInput"===d?"Format: <value> | <element>\nExample: hello world | search box":"aiRightClick"===d?"What element do you want to right-click?":"aiKeyboardPress"===d?"Format: <key> | <element (optional)>\nExample: Enter | text field":"aiScroll"===d?"Format: <direction> <amount> | <element (optional)>\nExample: down 500 | main content":"aiLocate"===d?"What element do you want to locate?":"aiBoolean"===d?"What do you want to check (returns true/false)?":"aiNumber"===d?"What number do you want to extract?":"aiString"===d?"What text do you want to extract?":"aiAsk"===d?"What do you want to ask?":"aiWaitFor"===d?"What condition do you want to wait for?":"What do you want to do?",R=(0,et.useRef)(null),x=(0,et.useRef)(null),j=An.A.useWatch("params",l),P=(0,et.useRef)(null),w=tT(e=>e.history),N=tT(e=>e.lastSelectedType),O=tT(e=>e.addHistory),K=tT(e=>e.setLastSelectedType),T=(0,et.useMemo)(()=>w[d]||[],[w,d]),B=(0,et.useMemo)(()=>{if(y){let e=y.find(e=>e.interfaceAlias===d||e.name===d);return!!(null==e?void 0:e.paramSchema)&&(!tL(e.paramSchema)||Object.keys(e.paramSchema.shape||{}).length>0)}return!1},[d,y]),D=(0,et.useMemo)(()=>{if(y&&y.length>0){let e=y.find(e=>e.interfaceAlias===d||e.name===d);if(e){if(e.paramSchema&&tL(e.paramSchema)){let A=e.paramSchema.shape||{};return Object.keys(A).some(e=>{let{isOptional:t}=tX(A[e]);return!t})}return!!e.paramSchema}}return!0},[d,y]),M=(0,et.useMemo)(()=>["aiQuery","aiBoolean","aiNumber","aiString","aiAsk","aiAssert"].includes(d),[d]),z=(0,et.useMemo)(()=>{if("aiAct"===d||"aiLocate"===d)return!0;if(y){let e=y.find(e=>e.interfaceAlias===d||e.name===d);if((null==e?void 0:e.paramSchema)&&tL(e.paramSchema)){let A=e.paramSchema.shape||{};return Object.keys(A).some(e=>{let{actualField:t}=tX(A[e]);return tZ(t)})}}return!1},[d,y]),Q=(0,et.useMemo)(()=>{let e=M&&!E,A="android"===v||"ios"===v;return"In-Browser-Extension"===c||z||e||A},[c,z,M,E,v]),L=(0,et.useMemo)(()=>{let e=Object.keys(Aa);if(!y||0===y.length)return e;let A=y.map(e=>e.interfaceAlias||e.name),t=new Set;return e.forEach(e=>{let r=Aa[e];(null==r?void 0:r.group)==="extraction"||(null==r?void 0:r.group)==="validation"?t.add(e):A.includes(e)&&t.add(e)}),A.forEach(e=>{t.add(e)}),Array.from(t)},[y]),Z=(0,et.useCallback)(()=>{if(!B||!y)return{};let e=y.find(e=>e.interfaceAlias===d||e.name===d);if((null==e?void 0:e.paramSchema)&&tL(e.paramSchema)){let A={},t=e.paramSchema.shape||{};return Object.keys(t).forEach(e=>{let r=(e=>{var A;let t=e;for(;null==(A=t._def)?void 0:A.innerType;){if(t._def.typeName===tD&&t._def.defaultValue)return t._def.defaultValue();t=t._def.innerType}})(t[e]);void 0!==r&&(A[e]=r)}),A}return{}},[d,B,y]);(0,et.useEffect)(()=>{!l.getFieldValue("type")&&N&&l.setFieldValue("type",N)},[l,N]),(0,et.useEffect)(()=>{d&&d!==N&&K(d)},[d,N,K]);let X=(0,et.useCallback)(()=>{let e=x.current;if(!e)return;let A=null,t=e.querySelector(".ant-radio-button-wrapper-checked"),r=e.querySelector(".more-apis-button.selected-from-dropdown");if(t?A=t:r&&(A=r),A){let t=e.getBoundingClientRect(),r=A.getBoundingClientRect(),n=r.left-t.left+e.scrollLeft,o=r.width,i=t.width;e.scrollTo({left:Math.max(0,n-(i-o)/2),behavior:"smooth"})}},[]);(0,et.useEffect)(()=>{let e=T[0];if(!e||!P.current||e.timestamp!==P.current.timestamp)if(e)l.setFieldsValue({type:e.type,prompt:e.prompt||"",params:e.params}),S(e.prompt||""),P.current=e;else{let e=Z();l.setFieldsValue({prompt:"",params:e}),S(""),P.current=null}},[d,T,l,Z]),(0,et.useEffect)(()=>{let e=setTimeout(()=>{X()},100);return()=>clearTimeout(e)},[d,X]);let J=An.A.useWatch("prompt",l);(0,et.useEffect)(()=>{J!==k&&S(J||"")},[J,k]);let U=(0,et.useCallback)(e=>{l.setFieldsValue({prompt:e.prompt,type:e.type,params:e.params}),S(e.prompt)},[l]),F=(0,et.useCallback)(e=>{S(e.target.value)},[]),q=(0,et.useMemo)(()=>{if(!B||!y)return!1;let e=y.find(e=>e.interfaceAlias===d||e.name===d);return!!((null==e?void 0:e.paramSchema)&&tL(e.paramSchema))&&1===Object.keys(e.paramSchema.shape||{}).length},[d,B,y]),V=(0,et.useMemo)(()=>((e,A,t,r,n,o)=>{if(!e)return!1;if(!(()=>{if(r){let e=r.find(e=>e.interfaceAlias===n||e.name===n);if(e){if(!e.paramSchema)return!1;if("object"==typeof e.paramSchema&&"shape"in e.paramSchema)return Object.keys(e.paramSchema.shape||{}).length>0}}return!0})())return!0;if(A){let e=t||{},A=null==r?void 0:r.find(e=>e.interfaceAlias===n||e.name===n);if((null==A?void 0:A.paramSchema)&&tL(A.paramSchema)){let t=A.paramSchema.shape||{};return Object.keys(t).every(A=>{let{isOptional:r}=tX(t[A]),n=e[A];return r||void 0!==n&&""!==n&&null!==n})}return!0}return o.trim().length>0})(s,!!B,j,y,d,k),[s,B,d,y,k,j]),G=(0,et.useCallback)(()=>{let e=l.getFieldsValue(),A="";if(B&&e.params&&y){let t=y.find(e=>e.interfaceAlias===d||e.name===d);if((null==t?void 0:t.paramSchema)&&tL(t.paramSchema)){let r="",n=[],o=t.paramSchema.shape||{};Object.keys(o).forEach(A=>{var t;let i=null==(t=e.params)?void 0:t[A];if(null!=i&&""!==i){let{actualField:e}=tX(o[A]);tZ(e)?r=String(i):"distance"===A?n.push(`${i}`):n.push(String(i))}});let i=n.join(" ");A=r?`${r} - ${i}`:i}else A=e.prompt||""}else A=e.prompt||"";let t={type:e.type,prompt:A,params:e.params,timestamp:Date.now()};if(O(t),f(),h)if(P.current=t,S(""),B){let e=Z();l.setFieldValue("params",e)}else l.setFieldValue("prompt","")},[l,O,f,B,d,h,y,Z]),H=(0,et.useCallback)(e=>{"Enter"===e.key&&e.metaKey&&V?(G(),e.preventDefault(),e.stopPropagation()):"Enter"===e.key&&setTimeout(()=>{if(R.current){var e;let A=null==(e=R.current.resizableTextArea)?void 0:e.textArea;if(A){let e=A.selectionStart,t=A.value.lastIndexOf("\n");(-1===t||e>t)&&(A.scrollTop=A.scrollHeight)}}},0)},[G,V]),W=(0,et.useCallback)(e=>{"Enter"===e.key&&e.metaKey&&V&&(G(),e.preventDefault(),e.stopPropagation())},[G,V]),Y=(0,et.useCallback)(()=>{if(!B)return null;if(y){let e=y.find(e=>e.interfaceAlias===d||e.name===d);if((null==e?void 0:e.paramSchema)&&tL(e.paramSchema)){let A=e.paramSchema.shape||{},t=Object.keys(A);if(1===t.length){let e=t[0],{actualField:n}=tX(A[e]),o=tZ(n),i=(()=>{var A,t;if(null==(A=n._def)?void 0:A.description)return n._def.description;if(n.description)return n.description;if(y){let A=y.find(e=>e.interfaceAlias===d||e.name===d);if((null==A?void 0:A.paramSchema)&&"object"==typeof A.paramSchema&&"shape"in A.paramSchema){let r=(A.paramSchema.shape||{})[e];if(null==r||null==(t=r._def)?void 0:t.description)return r._def.description;if(null==r?void 0:r.description)return r.description}}return o?"Describe the element you want to interact with":"keyName"===e?"Enter key name or text to type":"value"===e?"Enter text to input":`Enter ${e}`})();return(0,r.jsx)(An.A.Item,{name:["params",e],style:{margin:0},children:(0,r.jsx)(e7.A.TextArea,{className:"main-side-console-input-textarea",rows:3,placeholder:i,autoFocus:!0,onKeyDown:W})})}let n=[],o=t.sort((e,t)=>{let r=A[e],n=A[t],{isOptional:o}=tX(r),{isOptional:i}=tX(n);return!o&&i?-1:o&&!i?1:0});if(o.forEach((e,t)=>{var i,a,s;let{actualField:l,isOptional:c}=tX(A[e]),u=tZ(l),p=e.charAt(0).toUpperCase()+e.slice(1),g=12*(t!==o.length-1),f=(()=>{var A,t;if(null==(A=l._def)?void 0:A.description)return l._def.description;if(l.description)return l.description;if(y){let A=y.find(e=>e.interfaceAlias===d||e.name===d);if((null==A?void 0:A.paramSchema)&&"object"==typeof A.paramSchema&&"shape"in A.paramSchema){let r=(A.paramSchema.shape||{})[e];if(null==r||null==(t=r._def)?void 0:t.description)return r._def.description;if(null==r?void 0:r.description)return r.description}}if(u)return"Describe the element you want to interact with"})(),m={name:e,label:p,fieldSchema:l,isRequired:!c,marginBottom:g,placeholder:f};u?n.push((0,r.jsx)(t_,t9({},m),e)):(null==(i=l._def)?void 0:i.typeName)==="ZodEnum"?n.push((0,r.jsx)(t$,t9({},m),e)):(null==(a=l._def)?void 0:a.typeName)==="ZodNumber"?n.push((0,r.jsx)(t0,t9({},m),e)):(null==(s=l._def)?void 0:s.typeName)==="ZodBoolean"?n.push((0,r.jsx)(t1,t9({},m),e)):n.push((0,r.jsx)(tY,t9({},m),e))}),"aiScroll"===d){let e=n.find(e=>et.isValidElement(e)&&"direction"===e.props.name),A=n.find(e=>et.isValidElement(e)&&"distance"===e.props.name),t=n.filter(e=>et.isValidElement(e)&&"direction"!==e.props.name&&"distance"!==e.props.name);if(e&&A)return(0,r.jsxs)("div",{className:"structured-params",children:[(0,r.jsxs)("div",{style:{display:"flex",gap:12,marginBottom:12},children:[e,A]}),t]})}return(0,r.jsx)("div",{className:"structured-params",children:n})}}return null},[d,B,y,W]),_=(0,et.useCallback)(()=>{C(!0)},[]),$=(0,et.useCallback)(()=>{C(!1)},[]),er=(0,et.useCallback)(()=>{let e=e=>(0,r.jsx)(eA.Ay,{type:"primary",icon:(0,r.jsx)(tS.A,{}),style:{borderRadius:20,zIndex:999},onClick:G,disabled:!V,loading:g,children:e});return u?"aiAct"===d?(0,r.jsx)(ee.A,{title:"Start executing until some interaction actions need to be performed. You can see the process of planning and locating.",children:e("Dry Run")}):e("Run"):p?(0,r.jsx)(eA.Ay,{icon:(0,r.jsx)(tI.A,{}),onClick:m,style:{borderRadius:20,zIndex:999},children:"Stop"}):e("Run")},[u,g,G,m,V,d,p]);return(0,r.jsxs)("div",{className:"prompt-input-wrapper",children:[(0,r.jsxs)("div",{className:"mode-radio-group-wrapper",children:[(0,r.jsxs)("div",{className:"mode-radio-group",ref:x,children:[(0,r.jsx)(An.A.Item,{name:"type",style:{margin:0},children:(0,r.jsx)(tx.A.Group,{buttonStyle:"solid",disabled:!s,children:As.map(e=>{var A;return(0,r.jsx)(ee.A,{title:(null==(A=Aa[e])?void 0:A.title)||"",children:(0,r.jsx)(tx.A.Button,{value:e,children:tJ(e)})},e)})})}),(0,r.jsx)(ts.A,{menu:(A=L.filter(e=>!As.includes(e)),t=[],(n=A.filter(e=>{var A;return(null==(A=Aa[e])?void 0:A.group)==="interaction"})).length>0&&t.push({key:"interaction-group",type:"group",label:"Interaction APIs",children:n.map(e=>{var A;return{key:e,label:tJ(e),title:(null==(A=Aa[e])?void 0:A.title)||"",onClick:()=>{l.setFieldValue("type",e)}}})}),(o=A.filter(e=>{var A;return(null==(A=Aa[e])?void 0:A.group)==="extraction"})).length>0&&t.push({key:"extraction-group",type:"group",label:"Data Extraction APIs",children:o.map(e=>{var A;return{key:e,label:tJ(e),title:(null==(A=Aa[e])?void 0:A.title)||"",onClick:()=>{l.setFieldValue("type",e)}}})}),(i=A.filter(e=>{var A;return(null==(A=Aa[e])?void 0:A.group)==="validation"})).length>0&&t.push({key:"validation-group",type:"group",label:"Validation APIs",children:i.map(e=>{var A;return{key:e,label:tJ(e),title:(null==(A=Aa[e])?void 0:A.title)||"",onClick:()=>{l.setFieldValue("type",e)}}})}),(a=A.filter(e=>!Aa[e])).length>0&&t.push({key:"device-specific-group",type:"group",label:"Device-Specific APIs",children:a.map(e=>({key:e,label:tJ(e),title:"",onClick:()=>{l.setFieldValue("type",e)}}))}),{items:t}),placement:"bottomLeft",trigger:["click"],disabled:!s,overlayClassName:"more-apis-dropdown",children:(0,r.jsxs)(eA.Ay,{className:`more-apis-button ${!As.includes(d)?"selected-from-dropdown":""}`,children:[d&&!As.includes(d)?tJ(d):"more",(0,r.jsx)(tR.A,{style:{fontSize:"10px",marginLeft:"2px"}})]})})]}),(0,r.jsxs)("div",{className:"action-icons",children:[Q&&(0,r.jsx)("div",{className:b?"settings-wrapper settings-wrapper-hover":"settings-wrapper",onMouseEnter:_,onMouseLeave:$,children:(0,r.jsx)(tq,{enableTracking:"In-Browser-Extension"===c,showDeepThinkOption:z,showDataExtractionOptions:M,hideDomAndScreenshotOptions:E,deviceType:v})}),(0,r.jsx)(t7,{onSelect:U,history:T,currentType:d})]})]}),(0,r.jsxs)("div",{className:`main-side-console-input ${!s?"disabled":""} ${g?"loading":""}`,children:[D?B?q?Y():(0,r.jsx)("div",{className:"structured-params-container",children:Y()}):(0,r.jsx)(An.A.Item,{name:"prompt",style:{margin:0},children:(0,r.jsx)(t8,{className:"main-side-console-input-textarea",disabled:!s,rows:3,placeholder:I,autoFocus:!0,onKeyDown:H,onChange:F,ref:R})}):(0,r.jsxs)("div",{className:"no-input-method",style:{padding:"20px",textAlign:"center",color:"#666",fontSize:"14px"},children:['Click "Run" to execute ',tJ(d)]}),(0,r.jsx)("div",{className:"form-controller-wrapper",children:er()})]})]})};function re(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function rA(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){re(o,r,n,i,a,"next",e)}function a(e){re(o,r,n,i,a,"throw",e)}i(void 0)})}}let{Text:rt}=e3.A;function rr(e){let{error:A}=e;if(!A)return null;let t=A.replace(/^(Error:\s*)+/,"Error: ");return(0,r.jsx)(Ar.A,{message:(0,r.jsx)("span",{style:{color:"#ff4d4f"},children:t}),type:"error",showIcon:!0})}function rn(e){let{playgroundSDK:A,storage:t,contextProvider:n,config:o={},branding:i={},className:a="",dryMode:s=!1,showContextPreview:l=!0}=e,[c]=An.A.useForm(),{config:d}=P(),[u,p]=(0,et.useState)(!1);(0,et.useEffect)(()=>{c.setFieldsValue({type:As["0"]})},[c]),(0,et.useEffect)(()=>{rA(function*(){if(A&&"function"==typeof A.checkStatus)try{yield A.checkStatus(),p(!0)}catch(e){console.warn("Failed to initialize SDK, using default namespace:",e),p(!0)}else p(!0)})()},[A]);let g=(0,et.useMemo)(()=>{if(t)return t;if(!u)return null;let e=o.storageNamespace||(A&&A.id&&"string"==typeof A.id?`agent-${A.id}`:"playground-default"),r=AJ();return console.log(`Using ${r} storage for namespace: ${e}`),AX(r,e)},[t,u,o.storageNamespace,A]),{loading:f,setLoading:m,infoList:h,setInfoList:y,actionSpace:E,actionSpaceLoading:v,uiContextPreview:b,setUiContextPreview:C,showScrollToBottomButton:k,verticalMode:S,replayCounter:I,setReplayCounter:R,infoListRef:x,currentRunningIdRef:j,interruptedFlagRef:w,clearInfoList:N,handleScrollToBottom:O}=function(e,A,t,r){let[n,o]=(0,et.useState)(!1),[i,a]=(0,et.useState)([]),[s,l]=(0,et.useState)([]),[c,d]=(0,et.useState)(!0),[u,p]=(0,et.useState)(),[g,f]=(0,et.useState)(!1),[m,h]=(0,et.useState)(!1),[y,E]=(0,et.useState)(0),v=(0,et.useRef)(null),b=(0,et.useRef)(null),C=(0,et.useRef)({}),k=(0,et.useRef)(!1);(0,et.useEffect)(()=>{let e=()=>AF(function*(){let e=AV(Aq({},Al(r)),{id:"welcome",timestamp:new Date});if(null==A?void 0:A.loadMessages)try{let t=yield A.loadMessages();0===t.length&&(t=yield AF(function*(){let e=AX(AJ(),"playground-default");try{if(null==e?void 0:e.loadMessages){let t=yield e.loadMessages();if(t.length>1)return console.log("Found data in old namespace, migrating..."),(null==A?void 0:A.saveMessages)&&(yield A.saveMessages(t)),e.clearMessages&&(yield e.clearMessages()),t}}catch(e){console.debug("No data found in old namespace:",e)}return[]})()),t.some(e=>"welcome"===e.id)?a(t):a([e,...t])}catch(A){console.error("Failed to load messages:",A),a([e])}else a([e])})();A&&!k.current?(k.current=!0,e()):A||0!==i.length||e()},[A]),(0,et.useEffect)(()=>{(null==A?void 0:A.saveMessages)&&i.length>1&&A.saveMessages(i).catch(e=>{e instanceof DOMException&&"QuotaExceededError"===e.name?console.warn("Storage quota exceeded - some messages may not be saved persistently"):console.error("Failed to save messages:",e)})},[i,A]),(0,et.useEffect)(()=>{(null==t?void 0:t.getUIContext)&&!u&&t.getUIContext().then(e=>p(e)).catch(e=>{console.error("Failed to get UI context:",e)})},[t,u]),(0,et.useEffect)(()=>{AF(function*(){d(!0);try{var A;if(!e)return void l([]);let r=u||(yield null==t||null==(A=t.getUIContext)?void 0:A.call(t)),n=yield e.getActionSpace(r);l(n||[])}catch(e){console.error("Failed to load action space:",e),l([])}finally{d(!1)}})()},[e,u,t]),(0,et.useEffect)(()=>{h(window.innerWidth<750);let e=()=>{h(window.innerWidth<750)};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);let S=(0,et.useCallback)(()=>{setTimeout(()=>{v.current&&(v.current.scrollTop=v.current.scrollHeight)},100)},[]),I=(0,et.useCallback)(()=>{if(v.current){let{scrollTop:e,scrollHeight:A,clientHeight:t}=v.current;f(!(e+t>=A-10))}},[]),R=(0,et.useCallback)(()=>{v.current&&(v.current.scrollTo({top:v.current.scrollHeight,behavior:"smooth"}),f(!1))},[]);(0,et.useEffect)(()=>{i.length>0&&S()},[i,S]),(0,et.useEffect)(()=>{let e=v.current;if(e)return e.addEventListener("scroll",I),I(),()=>{e.removeEventListener("scroll",I)}},[I]);let x=(0,et.useCallback)(()=>AF(function*(){if(a([AV(Aq({},Al(r)),{id:"welcome",timestamp:new Date})]),null==A?void 0:A.clearMessages)try{yield A.clearMessages()}catch(e){console.error("Failed to clear stored messages:",e)}})(),[A,r]),j=(0,et.useCallback)(()=>AF(function*(){if(null==t?void 0:t.refreshContext)try{let e=yield t.refreshContext();p(e)}catch(e){console.error("Failed to refresh context:",e)}})(),[t]);return{loading:n,setLoading:o,infoList:i,setInfoList:a,actionSpace:s,actionSpaceLoading:c,uiContextPreview:u,setUiContextPreview:p,showScrollToBottomButton:g,verticalMode:m,replayCounter:y,setReplayCounter:E,infoListRef:v,currentRunningIdRef:b,interruptedFlagRef:C,clearInfoList:x,refreshContext:j,handleScrollToBottom:R,scrollToBottom:S}}(A,g,n,i.targetName),{handleRun:K,handleStop:T,canStop:B}=function(e,A,t,r,n,o,i,a,s,l,c){let{deepThink:d,screenshotIncluded:u,domIncluded:p}=P(),g=(0,et.useCallback)(t=>Ah(function*(){if(!e)return void console.warn("PlaygroundSDK is not available");let r=Date.now(),g=t.type,f=`${t.type}: ${t.prompt||JSON.stringify(t.params)}`,m={id:`user-${Date.now()}`,type:"user",content:f,timestamp:new Date};o(e=>[...e,m]),n(!0);let h=Ay({},Ac),y={id:`system-${r}`,type:"system",content:"",timestamp:new Date,loading:!0,loadingProgressText:""};o(e=>[...e,y]);try{if(l.current=r,c.current[r]=!1,e.onDumpUpdate&&e.onDumpUpdate((e,A)=>{var t;if(c.current[r]||!(null==A||null==(t=A.tasks)?void 0:t.length))return;let n=A.tasks.map((e,A)=>{var t;let n,o;return{id:`progress-${r}-task-${A}`,type:"progress",content:(n=eX(e),(o=eU(e))?`${n} - ${o}`:n),timestamp:new Date((null==(t=e.timing)?void 0:t.start)||Date.now()),result:e.error?{error:Av(e.error),result:null}:void 0}});o(e=>{let A=e.findIndex(e=>e.id===`system-${r}`);if(-1===A)return e;let t=e.filter(e=>!("progress"===e.type&&e.id.startsWith(`progress-${r}-`)));return[...t.slice(0,A+1),...n,...t.slice(A+1)]})}),h.result=yield e.executeAction(g,t,{requestId:r.toString(),deepThink:d,screenshotIncluded:u,domIncluded:p}),"object"==typeof h.result&&null!==h.result){let e=h.result;e.dump&&(h.dump=e.dump),e.reportHTML&&(h.reportHTML=e.reportHTML),e.error&&(h.error=Av(e.error)),"result"in e&&(h.result=e.result)}}catch(e){h.error=Av(e),console.error("Playground execution error:",e),"object"==typeof e&&null!==e&&(e.dump&&(h.dump=e.dump),e.reportHTML&&(h.reportHTML=e.reportHTML))}if(c.current[r])return;n(!1),l.current=null;let E=null,v=i;if((null==h?void 0:h.dump)&&h.dump.tasks&&Array.isArray(h.dump.tasks)){let e=Ag(Ab(h.dump));a(e=>e+1),E=e,v=i+1}o(e=>e.map(e=>e.id===`system-${r}`?AE(Ay({},e),{content:"",loading:!1,loadingProgressText:""}):e));let b={id:`result-${r}`,type:"result",content:"Execution result",timestamp:new Date,result:h,loading:!1,replayScriptsInfo:E,replayCounter:v,loadingProgressText:"",verticalMode:s,actionType:g};if(o(e=>[...e,b]),null==A?void 0:A.saveResult)try{yield A.saveResult(b.id,b)}catch(e){console.error("Failed to save result:",e)}let C={id:`separator-${r}`,type:"separator",content:"New Session",timestamp:new Date};o(e=>[...e,C])})(),[e,A,t,n,o,i,a,s,l,c,d,u,p]),f=(0,et.useCallback)(()=>Ah(function*(){let A=l.current;if(A&&e&&e.cancelExecution)try{let r=yield e.cancelExecution(A.toString()),l=null;if(r)l=r;else if(e.getCurrentExecutionData)try{l=yield e.getCurrentExecutionData()}catch(e){console.error("Failed to get execution data before stop:",e)}if(c.current[A]=!0,n(!1),e.onProgressUpdate&&e.onProgressUpdate(()=>{}),e.onDumpUpdate&&e.onDumpUpdate(()=>{}),o(e=>e.map(e=>e.id===`system-${A}`?AE(Ay({},e),{content:"",loading:!1,loadingProgressText:""}):e)),l&&(l.dump||l.reportHTML)){var t;let e=null,r=i;if((null==(t=l.dump)?void 0:t.tasks)&&Array.isArray(l.dump.tasks)){let A=Ab(l.dump);e=Ag(A),a(e=>e+1),r=i+1}let n={id:`stop-result-${A}`,type:"result",content:"Execution stopped by user",timestamp:new Date,result:{result:null,dump:l.dump,reportHTML:l.reportHTML,error:null},loading:!1,verticalMode:s,replayScriptsInfo:e,replayCounter:r};o(e=>[...e,n])}else{let e={id:`stop-${A}`,type:"system",content:"Operation stopped",timestamp:new Date,loading:!1};o(A=>[...A,e])}let d={id:`separator-${A}`,type:"separator",content:"New Session",timestamp:new Date};o(e=>[...e,d])}catch(e){console.error("Failed to stop execution:",e)}})(),[e,l,c,n,o,s,i]);return{handleRun:g,handleStop:f,canStop:r&&!!l.current&&!!e&&!!e.cancelExecution}}(A,g,E,f,m,y,I,R,S,j,w);(0,et.useEffect)(()=>{(null==A?void 0:A.overrideConfig)&&d&&A.overrideConfig(d).catch(e=>{console.error("Failed to override SDK config:",e);let A=e instanceof Error?e.message:String(e);G.Ay.error(`Failed to apply AI configuration: ${A}`)})},[A,d]);let D=(0,et.useCallback)(()=>rA(function*(){try{let e=c.getFieldsValue();yield K(e)}catch(e){G.Ay.error((null==e?void 0:e.message)||"Execution failed")}})(),[c,K]),M=Object.keys(d||{}).length>=1,z=o.serverMode||!s&&!v&&M,Q=An.A.useWatch("type",c),L=(0,et.useMemo)(()=>A&&"function"==typeof A.getServiceMode?A.getServiceMode():"Server",[A]),Z=l&&!1!==o.showContextPreview,X=o.layout||"vertical",J=!1!==o.showVersionInfo,U=o.deviceType;return(0,r.jsx)("div",{className:`playground-container ${X}-mode ${a}`.trim(),children:(0,r.jsxs)(An.A,{form:c,onFinish:D,className:"command-form",children:[Z&&(0,r.jsx)("div",{className:"context-preview-section",children:(0,r.jsx)(tA,{uiContextPreview:b,setUiContextPreview:C,showContextPreview:Z})}),(0,r.jsxs)("div",{className:"middle-dialog-area",children:[h.length>1&&(0,r.jsx)("div",{className:"clear-button-container",children:(0,r.jsx)(eA.Ay,{size:"small",icon:(0,r.jsx)(e4.A,{}),onClick:N,type:"text",className:"clear-button"})}),(0,r.jsx)("div",{ref:x,className:"info-list-container",children:(0,r.jsx)(Ao.A,{itemLayout:"vertical",dataSource:h,renderItem:e=>{var A,t,n,o;let a,s,l,c,d,u;return(0,r.jsx)(Ao.A.Item,{className:"list-item",children:"user"===e.type?(0,r.jsx)("div",{className:"user-message-container",children:(0,r.jsx)("div",{className:"user-message-bubble",children:e.content})}):"progress"===e.type?(0,r.jsx)("div",{children:(s=null==(A=(a=e.content.split(" - "))[0])?void 0:A.trim(),l=a.slice(1).join(" - ").trim(),c=h.findIndex(A=>A.id===e.id),d=h.slice(c+1).some(e=>"progress"===e.type),u=f&&!d,(0,r.jsxs)(r.Fragment,{children:[s&&(0,r.jsxs)("span",{className:"progress-action-item",children:[s,(0,r.jsx)("span",{className:`progress-status-icon ${u?"loading":(null==(t=e.result)?void 0:t.error)?"error":"completed"}`,children:u?(0,r.jsx)(Ae.A,{spin:!0}):(null==(n=e.result)?void 0:n.error)?"✗":"✓"})]}),l&&(0,r.jsx)("div",{children:(0,r.jsx)(A7,{text:l,className:"progress-description",disabled:!u})}),(null==(o=e.result)?void 0:o.error)&&(0,r.jsx)(rr,{error:e.result.error})]}))}):"separator"===e.type?(0,r.jsxs)("div",{className:"new-conversation-separator",children:[(0,r.jsx)("div",{className:"separator-line"}),(0,r.jsx)("div",{className:"separator-text-container",children:(0,r.jsx)(rt,{type:"secondary",className:"separator-text",children:e.content})})]}):(0,r.jsxs)("div",{className:"system-message-container",children:[(0,r.jsxs)("div",{className:"system-message-header",children:[(0,r.jsx)(AA.A,{component:i.icon||tk,style:{fontSize:20}}),(0,r.jsx)("span",{className:"system-message-title",children:i.title||"Playground"})]}),(e.content||e.result)&&(0,r.jsx)("div",{className:"system-message-content",children:"result"===e.type?(0,r.jsx)(tC,{result:e.result||null,loading:e.loading||!1,serverValid:!0,serviceMode:L,replayScriptsInfo:e.replayScriptsInfo||null,replayCounter:e.replayCounter||0,loadingProgressText:e.loadingProgressText||"",verticalMode:e.verticalMode||!1,fitMode:"width",actionType:e.actionType}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"system-message-text",children:e.content}),e.loading&&e.loadingProgressText&&(0,r.jsx)("div",{className:"loading-progress-text",children:(0,r.jsx)("span",{children:e.loadingProgressText})})]})})]})},e.id)}})}),k&&!1!==o.enableScrollToBottom&&(0,r.jsx)(eA.Ay,{className:"scroll-to-bottom-button",type:"primary",shape:"circle",icon:(0,r.jsx)(At.A,{}),onClick:O,size:"large"})]}),(0,r.jsxs)("div",{className:"bottom-input-section",children:[o.showEnvConfigReminder?(0,r.jsx)(tr,{}):null,(0,r.jsx)(t4,{runButtonEnabled:z,form:c,serviceMode:L,selectedType:Q,dryMode:s,stoppable:B,loading:f,onRun:D,onStop:T,actionSpace:E,deviceType:U})]}),J&&i.version&&(0,r.jsx)("div",{className:"version-info-section",children:(0,r.jsxs)("span",{className:"version-text",children:["Midscene.js version: ",i.version]})})]})})}function ro(){let{config:e}=P(),A=(0,et.useMemo)(()=>new eW({type:"remote-execution"}),[]);return(0,et.useEffect)(()=>{(async()=>{try{let e=await A.checkStatus();console.log("[DEBUG] Android playground server status:",e,"ID:",A.id)}catch(e){console.error("Failed to check android playground server status:",e)}})()},[A]),(0,et.useEffect)(()=>{A.overrideConfig&&e&&A.overrideConfig(e).catch(e=>{console.error("Failed to override SDK config:",e)})},[A,e]),(0,r.jsxs)("div",{className:"playground-panel",children:[(0,r.jsx)("div",{className:"playground-panel-header",children:(0,r.jsxs)("div",{className:"header-row",children:[(0,r.jsx)(e0,{}),(0,r.jsx)(e8,{showTooltipWhenEmpty:!1,showModelName:!1})]})}),(0,r.jsx)("div",{className:"playground-panel-playground",children:(0,r.jsx)(rn,{playgroundSDK:A,config:{showContextPreview:!1,layout:"vertical",showVersionInfo:!0,enableScrollToBottom:!0,serverMode:!0,showEnvConfigReminder:!0,deviceType:"android"},branding:{title:"Android Playground",version:"1.4.8"},className:"playground-container"})})]})}var ri=t(36978),ra=t(57304),rs=t(88863),rl=t(44631),rc=t(85094),rd=t(25656),ru=t(44540),rp=t(79582);let rg=e=>(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16",...e,children:(0,r.jsx)("path",{fill:"#000",fillOpacity:.25,fillRule:"evenodd",d:"M9.68 2c1.2-1.2 3.2-1.28 4.4-.08s1.12 3.2-.08 4.4l-2.16 2.16c-.24.24-.56.24-.8 0s-.24-.56 0-.8l2.16-2.16c.8-.8.8-2.08.08-2.8s-2-.72-2.8.08L8.32 4.96c-.24.24-.56.24-.8 0s-.24-.56 0-.8zM5.6 13.2l2.16-2.16c.24-.24.56-.24.8 0s.24.56 0 .8L6.4 14c-1.2 1.2-3.12 1.36-4.4.08-1.36-1.28-1.2-3.2.08-4.4l2.16-2.16c.24-.24.56-.24.8 0s.24.56 0 .8l-2.16 2.16c-.8.8-.88 2-.08 2.8s2 .72 2.8-.08m4.64-8.24c.24-.24.64-.24.96 0 .24.24.24.64 0 .96L5.92 11.2c-.24.24-.64.24-.96 0-.24-.24-.24-.64 0-.96z",clipRule:"evenodd"})}),rf=e=>(0,r.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16",...e,children:[(0,r.jsxs)("g",{fill:"#606266",clipPath:"url(#screenshot_svg__a)",children:[(0,r.jsx)("path",{d:"m4.883 2.663-.858 2.001h-2.69v8.673h13.341V4.664H11.32l-.859-2zm-1.738.667.858-2.001h7.338l.858 2.001h2.477a1.334 1.334 0 0 1 1.334 1.334v8.673a1.335 1.335 0 0 1-1.334 1.334H1.334A1.334 1.334 0 0 1 0 13.337V4.664A1.334 1.334 0 0 1 1.334 3.33z"}),(0,r.jsx)("path",{d:"M8.005 10.001a1.334 1.334 0 1 0 0-2.668 1.334 1.334 0 0 0 0 2.668m0 1.335a2.668 2.668 0 1 1 0-5.337 2.668 2.668 0 0 1 0 5.337m3.336-6.004h.667q.667 0 .667.667 0 .666-.667.667h-.667q-.667 0-.667-.667t.667-.667"})]}),(0,r.jsx)("defs",{children:(0,r.jsx)("clipPath",{id:"screenshot_svg__a",children:(0,r.jsx)("path",{fill:"#fff",d:"M0 0h16v16H0z"})})})]}),rm=e=>(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16",...e,children:(0,r.jsx)("path",{fill:"#FF4550",d:"M14.08 1.92C12.88.72 10.88.8 9.68 2L7.52 4.16c-.24.24-.24.56 0 .8s.56.24.8 0l2.16-2.16c.8-.8 2.08-.8 2.8-.08s.72 2-.08 2.8l-2.16 2.16c-.24.24-.24.56 0 .8s.56.24.8 0L14 6.32c1.2-1.2 1.28-3.2.08-4.4m-6.32 9.12L5.6 13.2c-.8.8-2 .88-2.8.08s-.72-2 .08-2.8l2.16-2.16c.24-.24.24-.56 0-.8s-.56-.24-.8 0L2.08 9.68C.8 10.88.64 12.8 2 14.08c1.28 1.28 3.2 1.12 4.4-.08l2.16-2.16c.24-.24.24-.56 0-.8s-.56-.24-.8 0M5.92 4.96c-.24-.24-.64-.24-.96 0-.24.24-.24.64 0 .96l5.28 5.28c.24.24.64.24.96 0 .24-.24.24-.64 0-.96z"})}),{Text:rh}=e3.A,ry=(0,et.forwardRef)((e,A)=>{let{serverUrl:t,maxSize:n=1024,autoConnect:o=!0,autoReconnect:i=!0,reconnectInterval:a=5e3}=e,[s,l]=(0,et.useState)(!1),[c,d]=(0,et.useState)(!1),[u,p]=(0,et.useState)(null),[g,f]=(0,et.useState)(""),m=(0,et.useRef)(null),h=(0,et.useRef)(null),y=(0,et.useRef)(null),E=(0,et.useRef)(null),v=(0,et.useRef)(null),b=(0,et.useRef)(null),C=e_(!0),k=(0,et.useCallback)(e=>{if(e)try{for(;e.firstChild;)try{e.removeChild(e.firstChild)}catch(A){if(console.warn("Failed to remove child, skipping:",A),e.firstChild){e.innerHTML="";break}}}catch(A){console.error("Error clearing container:",A);try{e.innerHTML=""}catch(e){console.error("Failed to reset innerHTML:",e)}}},[]),S=(0,et.useCallback)(()=>{if(!y.current||!h.current||!u)return;let e=h.current,A=y.current,t=e.clientWidth,r=e.clientHeight,{width:n,height:o}=u,i=r-40,a=n/o,s=t,l=t/a;l>i&&(l=i,s=i*a),A.width=n,A.height=o,A.style.width=`${s}px`,A.style.height=`${l}px`,A.style.marginTop="20px",A.style.marginBottom="20px"},[u]);(0,et.useEffect)(()=>{let e=()=>{S()};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[S]),(0,et.useEffect)(()=>{S()},[u,S]);let I=async()=>{if(rs.p.isSupported){let e=new rs.p;return{renderer:e,element:e.canvas}}let e=new rl.x;return{renderer:e,element:e.canvas}},R=async e=>{if(!ra.p.isSupported)throw Error("Current browser does not support WebCodecs API, please use the latest version of Chrome/Edge browser");let{renderer:A,element:t}=await I();if(y.current=t,h.current){let e=h.current.querySelector(".canvas-wrapper");e&&(k(e),e.appendChild(y.current))}return new ra.p({codec:e,renderer:A})},x=async()=>{if(E.current)try{let e=await E.current.snapshot();if(e){let A=URL.createObjectURL(e),t=document.createElement("a");t.href=A,t.download=`screenshot_${new Date().toISOString().replace(/:/g,"-")}.png`,t.click(),URL.revokeObjectURL(A)}}catch(e){console.error("screenshot failed:",e),alert("screenshot failed")}},j=(0,et.useCallback)(()=>{if(E.current)try{E.current.dispose(),E.current=null}catch(e){console.error("Error disposing decoder:",e)}h.current&&k(h.current.querySelector(".canvas-wrapper")),m.current&&(m.current.disconnect(),m.current=null),v.current&&(clearTimeout(v.current),v.current=null),b.current&&(clearTimeout(b.current),b.current=null),d(!1),l(!1),p(null)},[k]);(0,et.useImperativeHandle)(A,()=>({disconnectDevice:j}),[j]);let P=(0,et.useCallback)(async()=>{try{if(j(),d(!1),l(!0),p(null),await new Promise(e=>setTimeout(e,150)),!t){console.error("Cannot connect: missing server URL"),l(!1);return}let e=()=>{b.current&&(clearTimeout(b.current),b.current=null),b.current=setTimeout(()=>{var A;if(null==(A=m.current)?void 0:A.connected)try{m.current.emit("connect-device",{maxSize:n}),e()}catch(e){console.error("Failed to request connection:",e),G.Ay.error("connection request failed, please refresh the page")}else try{m.current&&setTimeout(()=>{m.current&&m.current.connect()},500)}catch(e){console.error("Failed to reconnect:",e),G.Ay.error("reconnection failed, please refresh the page")}},5e3)};if(m.current)m.current.connected?(m.current.emit("connect-device",{maxSize:n}),e()):m.current.connect();else try{m.current=(0,el.io)(t,{withCredentials:!0,reconnection:!0,reconnectionAttempts:5,reconnectionDelay:1e3,timeout:1e4}),m.current.on("connect",()=>{var A,t;(null==(A=m.current)?void 0:A.id)&&f(m.current.id),v.current&&(clearTimeout(v.current),v.current=null),null==(t=m.current)||t.emit("connect-device",{maxSize:n}),e()}),m.current.on("video-metadata",async e=>{try{let A,t,r;if(b.current&&(clearTimeout(b.current),b.current=null),E.current)try{E.current.dispose(),E.current=null}catch(e){console.error("Error disposing old decoder:",e)}if(h.current){let e=h.current.querySelector(".canvas-wrapper");k(e)}let n=(null==e?void 0:e.codec)?e.codec:ri.n.H264;if(E.current=await R(n),!E.current)throw Error("Failed to create decoder");E.current.sizeChanged(e=>{let{width:A,height:t}=e;p({width:A,height:t})}),(A=!1,t=[],r=new TransformStream({transform(e,r){let n={type:e.type,data:new Uint8Array(e.data),timestamp:e.timestamp};"configuration"===n.type?(r.enqueue(n),A=!0,t.length>0&&(t.forEach(e=>r.enqueue(e)),t=[])):"data"===n.type?A?r.enqueue(n):t.push(n):r.enqueue(n)}}),new ReadableStream({start(e){let A=!1,t=t=>{if(!A)try{e.enqueue(t)}catch(e){console.error("error occurred while enqueuing video data:",e),A=!0,o()}},r=t=>{console.error("stream error:",t),A||(e.error(Error(t.message)),A=!0,o())},n=()=>{A||(e.close(),A=!0,o())},o=()=>{m.current&&(m.current.off("video-data",t),m.current.off("error",r),m.current.off("disconnect",n))};return m.current&&(m.current.on("video-data",t),m.current.on("error",r),m.current.on("disconnect",n)),()=>{A=!0,o()}}}).pipeThrough(r)).pipeTo(E.current.writable).catch(e=>{console.error("video stream processing error:",e)}),d(!0),l(!1)}catch(e){console.error("Failed to initialize decoder:",e),l(!1)}}),m.current.on("error",e=>{console.error("server error:",e),G.Ay.error("server error"),l(!1),b.current&&(clearTimeout(b.current),b.current=null)}),m.current.on("disconnect",()=>{d(!1),b.current&&(clearTimeout(b.current),b.current=null),E.current&&(E.current.dispose(),E.current=null),h.current&&k(h.current.querySelector(".canvas-wrapper")),i&&!v.current&&(v.current=setTimeout(()=>{v.current=null,P()},a))})}catch(e){console.error("Failed to create socket connection:",e),l(!1),i&&!v.current&&(v.current=setTimeout(()=>{v.current=null,P()},a))}}catch(e){l(!1),console.error(`Failed to connect: ${e.message}`),G.Ay.error("connection failed"),i&&!v.current&&(v.current=setTimeout(()=>{v.current=null,P()},a))}},[t,n,i,a,j]);return(0,et.useEffect)(()=>{if(o&&!c&&!s){let e=setTimeout(()=>{P()},300);return()=>clearTimeout(e)}},[o,c,s,P]),(0,et.useEffect)(()=>()=>{if(E.current)try{E.current.dispose(),E.current=null}catch(e){console.error("Error disposing decoder during unmount:",e)}if(h.current)try{let e=h.current.querySelector(".canvas-wrapper");e&&(e.innerHTML="")}catch(e){console.error("Error clearing canvas wrapper during unmount:",e)}m.current&&(m.current.disconnect(),m.current=null),v.current&&(clearTimeout(v.current),v.current=null),b.current&&(clearTimeout(b.current),b.current=null)},[]),(0,r.jsx)("div",{className:"scrcpy-container",children:(0,r.jsxs)(rc.A,{children:[c&&(0,r.jsxs)("div",{className:"header-bar",children:[(0,r.jsxs)("div",{className:"header-left",children:[(0,r.jsx)(rh,{style:{fontWeight:600,fontSize:12},children:"Screen Projection"}),(0,r.jsx)(ee.A,{placement:"bottom",title:`Device ID: ${g||"Unknown"}`,children:(0,r.jsx)(Y.A,{})})]}),(0,r.jsx)("div",{className:"screen-info",children:(0,r.jsxs)(rh,{type:"secondary",children:["size : ",null==u?void 0:u.width,"\xd7",null==u?void 0:u.height]})}),(0,r.jsxs)("div",{className:"header-right",children:[(0,r.jsx)(ee.A,{placement:"bottom",title:"Screenshot",children:(0,r.jsx)(eA.Ay,{icon:(0,r.jsx)(rf,{}),onClick:x})}),(0,r.jsx)(rd.A,{type:"vertical",style:{margin:"0 16px"}}),(0,r.jsx)(ee.A,{placement:"bottom",title:"Connect Device",children:(0,r.jsx)(eA.Ay,{disabled:c,style:{backgroundColor:"#fff"},icon:(0,r.jsx)(rg,{}),onClick:P})}),c&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(rd.A,{type:"vertical",style:{margin:"0 16px"}}),(0,r.jsx)(ee.A,{title:"Disconnect Device",children:(0,r.jsx)(eA.Ay,{icon:(0,r.jsx)(rm,{}),onClick:j})})]})]})]}),(0,r.jsx)(ru.A,{gutter:[16,16],children:(0,r.jsx)(rp.A,{span:24,children:(0,r.jsx)("div",{className:"video-section",children:(0,r.jsxs)("div",{ref:h,className:"video-container",children:[(0,r.jsx)("div",{className:"canvas-wrapper"}),!c&&C&&(0,r.jsxs)("div",{className:"empty-state",children:[(0,r.jsx)("div",{className:"empty-state-icon",children:"\uD83D\uDCF1"}),(0,r.jsx)("div",{className:"empty-state-text",children:s?"Connecting to device...":"No device connected"}),!s&&(0,r.jsx)(eA.Ay,{type:"primary",onClick:()=>{P()},children:"Connect now"}),s&&(0,r.jsx)("div",{className:"loading-spinner",children:(0,r.jsx)($.A,{size:"large"})})]}),!C&&(0,r.jsx)("span",{children:"Please launch playground server!"})]})})})})]})})}),{Content:rE}=ei.A,rv=document.getElementById("root");rv&&n.createRoot(rv).render((0,r.jsx)(function(){let[e,A]=(0,et.useState)(null),[t,n]=(0,et.useState)(!1),[o,i]=G.Ay.useMessage(),[a,s]=(0,et.useState)(`http://${window.location.hostname}:5700`),[l,c]=(0,et.useState)(!1),[d,u]=(0,et.useState)(!1),{config:p}=P();(0,et.useEffect)(()=>{!function(e){let A=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=!(arguments.length>2)||void 0===arguments[2]||arguments[2];try{V(e,A)}catch(A){let e=A instanceof Error?A:Error(String(A));return console.error("Failed to override AI config:",e),t&&G.Ay.error(`Failed to apply AI configuration: ${e.message}`),!1}}(p)},[p]),(0,et.useEffect)(()=>{let e=window.SCRCPY_PORT;e&&s(`http://${window.location.hostname}:${e}`)},[]);let g=(0,et.useRef)(null),f=(0,et.useRef)(null);return(0,et.useEffect)(()=>{if(!a)return;let e=(0,el.io)(a,{withCredentials:!0,reconnectionAttempts:5,reconnectionDelay:1e3,timeout:5e3});return e.on("connect",()=>{e.emit("get-devices")}),e.on("devices-list",e=>{e.currentDeviceId&&(A(e.currentDeviceId),n(!0))}),e.on("connect_error",e=>{console.error("Socket.IO connection error:",e),o.error("Waiting for device server connection, please try again later")}),e.on("error",e=>{console.error("Socket.IO error:",e),o.error(`Error occurred while communicating with the server: ${e.message||"Unknown error"}`)}),g.current=e,()=>{e.disconnect()}},[o,a]),(0,et.useEffect)(()=>{if(t){let e=setTimeout(()=>{n(!1)},800);return()=>clearTimeout(e)}},[t]),(0,et.useEffect)(()=>{let e=()=>{c(window.innerWidth<=1024)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),(0,et.useEffect)(()=>{u(!!e&&/^\d+\.\d+\.\d+\.\d+:\d+$/.test(e))},[e]),(0,r.jsxs)(ea.Ay,{theme:{token:{colorPrimary:"#2B83FF"},components:{Layout:{headerHeight:60,headerPadding:"0 30px",headerBg:"#FFF",bodyBg:"#FFF"}}},children:[i,(0,r.jsx)(ei.A,{className:"app-container playground-container vertical-mode",children:(0,r.jsx)(rE,{className:"app-content",children:(0,r.jsxs)(es.YZ,{autoSaveId:"android-playground-layout",direction:l?"vertical":"horizontal",children:[(0,r.jsx)(es.Zk,{defaultSize:l?67:32,maxSize:l?85:60,minSize:l?67:25,className:"app-panel left-panel",children:(0,r.jsx)("div",{className:"panel-content left-panel-content",children:(0,r.jsx)(ro,{})})}),(0,r.jsx)(es.TW,{className:`panel-resize-handle ${l?"vertical":"horizontal"}`}),(0,r.jsx)(es.Zk,{className:"app-panel right-panel",children:(0,r.jsxs)("div",{className:"panel-content right-panel-content",children:[(0,r.jsx)(e$,{selectedDeviceId:e,scrcpyPlayerRef:f}),d?(0,r.jsx)(eo,{getScreenshot:()=>fetch("/screenshot").then(e=>e.json()),getInterfaceInfo:()=>fetch("/interface-info").then(e=>e.json()),serverOnline:!0,isUserOperating:!1}):(0,r.jsx)(ry,{ref:f,serverUrl:a,autoConnect:t})]})})]})})})]})},{}))},91182(){},83198(e,A,t){"use strict";t.d(A,{ZH:()=>u});var r=t(53244),n=t(35207),o=t(13078),i=t.n(o),a=t(50217),s=t(29368),l=t(19152),c=t(85409);let d="midscene_run",u=e=>{if(!l.$9)return"";let A=(()=>{if(!l.$9)return"";let e=i().resolve(c.cwd(),l.$9?(0,a.j)(s.Tr)||d:"");if(!(0,r.existsSync)(e))try{(0,r.mkdirSync)(e,{recursive:!0})}catch(A){e=i().join((0,n.tmpdir)(),d),(0,r.mkdirSync)(e,{recursive:!0})}return e})(),t=i().join(A,e);return(0,r.existsSync)(t)||(0,r.mkdirSync)(t,{recursive:!0}),t}},50217(e,A,t){"use strict";t.d(A,{j:()=>o});var r=t(29368),n=t(85409);let o=e=>{if(!r.Wh.includes(e))throw Error(`getBasicEnvValue with key ${e} is not supported.`);return n.env[e]}},29368(e,A,t){"use strict";t.d(A,{$:()=>x,$H:()=>g,$L:()=>c,$l:()=>i,AU:()=>C,BQ:()=>j,CA:()=>R,Cn:()=>el,DL:()=>eE,El:()=>z,FU:()=>u,HR:()=>n,I2:()=>r,IQ:()=>p,JM:()=>w,Jq:()=>k,Km:()=>y,Lg:()=>eb,Lh:()=>q,M1:()=>b,NF:()=>O,OK:()=>ei,OY:()=>eu,Od:()=>P,Sk:()=>B,T4:()=>J,TN:()=>L,Tr:()=>Z,UH:()=>eR,V7:()=>H,VM:()=>v,Vb:()=>ep,W4:()=>h,Wh:()=>eh,XE:()=>eC,YK:()=>Q,Yf:()=>U,Yg:()=>G,Z$:()=>es,Z7:()=>V,ZX:()=>l,_j:()=>eS,_q:()=>X,aK:()=>E,aO:()=>ef,ag:()=>ea,b6:()=>I,c$:()=>ey,d8:()=>M,fS:()=>eA,fZ:()=>s,ho:()=>D,iw:()=>d,jG:()=>S,j_:()=>T,kX:()=>F,mZ:()=>er,n0:()=>a,nc:()=>ee,pp:()=>K,rd:()=>ev,rg:()=>f,sg:()=>ec,tk:()=>ek,u1:()=>eg,v:()=>_,v4:()=>o,vC:()=>W,wu:()=>ed,xP:()=>et,xg:()=>Y,y2:()=>$,yR:()=>em,yb:()=>N,zD:()=>m,zG:()=>eo,zQ:()=>en});let r="MIDSCENE_MODEL_INIT_CONFIG_JSON",n="MIDSCENE_MODEL_NAME",o="MIDSCENE_DEBUG_MODEL_PROFILE",i="MIDSCENE_DEBUG_MODEL_RESPONSE",a="MIDSCENE_DEBUG_MODE",s="MIDSCENE_FORCE_DEEP_THINK",l="MIDSCENE_LANGSMITH_DEBUG",c="MIDSCENE_LANGFUSE_DEBUG",d="MIDSCENE_MODEL_SOCKS_PROXY",u="MIDSCENE_MODEL_HTTP_PROXY",p="MIDSCENE_MODEL_API_KEY",g="MIDSCENE_MODEL_BASE_URL",f="MIDSCENE_MODEL_MAX_TOKENS",m="MIDSCENE_MODEL_TIMEOUT",h="MIDSCENE_MODEL_TEMPERATURE",y="MIDSCENE_MODEL_RETRY_COUNT",E="MIDSCENE_MODEL_RETRY_INTERVAL",v="MIDSCENE_MODEL_REASONING_EFFORT",b="MIDSCENE_MODEL_REASONING_ENABLED",C="MIDSCENE_MODEL_REASONING_BUDGET",k="OPENAI_API_KEY",S="OPENAI_BASE_URL",I="MIDSCENE_OPENAI_INIT_CONFIG_JSON",R="MIDSCENE_OPENAI_HTTP_PROXY",x="MIDSCENE_OPENAI_SOCKS_PROXY",j="OPENAI_MAX_TOKENS",P="MIDSCENE_CACHE",w="MIDSCENE_USE_VLM_UI_TARS",N="MIDSCENE_USE_QWEN_VL",O="MIDSCENE_USE_QWEN3_VL",K="MIDSCENE_USE_DOUBAO_VISION",T="MIDSCENE_USE_GEMINI",B="MATCH_BY_POSITION",D="MIDSCENE_REPORT_TAG_NAME",M="MIDSCENE_REPORT_QUIET",z="MIDSCENE_PREFERRED_LANGUAGE",Q="MIDSCENE_CACHE_MAX_FILENAME_LENGTH",L="MIDSCENE_REPLANNING_CYCLE_LIMIT",Z="MIDSCENE_RUN_DIR",X="MIDSCENE_INSIGHT_MODEL_NAME",J="MIDSCENE_INSIGHT_MODEL_SOCKS_PROXY",U="MIDSCENE_INSIGHT_MODEL_HTTP_PROXY",F="MIDSCENE_INSIGHT_MODEL_BASE_URL",q="MIDSCENE_INSIGHT_MODEL_API_KEY",V="MIDSCENE_INSIGHT_MODEL_INIT_CONFIG_JSON",G="MIDSCENE_INSIGHT_MODEL_TIMEOUT",H="MIDSCENE_INSIGHT_MODEL_TEMPERATURE",W="MIDSCENE_INSIGHT_MODEL_RETRY_COUNT",Y="MIDSCENE_INSIGHT_MODEL_RETRY_INTERVAL",_="MIDSCENE_INSIGHT_MODEL_FAMILY",$="MIDSCENE_INSIGHT_MODEL_REASONING_EFFORT",ee="MIDSCENE_INSIGHT_MODEL_REASONING_ENABLED",eA="MIDSCENE_INSIGHT_MODEL_REASONING_BUDGET",et="MIDSCENE_PLANNING_MODEL_NAME",er="MIDSCENE_PLANNING_MODEL_SOCKS_PROXY",en="MIDSCENE_PLANNING_MODEL_HTTP_PROXY",eo="MIDSCENE_PLANNING_MODEL_BASE_URL",ei="MIDSCENE_PLANNING_MODEL_API_KEY",ea="MIDSCENE_PLANNING_MODEL_INIT_CONFIG_JSON",es="MIDSCENE_PLANNING_MODEL_TIMEOUT",el="MIDSCENE_PLANNING_MODEL_TEMPERATURE",ec="MIDSCENE_PLANNING_MODEL_RETRY_COUNT",ed="MIDSCENE_PLANNING_MODEL_RETRY_INTERVAL",eu="MIDSCENE_PLANNING_MODEL_FAMILY",ep="MIDSCENE_PLANNING_MODEL_REASONING_EFFORT",eg="MIDSCENE_PLANNING_MODEL_REASONING_ENABLED",ef="MIDSCENE_PLANNING_MODEL_REASONING_BUDGET",em="MIDSCENE_MODEL_FAMILY",eh=[a,o,i,Z],ey=[P,s,"MIDSCENE_MCP_USE_PUPPETEER_MODE","MIDSCENE_MCP_ANDROID_MODE",l,c,M],eE=[f,Q,L],ev=[f,j,"MIDSCENE_ADB_PATH","MIDSCENE_ADB_REMOTE_HOST","MIDSCENE_ADB_REMOTE_PORT","MIDSCENE_ANDROID_IME_STRATEGY","MIDSCENE_IOS_DEVICE_UDID","MIDSCENE_IOS_SIMULATOR_UDID",D,z,B,"MIDSCENE_MCP_CHROME_PATH","DOCKER_CONTAINER"],eb=[...ey,...eE,...ev],eC=[n,r,p,g,d,u,m,h,y,E,v,b,C,w,N,O,K,T,"MIDSCENE_USE_VL_MODEL",k,S,I,R,x,X,J,U,F,q,V,G,H,W,Y,_,$,ee,eA,et,er,en,eo,ei,ea,es,el,ec,ed,eu,ep,eg,ef,em],ek=["MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG",...eh,...eb,...eC],eS=["doubao-vision","doubao-seed","gemini","qwen2.5-vl","qwen3-vl","qwen3.5","vlm-ui-tars","vlm-ui-tars-doubao","vlm-ui-tars-doubao-1.5","glm-v","auto-glm","auto-glm-multilingual","gpt-5"];var eI,eR=((eI={}).V1_0="1.0",eI.V1_5="1.5",eI.DOUBAO_1_5_15B="doubao-1.5-15B",eI.DOUBAO_1_5_20B="doubao-1.5-20B",eI)},64565(e,A,t){"use strict";t.d(A,{Nw:()=>m,aZ:()=>function e(A,t){let r=`${p}:${A}`,o=(null==t?void 0:t.console)??!1,a=o?`${r}:withConsole`:r;if(!f.has(a))if(o){let t=e(A);f.set(a,function(){for(var e=arguments.length,A=Array(e),r=0;r<e;r++)A[r]=arguments[r];t(...A),console.warn("[Midscene]",...A)})}else{let e=c()(r);f.set(a,function(){for(var t=arguments.length,r=Array(t),o=0;o<t;o++)r[o]=arguments[o];u.$9&&function(e,A){if(!u.$9)return;let t=function(e){let A=e.replace(/:/g,"-");if(!g.has(A)){let e=i().join((0,d.ZH)("log"),`${A}.log`),t=n().createWriteStream(e,{flags:"a"});g.set(A,t)}return g.get(A)}(e),r=new Date,o=r.toLocaleDateString("sv-SE"),a=r.toLocaleTimeString("sv-SE"),s=r.getMilliseconds().toString().padStart(3,"0"),l=r.getTimezoneOffset(),c=Math.floor(Math.abs(l)/60).toString().padStart(2,"0"),p=(Math.abs(l)%60).toString().padStart(2,"0"),f=`${l<=0?"+":"-"}${c}:${p}`,m=`${o}T${a}.${s}${f}`;t.write(`[${m}] ${A}
8
+ `,loading:!1,result:void 0,replayScriptsInfo:null,replayCounter:0,loadingProgressText:"",verticalMode:!1}};Al();let Ac={result:void 0,dump:null,reportHTML:null,error:null},Ad="data:image/png;base64,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",Au="data:image/png;base64,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",Ap=(e,A,t)=>{let r,n=(r=e.width/e.height>=A/t?e.width:e.height/t*A)>400?.1:r>50?.2:.3,o=Math.min(A,r+A*n*2),i=Math.min(e.left-A*n,A-o);i=Math.max(i,0);let a=Math.min(e.top-t*n,t-t/A*o);return{left:Math.round(i),top:Math.round(a=Math.max(a,0)),width:Math.round(o)}},Ag=e=>{var A,t,r;let n,o;if(!e)return console.warn("[allScriptsFromDump] dump is empty"),{scripts:[],modelBriefs:[]};let i=Array.isArray(e.executions)?e:{sdkVersion:"",groupName:"Execution",modelBriefs:[],executions:[e]},a=new Set,s=i.sdkVersion,l=new Set;if(null==(A=i.executions)||A.filter(Boolean).forEach(e=>{e.tasks.forEach(e=>{var A,t;if(null==(t=e.uiContext)||null==(A=t.shotSize)?void 0:A.width){let A=e.uiContext.shotSize.width,t=e.uiContext.shotSize.height;n||(n=A,o=t),a.add(`${A}x${t}`)}})}),!n||!o)return console.warn("width or height is missing in dump file"),{scripts:[],sdkVersion:s,modelBriefs:[]};let c=[],d=(null==(t=i.executions)?void 0:t.filter(Boolean))||[];for(let e=0;e<d.length;e++){let A=d[e],t=Af(A,-1,n,o,e);t&&c.push(...t),A.tasks.forEach(e=>{if(e.usage){let{model_name:A,model_description:t,intent:r}=e.usage;r&&A&&l.add(t?`${r}/${A}(${t})`:`${r}/${A}`)}})}let u=c.filter((e,A)=>A===c.length-1||"Done"!==e.title),p=(null==(r=i.modelBriefs)?void 0:r.length)?i.modelBriefs:[],g=(()=>{var e;let A=p.length?p:[...l];if(!A.length)return A;let t=null==(e=A[0])?void 0:e.split("/",2)[1];return t&&A.slice(1).every(e=>(null==e?void 0:e.split("/",2)[1])===t)?[t]:A})();return{scripts:u,width:n,height:o,sdkVersion:s,modelBriefs:g}},Af=function(e,A,t,r){let n;if(arguments.length>4&&void 0!==arguments[4]&&arguments[4],!e||!e.tasks.length||0===t||0===r)return null;let o=[];if(-1===A)o=e.tasks;else{let t=e.tasks.findIndex(e=>e===A);if(-1===t)return console.error("task not found, cannot generate animation scripts"),null;if(t===e.tasks.length-1)return null;for(let A=t;A<e.tasks.length&&(!(A>t)||"Planning"!==e.tasks[A].type||"Plan"!==e.tasks[A].subType);A++)o.push(e.tasks[A])}if(0===o.length)return null;let i=Ap({left:0,top:0,width:t,height:r},t,r),a=[],s=!1,l="";return o.forEach((e,A)=>{var c,d,u,p,g,f,m,h,y,E,v,b,C,k,S,I,R,x,j,P,w,N,O,K,T,B,D,M;let z=null==(M=o[A])?void 0:M.taskId;if(0===A&&(l=eU(e)),"Planning"===e.type){let A=[];if("Plan"===e.subType){let t=(null==(d=e.output)?void 0:d.actions)||[];if(t.length>0){let e=t[0],r=["locate","start","end"];if(e.param)for(let t in r.forEach(t=>{e.param[t]&&"object"==typeof e.param[t]&&"center"in(e.param[t]||{})&&A.push(e.param[t])}),e.param)!r.includes(t)&&"object"==typeof e.param[t]&&"center"in(e.param[t]||{})&&A.push(e.param[t])}}else"Locate"===e.subType&&(null==(c=e.output)?void 0:c.element)&&(A=[e.output.element]);let o=eX(e),i=eU(e),l=e.uiContext;if(null==l?void 0:l.screenshot){let c=(null==(u=l.shotSize)?void 0:u.width)||t,d=(null==(p=l.shotSize)?void 0:p.height)||r,g=l.screenshot.base64;a.push({type:"img",img:g,duration:300,title:o,subTitle:i,imageWidth:c,imageHeight:d,taskId:z}),A.forEach(A=>{var u,p,f,m,h,y;h=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({},Ap(A.rect,c,d)),y=y={pointerLeft:A.center[0],pointerTop:A.center[1]},Object.getOwnPropertyDescriptors?Object.defineProperties(h,Object.getOwnPropertyDescriptors(y)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(y)).forEach(function(e){Object.defineProperty(h,e,Object.getOwnPropertyDescriptor(y,e))}),n=h,a.push({type:"insight",img:g,context:l,camera:n,highlightElement:A,searchArea:null==(p=e.log)||null==(u=p.taskInfo)?void 0:u.searchArea,duration:400,insightCameraDuration:800,title:o,subTitle:A.description||i,imageWidth:(null==(f=l.shotSize)?void 0:f.width)||t,imageHeight:(null==(m=l.shotSize)?void 0:m.height)||r,taskId:z}),s=!0})}if(e.recorder&&e.recorder.length>0){let A=null==(g=e.recorder[0])?void 0:g.screenshot,n=(null==A?void 0:A.base64)||"";a.push({type:"img",img:n,duration:900,title:eX(e),subTitle:eU(e),imageWidth:(null==(m=e.uiContext)||null==(f=m.shotSize)?void 0:f.width)||t,imageHeight:(null==(y=e.uiContext)||null==(h=y.shotSize)?void 0:h.height)||r,taskId:z})}}else if("Action Space"===e.type){let A=eX(e),n=eU(e);a.push({type:"spinning-pointer",duration:300,title:A,subTitle:n,taskId:z}),s&&(a.push({type:"clear-insight",duration:200,title:A,subTitle:n,taskId:z}),s=!1),a.push({type:"pointer",img:Ad,duration:0,title:A,subTitle:n,taskId:z});let o=null==(v=e.recorder)||null==(E=v[0])?void 0:E.screenshot,l=(null==o?void 0:o.base64)||"";a.push({type:"img",img:l,duration:500,camera:"Sleep"===e.subType?i:void 0,title:A,subTitle:n,imageWidth:(null==(C=e.uiContext)||null==(b=C.shotSize)?void 0:b.width)||t,imageHeight:(null==(S=e.uiContext)||null==(k=S.shotSize)?void 0:k.height)||r,taskId:z})}else{let A=eX(e),n=eU(e),o=null==(R=e.recorder)||null==(I=R[e.recorder.length-1])?void 0:I.screenshot;if(o){let s=o.base64;a.push({type:"img",img:s,duration:900,camera:i,title:A,subTitle:n,imageWidth:(null==(j=e.uiContext)||null==(x=j.shotSize)?void 0:x.width)||t,imageHeight:(null==(w=e.uiContext)||null==(P=w.shotSize)?void 0:P.height)||r,taskId:z})}}if("finished"!==e.status){let A=eX(e),n=e.errorMessage||"unknown error",o=n.indexOf("NOT_IMPLEMENTED_AS_DESIGNED")>0?"Further actions cannot be performed in the current environment":n,s=null==(O=e.recorder)||null==(N=O[e.recorder.length-1])?void 0:N.screenshot,l=(null==s?void 0:s.base64)||"";a.push({type:"img",img:l,camera:i,duration:900,title:A,subTitle:o,imageWidth:(null==(T=e.uiContext)||null==(K=T.shotSize)?void 0:K.width)||t,imageHeight:(null==(D=e.uiContext)||null==(B=D.shotSize)?void 0:B.height)||r,taskId:z})}}),a.push({title:"End",subTitle:l,type:"img",duration:200,camera:i,taskId:void 0}),a};function Am(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function Ah(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){Am(o,r,n,i,a,"next",e)}function a(e){Am(o,r,n,i,a,"throw",e)}i(void 0)})}}function Ay(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}function AE(e,A){return A=null!=A?A:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(A)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}),e}function Av(e){var A;if(!e)return"";if("string"==typeof e)return e;if(null==e||null==(A=e.dump)?void 0:A.error)return e.dump.error;if(e.message)return String(e.message);try{return JSON.stringify(e)}catch(A){return String(e)}}function Ab(e){let A=new Set;return(null==e?void 0:e.tasks)&&Array.isArray(e.tasks)?e.tasks.forEach(e=>{if(e.usage){let{model_name:t,model_description:r,intent:n}=e.usage;n&&t&&A.add(r?`${n}/${t}(${r})`:`${n}/${t}`)}}):console.warn("[wrapExecutionDumpForReplay] Invalid dump structure:",e),{sdkVersion:"",groupName:"Playground Execution",modelBriefs:[...A],executions:[e]}}function AC(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}class Ak{initDB(){return new Promise((e,A)=>{let t=indexedDB.open(this.dbName,this.version);t.onerror=()=>A(t.error),t.onsuccess=()=>e(t.result),t.onupgradeneeded=e=>{let A=e.target.result;this.storeConfigs.forEach(e=>{let{name:t,keyPath:r}=e;A.objectStoreNames.contains(t)||A.createObjectStore(t,{keyPath:r}).createIndex("timestamp","timestamp",{unique:!1})})}})}async withTransaction(e,A,t){let r=(await this.dbPromise).transaction(e,A);return t(Array.isArray(e)?e.map(e=>r.objectStore(e)):r.objectStore(e))}promisifyRequest(e){return new Promise((A,t)=>{e.onsuccess=()=>A(e.result),e.onerror=()=>t(e.error)})}async put(e,A){await this.withTransaction(e,"readwrite",async e=>{await this.promisifyRequest(e.put(A))})}async get(e,A){return this.withTransaction(e,"readonly",async e=>this.promisifyRequest(e.get(A)))}async getAll(e){let A=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return this.withTransaction(e,"readonly",async e=>{let t=A?await this.promisifyRequest(e.index("timestamp").getAll()):await this.promisifyRequest(e.getAll());return A?t.sort((e,A)=>e.timestamp-A.timestamp):t})}async clear(e){await this.withTransaction(e,"readwrite",async e=>{await this.promisifyRequest(e.clear())})}async delete(e,A){await this.withTransaction(e,"readwrite",async e=>{await this.promisifyRequest(e.delete(A))})}async count(e){return this.withTransaction(e,"readonly",async e=>this.promisifyRequest(e.count()))}getDBPromise(){return this.dbPromise}constructor(e,A,t){AC(this,"dbPromise",void 0),AC(this,"dbName",void 0),AC(this,"version",void 0),AC(this,"storeConfigs",void 0),this.dbName=e,this.version=A,this.storeConfigs=t,this.dbPromise=this.initDB()}}let AS=async(e,A,t,r)=>{try{return await e()}catch(e){return console.error(A,e),e instanceof Error&&"QuotaExceededError"===e.name&&r&&(console.log("Storage quota exceeded, running cleanup..."),await r()),t}},AI=(e,A,t)=>async()=>{try{let r=await e.getAll(A);if(r.length>t){let n=r.sort((e,A)=>e.timestamp-A.timestamp).slice(0,r.length-t);await Promise.all(n.map(t=>e.delete(A,t.id)))}}catch(e){console.error(`Failed to cleanup ${A}:`,e)}};function AR(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function Ax(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){AR(o,r,n,i,a,"next",e)}function a(e){AR(o,r,n,i,a,"throw",e)}i(void 0)})}}function Aj(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function AP(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){Aj(e,A,t[A])})}return e}function Aw(e,A){return A=null!=A?A:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(A)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}),e}let AN="playground_messages",AO="playground_results";class AK{saveMessages(e){return Ax(function*(){yield AS(()=>Ax(function*(){yield this.dbManager.clear(AN);let A=e.slice(-100);yield Promise.all(A.map((e,A)=>{let t=Aw(AP({},e),{result:"result"===e.type?void 0:e.result}),r={id:e.id||`msg-${A}`,data:t,timestamp:e.timestamp?e.timestamp.getTime():Date.now()+A};return this.dbManager.put(AN,r)}))}).call(this),"Failed to save messages to IndexedDB",void 0,this.messagesCleanup)}).call(this)}loadMessages(){return Ax(function*(){return(yield AS(()=>Ax(function*(){let e=yield this.dbManager.getAll(AN,!0);return 0===e.length?[]:Promise.all(e.map(e=>Ax(function*(){let A=e.data,t=Aw(AP({},A),{timestamp:new Date(A.timestamp)});if("result"===A.type&&A.id){let e=yield this.loadResult(A.id);e&&(t.result=e.result,t.replayScriptsInfo=e.replayScriptsInfo,t.replayCounter=e.replayCounter,t.verticalMode=e.verticalMode)}return t}).call(this)))}).call(this),"Failed to load messages from IndexedDB",[],this.messagesCleanup))||[]}).call(this)}clearMessages(){return Ax(function*(){yield AS(()=>Ax(function*(){yield Promise.all([this.dbManager.clear(AN),this.dbManager.clear(AO)])}).call(this),"Failed to clear messages from IndexedDB")}).call(this)}saveResult(e,A){return Ax(function*(){yield AS(()=>Ax(function*(){let t=this.compressResultForStorage(A),r={id:e,data:t,timestamp:Date.now(),size:JSON.stringify(t).length};yield this.dbManager.put(AO,r)}).call(this),"Failed to save result to IndexedDB",void 0,this.resultsCleanup)}).call(this)}loadResult(e){return Ax(function*(){return(yield AS(()=>Ax(function*(){let A=yield this.dbManager.get(AO,e);return(null==A?void 0:A.data)||null}).call(this),"Failed to load result from IndexedDB",null))||null}).call(this)}compressResultForStorage(e){var A,t;if(!(null==(t=e.result)||null==(A=t.dump)?void 0:A.tasks))return e;let r=e.result.dump.tasks.map(e=>{var A;return Aw(AP({},e),{uiContext:e.uiContext?Aw(AP({},e.uiContext),{screenshot:e.uiContext.screenshot}):e.uiContext,recorder:null==(A=e.recorder)?void 0:A.map(e=>Aw(AP({},e),{screenshot:e.screenshot}))})});return Aw(AP({},e),{result:Aw(AP({},e.result),{dump:Aw(AP({},e.result.dump),{tasks:r})})})}compressScreenshotIfNeeded(e){if(!e)return e;if(e.length>1048576){let A=Math.round(e.length/1024);return`[COMPRESSED: ${A}KB screenshot removed for storage]`}return e}getStorageStats(){return Ax(function*(){return(yield AS(()=>Ax(function*(){let[e,A]=yield Promise.all([this.dbManager.count(AN),this.dbManager.count(AO)]);return{messageCount:e,resultCount:A}}).call(this),"Failed to get storage statistics",{messageCount:0,resultCount:0}))||{messageCount:0,resultCount:0}}).call(this)}cleanup(){return Ax(function*(){yield Promise.all([this.messagesCleanup(),this.resultsCleanup()])}).call(this)}constructor(e="playground"){Aj(this,"dbManager",void 0),Aj(this,"namespace",void 0),Aj(this,"messagesCleanup",void 0),Aj(this,"resultsCleanup",void 0),this.namespace=e,this.dbManager=new Ak(`midscene_playground_${e}`,1,[{name:AN,keyPath:"id"},{name:AO,keyPath:"id"}]),this.messagesCleanup=AI(this.dbManager,AN,100),this.resultsCleanup=AI(this.dbManager,AO,50)}}function AT(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function AB(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){AT(o,r,n,i,a,"next",e)}function a(e){AT(o,r,n,i,a,"throw",e)}i(void 0)})}}function AD(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function AM(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){AD(e,A,t[A])})}return e}function Az(e,A){return A=null!=A?A:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(A)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}),e}class AQ{checkStorageSpace(){try{let e="storage-test",A="x".repeat(102400);return localStorage.setItem(e,A),localStorage.removeItem(e),!0}catch(e){return!1}}saveMessages(e){return AB(function*(){try{this.checkStorageSpace()||(console.warn("Low storage space detected, clearing old data..."),yield this.handleQuotaExceeded());let A=e.slice(-this.maxStorageItems).map(e=>Az(AM({},e),{result:"result"===e.type?void 0:e.result})),t=JSON.stringify(A);localStorage.setItem(this.messagesKey,t)}catch(A){if(A instanceof DOMException&&"QuotaExceededError"===A.name){console.warn("LocalStorage quota exceeded, attempting to clear old data and retry..."),yield this.handleQuotaExceeded();try{let A=e.slice(-10).map(e=>Az(AM({},e),{result:"result"===e.type?void 0:e.result})),t=JSON.stringify(A);localStorage.setItem(this.messagesKey,t),console.info("Successfully saved recent messages after clearing storage")}catch(e){console.error("Failed to save even after clearing storage:",e),yield this.clearMessages()}}else console.error("Failed to save messages to localStorage:",A)}}).call(this)}loadMessages(){return AB(function*(){try{let e=localStorage.getItem(this.messagesKey);if(!e)return[];let A=JSON.parse(e);return yield Promise.all(A.map(e=>AB(function*(){if("result"===e.type&&e.id){let A=`${this.resultsKey}-${e.id}`,t=localStorage.getItem(A);if(t)try{let A=JSON.parse(t);return AM({},e,A)}catch(e){console.warn("Failed to parse stored result:",e)}}return e}).call(this)))}catch(e){return console.error("Failed to load messages from localStorage:",e),[]}}).call(this)}clearMessages(){return AB(function*(){try{localStorage.removeItem(this.messagesKey),Object.keys(localStorage).forEach(e=>{e.startsWith(this.resultsKey)&&localStorage.removeItem(e)})}catch(e){console.error("Failed to clear messages from localStorage:",e)}}).call(this)}saveResult(e,A){return AB(function*(){try{let t=`${this.resultsKey}-${e}`;localStorage.setItem(t,JSON.stringify(A))}catch(t){if(t instanceof DOMException&&"QuotaExceededError"===t.name){console.warn("LocalStorage quota exceeded when saving result, clearing old results..."),yield this.handleQuotaExceeded();try{let t=`${this.resultsKey}-${e}`;localStorage.setItem(t,JSON.stringify(A))}catch(e){console.error("Failed to save result even after clearing storage:",e)}}else console.error("Failed to save result to localStorage:",t)}}).call(this)}handleQuotaExceeded(){return AB(function*(){try{let e=Object.keys(localStorage),A=e.filter(e=>e.startsWith(this.resultsKey)),t=A.slice(0,Math.max(1,Math.floor(A.length/2)));t.forEach(e=>{localStorage.removeItem(e)}),console.info(`Cleared ${t.length} old result entries to free up storage space`);let r=e.filter(e=>e.includes("playground")||e.includes("agent")||e.startsWith("midscene"));if(r.length>10){let e=r.slice(0,Math.floor(r.length/3));e.forEach(e=>{e!==this.messagesKey&&localStorage.removeItem(e)}),console.info(`Cleared ${e.length} additional playground-related entries`)}}catch(e){console.error("Failed to handle quota exceeded:",e)}}).call(this)}constructor(e="playground"){AD(this,"messagesKey",void 0),AD(this,"resultsKey",void 0),AD(this,"maxStorageItems",50),this.messagesKey=`${e}-messages`,this.resultsKey=`${e}-results`}}class AL{saveMessages(e){return AB(function*(){this.messages=[...e]}).call(this)}loadMessages(){return AB(function*(){return[...this.messages]}).call(this)}clearMessages(){return AB(function*(){this.messages=[],this.results.clear()}).call(this)}saveResult(e,A){return AB(function*(){this.results.set(e,A)}).call(this)}constructor(){AD(this,"messages",[]),AD(this,"results",new Map)}}class AZ{saveMessages(e){return AB(function*(){})()}loadMessages(){return AB(function*(){return[]})()}clearMessages(){return AB(function*(){})()}saveResult(e,A){return AB(function*(){})()}}function AX(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"indexeddb",A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"playground";switch(e){case"indexeddb":if("undefined"!=typeof indexedDB)return new AK(A);return console.warn("IndexedDB not available, falling back to localStorage"),AX("localStorage",A);case"localStorage":if("undefined"!=typeof localStorage)return new AQ(A);return console.warn("localStorage not available, falling back to memory storage"),AX("memory",A);case"memory":return new AL;case"none":return new AZ;default:throw Error(`Unknown storage type: ${e}`)}}function AJ(){if("undefined"!=typeof indexedDB)try{return indexedDB.open("test",1).onerror=()=>{},"indexeddb"}catch(e){}if("undefined"!=typeof localStorage)try{return localStorage.setItem("test","test"),localStorage.removeItem("test"),"localStorage"}catch(e){}return"memory"}function AU(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function AF(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){AU(o,r,n,i,a,"next",e)}function a(e){AU(o,r,n,i,a,"throw",e)}i(void 0)})}}function Aq(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}function AV(e,A){return A=null!=A?A:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(A)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}),e}t(82982);var AG=t(20565),AH=t(18513);function AW(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}let AY=(e,A,t)=>{let r,{left:n,top:o,width:i,height:a}=e;r="element"===t?H[function(e){e||(e="unnamed");let A=5381;for(let t=0;t<e.length;t++)A=(A<<5)+A+e.charCodeAt(t);return A>>>0}(A)%H.length]:"searchArea"===t?W("searchArea"):W("element");let s=new AG.A1g;if(s.beginFill(r,.4),s.lineStyle(1,r,1),s.drawRect(n,o,i,a),s.endFill(),s.filters=[new AH.GD({blur:2,quality:3,alpha:.4,offset:{x:4,y:4},color:3355443})],!A)return[s];let l=new AG.EYj(A,{fontSize:18,fill:0});return l.x=n,l.y=Math.max(o-22,0),[s,l]},A_=e=>{var A;let t=e.highlightElements||[];t.map(e=>e.id);let n=e.highlightRect,o=e.highlightPoints;if(!(null==(A=e.uiContext)?void 0:A.shotSize))return(0,r.jsx)("div",{className:"blackboard",children:(0,r.jsx)("div",{className:"blackboard-main-content",style:{padding:"20px"},children:"No UI context available"})});let{shotSize:i,screenshot:a}=e.uiContext,s=(0,et.useMemo)(()=>a?"object"==typeof a&&"base64"in a?a.base64:"string"==typeof a?a:"":"",[a]),l=i.width,c=i.height,d=(0,et.useRef)(null),u=(0,et.useMemo)(()=>new AG.lgM,[]),[p,g]=(0,et.useState)(!1),f=(0,et.useMemo)(()=>new AG.mcf,[]),m=(0,et.useMemo)(()=>new AG.mcf,[]),[h,y]=(0,et.useState)(null),E=(0,et.useRef)(void 0),v=(0,et.useRef)(null),b=(0,et.useRef)([]),C=(0,et.useRef)([]);(0,et.useEffect)(()=>{var e;return Promise.resolve((e=function*(){if(!d.current||!l)return;yield u.init({width:l,height:c,background:0xffffff});let e=d.current;d.current.appendChild(u.canvas);let{clientWidth:A}=d.current.parentElement,t=.6*window.innerHeight;if(l/c<=A/t){let A=t/c;e.style.width=`${Math.floor(l*A)}px`,e.style.height=`${Math.floor(c*A)}px`}u.stage.addChild(f),u.stage.addChild(m),g(!0)},function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){AW(o,r,n,i,a,"next",e)}function a(e){AW(o,r,n,i,a,"throw",e)}i(void 0)})})()),()=>{console.log("will destroy"),null!==v.current&&(cancelAnimationFrame(v.current),v.current=null);try{u.destroy(!0,{children:!0,texture:!0})}catch(e){console.warn("destroy failed",e)}}},[u,l,c]),(0,et.useEffect)(()=>p?(u.stage.eventMode="static",u.stage.hitArea=new AG.M_G(0,0,l,c),u.stage.on("click",A=>{var t;console.log("pixi click",A);let{x:r,y:n}=A.data.global;null==(t=e.onCanvasClick)||t.call(e,[Math.round(r),Math.round(n)])}),()=>{var e;null==u||null==(e=u.stage)||e.off("click")}):void 0,[p,e.onCanvasClick,l,c]),(0,et.useEffect)(()=>{if(!p)return;let e=new Image;e.onload=()=>{if(!u.stage)return;let A=AG.gPd.from(e),t=new AG.kxk(A);t.x=0,t.y=0,t.width=l,t.height=c,t.eventMode="passive",u.stage.addChildAt(t,0),E.current=t,t.visible=!0},e.onerror=e=>{console.error("load screenshot failed",e)},s?e.src=s:console.error("screenshotBase64 is empty, cannot load image")},[u.stage,p,l,c,s]);let{highlightElementRects:k}=(0,et.useMemo)(()=>{if(f.removeChildren(),m.removeChildren(),f.eventMode="passive",m.eventMode="passive",b.current=[],C.current=[],n){let[e]=AY(n,"Search Area","searchArea");f.addChild(e)}return t.length&&t.forEach(e=>{let{rect:A,content:t,id:r}=e,n=AY(A,t,"highlight"),o=n[0],i=new AH.qx({distance:30,outerStrength:3,innerStrength:0,color:0xfd5907,quality:.5}),a=o.filters;Array.isArray(a)?o.filters=[...a,i]:a?o.filters=[a,i]:o.filters=[i],n.forEach(e=>f.addChild(e)),b.current.push(o),C.current.push(i)}),(null==o?void 0:o.length)&&o.forEach(e=>{let A=((e,A)=>{let[t,r]=e,n=W("element"),o=new AG.A1g;return o.beginFill(n,.4),o.drawCircle(t,r,10),o.endFill(),o})(e,0),t=new AH.qx({distance:25,outerStrength:2.5,innerStrength:0,color:0xfd5907,quality:.5});A.filters=[t],f.addChild(A),b.current.push(A),C.current.push(t)}),m.visible=!0,{highlightElementRects:[]}},[u,p,t,h,n,o]);(0,et.useEffect)(()=>{if(!p||0===b.current.length)return void console.log("Animation skipped:",{appInitialed:p,graphicsCount:b.current.length});console.log("Starting pulsing animation for",b.current.length,"graphics");let e=b.current,A=C.current,t=performance.now(),r=()=>{let n=(Math.sin((performance.now()-t)%1200/1200*Math.PI*2)+1)/2,o=.4+.6*n,i=2+3*n;e.forEach((e,t)=>{e.alpha=o,A[t]&&(A[t].outerStrength=i)}),v.current=requestAnimationFrame(r)};return r(),()=>{console.log("Stopping pulsing animation"),null!==v.current&&(cancelAnimationFrame(v.current),v.current=null)}},[p,t,o]);let S=null;return 1===k.length?S=(0,r.jsx)("div",{className:"bottom-tip",children:(0,r.jsxs)("div",{className:"bottom-tip-item",children:["Element: ",JSON.stringify(k[0])]})}):k.length>1&&(S=(0,r.jsx)("div",{className:"bottom-tip",children:(0,r.jsxs)("div",{className:"bottom-tip-item",children:["Element: ",JSON.stringify(k)]})})),(0,r.jsxs)("div",{className:"blackboard",children:[(0,r.jsx)("div",{className:"blackboard-main-content",style:{width:"100%"},ref:d}),(0,r.jsx)("div",{className:"bottom-tip",style:{display:e.hideController?"none":"block"},children:S})]})};var A$=t(49783),A0=t(37294),A1=t(14985),A2=t(31090),A3=t(92946),A6=t(60090),A5=t(53776);let A7=e=>{let{text:A,disabled:t=!1,speed:n=5,className:o="",colorTheme:i="blue"}=e,a={"--animation-duration":`${n}s`},s=`theme-${i}`;return(0,r.jsx)("div",{className:`shiny-text ${s} ${t?"disabled":""} ${o}`,style:a,children:A})},A9=(0,r.jsxs)("span",{children:["Don't worry, just one more step to launch the playground server.",(0,r.jsx)("br",{}),"Please run one of the commands under the midscene project directory:",(0,r.jsx)("br",{}),"a. ",(0,r.jsx)("strong",{children:"npx midscene-playground"}),(0,r.jsx)("br",{}),"b. ",(0,r.jsx)("strong",{children:"npx --yes @midscene/web"})]}),A8=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:A9;return(0,r.jsx)("div",{className:"server-tip",children:(0,r.jsx)(Ar.A,{message:"Playground Server Not Ready",description:e,type:"warning"})})},A4=(0,r.jsx)("div",{className:"result-empty-tip",style:{textAlign:"center"},children:(0,r.jsx)(A7,{disabled:!0,text:"The result will be shown here"})});var te=JSON.parse('{"content":[{"content":"Swag Labs","rect":{"left":895,"top":38,"width":130,"height":32,"zoom":1},"center":[960,54],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"d6c5e2f100","attributes":{"nodeType":"TEXT Node"},"indexId":0},{"content":"Username","rect":{"left":814,"top":154,"width":292,"height":40,"zoom":1},"center":[960,174],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"[_midscene_retrieve_task_id=\'a9021f480e\']","id":"a9021f480e","attributes":{"class":".input_error.form_input","placeholder":"Username","type":"text","data-test":"username","id":"user-name","name":"user-name","autocorrect":"off","autocapitalize":"none","htmlTagName":"<input>","nodeType":"FORM_ITEM Node"},"indexId":1},{"content":"Password","rect":{"left":814,"top":209,"width":292,"height":40,"zoom":1},"center":[960,229],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"[_midscene_retrieve_task_id=\'580f3b761d\']","id":"580f3b761d","attributes":{"class":".input_error.form_input","placeholder":"Password","type":"password","data-test":"password","id":"password","name":"password","autocorrect":"off","autocapitalize":"none","htmlTagName":"<input>","nodeType":"FORM_ITEM Node"},"indexId":2},{"content":"","rect":{"left":814,"top":253,"width":292,"height":45,"zoom":1},"center":[960,275],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"[_midscene_retrieve_task_id=\'3e1faf0fd6\']","id":"3e1faf0fd6","attributes":{"class":".error-message-container","nodeType":"CONTAINER Node"},"indexId":3},{"content":"Login","rect":{"left":814,"top":303,"width":292,"height":49,"zoom":1},"center":[960,327],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"[_midscene_retrieve_task_id=\'6db0b64062\']","id":"6db0b64062","attributes":{"type":"submit","class":".submit-button.btn_action","data-test":"login-button","id":"login-button","name":"login-button","value":"Login","htmlTagName":"<input>","nodeType":"FORM_ITEM Node"},"indexId":4},{"content":"Accepted usernames are:","rect":{"left":570,"top":435,"width":221,"height":21,"zoom":1},"center":[680,445],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"5ca36a5942","attributes":{"nodeType":"TEXT Node"},"indexId":5},{"content":"standard_user","rect":{"left":570,"top":479,"width":109,"height":19,"zoom":1},"center":[624,488],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"fd2fe54174","attributes":{"nodeType":"TEXT Node"},"indexId":6},{"content":"locked_out_user","rect":{"left":570,"top":503,"width":126,"height":19,"zoom":1},"center":[633,512],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"403daee75b","attributes":{"nodeType":"TEXT Node"},"indexId":7},{"content":"problem_user","rect":{"left":570,"top":527,"width":101,"height":19,"zoom":1},"center":[620,536],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"2b34f1e161","attributes":{"nodeType":"TEXT Node"},"indexId":8},{"content":"performance_glitch_user","rect":{"left":570,"top":551,"width":193,"height":19,"zoom":1},"center":[666,560],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"6ae63a4d9e","attributes":{"nodeType":"TEXT Node"},"indexId":9},{"content":"error_user","rect":{"left":570,"top":575,"width":84,"height":19,"zoom":1},"center":[612,584],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"76030282f1","attributes":{"nodeType":"TEXT Node"},"indexId":10},{"content":"visual_user","rect":{"left":570,"top":599,"width":92,"height":19,"zoom":1},"center":[616,608],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"f34b057726","attributes":{"nodeType":"TEXT Node"},"indexId":11},{"content":"Password for all users:","rect":{"left":960,"top":435,"width":221,"height":21,"zoom":1},"center":[1070,445],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"e693f608cd","attributes":{"nodeType":"TEXT Node"},"indexId":12},{"content":"secret_sauce","rect":{"left":960,"top":477,"width":101,"height":19,"zoom":1},"center":[1010,486],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"cde9de9828","attributes":{"nodeType":"TEXT Node"},"indexId":13}],"size":{"width":1920,"height":1080},"screenshotBase64":"data:image/png;base64,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8xecP25c2/qkSycuun/hzOuuG3nIiEcWLlz56xfbBgYAAIBPMwEagO3AQ4sW9evb9/h3q2tdXd2EsWN/8eCDlbeXfPOKsy+84OBhww4YMmTrb108YUJ9fd3Io46ccMklZ5xy6ueHD6+s9+nd1Kd3U9thu/bdpbFHQ1EUpVJp3uzZzzz/3NAv/uV5Ey+dMHbsgP79t23gqqqqAf37V1VVVd7W19f1/9znKq//dKedpl151Xev/96Bo7647De/mTJpUmW9saHhntvn/tfLr3xp9PGTp0z5m+OOG3/m2MpHN98255Irrjjh6GMuu+jCmbfOOXz06AcffnjbBgMAAIBPki04ANgObNq0afYP5559+uk/vvvuoihOPOaYt9ata9vxefkrLxdFsf7tt2u6dNn6W2vWvrnnwD0+22/Xp5Y8PeywUa2trR9+leqqqjETxv/n88/X1NQseeaZR375y6OOOOKaG25o359lwzvvbNmyZff+/ZcuW3b131+3Q8+epVKptbX1C8MPbm1tnXvXneVyefkrL9/xk5+cfPzxN82eVRTFaytWvPXWuqIofnD77Xf/9KftOw8AAADkCNAAbB9u/dGPLvzyOQcNPeDRxY+PGzPmlttu27Jly4d/ZcYPbimXSzdMndqvb99Fjz9+2ZWTX1q+/EOO39zcvN/gwdOnTOnevfuGDe/s1NT06muvtffPUbyxZs3Y888//eSTr7rs8tdXrZo1d26lMg8a+Bc79Oz5DzfNbDtyS3Pze767+Mkn230eAAAAyBGgAdg+rFq9+q5/vHfcmDFda2t3auoz9647P/IrfZqarp0x4+rrruvT1HTjtGu+dtFXzrrwgqIoVq5evc+gQZVjamtrBw0ceO+CBZXjr7zssr867rjnli6tbC29zdO+tW7dpk2b+u6888pVqyp7QBel3z29cIfGxueWvnD6+HO6VFePOvTQ22fe/PN/+edfL1u29MVlL7z44hEnjK4cVl9XX1fX9b3n/Yh7uAEAAODTxR7QAGw3Zt465/BRo75+8cVz75y3bv36tvVyuVwul4uiKJXL5XK59G7qnTxx4pRJk+rr6tesXbvmzbUtLS2V9V88+OCIgw46eNiwno2NE8+/4E+6daus79q3b9farpUzHHX4EYcceFDbJUqlUrlcLhWl37149xK/z8aNGx9+7LFxY8bs0Nh44P77/+2JJ7Z9tEvfvo/+/IG9Bw3a3Nz82xUrWlpaKoM99Mii3T7zmTNOPbVLdfXOffrcd8cdRx/x11tdvVQURalcqvykAAAAsF0orW5+u6NnAKAzaF27YfcDhqavMm/W7ENHjNjv0C/896uvVlb6NDU988ijWx8zbfr3p02fXhRF/912m3LFpP333be6quq5pUvPPO+8ym7RpVJp6uTJJxx9TG1NzT3z51dVlZ/41VOzfzi3XC5f/53vnnTssevWr1/y7LOPPfFE0447fuUbXy+KYvnTS7rV17ddYsOGDf322vPDRx1+wLDJEycO3muv115/ffLUKd/55hUDhu5f+eiic8b/3UknNTY01HTpMnX692+45ZbK+r577z1j2jWf7ddv3fr19y6Y/7VvfavSpv91wc/2GDCg7cynnfPlnz3wQPv9owIAvNcLjy8uNdR19BQAdAYCNADt45MJ0Nugvq6+a23N6jVr3rNeV1dXLpXWv/3e/we71dfX1NS88b7jP9D4M8dedfnlW6+8+NJLww4b1fZ2x169KrtwvN/OffqsWLny/TtZ99phhzVr137kDtcAADkCNADtRYAGoH18agN0VG1tbbe6//O72ZaWlrVvvtlxEwEAtAMBGoD24iGEALDtNm7cuHHjxo6eAgAAAD6lPMgIAAAAAIAIARoAAAAAgAgBGgAAAACACAEaAAAAAIAIARoAAAAAgAgBGgAAAACACAEaAAAAAIAIARoAAAAAgAgBGgAAAACACAEaAAAAAIAIARoAAAAAgAgBGgAAAACACAEaAAAAAIAIARoAAAAAgAgBGgAAAACACAEaAAAAAIAIARoAAAAAgAgBGgAAAACACAEaAAAAAIAIARoAAAAAgAgBGgAAAACACAEaAAAAAIAIARoAAAAAgAgBGgAAAACACAEaAAAAAIAIARoAAAAAgAgBGgAAAACACAEaAAAAAIAIARqA9rG5ublH9+4dPQUAAB9Xj+7dNzc3d/QUAHQSAjQA7eOdTRv322efjp4CAICPa799Br+zaWNHTwFAJyFAA9A+evRqPGX06I6eAgCAj+uU0cf36NXY0VMA0EkI0AC0k5rqoUOGjDxkREfPAQDAtht5yIihQ4YUNdUdPQgAnURpdfPbHT0DAJ1F85b1K9eOOXfCU0uWdPQoAAD80QbvtddtM27stmNDUV3V0bMA0Em4AxqA9lNd1a1Xw7xZs8445dSOHgUAgD/OGaecOm/WrG691GcA2pM7oAFob1ta3lq5ptxaLP7Vk88+/3yzR6gDAHyKVVdX7zFgwNB9h7SUiu47NhZV7lQDoD0J0ABktLQWW1qKltbWorWjRwEA4PcqFaWiXCqqykW51NGzANAJeaoAABnlUlGuKorC7zEAAADw/5a/rAEAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoCE6ZwSAAAInUlEQVQGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIOJ/AFTldxexlFiCAAAAAElFTkSuQmCC","screenshotBase64WithElementMarker":"data:image/png;base64,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vn9Zpk27K62tozJ7ztxMn/5g9t9vdGruvufebGqvPQen5nOf/1K+9e2L06mpqTE77NAv+++3X0495eTstNNOebVd8J9fy/cvuSwvpl+/fvnhD76fTgfsv1923nmnPPXUghz+pqNyyCFvSEPXrrlj6rQ899zz+dAH359vf+fivJj9998v69evz2lnvCvDhg5J//79M/ePf8xTTy1IfX19vvPtr6d//x2yse2375NzPvyhfO0b38qnJ3w2l1z2g4wZ84YsXbI00+68MytWrMzee++V17/+oAAAALDtqA8AAADbjPr6+vznBV/Orrvskttu+02m3XlX7pg6LTU77NAvJ580Pp/8xL+nqakxmxq178jMn/9kRreOysZGj25NTV1dkZEjhmdTp/3TKVm3bl2+9/3LMvPhWZn58Kz06NEjb37TEfnSFz+bL37pq7n7nnuzqeOPPy5fvfCirF69JnvvtWcqlUqq1WqWr1iRRx+dlwcffCg/nXh1fnLl5Rk6dEheTU8//UyefvqZvJiVq1ZnY926dcvEn/w4Hz7n3Myc+XBuvPGm1AwevEc+8R8fT+uoUfn2dy7Oixm8x+4596Mfzoc/8i+597778/Cs2amrKzJy5Ii8591n5vUHH5QX8oEPvDfb990+3734kjz11IL87Gc/T0337t0zfvwJ+cynPpGGhoYAAACw7ags3rC6GgAAALZJq1atyh//9EgG7rxT+vXrl83tySf/kuUrVmTI3nunrq7I/+RTn/lsfvazn+ezEz6dU045ORtbt25dzj3v47nttt/kiMP/IRd/95vZWqxZsyZ//OMj2WWXgenTp3derjVr1uZPf/pTXve616W5uWdeio6Ojvz1r4uyYMGC9OnTJ7vuukuKoggAAADbnvoAAACwzerevXtGt47KlrLLLgPzUt1yy22pOfbYo7OphoaGfOB9Z+W2236TeY89lq1JU1NTRo0amVeqqakx++47Mi9HURQZMKB/BgzoHwAAALZtRQAAAGArtF2vXqmZPWduXsjDD89KzfB99gkAAADwX+oDAAAAW6Gjj/7HfOe738v73n92xh1zVIYP3yev221Q5sz9Y+6774Hc/pvfpq6uLm95y7EBAAAA/kt9AAAAYCv0kQ9/MGvWrMlPJ/4sP7v6mvzs6muysZ49e+Rb3/ha3vCGgwMAAAD8l/oAAADAVqhSqeTf/+1f84EPvDd3/GFqnn7mmSxduiyDBu2avffeK4P32CONjQ0BAAAA/j/1AQAAgK1YS3Nzxo07OgAAAMD/rggAAAAAAAAApVAEAAAAAAAAgFIoAgAAAAAAAEApFAEAAAAAAACgFIoAAAAAAAAAUApFAAAAAAAAACiFIgAAAAAAAACUQhEAAAAAAAAASqEIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohSIAAAAAAAAAlEIRAAAAAAAAAEqhCAAAAAAAAAClUAQAAAAAAACAUigCAAAAAAAAQCkUAQAAAAAAAKAUigAAAAAAAABQCkUAAAAAAAAAKIUiAAAAAAAAAJRCEQAAAAAAAABKoQgAAAAAAAAApVAEAAAAAAAAgFIoAgAAAAAAAEApFAEAAAAAAACgFIoAAAAAAAAAUApFAAAAAAAAACiFIgAAAAAAAACUQhEAAAAAAAAASqEIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohSIAAAAAAAAAlEJ9AAC2pPaOpK092dCRakdHAAAAyqhSFEl9kXStS+qKAABsKfUBANhS1qxPZUNHGhsb06WpS+rq6gIAAFBG7e3tWb9+fdauXptqfZE0dQkAwJZQHwCALWFVW7rU1adHr+YAAACUXV1dXerq6tLY2JiVq1Zl/aq2pHvXAABsbkUAADa3NevTpa4+Pbp3DwAAwLamR/fu6VJXn6xZHwCAza0IAMDm1N6RyoaO9OjePQAAANuqHt27p7KhI2nvCADA5lQEAGBzamtPY2NjAAAAtnWNjY1JW3sAADanIgAAm9OGjnTp0iUAAADbui5duiQbOgIAsDkVAQDYjKodHamrqwsAAMC2rq6uLtWOjgAAbE5FAAAAAAAAACiFIgAAAAAAAACUQhEAAAAAAAAASqEIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohSIAAAAAAAAAlEIRAAAAAAAAAEqhCAAAAAAAAAClUAQAAAAAAACAUigCAAAAAAAAQCkUAQAAAAAAAKAUigAAAAAAAABQCkUAAAAAAAAAKIUiAAAAAAAAAJRCEQAAAAAAAABKoQgAAAAAAAAApVAEAAAAAAAAgFIoAgAAAAAAAEApFAEAAAAAAACgFIoAAAAAAAAAUApFAAAAAAAAACiFIgAAAAAAAACUQhEAAAAAAAAASqEIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohfoAAABsTSqVALymVKsBAADYWtQHAABga1OtBuA1oVIJAADA1qQIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohSIAAAAAAAAAlEIRAAAAAAAAAEqhCAAAAAAAAAClUAQAAAAAAACAUigCAAAAAAAAQCkUAQAAAAAAAKAUigAAAAAAAABQCkUAAAAAAAAAKIUiAAAAAAAAAJRCfQAAADaXSiUAAAAAbDlFAAAAAAAAACiFIgAAAFtaS0uqjz2WjB2bl2L9+vX55je/meXLl2dT3/ve9/L0008HAAAAgKQIAADAltTSkup116Wy2255qarVap566qm0t7dnUwsXLsy6desCAAAAQFIfAACALWXs2GTSpFQCAAAAwOZQHwAAgC1l8uTk619PJk1KJk/Oq23x4sW59tprs2DBguywww45+OCDM2rUqHS66667cv/99+f555/PLrvskje96U0ZOHBgaiZOnJgRI0Zk7ty5mT17ds4777zccMMNGTFiRB566KE88sgj6dmzZ4444oiMHDkyne6+++5MnTo1K1asyIABA3LMMcdk4MCB6ejoyEUXXZSjjjoqt912W55//vnsvvvuOfnkk3PHHXdk+vTpqVQq2X///XPEEUek07x58/L73/8+Tz31VPr27ZuDDjooo0ePDgAAAMBLUR8AAIAtZdCgZP78ZOzYbA7XX399+vXrl3e+851ZsGBBLr/88uy+++5pbm7OnXfemXvuuSennnpqWlpaMmPGjFx22WX5yEc+kt69e2fx4sWZNGlSxowZk3e9611pamrK4sWLc91112X8+PF561vfmvvvvz8TJ07MwIED07t378yePTu//vWv8573vCc77rhj7r777lx22WX59Kc/nZpFixbl9ttvzzve8Y5s2LAhEydOzIUXXpghQ4bknHPOycKFC/PjH/84AwYMyLBhw/KXv/wlEydOzIknnpg99tgj8+bNyzXXXJOuXbtm+PDhAQAAAPjfFAEAANhS5s/P5lStVvPss89m8eLFGTRoUD75yU+mR48eqbnrrrtyxBFHpLm5OdVqNSNHjswOO+yQWbNmpdOQIUMyduzYDBw4MEVRpGafffbJkCFD0tjYmDe84Q3p0aNHnnzyydQMGDAgZ599dnbcccesWLEiQ4YMSVtbWxYuXJhORxxxRHr37p1+/fpl9OjRWb16dY477rh069Yte+yxRwYPHpzHH388NdOnT88+++yTXXfdNevXr88uu+yS1tbWPPDAAwEAAAB4KeoDAACwlSuKIkVRZMOGDdlYtVrNhg0b0qVLl9ScfPLJue222/KDH/wgGzZsSGtra4488sjU/PWvf80vf/nLtLS0ZGNtbW3p1L9//2xqhx12SKdKpZK+fftm5cqVqalUKvnFL36RZcuWpaWlJZVKJTVr1qxJp759+6bT9ttvn549e6axsTGdtt9++yxbtiw1Tz/9dB577LE88cQT2VivXr0CAAAA8FLUBwAAYCtXX1+fAQMGZOHChenbt286Pffcc6lUKunfv386OjqyZs2avOUtb0lRFHnuuedy2WWXpW/fvjnwwAPTt2/fHH/88dlzzz3Tqb29PZVKJZ2KosimKpVKXsztt9+eXr165X3ve19q1q5dmwkTJmRjRVFkY5VKJS+mX79+2XXXXXPUUUelU0dHRwAAAABeqiIAAACvASNGjMgtt9ySRYsWpWbVqlWZNGlShg4dmrq6ulQqlVx66aWZOnVqarbbbrt069Yt7e3tqRk1alRuueWWrFq1KjWPP/54JkyYkOeffz6v1Pr167N+/fpUq9V0dHTkxhtvTKVSySs1YsSI3HfffXnqqadSs3z58lxwwQWZPn16AAAAAF6K+gAAALwGvPGNb8yGDRvy3e9+Nx0dHeno6Mjw4cNz4oknpqZSqeS0007LxIkTM3ny5HR0dGTXXXdNa2trag4//PCsXbs2F1xwQerr69PR0ZG3ve1t6du3b16pN7/5zbn88svzuc99Lh0dHdl///3Tv3//vFJ77LFHxo0blx//+MepVqtZvXp1Dj300IwePToAAAAAL0V9AAAAXiPe9KY35U1velOWLVuWnj17piiKbGyXXXbJxz/+8axcuTL19fVpbGxMp0qlknHjxuXoo4/OihUr0tLSko198IMfzKY++MEPZlPvfe97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3LuXoyeO4xZcsSKB5ctzN0d+/pl8m437VbFCBZ576mkSkhLZtW8fQYGB+JYqxelz50jPyKBW9er4+fpyN7du3ebnX07g5elFo/r1+D0XL18m6eZN7kdxb2/atmlDGb/S7D6wn8tXr9KkUSNu3brNz7+cwM3L04snW7agauXKnDl3ngOHD5GXn8+dqlSqROcXXsBms3PyzBl27d+H0+nExTAMmjdpwt3cSEgg5upVCioXEMATjzfH38+Pn45GceLUKZxOJ3fzWMNGWCxmjhw7hsPhQET+2MUjUZisnoiIiIg8LKYUW44TERERkYfEmZ5LjaZNkP+vj5a8T6cOHVj+yUpCQkMRERH5b1azWjVK+/nR65VX6PbSy1y4dImW7doiIiL/08UjUZisnoiIiIg8LBZERERERERERP4N40aMpFOHDrjt3r8fERERERER+c+wICIiIiJ/uQvRFzlwuDRXrsYiIiLy3+7ipWgOHjmMS0xsLPOXLEZERERERET+MyyIiIiIyF9uwdKlLFi6FBERkcLg3Q8+4N0PPkBERERERET+8wxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERET+cmX8/WncoAEPk4eHB61btMBsNiMiIv+ddm/Z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QdGiRek/YgRff/sNNrudkLlzCZ0ylZBx40lNS2PuwoWMGjyEe3X5yhWGjBnD/BkzCBk3nhsJCcyYN4/+vXvj9s6iRaz+cAWXjh3n1u3bTJkzm0cbNsDthbZt+fSfy3Dr3qkTZ86d48mOL+DidDrp3r8fq5Yv59juPeTk5jJ+2jQWzpnDvcq32ZgZNp9Rg4cwa/LbnDh9irkL36NhvXq4ha9ZTYO6dTnw7XYsFgs5OTkMnzAep9OJS2JSEj0G9Gdp2LvMeXsKWdnZfLltK59Gfo5LKR8foo/+jFvixWhcqjZuRHpGBiIifxW73U58YgJ/JDklhT+Sk5vDvys5JYU/I3x1BGs3buBOdoeDO+Xk5pCTm8PvuZmczB9xOBwkp6byR+x2O8kpKfyR5JQURERERERE5OEzpdhynIiIiIg8JM70XGo0bcJ/mtlsxt+vNPGJCfwZFrOZ0n6liU9M4N9RtkwA8YkJ/J5yAQEkJCXhcDj4s/xLlyY1NRWb3U5Bn//rI557+mnutGrtWsZMnYKbYRiUslpJTk3l95jNZvz9ShOfmMDv8fP1JS09HbvdjoiIiIiI/P9dPBKFyeqJiIiIyMNiQURERORvwG63E5+YwJ9ls9uJT0zg3xWfmMAfuZGQwL8r6eZN7mbQW6MpWqQId7p1O4+CHA4Hyamp/BG73U58YgJ/JDklBREREREREREREflrWRARERGRv4Ws7GxERERERERERESkcDMQEREREREREREREREREZFCwUBERERERERERERERERERAoFAxERERERERERERERERERKRQMRERERERERERERERERESkUDAQEREREREREREREREREZFCwUBERERERERERERERERERAoFAxERERERERERERERERERKRQMRERERERERERERERERESkUDAQEREREREREREREREREZFCwUBERERERERERERERERERAoFAxEREZFCrE7t2rRu0YJ6jzzCw1Lc25tWzZvzoDVt3Bi/UqUQERERERERERERuVcGIiIiIoVYx7btGDloMJs/j2Rgnz48DFUqVWL9J5/yoC1fuJAmjR9FRERERERERERE5F5ZEBERESnE5i1ehMu7M2dRs1p15H/XuWNHalWvztyFCxEREREREREREZH/LhZERERE/gacODFhQv53zR9rwu28PEREREREREREROS/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2Wxw9PgJwldH4Fbaz4+lYe/SunlzihYtSv8RI/j622+4V6+/9hqjBg+hfNmynDh9im3ffUfDevXo9+abuFSrUoV506bzWKNGWMxmzkdH03/ECGKvxeHW+5XuTBw9ilJWH+KuX2f5Jyv5LDISlxfatuXTfy6joDPnzvFkxxcQEREREfm/7uKRKExWT0REREQeFlOKLceJiIiIyEPiTM+lRtMm/DfwL12a1NRUbHY7d+Pl6YVhmMjKzubP8vP1JS09Hbvdzt2ULFECu91Odk4OBQ3rP4BZkydzp8tXrtDs2WcoqGSJEthsdnJyc7gbT09PDJOJ7Jwc7lfsyVN4e3lxp0FvjWbTli24GYZBKauV5NRUfo+XpxfFPIqSkpbG7ynj709iUhIiIiIiIoXFxSNRmKyeiIiIiDwsFkRERETk/yfp5k3+SE5uDv+u5JQU/khGZiZ3E746grUbN3Anu8PBnTIyM/kjubm5/FkNW7fCxP+UlZ1NQQ6Hg+TUVP5ITm4OObk5/JHEpCRERERERERERETk3lkQERERkf/zbt++ze3bt/lPS01LQ0RERERERERERP7vMhARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgULIiIiIvJvqV2jBrm3bnH111+5m+Le3jRu0ACn08mps2dJS09HRERERERERERE5GGwICIiIiL/ljHD3+RK7FXmLlzI3fiXLs3IQYMp7edL2TIB1GnRHLvdjoiIiIiIiIiIiMiDZiAiIiIiD9WV2Fi6vt6Xrq+/Tmk/P3xLlUJERERERERERETkYTAQERERkb+E0+lERERERERERERE5GGyICIiIlKIbY1cy+TZs5g2YQKN6tXnl9OnmTJnNuejo3EJLF+edSs/4fbt28yYP4+eXbvR/tlnuBGfQLNnn8GluLc3oVND+McTT5Cfn893u3YxY9475OXn41aieAn+tWgxT7VqxZXYWN7/1wq27tjB/RjUty/dO3WmYmAgh48eZWbYfC7F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RERERERERAoFAxERERERERERERERERERKRQMRERERERERERERERERESkUDAQEREREREREREREREREZFCwUBERERERERERERERERERAoFAxERERERERERERERERERKRQMREREROSBKVq0KI8/9hitW7TAw8MDuX+B5cvTukULHn/sMYoWKcIfqVmtGkUsFh60IhYLrVu0oIjFgoiIiIiIiIiIyH8TAxERERF5IOo98ggXo47y7qzZTBk7FmvJksj9a1S/PiMHDWb5ewv51+Il/J4WTZtxYPsO3hw4iAfNarWyaVUEVqsVERERERERERGR/yYWREREROSB6NiuHTt27mTwmLeQP2/L9u1s2b6dl5/vwMRRo/g9p86e4cNPPmHLju38nt1bttDx1VfJzMpCRERERERERETk78CCiIiIiDwQ5cuWIyEpEXkwnE4nfyQzK4upoXP4PWX8/alTqzYmkwkREREREREREZG/CwsiIiIihdjWyLVMnj2LaRMm0KhefX45fZopc2ZzPjoat6DAQGZMmkTLps2IT0xk45bNvL9iBW5frV5DaT8/ItatxWIpwvD+/Snj70+dFs1JSEzkmX/8g5mTJlMuIACb3U6bJ/+BS5c+fYhPTMClVvXqhIwfT9PGj/LrtWt8vmED4asjcJs+YSLPPf00J8+cZv2XXxEaMpUaVasx6K3RbNqyhT1bt7Fh89e8OXAQu/ft45fTpxk5eDA79+5l+PhxuFhLliR0aghtWrfGYrGwa98+xk0LISMzE5dBfftiMpkoWyaALi++yG/xNwiPWM0XX3+Fm5+vL/OmTeeJxx8n7vp1tn3/He+vWIHT6cRtUN++dO/UmYqBgRw+epSZYfO5FBPDvSru7c17s+fwj1atyMvLIyMzE5fl4eGs/mI992L9J59QoVx5Ll+5wqC3RnPr1i0K2rQqggZ162Iymfhu4ybsDgdXYq/Sa/Bg3Px8fZk3bTpPPP44cdevs+3773h/xQqcTiduzR59lBGDBlE5KJivvtnG0o8+Iu76de5Fm9at6d+rN68NGojbgN59CA6qSEhoKC4mk4mpY8fRtk0bShQvzo979zBj/nzSMzJwCwoMZMakSbRs2oz4xEQ2btnM+ytW4PbV6jWU9vMjYt1aLJYiDO/fnzL+/tRp0ZyExEREREREREREROTvxTxx2pQZiIiIiDwst218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AFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAP5ve3BAAgAAgAAo+j+6H6ECFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwYYkQHKd0AqxtAAAAAElFTkSuQmCC","url":"https://www.saucedemo.com/"}');let tA=e=>{let{uiContextPreview:A,setUiContextPreview:t,showContextPreview:n}=e;return n?(0,r.jsxs)("div",{className:"form-part context-panel",children:[(0,r.jsx)("h3",{children:"UI Context"}),A?(0,r.jsx)(A_,{uiContext:A,hideController:!0}):(0,r.jsxs)("div",{children:[(e=>{switch(e){case"finished":case"passed":case"success":case"connected":return(0,r.jsx)("span",{style:{color:"#00AD4B"},children:(0,r.jsx)(A$.A,{})});case"finishedWithWarning":return(0,r.jsx)("span",{style:{color:"#f7bb05"},children:(0,r.jsx)(A0.A,{})});case"failed":case"closed":case"timedOut":case"interrupted":return(0,r.jsx)("span",{style:{color:"#FF0A0A"},children:(0,r.jsx)(A1.A,{})});case"pending":return(0,r.jsx)(A2.A,{});case"cancelled":case"skipped":return(0,r.jsx)(A3.A,{});case"running":return(0,r.jsx)(A6.A,{});default:return(0,r.jsx)(A5.A,{})}})("failed")," No UI context",(0,r.jsx)(eA.Ay,{type:"link",onClick:e=>{e.preventDefault(),t(te)},children:"Load Demo"}),(0,r.jsx)("div",{children:"To load the UI context, you can either use the demo data above, or click the 'Send to Playground' in the report page."})]})]}):null};var tt=t(54291);let tr=e=>{let{className:A=""}=e,{config:t}=P();return Object.keys(t||{}).length>=1?null:(0,r.jsxs)("div",{className:`env-config-reminder ${A}`,children:[(0,r.jsx)(tt.A,{className:"reminder-icon"}),(0,r.jsx)("span",{className:"reminder-text",children:"Please set up your environment variables before using."}),(0,r.jsx)(e9,{mode:"text",showTooltipWhenEmpty:!1})]})};var tn=t(12297),to=t(67062),ti=t(15862),ta=t(52107),ts=t(95625),tl=t(11269);let tc=e=>{var A,t;return(0,r.jsx)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),t=t={children:(0,r.jsx)("path",{fill:"currentColor",d:"M1.333 13v-2.5a.667.667 0 0 1 1.334 0V13c0 .184.149.333.333.333h2.5a.667.667 0 0 1 0 1.334H3c-.92 0-1.667-.746-1.667-1.667m12 0v-2.5a.667.667 0 0 1 1.334 0V13c0 .92-.746 1.667-1.667 1.667h-2.5a.667.667 0 0 1 0-1.334H13a.333.333 0 0 0 .333-.333m-12-7.5V3c0-.92.747-1.667 1.667-1.667h2.5a.667.667 0 0 1 0 1.334H3A.333.333 0 0 0 2.667 3v2.5a.667.667 0 0 1-1.334 0m12 0V3A.333.333 0 0 0 13 2.667h-2.5a.667.667 0 0 1 0-1.334H13c.92 0 1.667.747 1.667 1.667v2.5a.667.667 0 0 1-1.334 0M5.667 10.333h4.666V5.667H5.667zm6 .167c0 .644-.523 1.167-1.167 1.167h-5A1.167 1.167 0 0 1 4.333 10.5v-5c0-.644.523-1.167 1.167-1.167h5c.644 0 1.167.523 1.167 1.167z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},td=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),t=t={children:[(0,r.jsx)("path",{stroke:"currentColor",strokeLinejoin:"round",strokeWidth:1.333,d:"M11.333 13.667 14.667 8l-3.334-5.667H4.667L1.333 8l3.334 5.667z"}),(0,r.jsx)("path",{stroke:"currentColor",strokeLinejoin:"round",strokeWidth:1.333,d:"M8 9.667a1.667 1.667 0 1 0 0-3.334 1.667 1.667 0 0 0 0 3.334Z"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))};function tu(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}let tp=new Map,tg=e=>{var A;return(A=function*(){if(!tp.has(e))return AG.sP.load(e).then(A=>{tp.set(e,A)})},function(){var e=this,t=arguments;return new Promise(function(r,n){var o=A.apply(e,t);function i(e){tu(o,r,n,i,a,"next",e)}function a(e){tu(o,r,n,i,a,"throw",e)}i(void 0)})})()};function tf(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function tm(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){tf(o,r,n,i,a,"next",e)}function a(e){tf(o,r,n,i,a,"throw",e)}i(void 0)})}}function th(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function ty(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){th(e,A,t[A])})}return e}let tE="frame cancel (this is an error on purpose)";class tv{start(){let e=new MediaRecorder(this.canvas.captureStream(60),{mimeType:"video/webm"});return e.ondataavailable=e=>{e.data.size>0&&this.chunks.push(e.data)},e.onerror=e=>{console.error("MediaRecorder error:",e),G.Ay.error("Video recording failed. Please try again."),this.recording=!1,this.mediaRecorder=null},this.mediaRecorder=e,this.recording=!0,this.mediaRecorder.start()}stop(){this.recording&&this.mediaRecorder?(this.mediaRecorder.onstop=()=>{if(0===this.chunks.length){console.error("No video data captured"),G.Ay.error("Video export failed: No data captured.");return}let e=new Blob(this.chunks,{type:"video/webm"});if(0===e.size){console.error("Video blob is empty"),G.Ay.error("Video export failed: Empty file.");return}let A=URL.createObjectURL(e),t=document.createElement("a");t.href=A,t.download="midscene_replay.webm",t.click(),URL.revokeObjectURL(A)},this.mediaRecorder.stop(),this.recording=!1,this.mediaRecorder=null):console.warn("not recording")}constructor(e){th(this,"canvas",void 0),th(this,"mediaRecorder",null),th(this,"chunks",void 0),th(this,"recording",!1),this.canvas=e,this.chunks=[]}}function tb(e){var A;let t,[n,o]=(0,et.useState)(""),[i,a]=(0,et.useState)(""),{autoZoom:s,setAutoZoom:l,playbackSpeed:c,setPlaybackSpeed:d}=m();(0,et.useEffect)(()=>{(null==e?void 0:e.autoZoom)!==void 0&&l(e.autoZoom)},[null==e?void 0:e.autoZoom,l]);let u=null==e?void 0:e.replayScripts,p=(null==e?void 0:e.imageWidth)||1920,g=(null==e?void 0:e.imageHeight)||1080,f=(null==e?void 0:e.fitMode)||"height",h=(0,et.useRef)((null==u||null==(A=u[0])?void 0:A.img)||null),y=(0,et.useRef)(null),E=(0,et.useMemo)(()=>new AG.lgM,[]),v=(0,et.useRef)(null),b=(0,et.useRef)(null),[C,k]=(0,et.useState)(0),S=()=>{k(Date.now())},I=(0,et.useMemo)(()=>new AG.mcf,[]),R=(0,et.useMemo)(()=>{let e=new AG.mcf;return e.zIndex=1,e},[]),x={left:0,top:0,width:p,pointerLeft:Math.round(p/2),pointerTop:Math.round(g/2)},[j,P]=(0,et.useState)(-1),w=(0,et.useRef)(!1),N=(0,et.useRef)(!1);(0,et.useEffect)(()=>(w.current=!1,()=>{w.current=!0}),[]);let O=(0,et.useRef)(ty({},x)),K=(e,A)=>tm(function*(){let t=h.current;if(!t)return void console.warn("no image to update");let r=e||p,n=A||g;yield tm(function*(){if(N.current&&E.screen&&(E.screen.width!==r||E.screen.height!==n)){if(E.renderer.resize(r,n),y.current){let e=r/n;y.current.style.setProperty("--canvas-aspect-ratio",e.toString())}O.current={left:0,top:0,width:r,pointerLeft:Math.round(r/2),pointerTop:Math.round(n/2)}}})(),tp.get(t)||(console.warn("image not loaded",t),yield tg(t));let o=tp.get(t);if(!o)throw Error("texture not found");let i=AG.kxk.from(o);if(!i)throw Error("sprite not found");let a="main-img",s=I.getChildByLabel(a);s&&I.removeChild(s),i.label=a,i.zIndex=0,i.width=r,i.height=n,I.addChild(i)})(),T=e=>{var A,t;let r;b.current||(b.current=AG.kxk.from(Au),b.current.zIndex=3,b.current.anchor.set(.5,.5),b.current.scale.set(.5),b.current.label="spinning-pointer"),b.current.x=(null==(A=v.current)?void 0:A.x)||0,b.current.y=(null==(t=v.current)?void 0:t.y)||0,I.addChild(b.current);let n=!1,o=A=>{if(n)return;r||(r=A);let t=(Math.sin((A-r)/500-Math.PI/2)+1)/2*Math.PI*2;b.current&&(b.current.rotation=t),e(o)};return e(o),()=>{b.current&&I.removeChild(b.current),n=!0}},B=(e,A,t)=>tm(function*(){var r,n;tp.get(e)||(console.warn("image not loaded",e),yield tg(e));let o=tp.get(e);if(!o)throw Error("texture not found");let i=AG.kxk.from(o),a=null==(r=v.current)?void 0:r.x,s=null==(n=v.current)?void 0:n.y;if("number"==typeof A&&(a=A),"number"==typeof t&&(s=t),void 0===a||void 0===s)return void console.warn("invalid pointer position",A,t);if(v.current){let e=I.getChildByLabel("pointer");e&&I.removeChild(e)}v.current=i,v.current.x=a,v.current.y=s,v.current.label="pointer",v.current.zIndex=2,I.addChild(v.current)})(),D=(e,A)=>{var t;O.current=e;let r=A||(null==(t=E.screen)?void 0:t.width)||p,n=s?Math.max(1,r/e.width):1;I.scale.set(n),I.x=s?Math.round(0-e.left*n):0,I.y=s?Math.round(0-e.top*n):0;let o=I.getChildByLabel("pointer");o&&(o.scale.set(1/n),"number"==typeof e.pointerLeft&&"number"==typeof e.pointerTop&&(o.x=e.pointerLeft,o.y=e.pointerTop))},M=(e,A,t)=>tm(function*(){var r,n;let o=(null==(r=E.screen)?void 0:r.width)||p,i=(null==(n=E.screen)?void 0:n.height)||g;if(!s){let r=ty({},O.current),n=r.pointerLeft,i=r.pointerTop,a=performance.now();if("number"!=typeof e.pointerLeft||"number"!=typeof e.pointerTop||e.pointerLeft===n&&e.pointerTop===i)return;yield new Promise(s=>{let l=c=>{var d,u;let p=c-a,g=Math.min(p/A,1);D((d=ty({},r),u=u={pointerLeft:n+(e.pointerLeft-n)*g,pointerTop:i+(e.pointerTop-i)*g},Object.getOwnPropertyDescriptors?Object.defineProperties(d,Object.getOwnPropertyDescriptors(u)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(u)).forEach(function(e){Object.defineProperty(d,e,Object.getOwnPropertyDescriptor(u,e))}),d),o),p<A?t(l):s()};t(l)});return}let a=ty({},O.current),l=a.left,c=a.top,d=a.pointerLeft,u=a.pointerTop,f=a.width/o,m=performance.now(),h="number"==typeof e.pointerLeft&&"number"==typeof e.pointerTop&&(e.pointerLeft!==d||e.pointerTop!==u),y=h?.375*A:0,v=A-y;yield new Promise(r=>{let n=a=>{let s=ty({},O.current),p=a-m;if(h)if(p<=y){let A=Math.min(p/y,1);s.pointerLeft=d+(e.pointerLeft-d)*A,s.pointerTop=u+(e.pointerTop-u)*A}else s.pointerLeft=e.pointerLeft,s.pointerTop=e.pointerTop;if(p>y){let A=Math.min((p-y)/v,1),t=f+(e.width/o-f)*A,r=o*t;s.width=r;let n=l+(e.left-l)*A,a=c+(e.top-c)*A,d=n+r-o,u=a+i*t-i;s.left=d>0?n+d:n,s.top=u>0?a+u:a}D(s,o),p<A?t(n):r()};t(n)})})(),z=function(e,A,t){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return new Promise(n=>{let o=performance.now(),i=a=>{let s=a-o,l=Math.min(s/A,1);e.alpha=0===r?1-l:l,s<A?t(i):n()};t(i)})},Q=(e,A,t)=>tm(function*(){return z(e,A,t,0)})(),L=(e,A,t,r,n)=>tm(function*(){R.removeChildren();let o=[...e],i=o.length,a=0;yield new Promise(e=>{let s=performance.now(),l=c=>{var d;let u,p=c-s,g=Math.floor((0*(u=1-(d=Math.min(p/r,1)))*u*u+1.5*d*u*u+1.5*d*d*u+d*d*d)*i);for(;a<g;){let e=Math.floor(Math.random()*o.length),A=o.splice(e,1)[0];if(A){let[e]=AY(A.rect,A.content,"element");e.alpha=0,R.addChild(e),a++,z(e,80,n)}}if(p<r)n(l);else{for(;o.length>0;){let e=Math.floor(Math.random()*o.length),A=o.splice(e,1)[0],[t]=AY(A.rect,A.content,"element");t.alpha=1,R.addChild(t)}if(t){let[e]=AY(t,"Search Area","searchArea");e.alpha=1,R.addChild(e)}A.map(e=>{let[A]=AY(e.rect,e.content||"","highlight");A.alpha=1,R.addChild(A)}),e()}};n(l)})})(),[Z,X]=(0,et.useState)(!1),J=(0,et.useRef)(null),U=(0,et.useRef)(null),F=(0,et.useRef)(0);(0,et.useEffect)(()=>(Promise.resolve(tm(function*(){if(yield tm(function*(){y.current&&u&&(yield E.init({width:p,height:g,background:0xf4f4f4,autoDensity:!0,antialias:!0}),N.current=!0,y.current&&(y.current.appendChild(E.canvas),I.x=0,I.y=0,E.stage.addChild(I),R.x=0,R.y=0,I.addChild(R)))})(),y.current&&p&&g){let e=p/g;y.current.style.setProperty("--canvas-aspect-ratio",e.toString()),y.current.setAttribute("data-fit-mode",f);let A=y.current.closest(".player-container");A&&A.setAttribute("data-fit-mode",f)}S()})()),()=>{N.current=!1;try{E.destroy(!0,{children:!0,texture:!0})}catch(e){console.warn("destroy failed",e)}}),[p,g,f]),(0,et.useEffect)(()=>{if(C){let A,t,r;return t=++F.current,r=A=>{if(F.current===t){var r;null==e||null==(r=e.onTaskChange)||r.call(e,A)}},Promise.resolve(tm(function*(){var e,t,n;let i,s;if(!E||!N.current)throw Error("app is not initialized");if(!u)throw Error("scripts is required");let{frame:l,cancel:d,timeout:f,sleep:m}=(i=!1,s=[],{frame:e=>{if(i)throw Error(tE);requestAnimationFrame(()=>{i||e(performance.now())})},timeout:(e,A)=>{if(i)throw Error(tE);let t=window.setTimeout(()=>{i||e()},A);s.push(t)},sleep:e=>i?Promise.reject(Error(tE)):new Promise((A,t)=>{let r=window.setTimeout(()=>{i?t(Error(tE)):A()},e);s.push(r)}),isCancelled:()=>i,cancel:()=>{for(let e of(i=!0,s))clearTimeout(e);s.length=0}}),y=e=>e/c,v=e=>m(y(e));A=d,U.current=d;let b=u.filter(e=>!!e.img).map(e=>e.img);yield Promise.all([...b,Au,Ad].map(tg)),R.removeChildren(),yield B(Ad,p/2,g/2),yield K(),yield D(ty({},x));let C=y(u.reduce((e,A)=>e+A.duration+(A.camera&&A.insightCameraDuration?A.insightCameraDuration:0),0)),k=performance.now();P(0);let S=()=>{let e=Math.min((performance.now()-k)/C,1);if(P(e),e<1)return f(S,200)};l(S),J.current&&J.current.start();let I=null,j=null!=(t=null==(e=u[0])?void 0:e.taskId)?t:null;for(let e in j&&r(I=j),u){let A=u[e];o(A.title||""),a(A.subTitle||"");let t=null!=(n=A.taskId)?n:null;if(t!==I&&r(I=t),"sleep"===A.type)yield v(A.duration);else if("insight"===A.type){if(!A.img)throw Error("img is required");h.current=A.img,yield K(A.imageWidth,A.imageHeight);let e=A.highlightElement?[A.highlightElement]:[];if(yield L([],e,A.searchArea,y(A.duration),l),A.camera){if(!A.insightCameraDuration)throw Error("insightCameraDuration is required");yield M(A.camera,y(A.insightCameraDuration),l)}}else if("clear-insight"===A.type)yield Q(R,y(A.duration),l),R.removeChildren(),R.alpha=1;else if("img"===A.type)A.img&&A.img!==h.current&&(h.current=A.img,yield K(A.imageWidth,A.imageHeight)),A.camera?yield M(A.camera,y(A.duration),l):yield v(A.duration);else if("pointer"===A.type){if(!A.img)throw Error("pointer img is required");yield B(A.img)}else if("spinning-pointer"===A.type){let e=T(l);yield v(A.duration),e()}}r(null),J.current&&(yield v(1200),J.current.stop(),J.current=null,X(!1))})().catch(e=>{if(console.error("player error",e),(null==e?void 0:e.message)===tE){console.log("Animation cancelled (expected behavior)"),r(null);return}let A=!!J.current;if(J.current){try{J.current.stop()}catch(e){console.error("Error stopping recorder:",e)}J.current=null}X(!1),r(null),A&&G.Ay.error("Failed to export video. Please try again.")})),()=>{null==A||A(),U.current=null}}},[C]);let[q,V]=(0,et.useState)(!1),[H,W]=(0,et.useState)(!1),Y=Math.round(100*j),_=1===j;(0,et.useEffect)(()=>{if(_){let e=e=>{" "===e.key&&S()};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}},[_]);let eA=()=>{};return j<1?t=(0,r.jsx)($.A,{indicator:(0,r.jsx)(Ae.A,{spin:!0,color:"#333"}),size:"default"}):(t=(0,r.jsx)($.A,{indicator:(0,r.jsx)(tn.A,{color:"#333"}),size:"default"}),eA=()=>S()),(0,r.jsxs)("div",{className:"player-container",children:[(0,r.jsx)("div",{className:"canvas-container",ref:y}),(0,r.jsx)("div",{className:"player-timeline-wrapper",children:(0,r.jsx)("div",{className:"player-timeline",children:(0,r.jsx)("div",{className:"player-timeline-progress",style:{width:`${Y}%`,transition:0===j?"none":"0.3s"}})})}),(0,r.jsx)("div",{className:"player-tools-wrapper",children:(0,r.jsx)("div",{className:"player-tools",children:(0,r.jsxs)("div",{className:"player-control",children:[(0,r.jsxs)("div",{className:"status-text",children:[(0,r.jsx)("div",{className:"title",children:n}),(0,r.jsx)(ee.A,{title:i,children:(0,r.jsx)("div",{className:"subtitle",children:i})})]}),Z?null:(0,r.jsx)("div",{className:"status-icon",onMouseEnter:()=>V(!0),onMouseLeave:()=>V(!1),onClick:eA,children:t}),(null==e?void 0:e.reportFileContent)&&(null==e?void 0:e.canDownloadReport)!==!1?(0,r.jsx)(ee.A,{title:"Download Report",children:(0,r.jsx)("div",{className:"status-icon",onMouseEnter:()=>V(!0),onMouseLeave:()=>V(!1),onClick:()=>{let A,t,r;return A=new Blob([e.reportFileContent],{type:"text/html"}),t=URL.createObjectURL(A),void((r=document.createElement("a")).href=t,r.download="midscene_report.html",r.click())},children:(0,r.jsx)(to.A,{color:"#333"})})}):null,(0,r.jsx)(ee.A,{title:Z?"Generating...":"Export Video",children:(0,r.jsx)("div",{className:"status-icon",onClick:Z?void 0:()=>tm(function*(){J.current?console.warn("recorderSession exists"):E.canvas?(U.current&&(U.current(),U.current=null,yield new Promise(e=>setTimeout(e,100))),J.current=new tv(E.canvas),X(!0),S()):console.warn("canvas is not initialized")})(),style:{opacity:Z?.5:1,cursor:Z?"not-allowed":"pointer"},children:Z?(0,r.jsx)($.A,{size:"default",percent:Y}):(0,r.jsx)(ti.A,{})})}),(0,r.jsx)(ts.A,{trigger:["hover","click"],placement:"bottomRight",overlayStyle:{minWidth:"148px"},dropdownRender:()=>(0,r.jsxs)("div",{className:"player-settings-dropdown",children:[(0,r.jsxs)("div",{className:"player-settings-item",style:{display:"flex",alignItems:"center",justifyContent:"space-between",height:"32px",padding:"0 8px",borderRadius:"4px"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[(0,r.jsx)(tc,{style:{width:"16px",height:"16px"}}),(0,r.jsx)("span",{style:{fontSize:"12px",marginRight:"16px"},children:"Focus on cursor"})]}),(0,r.jsx)(tl.A,{size:"small",checked:s,onChange:e=>{l(e),S()}})]}),(0,r.jsx)("div",{className:"player-settings-divider"}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"4px",height:"32px",padding:"0 8px"},children:[(0,r.jsx)(ta.A,{style:{width:"16px",height:"16px"}}),(0,r.jsx)("span",{style:{fontSize:"12px"},children:"Playback speed"})]}),[.5,1,1.5,2].map(e=>(0,r.jsxs)("div",{onClick:()=>{d(e),S()},style:{height:"32px",lineHeight:"32px",padding:"0 8px 0 24px",fontSize:"12px",cursor:"pointer",borderRadius:"4px"},className:`player-speed-option${c===e?" active":""}`,children:[e,"x"]},e))]}),menu:{items:[]},children:(0,r.jsx)("div",{className:"status-icon",onMouseEnter:()=>W(!0),onMouseLeave:()=>W(!1),style:{cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",opacity:H?1:.7,transition:"opacity 0.2s"},children:(0,r.jsx)(td,{style:{width:"16px",height:"16px"}})})})]})})})]})}let tC=e=>{let{result:A,loading:t,serverValid:n,serviceMode:o,replayScriptsInfo:i,replayCounter:a,loadingProgressText:s,verticalMode:l=!1,notReadyMessage:c,fitMode:d,autoZoom:u,actionType:p,canDownloadReport:g}=e,f="result-wrapper";l&&(f+=" vertical-mode-result"),i&&l&&(f+=" result-wrapper-compact");let m=A4,h=p&&eS.includes(p);if(n||"Server"!==o)if(t)m=(0,r.jsxs)("div",{className:"loading-container",children:[(0,r.jsx)($.A,{spinning:t,indicator:(0,r.jsx)(Ae.A,{spin:!0})}),(0,r.jsx)("div",{className:"loading-progress-text loading-progress-text-progress",children:(0,r.jsx)(A7,{text:s,speed:3})})]});else if(null==A?void 0:A.error){let e=(0,r.jsx)("pre",{style:{color:"#ff4d4f",whiteSpace:"pre-wrap"},children:null==A?void 0:A.error});m=A.reportHTML||i?(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"16px",height:"100%"},children:[(0,r.jsxs)("div",{style:{flex:"0 0 auto",maxHeight:"40%",overflow:"auto"},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Error:"}),e]}),(0,r.jsxs)("div",{style:{flex:"1 1 auto",minHeight:0},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Report:"}),(0,r.jsx)(tb,{replayScripts:null==i?void 0:i.scripts,imageWidth:null==i?void 0:i.width,imageHeight:null==i?void 0:i.height,reportFileContent:A.reportHTML||null,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==o},a)]})]}):e}else if(h&&(null==A?void 0:A.result)!==void 0&&i){let e="string"==typeof(null==A?void 0:A.result)?(0,r.jsx)("pre",{children:null==A?void 0:A.result}):(0,r.jsx)("pre",{children:JSON.stringify(null==A?void 0:A.result,null,2)}),t=(null==A?void 0:A.reportHTML)||null;m=(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"16px",height:"100%"},children:[(0,r.jsxs)("div",{style:{flex:"0 0 auto"},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Output:"}),e]}),(0,r.jsxs)("div",{style:{flex:"1 1 auto",minHeight:0},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Report:"}),(0,r.jsx)(tb,{replayScripts:i.scripts,imageWidth:i.width,imageHeight:i.height,reportFileContent:t,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==o},a)]})]})}else if(i){let e=(null==A?void 0:A.reportHTML)||null;m=(0,r.jsx)(tb,{replayScripts:i.scripts,imageWidth:i.width,imageHeight:i.height,reportFileContent:e,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==o},a)}else if(h&&(null==A?void 0:A.result)!==void 0&&(null==A?void 0:A.reportHTML)){let e="string"==typeof(null==A?void 0:A.result)?(0,r.jsx)("pre",{children:null==A?void 0:A.result}):(0,r.jsx)("pre",{children:JSON.stringify(null==A?void 0:A.result,null,2)});m=(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"16px",height:"100%"},children:[(0,r.jsxs)("div",{style:{flex:"0 0 auto"},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Output:"}),e]}),(0,r.jsxs)("div",{style:{flex:"1 1 auto",minHeight:0},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Report:"}),(0,r.jsx)(tb,{reportFileContent:A.reportHTML,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==o},a)]})]})}else h&&(null==A?void 0:A.result)!==void 0?m="string"==typeof(null==A?void 0:A.result)?(0,r.jsx)("pre",{children:null==A?void 0:A.result}):(0,r.jsx)("pre",{children:JSON.stringify(null==A?void 0:A.result,null,2)}):(null==A?void 0:A.reportHTML)?m=(0,r.jsx)(tb,{reportFileContent:A.reportHTML,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==o},a):(null==A?void 0:A.result)!==void 0&&(m="string"==typeof(null==A?void 0:A.result)?(0,r.jsx)("pre",{children:null==A?void 0:A.result}):(0,r.jsx)("pre",{children:JSON.stringify(null==A?void 0:A.result,null,2)}));else m=A8(c);return(0,r.jsx)("div",{className:f,style:{height:"100%",display:"flex",flexDirection:"column",flex:"1 1 auto",justifyContent:"center"},children:m})},tk=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"none","aria-label":"Playground",viewBox:"0 0 20 20"},e),t=t={children:[(0,r.jsx)("rect",{width:20,height:20,fill:"#2B83FF",rx:10}),(0,r.jsx)("path",{fill:"#2B83FF",stroke:"#fff",strokeLinejoin:"round",strokeWidth:1.125,d:"M6.866 5.882a.56.56 0 0 1 .667-.078l3.248 1.875 3.247 1.875a.563.563 0 0 1 0 .974l-3.247 1.875-3.248 1.875a.563.563 0 0 1-.784-.74l1.749-3.497-1.75-3.498a.56.56 0 0 1 .118-.661Z"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))};var tS=t(28460),tI=t(83896),tR=t(91631),tx=t(64665),tj={};tj.d=(e,A)=>{for(var t in A)tj.o(A,t)&&!tj.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},tj.o=(e,A)=>Object.prototype.hasOwnProperty.call(e,A),tj.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var tP={};function tw(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}tj.r(tP),tj.d(tP,{create:()=>o.vt});let{create:tN}=tP,tO="midscene-prompt-history-v2",tK="midscene-last-selected-type",tT=tN((e,A)=>{let t;return{history:(t=localStorage.getItem(tO))?JSON.parse(t):{},lastSelectedType:localStorage.getItem(tK)||"aiAct",clearHistory:t=>{let r=tw({},A().history);delete r[t],e({history:r}),localStorage.setItem(tO,JSON.stringify(r))},addHistory:t=>{var r,n;let{type:o}=t,i=A().history,a=i[o]||[],s=JSON.stringify({prompt:t.prompt,params:t.params}),l=[t,...a.filter(e=>JSON.stringify({prompt:e.prompt,params:e.params})!==s)];l.length>10&&(l.length=10);let c=(r=tw({},i),n=n={[o]:l},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r);e({history:c}),localStorage.setItem(tO,JSON.stringify(c))},getHistoryForType:e=>A().history[e]||[],setLastSelectedType:A=>{e({lastSelectedType:A}),localStorage.setItem(tK,A)}}}),tB="ZodOptional",tD="ZodDefault",tM="ZodNullable",tz="ZodObject",tQ="midscene_location_field_flag",tL=e=>"object"==typeof e&&null!==e&&("shape"in e||"ZodObject"===e.type),tZ=e=>{var A,t,r;if((null==(A=e._def)?void 0:A.typeName)===tz){let A;if(e._def.shape&&(A="function"==typeof e._def.shape?e._def.shape():e._def.shape),!A&&e.shape&&(A=e.shape),A&&tQ in A)return!0;let r=(null==(t=e._def)?void 0:t.description)||e.description||"";if("string"==typeof r&&r.toLowerCase().includes("input field"))return!0}if("object"==typeof e&&null!==e){let A=e.description||(null==(r=e._def)?void 0:r.description)||"";if("string"==typeof A){let e=A.toLowerCase();if(e.includes("input field")||e.includes("element")||e.includes("locate"))return!0}if("ZodObject"===e.typeName||"ZodObject"===e.type)return"string"==typeof A&&A.toLowerCase().includes("input field")}return!1},tX=e=>{var A,t,r,n,o;let i=e,a=!1,s=!1;for(;(null==(A=i._def)?void 0:A.typeName)===tB||(null==(t=i._def)?void 0:t.typeName)===tD||(null==(r=i._def)?void 0:r.typeName)===tM;)(null==(n=i._def)?void 0:n.typeName)===tB&&(a=!0),(null==(o=i._def)?void 0:o.typeName)===tD&&(s=!0),i=i._def.innerType||i;return{actualField:i,isOptional:a,hasDefault:s}},tJ=e=>{if(!e)return"";let A=e.startsWith("ai")?e.slice(2):e;if(A.startsWith("IOS"))return A.substring(3).replace(/([A-Z])/g," $1").replace(/^/,"IOS").trim();let t=A.replace(/([A-Z])/g," $1").trim(),r=t.split(" ");return r.length>3?r.slice(-3).join(" "):t};var tU=t(16356);let tF=e=>{var A,t;return(0,r.jsx)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:27,height:27,fill:"none",viewBox:"0 0 27 27"},e),t=t={children:(0,r.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeOpacity:.85,strokeWidth:1.333,d:"M19.527 8.855h-2M14.86 7.522v2.667M14.86 8.855H7.527M10.194 13.522H7.527M12.86 12.189v2.666M20.193 13.522H12.86M19.527 18.189h-2M14.86 16.855v2.667M14.86 18.189H7.527"})},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},tq=e=>{let A,{showDeepThinkOption:t=!1,enableTracking:n=!1,showDataExtractionOptions:o=!1,hideDomAndScreenshotOptions:i=!1,deviceType:a}=e,s=P(e=>e.forceSameTabNavigation),l=P(e=>e.setForceSameTabNavigation),c=P(e=>e.deepThink),d=P(e=>e.setDeepThink),u=P(e=>e.screenshotIncluded),p=P(e=>e.setScreenshotIncluded),g=P(e=>e.domIncluded),f=P(e=>e.setDomIncluded),m=P(e=>e.imeStrategy),h=P(e=>e.setImeStrategy),y=P(e=>e.autoDismissKeyboard),E=P(e=>e.setAutoDismissKeyboard),v=P(e=>e.keyboardDismissStrategy),b=P(e=>e.setKeyboardDismissStrategy),C=P(e=>e.alwaysRefreshScreenInfo),k=P(e=>e.setAlwaysRefreshScreenInfo);if(!n&&!t&&!o&&"android"!==a&&"ios"!==a)return null;let S=(A=[],n&&A.push({label:(0,r.jsx)(tU.A,{onChange:e=>l(e.target.checked),checked:s,children:"Limit popup to current tab"}),key:"track-config"}),t&&A.push({label:(0,r.jsx)(tU.A,{onChange:e=>{d(e.target.checked)},checked:c,children:"Deep Think"}),key:"deep-think-config"}),o&&!i&&(A.push({label:(0,r.jsx)(tU.A,{onChange:e=>{p(e.target.checked)},checked:u,children:"Include screenshot in request"}),key:"screenshot-included-config"}),A.push({label:(0,r.jsxs)("div",{style:{padding:"4px 0"},children:[(0,r.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:"Include DOM info in request"}),(0,r.jsxs)(tx.A.Group,{size:"small",value:g,onChange:e=>f(e.target.value),children:[(0,r.jsx)(tx.A,{value:!1,children:"Off"}),(0,r.jsx)(tx.A,{value:!0,children:"All"}),(0,r.jsx)(tx.A,{value:"visible-only",children:"Visible only"})]})]}),key:"dom-included-config"})),"android"===a&&(A.push({label:(0,r.jsxs)("div",{style:{padding:"4px 0"},children:[(0,r.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:"IME strategy"}),(0,r.jsxs)(tx.A.Group,{size:"small",value:m,onChange:e=>h(e.target.value),children:[(0,r.jsx)(tx.A,{value:"always-yadb",children:"Always YADB"}),(0,r.jsx)(tx.A,{value:"yadb-for-non-ascii",children:"YADB for non-ASCII"})]})]}),key:"ime-strategy-config"}),A.push({label:(0,r.jsx)(tU.A,{onChange:e=>E(e.target.checked),checked:y,children:Ai}),key:"auto-dismiss-keyboard-config"}),A.push({label:(0,r.jsxs)("div",{style:{padding:"4px 0"},children:[(0,r.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:"Keyboard dismiss strategy"}),(0,r.jsxs)(tx.A.Group,{size:"small",value:v,onChange:e=>b(e.target.value),children:[(0,r.jsx)(tx.A,{value:"esc-first",children:"ESC first"}),(0,r.jsx)(tx.A,{value:"back-first",children:"Back first"})]})]}),key:"keyboard-dismiss-strategy-config"}),A.push({label:(0,r.jsx)(tU.A,{onChange:e=>k(e.target.checked),checked:C,children:"Always refresh screen info"}),key:"always-refresh-screen-info-config"})),"ios"===a&&A.push({label:(0,r.jsx)(tU.A,{onChange:e=>E(e.target.checked),checked:y,children:Ai}),key:"auto-dismiss-keyboard-config"}),A);return(0,r.jsx)("div",{className:"selector-trigger",children:(0,r.jsx)(ts.A,{menu:{items:S},trigger:["click"],children:(0,r.jsx)(tF,{width:24,height:24})})})};var tV=t(9076),tG=t(95932);let{TextArea:tH}=e7.A,tW=(e,A)=>`${e}${A?" (Optional)":""}`,tY=e=>{let{name:A,label:t,isRequired:n,marginBottom:o,placeholder:i}=e,a=i||`Enter ${A}`;return(0,r.jsx)(An.A.Item,{name:["params",A],label:tW(t,!n),rules:n?[{required:!0,message:`Please input ${A}`}]:[],style:{marginBottom:o},colon:!1,children:(0,r.jsx)(e7.A,{placeholder:a})},A)},t_=e=>{let{name:A,label:t,isRequired:n,marginBottom:o,placeholder:i}=e,a=i||`Describe the ${A}, use natural language`;return(0,r.jsx)(An.A.Item,{name:["params",A],label:tW(t,!n),rules:n?[{required:!0,message:`The ${A} is required`}]:[],style:{marginBottom:o},colon:!1,children:(0,r.jsx)(tH,{rows:2,placeholder:a})},A)},t$=e=>{var A;let{name:t,label:n,fieldSchema:o,isRequired:i,marginBottom:a,placeholder:s}=e,l=((null==(A=o._def)?void 0:A.values)||[]).map(e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)}));return(0,r.jsx)(An.A.Item,{name:["params",t],label:n,rules:i?[{required:!0,message:`Please select ${t}`}]:[],style:{marginBottom:a},colon:!1,children:(0,r.jsx)(tV.A,{placeholder:s||`Select ${t}`,options:l})},t)},t0=e=>{let{name:A,label:t,isRequired:n,marginBottom:o,placeholder:i}=e,a=500*("distance"===A),s=i&&Number(i)||a,l="distance"===A?1e4:void 0;return(0,r.jsx)(An.A.Item,{name:["params",A],label:`${t}${"distance"===A?" (px)":""}`,rules:n?[{required:!0,message:`Please input ${A}`},{type:"number",min:0,message:`${t} must be at least 0`}]:[{type:"number",min:0,message:`${t} must be at least 0`}],style:{flex:"distance"===A?1:void 0,marginBottom:o},colon:!1,children:(0,r.jsx)(tG.A,{placeholder:s.toString(),min:0,max:l,step:"distance"===A?10:1,style:{width:"100%"}})},A)},t1=e=>{let{name:A,label:t,isRequired:n,marginBottom:o,placeholder:i}=e;return(0,r.jsx)(An.A.Item,{name:["params",A],label:tW(t,!n),rules:n?[{required:!0,message:`Please select ${A}`}]:[],style:{marginBottom:o},colon:!1,children:(0,r.jsx)(tV.A,{placeholder:i||`Select ${A}`,options:[{value:!0,label:"True"},{value:!1,label:"False"}]})},A)},t2=e=>{var A,t;return(0,r.jsx)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:18,height:16,fill:"none",viewBox:"0 0 18 16"},e),t=t={children:(0,r.jsx)("path",{stroke:"#333",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.333,d:"m3.124 2.667 11.162 10.666M3.124 13.333 14.286 2.667"})},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},t3=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:25,height:25,fill:"none",viewBox:"0 0 25 25"},e),t=t={children:[(0,r.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeOpacity:.85,strokeWidth:1.33,d:"M6.63 9.021c-2.862 6.126 2.197 10.501 6.063 10.501a7 7 0 1 0-6.063-10.5"}),(0,r.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeOpacity:.85,strokeWidth:1.33,d:"M12.695 8.322v4.203l2.967 2.968"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},t6=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:19,height:19,fill:"none",viewBox:"0 0 19 19"},e),t=t={children:[(0,r.jsxs)("g",{stroke:"currentColor",strokeLinejoin:"round",strokeOpacity:.65,strokeWidth:1.5,clipPath:"url(#magnifying-glass_svg__a)",children:[(0,r.jsx)("path",{d:"M8.397 14.29a6.375 6.375 0 1 0 0-12.75 6.375 6.375 0 0 0 0 12.75Z"}),(0,r.jsx)("path",{strokeLinecap:"round",d:"M10.519 5.42a3 3 0 0 0-2.122-.88 3 3 0 0 0-2.121.88M12.98 12.499l3.182 3.182"})]}),(0,r.jsx)("defs",{children:(0,r.jsx)("clipPath",{id:"magnifying-glass_svg__a",children:(0,r.jsx)("path",{fill:"#fff",d:"M.522.04h18v18h-18z"})})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},{Text:t5}=e3.A,t7=e=>{let{onSelect:A,history:t,currentType:n}=e,[o,i]=(0,et.useState)(!1),[a,s]=(0,et.useState)(""),l=tT(e=>e.clearHistory),c=(0,et.useRef)(null),d=(0,et.useMemo)(()=>{let e=Date.now(),A=e-6048e5,r=e-31536e6,n=t.filter(e=>e.prompt.toLowerCase().includes(a.toLowerCase()));return{recent7Days:n.filter(e=>e.timestamp>=A),recent1Year:n.filter(e=>e.timestamp<A&&e.timestamp>=r),older:n.filter(e=>e.timestamp<r)}},[t,a]);(0,et.useEffect)(()=>{if(!o)return;let e=e=>{c.current&&!c.current.contains(e.target)&&i(!1)},A=setTimeout(()=>{document.addEventListener("click",e)},100);return()=>{clearTimeout(A),document.removeEventListener("click",e)}},[o]);let u=(e,t)=>0===t.length?null:(0,r.jsxs)("div",{className:"history-group",children:[(0,r.jsx)("div",{className:"history-group-title",children:e}),t.map((e,t)=>(0,r.jsx)("div",{className:"history-item",onClick:()=>{A(e),i(!1)},children:e.prompt},`${e.timestamp}-${t}`))]},e);return(0,r.jsxs)("div",{className:"history-selector-wrapper",children:[(0,r.jsx)("div",{className:"selector-trigger",onClick:()=>i(!0),children:(0,r.jsx)(t3,{width:24,height:24})}),o&&(0,r.jsx)("div",{className:"history-modal-overlay",ref:c,children:(0,r.jsxs)("div",{className:"history-modal-container",children:[(0,r.jsxs)("div",{className:"history-modal-header",children:[(0,r.jsxs)(t5,{strong:!0,style:{fontSize:"16px"},children:["History (",t.length,")"]}),(0,r.jsx)(eA.Ay,{size:"small",type:"text",icon:(0,r.jsx)(t2,{width:16,height:16}),onClick:()=>i(!1),className:"close-button"})]}),(0,r.jsx)("div",{className:"history-search-section",children:(0,r.jsxs)("div",{className:"search-input-wrapper",children:[(0,r.jsx)(e7.A,{placeholder:"Search",value:a,onChange:e=>s(e.target.value),prefix:(0,r.jsx)(t6,{width:18,height:18}),className:"search-input",allowClear:!0}),(0,r.jsx)(eA.Ay,{type:"link",onClick:()=>{l(n),s(""),i(!1)},className:"clear-button",disabled:0===t.length,children:"Clear"})]})}),(0,r.jsx)("div",{className:"history-content",children:0===t.length?(0,r.jsx)("div",{className:"no-results",children:(0,r.jsx)(t5,{type:"secondary",children:"No history record"})}):(0,r.jsxs)(r.Fragment,{children:[u("Last 7 days",d.recent7Days),u("Last 1 year",d.recent1Year),u("Earlier",d.older),a&&0===d.recent7Days.length&&0===d.recent1Year.length&&0===d.older.length&&(0,r.jsx)("div",{className:"no-results",children:(0,r.jsx)(t5,{type:"secondary",children:"No matching history record"})})]})})]})})]})};function t9(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}let{TextArea:t8}=e7.A,t4=e=>{let A,t,n,o,i,a,{runButtonEnabled:s,form:l,serviceMode:c,selectedType:d,dryMode:u,stoppable:p,loading:g,onRun:f,onStop:m,clearPromptAfterRun:h=!0,actionSpace:y,hideDomAndScreenshotOptions:E=!1,deviceType:v}=e,[b,C]=(0,et.useState)(!1),[k,S]=(0,et.useState)(""),I="aiQuery"===d?"What do you want to query?":"aiAssert"===d?"What do you want to assert?":"aiTap"===d?"What element do you want to tap?":"aiDoubleClick"===d?"What element do you want to double-click?":"aiHover"===d?"What element do you want to hover over?":"aiInput"===d?"Format: <value> | <element>\nExample: hello world | search box":"aiRightClick"===d?"What element do you want to right-click?":"aiKeyboardPress"===d?"Format: <key> | <element (optional)>\nExample: Enter | text field":"aiScroll"===d?"Format: <direction> <amount> | <element (optional)>\nExample: down 500 | main content":"aiLocate"===d?"What element do you want to locate?":"aiBoolean"===d?"What do you want to check (returns true/false)?":"aiNumber"===d?"What number do you want to extract?":"aiString"===d?"What text do you want to extract?":"aiAsk"===d?"What do you want to ask?":"aiWaitFor"===d?"What condition do you want to wait for?":"What do you want to do?",R=(0,et.useRef)(null),x=(0,et.useRef)(null),j=An.A.useWatch("params",l),P=(0,et.useRef)(null),w=tT(e=>e.history),N=tT(e=>e.lastSelectedType),O=tT(e=>e.addHistory),K=tT(e=>e.setLastSelectedType),T=(0,et.useMemo)(()=>w[d]||[],[w,d]),B=(0,et.useMemo)(()=>{if(y){let e=y.find(e=>e.interfaceAlias===d||e.name===d);return!!(null==e?void 0:e.paramSchema)&&(!tL(e.paramSchema)||Object.keys(e.paramSchema.shape||{}).length>0)}return!1},[d,y]),D=(0,et.useMemo)(()=>{if(y&&y.length>0){let e=y.find(e=>e.interfaceAlias===d||e.name===d);if(e){if(e.paramSchema&&tL(e.paramSchema)){let A=e.paramSchema.shape||{};return Object.keys(A).some(e=>{let{isOptional:t}=tX(A[e]);return!t})}return!!e.paramSchema}}return!0},[d,y]),M=(0,et.useMemo)(()=>["aiQuery","aiBoolean","aiNumber","aiString","aiAsk","aiAssert"].includes(d),[d]),z=(0,et.useMemo)(()=>{if("aiAct"===d||"aiLocate"===d)return!0;if(y){let e=y.find(e=>e.interfaceAlias===d||e.name===d);if((null==e?void 0:e.paramSchema)&&tL(e.paramSchema)){let A=e.paramSchema.shape||{};return Object.keys(A).some(e=>{let{actualField:t}=tX(A[e]);return tZ(t)})}}return!1},[d,y]),Q=(0,et.useMemo)(()=>{let e=M&&!E,A="android"===v||"ios"===v;return"In-Browser-Extension"===c||z||e||A},[c,z,M,E,v]),L=(0,et.useMemo)(()=>{let e=Object.keys(Aa);if(!y||0===y.length)return e;let A=y.map(e=>e.interfaceAlias||e.name),t=new Set;return e.forEach(e=>{let r=Aa[e];(null==r?void 0:r.group)==="extraction"||(null==r?void 0:r.group)==="validation"?t.add(e):A.includes(e)&&t.add(e)}),A.forEach(e=>{t.add(e)}),Array.from(t)},[y]),Z=(0,et.useCallback)(()=>{if(!B||!y)return{};let e=y.find(e=>e.interfaceAlias===d||e.name===d);if((null==e?void 0:e.paramSchema)&&tL(e.paramSchema)){let A={},t=e.paramSchema.shape||{};return Object.keys(t).forEach(e=>{let r=(e=>{var A;let t=e;for(;null==(A=t._def)?void 0:A.innerType;){if(t._def.typeName===tD&&t._def.defaultValue)return t._def.defaultValue();t=t._def.innerType}})(t[e]);void 0!==r&&(A[e]=r)}),A}return{}},[d,B,y]);(0,et.useEffect)(()=>{!l.getFieldValue("type")&&N&&l.setFieldValue("type",N)},[l,N]),(0,et.useEffect)(()=>{d&&d!==N&&K(d)},[d,N,K]);let X=(0,et.useCallback)(()=>{let e=x.current;if(!e)return;let A=null,t=e.querySelector(".ant-radio-button-wrapper-checked"),r=e.querySelector(".more-apis-button.selected-from-dropdown");if(t?A=t:r&&(A=r),A){let t=e.getBoundingClientRect(),r=A.getBoundingClientRect(),n=r.left-t.left+e.scrollLeft,o=r.width,i=t.width;e.scrollTo({left:Math.max(0,n-(i-o)/2),behavior:"smooth"})}},[]);(0,et.useEffect)(()=>{let e=T[0];if(!e||!P.current||e.timestamp!==P.current.timestamp)if(e)l.setFieldsValue({type:e.type,prompt:e.prompt||"",params:e.params}),S(e.prompt||""),P.current=e;else{let e=Z();l.setFieldsValue({prompt:"",params:e}),S(""),P.current=null}},[d,T,l,Z]),(0,et.useEffect)(()=>{let e=setTimeout(()=>{X()},100);return()=>clearTimeout(e)},[d,X]);let J=An.A.useWatch("prompt",l);(0,et.useEffect)(()=>{J!==k&&S(J||"")},[J,k]);let U=(0,et.useCallback)(e=>{l.setFieldsValue({prompt:e.prompt,type:e.type,params:e.params}),S(e.prompt)},[l]),F=(0,et.useCallback)(e=>{S(e.target.value)},[]),q=(0,et.useMemo)(()=>{if(!B||!y)return!1;let e=y.find(e=>e.interfaceAlias===d||e.name===d);return!!((null==e?void 0:e.paramSchema)&&tL(e.paramSchema))&&1===Object.keys(e.paramSchema.shape||{}).length},[d,B,y]),V=(0,et.useMemo)(()=>((e,A,t,r,n,o)=>{if(!e)return!1;if(!(()=>{if(r){let e=r.find(e=>e.interfaceAlias===n||e.name===n);if(e){if(!e.paramSchema)return!1;if("object"==typeof e.paramSchema&&"shape"in e.paramSchema)return Object.keys(e.paramSchema.shape||{}).length>0}}return!0})())return!0;if(A){let e=t||{},A=null==r?void 0:r.find(e=>e.interfaceAlias===n||e.name===n);if((null==A?void 0:A.paramSchema)&&tL(A.paramSchema)){let t=A.paramSchema.shape||{};return Object.keys(t).every(A=>{let{isOptional:r}=tX(t[A]),n=e[A];return r||void 0!==n&&""!==n&&null!==n})}return!0}return o.trim().length>0})(s,!!B,j,y,d,k),[s,B,d,y,k,j]),G=(0,et.useCallback)(()=>{let e=l.getFieldsValue(),A="";if(B&&e.params&&y){let t=y.find(e=>e.interfaceAlias===d||e.name===d);if((null==t?void 0:t.paramSchema)&&tL(t.paramSchema)){let r="",n=[],o=t.paramSchema.shape||{};Object.keys(o).forEach(A=>{var t;let i=null==(t=e.params)?void 0:t[A];if(null!=i&&""!==i){let{actualField:e}=tX(o[A]);tZ(e)?r=String(i):"distance"===A?n.push(`${i}`):n.push(String(i))}});let i=n.join(" ");A=r?`${r} - ${i}`:i}else A=e.prompt||""}else A=e.prompt||"";let t={type:e.type,prompt:A,params:e.params,timestamp:Date.now()};if(O(t),f(),h)if(P.current=t,S(""),B){let e=Z();l.setFieldValue("params",e)}else l.setFieldValue("prompt","")},[l,O,f,B,d,h,y,Z]),H=(0,et.useCallback)(e=>{"Enter"===e.key&&e.metaKey&&V?(G(),e.preventDefault(),e.stopPropagation()):"Enter"===e.key&&setTimeout(()=>{if(R.current){var e;let A=null==(e=R.current.resizableTextArea)?void 0:e.textArea;if(A){let e=A.selectionStart,t=A.value.lastIndexOf("\n");(-1===t||e>t)&&(A.scrollTop=A.scrollHeight)}}},0)},[G,V]),W=(0,et.useCallback)(e=>{"Enter"===e.key&&e.metaKey&&V&&(G(),e.preventDefault(),e.stopPropagation())},[G,V]),Y=(0,et.useCallback)(()=>{if(!B)return null;if(y){let e=y.find(e=>e.interfaceAlias===d||e.name===d);if((null==e?void 0:e.paramSchema)&&tL(e.paramSchema)){let A=e.paramSchema.shape||{},t=Object.keys(A);if(1===t.length){let e=t[0],{actualField:n}=tX(A[e]),o=tZ(n),i=(()=>{var A,t;if(null==(A=n._def)?void 0:A.description)return n._def.description;if(n.description)return n.description;if(y){let A=y.find(e=>e.interfaceAlias===d||e.name===d);if((null==A?void 0:A.paramSchema)&&"object"==typeof A.paramSchema&&"shape"in A.paramSchema){let r=(A.paramSchema.shape||{})[e];if(null==r||null==(t=r._def)?void 0:t.description)return r._def.description;if(null==r?void 0:r.description)return r.description}}return o?"Describe the element you want to interact with":"keyName"===e?"Enter key name or text to type":"value"===e?"Enter text to input":`Enter ${e}`})();return(0,r.jsx)(An.A.Item,{name:["params",e],style:{margin:0},children:(0,r.jsx)(e7.A.TextArea,{className:"main-side-console-input-textarea",rows:3,placeholder:i,autoFocus:!0,onKeyDown:W})})}let n=[],o=t.sort((e,t)=>{let r=A[e],n=A[t],{isOptional:o}=tX(r),{isOptional:i}=tX(n);return!o&&i?-1:o&&!i?1:0});if(o.forEach((e,t)=>{var i,a,s;let{actualField:l,isOptional:c}=tX(A[e]),u=tZ(l),p=e.charAt(0).toUpperCase()+e.slice(1),g=12*(t!==o.length-1),f=(()=>{var A,t;if(null==(A=l._def)?void 0:A.description)return l._def.description;if(l.description)return l.description;if(y){let A=y.find(e=>e.interfaceAlias===d||e.name===d);if((null==A?void 0:A.paramSchema)&&"object"==typeof A.paramSchema&&"shape"in A.paramSchema){let r=(A.paramSchema.shape||{})[e];if(null==r||null==(t=r._def)?void 0:t.description)return r._def.description;if(null==r?void 0:r.description)return r.description}}if(u)return"Describe the element you want to interact with"})(),m={name:e,label:p,fieldSchema:l,isRequired:!c,marginBottom:g,placeholder:f};u?n.push((0,r.jsx)(t_,t9({},m),e)):(null==(i=l._def)?void 0:i.typeName)==="ZodEnum"?n.push((0,r.jsx)(t$,t9({},m),e)):(null==(a=l._def)?void 0:a.typeName)==="ZodNumber"?n.push((0,r.jsx)(t0,t9({},m),e)):(null==(s=l._def)?void 0:s.typeName)==="ZodBoolean"?n.push((0,r.jsx)(t1,t9({},m),e)):n.push((0,r.jsx)(tY,t9({},m),e))}),"aiScroll"===d){let e=n.find(e=>et.isValidElement(e)&&"direction"===e.props.name),A=n.find(e=>et.isValidElement(e)&&"distance"===e.props.name),t=n.filter(e=>et.isValidElement(e)&&"direction"!==e.props.name&&"distance"!==e.props.name);if(e&&A)return(0,r.jsxs)("div",{className:"structured-params",children:[(0,r.jsxs)("div",{style:{display:"flex",gap:12,marginBottom:12},children:[e,A]}),t]})}return(0,r.jsx)("div",{className:"structured-params",children:n})}}return null},[d,B,y,W]),_=(0,et.useCallback)(()=>{C(!0)},[]),$=(0,et.useCallback)(()=>{C(!1)},[]),er=(0,et.useCallback)(()=>{let e=e=>(0,r.jsx)(eA.Ay,{type:"primary",icon:(0,r.jsx)(tS.A,{}),style:{borderRadius:20,zIndex:999},onClick:G,disabled:!V,loading:g,children:e});return u?"aiAct"===d?(0,r.jsx)(ee.A,{title:"Start executing until some interaction actions need to be performed. You can see the process of planning and locating.",children:e("Dry Run")}):e("Run"):p?(0,r.jsx)(eA.Ay,{icon:(0,r.jsx)(tI.A,{}),onClick:m,style:{borderRadius:20,zIndex:999},children:"Stop"}):e("Run")},[u,g,G,m,V,d,p]);return(0,r.jsxs)("div",{className:"prompt-input-wrapper",children:[(0,r.jsxs)("div",{className:"mode-radio-group-wrapper",children:[(0,r.jsxs)("div",{className:"mode-radio-group",ref:x,children:[(0,r.jsx)(An.A.Item,{name:"type",style:{margin:0},children:(0,r.jsx)(tx.A.Group,{buttonStyle:"solid",disabled:!s,children:As.map(e=>{var A;return(0,r.jsx)(ee.A,{title:(null==(A=Aa[e])?void 0:A.title)||"",children:(0,r.jsx)(tx.A.Button,{value:e,children:tJ(e)})},e)})})}),(0,r.jsx)(ts.A,{menu:(A=L.filter(e=>!As.includes(e)),t=[],(n=A.filter(e=>{var A;return(null==(A=Aa[e])?void 0:A.group)==="interaction"})).length>0&&t.push({key:"interaction-group",type:"group",label:"Interaction APIs",children:n.map(e=>{var A;return{key:e,label:tJ(e),title:(null==(A=Aa[e])?void 0:A.title)||"",onClick:()=>{l.setFieldValue("type",e)}}})}),(o=A.filter(e=>{var A;return(null==(A=Aa[e])?void 0:A.group)==="extraction"})).length>0&&t.push({key:"extraction-group",type:"group",label:"Data Extraction APIs",children:o.map(e=>{var A;return{key:e,label:tJ(e),title:(null==(A=Aa[e])?void 0:A.title)||"",onClick:()=>{l.setFieldValue("type",e)}}})}),(i=A.filter(e=>{var A;return(null==(A=Aa[e])?void 0:A.group)==="validation"})).length>0&&t.push({key:"validation-group",type:"group",label:"Validation APIs",children:i.map(e=>{var A;return{key:e,label:tJ(e),title:(null==(A=Aa[e])?void 0:A.title)||"",onClick:()=>{l.setFieldValue("type",e)}}})}),(a=A.filter(e=>!Aa[e])).length>0&&t.push({key:"device-specific-group",type:"group",label:"Device-Specific APIs",children:a.map(e=>({key:e,label:tJ(e),title:"",onClick:()=>{l.setFieldValue("type",e)}}))}),{items:t}),placement:"bottomLeft",trigger:["click"],disabled:!s,overlayClassName:"more-apis-dropdown",children:(0,r.jsxs)(eA.Ay,{className:`more-apis-button ${!As.includes(d)?"selected-from-dropdown":""}`,children:[d&&!As.includes(d)?tJ(d):"more",(0,r.jsx)(tR.A,{style:{fontSize:"10px",marginLeft:"2px"}})]})})]}),(0,r.jsxs)("div",{className:"action-icons",children:[Q&&(0,r.jsx)("div",{className:b?"settings-wrapper settings-wrapper-hover":"settings-wrapper",onMouseEnter:_,onMouseLeave:$,children:(0,r.jsx)(tq,{enableTracking:"In-Browser-Extension"===c,showDeepThinkOption:z,showDataExtractionOptions:M,hideDomAndScreenshotOptions:E,deviceType:v})}),(0,r.jsx)(t7,{onSelect:U,history:T,currentType:d})]})]}),(0,r.jsxs)("div",{className:`main-side-console-input ${!s?"disabled":""} ${g?"loading":""}`,children:[D?B?q?Y():(0,r.jsx)("div",{className:"structured-params-container",children:Y()}):(0,r.jsx)(An.A.Item,{name:"prompt",style:{margin:0},children:(0,r.jsx)(t8,{className:"main-side-console-input-textarea",disabled:!s,rows:3,placeholder:I,autoFocus:!0,onKeyDown:H,onChange:F,ref:R})}):(0,r.jsxs)("div",{className:"no-input-method",style:{padding:"20px",textAlign:"center",color:"#666",fontSize:"14px"},children:['Click "Run" to execute ',tJ(d)]}),(0,r.jsx)("div",{className:"form-controller-wrapper",children:er()})]})]})};function re(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function rA(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){re(o,r,n,i,a,"next",e)}function a(e){re(o,r,n,i,a,"throw",e)}i(void 0)})}}let{Text:rt}=e3.A;function rr(e){let{error:A}=e;if(!A)return null;let t=A.replace(/^(Error:\s*)+/,"Error: ");return(0,r.jsx)(Ar.A,{message:(0,r.jsx)("span",{style:{color:"#ff4d4f"},children:t}),type:"error",showIcon:!0})}function rn(e){let{playgroundSDK:A,storage:t,contextProvider:n,config:o={},branding:i={},className:a="",dryMode:s=!1,showContextPreview:l=!0}=e,[c]=An.A.useForm(),{config:d}=P(),[u,p]=(0,et.useState)(!1);(0,et.useEffect)(()=>{c.setFieldsValue({type:As["0"]})},[c]),(0,et.useEffect)(()=>{rA(function*(){if(A&&"function"==typeof A.checkStatus)try{yield A.checkStatus(),p(!0)}catch(e){console.warn("Failed to initialize SDK, using default namespace:",e),p(!0)}else p(!0)})()},[A]);let g=(0,et.useMemo)(()=>{if(t)return t;if(!u)return null;let e=o.storageNamespace||(A&&A.id&&"string"==typeof A.id?`agent-${A.id}`:"playground-default"),r=AJ();return console.log(`Using ${r} storage for namespace: ${e}`),AX(r,e)},[t,u,o.storageNamespace,A]),{loading:f,setLoading:m,infoList:h,setInfoList:y,actionSpace:E,actionSpaceLoading:v,uiContextPreview:b,setUiContextPreview:C,showScrollToBottomButton:k,verticalMode:S,replayCounter:I,setReplayCounter:R,infoListRef:x,currentRunningIdRef:j,interruptedFlagRef:w,clearInfoList:N,handleScrollToBottom:O}=function(e,A,t,r){let[n,o]=(0,et.useState)(!1),[i,a]=(0,et.useState)([]),[s,l]=(0,et.useState)([]),[c,d]=(0,et.useState)(!0),[u,p]=(0,et.useState)(),[g,f]=(0,et.useState)(!1),[m,h]=(0,et.useState)(!0),y=(0,et.useRef)(0),[E,v]=(0,et.useState)(!1),[b,C]=(0,et.useState)(0),k=(0,et.useRef)(null),S=(0,et.useRef)(null),I=(0,et.useRef)({}),R=(0,et.useRef)(!1);(0,et.useEffect)(()=>{let e=()=>AF(function*(){let e=AV(Aq({},Al(r)),{id:"welcome",timestamp:new Date});if(null==A?void 0:A.loadMessages)try{let t=yield A.loadMessages();0===t.length&&(t=yield AF(function*(){let e=AX(AJ(),"playground-default");try{if(null==e?void 0:e.loadMessages){let t=yield e.loadMessages();if(t.length>1)return console.log("Found data in old namespace, migrating..."),(null==A?void 0:A.saveMessages)&&(yield A.saveMessages(t)),e.clearMessages&&(yield e.clearMessages()),t}}catch(e){console.debug("No data found in old namespace:",e)}return[]})()),t.some(e=>"welcome"===e.id)?a(t):a([e,...t])}catch(A){console.error("Failed to load messages:",A),a([e])}else a([e])})();A&&!R.current?(R.current=!0,e()):A||0!==i.length||e()},[A]),(0,et.useEffect)(()=>{(null==A?void 0:A.saveMessages)&&i.length>1&&A.saveMessages(i).catch(e=>{e instanceof DOMException&&"QuotaExceededError"===e.name?console.warn("Storage quota exceeded - some messages may not be saved persistently"):console.error("Failed to save messages:",e)})},[i,A]),(0,et.useEffect)(()=>{(null==t?void 0:t.getUIContext)&&!u&&t.getUIContext().then(e=>p(e)).catch(e=>{console.error("Failed to get UI context:",e)})},[t,u]),(0,et.useEffect)(()=>{AF(function*(){d(!0);try{var A;if(!e)return void l([]);let r=u||(yield null==t||null==(A=t.getUIContext)?void 0:A.call(t)),n=yield e.getActionSpace(r);l(n||[])}catch(e){console.error("Failed to load action space:",e),l([])}finally{d(!1)}})()},[e,u,t]),(0,et.useEffect)(()=>{v(window.innerWidth<750);let e=()=>{v(window.innerWidth<750)};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);let x=(0,et.useCallback)(()=>{setTimeout(()=>{k.current&&(k.current.scrollTop=k.current.scrollHeight)},100)},[]),j=(0,et.useCallback)(()=>{if(k.current){let{scrollTop:e,scrollHeight:A,clientHeight:t}=k.current,r=e+t>=A-10;f(!r);let n=e<y.current;y.current=e,r?h(!0):n&&h(!1)}},[]),P=(0,et.useCallback)(()=>{k.current&&(k.current.scrollTo({top:k.current.scrollHeight,behavior:"smooth"}),f(!1),h(!0))},[]);(0,et.useEffect)(()=>{i.length>0&&m&&x()},[i,x,m]),(0,et.useEffect)(()=>{let e=k.current;if(e)return e.addEventListener("scroll",j),j(),()=>{e.removeEventListener("scroll",j)}},[j]);let w=(0,et.useCallback)(()=>AF(function*(){if(a([AV(Aq({},Al(r)),{id:"welcome",timestamp:new Date})]),null==A?void 0:A.clearMessages)try{yield A.clearMessages()}catch(e){console.error("Failed to clear stored messages:",e)}})(),[A,r]),N=(0,et.useCallback)(()=>AF(function*(){if(null==t?void 0:t.refreshContext)try{let e=yield t.refreshContext();p(e)}catch(e){console.error("Failed to refresh context:",e)}})(),[t]);return{loading:n,setLoading:o,infoList:i,setInfoList:a,actionSpace:s,actionSpaceLoading:c,uiContextPreview:u,setUiContextPreview:p,showScrollToBottomButton:g,verticalMode:E,replayCounter:b,setReplayCounter:C,infoListRef:k,currentRunningIdRef:S,interruptedFlagRef:I,clearInfoList:w,refreshContext:N,handleScrollToBottom:P,scrollToBottom:x}}(A,g,n,i.targetName),{handleRun:K,handleStop:T,canStop:B}=function(e,A,t,r,n,o,i,a,s,l,c){let{deepThink:d,screenshotIncluded:u,domIncluded:p}=P(),g=(0,et.useCallback)(t=>Ah(function*(){if(!e)return void console.warn("PlaygroundSDK is not available");let r=Date.now(),g=t.type,f=`${t.type}: ${t.prompt||JSON.stringify(t.params)}`,m={id:`user-${Date.now()}`,type:"user",content:f,timestamp:new Date};o(e=>[...e,m]),n(!0);let h=Ay({},Ac),y={id:`system-${r}`,type:"system",content:"",timestamp:new Date,loading:!0,loadingProgressText:""};o(e=>[...e,y]);try{if(l.current=r,c.current[r]=!1,e.onDumpUpdate&&e.onDumpUpdate((e,A)=>{var t;if(c.current[r]||!(null==A||null==(t=A.tasks)?void 0:t.length))return;let n=A.tasks.map((e,A)=>{var t;let n,o;return{id:`progress-${r}-task-${A}`,type:"progress",content:(n=eX(e),(o=eU(e))?`${n} - ${o}`:n),timestamp:new Date((null==(t=e.timing)?void 0:t.start)||Date.now()),result:e.error?{error:Av(e.error),result:null}:void 0}});o(e=>{let A=e.findIndex(e=>e.id===`system-${r}`);if(-1===A)return e;let t=e.filter(e=>!("progress"===e.type&&e.id.startsWith(`progress-${r}-`)));return[...t.slice(0,A+1),...n,...t.slice(A+1)]})}),h.result=yield e.executeAction(g,t,{requestId:r.toString(),deepThink:d,screenshotIncluded:u,domIncluded:p}),"object"==typeof h.result&&null!==h.result){let e=h.result;e.dump&&(h.dump=e.dump),e.reportHTML&&(h.reportHTML=e.reportHTML),e.error&&(h.error=Av(e.error)),"result"in e&&(h.result=e.result)}}catch(e){h.error=Av(e),console.error("Playground execution error:",e),"object"==typeof e&&null!==e&&(e.dump&&(h.dump=e.dump),e.reportHTML&&(h.reportHTML=e.reportHTML))}if(c.current[r])return;n(!1),l.current=null;let E=null,v=i;if((null==h?void 0:h.dump)&&h.dump.tasks&&Array.isArray(h.dump.tasks)){let e=Ag(Ab(h.dump));a(e=>e+1),E=e,v=i+1}o(e=>e.map(e=>e.id===`system-${r}`?AE(Ay({},e),{content:"",loading:!1,loadingProgressText:""}):e));let b={id:`result-${r}`,type:"result",content:"Execution result",timestamp:new Date,result:h,loading:!1,replayScriptsInfo:E,replayCounter:v,loadingProgressText:"",verticalMode:s,actionType:g};if(o(e=>[...e,b]),null==A?void 0:A.saveResult)try{yield A.saveResult(b.id,b)}catch(e){console.error("Failed to save result:",e)}let C={id:`separator-${r}`,type:"separator",content:"New Session",timestamp:new Date};o(e=>[...e,C])})(),[e,A,t,n,o,i,a,s,l,c,d,u,p]),f=(0,et.useCallback)(()=>Ah(function*(){let A=l.current;if(A&&e&&e.cancelExecution)try{let r=yield e.cancelExecution(A.toString()),l=null;if(r)l=r;else if(e.getCurrentExecutionData)try{l=yield e.getCurrentExecutionData()}catch(e){console.error("Failed to get execution data before stop:",e)}if(c.current[A]=!0,n(!1),e.onProgressUpdate&&e.onProgressUpdate(()=>{}),e.onDumpUpdate&&e.onDumpUpdate(()=>{}),o(e=>e.map(e=>e.id===`system-${A}`?AE(Ay({},e),{content:"",loading:!1,loadingProgressText:""}):e)),l&&(l.dump||l.reportHTML)){var t;let e=null,r=i;if((null==(t=l.dump)?void 0:t.tasks)&&Array.isArray(l.dump.tasks)){let A=Ab(l.dump);e=Ag(A),a(e=>e+1),r=i+1}let n={id:`stop-result-${A}`,type:"result",content:"Execution stopped by user",timestamp:new Date,result:{result:null,dump:l.dump,reportHTML:l.reportHTML,error:null},loading:!1,verticalMode:s,replayScriptsInfo:e,replayCounter:r};o(e=>[...e,n])}else{let e={id:`stop-${A}`,type:"system",content:"Operation stopped",timestamp:new Date,loading:!1};o(A=>[...A,e])}let d={id:`separator-${A}`,type:"separator",content:"New Session",timestamp:new Date};o(e=>[...e,d])}catch(e){console.error("Failed to stop execution:",e)}})(),[e,l,c,n,o,s,i]);return{handleRun:g,handleStop:f,canStop:r&&!!l.current&&!!e&&!!e.cancelExecution}}(A,g,E,f,m,y,I,R,S,j,w);(0,et.useEffect)(()=>{(null==A?void 0:A.overrideConfig)&&d&&A.overrideConfig(d).catch(e=>{console.error("Failed to override SDK config:",e);let A=e instanceof Error?e.message:String(e);G.Ay.error(`Failed to apply AI configuration: ${A}`)})},[A,d]);let D=(0,et.useCallback)(()=>rA(function*(){try{let e=c.getFieldsValue();yield K(e)}catch(e){G.Ay.error((null==e?void 0:e.message)||"Execution failed")}})(),[c,K]),M=Object.keys(d||{}).length>=1,z=o.serverMode||!s&&!v&&M,Q=An.A.useWatch("type",c),L=(0,et.useMemo)(()=>A&&"function"==typeof A.getServiceMode?A.getServiceMode():"Server",[A]),Z=l&&!1!==o.showContextPreview,X=o.layout||"vertical",J=!1!==o.showVersionInfo,U=o.deviceType;return(0,r.jsx)("div",{className:`playground-container ${X}-mode ${a}`.trim(),children:(0,r.jsxs)(An.A,{form:c,onFinish:D,className:"command-form",children:[Z&&(0,r.jsx)("div",{className:"context-preview-section",children:(0,r.jsx)(tA,{uiContextPreview:b,setUiContextPreview:C,showContextPreview:Z})}),(0,r.jsxs)("div",{className:"middle-dialog-area",children:[h.length>1&&(0,r.jsx)("div",{className:"clear-button-container",children:(0,r.jsx)(eA.Ay,{size:"small",icon:(0,r.jsx)(e4.A,{}),onClick:N,type:"text",className:"clear-button"})}),(0,r.jsx)("div",{ref:x,className:"info-list-container",children:(0,r.jsx)(Ao.A,{itemLayout:"vertical",dataSource:h,renderItem:e=>{var A,t,n,o;let a,s,l,c,d,u;return(0,r.jsx)(Ao.A.Item,{className:"list-item",children:"user"===e.type?(0,r.jsx)("div",{className:"user-message-container",children:(0,r.jsx)("div",{className:"user-message-bubble",children:e.content})}):"progress"===e.type?(0,r.jsx)("div",{children:(s=null==(A=(a=e.content.split(" - "))[0])?void 0:A.trim(),l=a.slice(1).join(" - ").trim(),c=h.findIndex(A=>A.id===e.id),d=h.slice(c+1).some(e=>"progress"===e.type),u=f&&!d,(0,r.jsxs)(r.Fragment,{children:[s&&(0,r.jsxs)("span",{className:"progress-action-item",children:[s,(0,r.jsx)("span",{className:`progress-status-icon ${u?"loading":(null==(t=e.result)?void 0:t.error)?"error":"completed"}`,children:u?(0,r.jsx)(Ae.A,{spin:!0}):(null==(n=e.result)?void 0:n.error)?"✗":"✓"})]}),l&&(0,r.jsx)("div",{children:(0,r.jsx)(A7,{text:l,className:"progress-description",disabled:!u})}),(null==(o=e.result)?void 0:o.error)&&(0,r.jsx)(rr,{error:e.result.error})]}))}):"separator"===e.type?(0,r.jsxs)("div",{className:"new-conversation-separator",children:[(0,r.jsx)("div",{className:"separator-line"}),(0,r.jsx)("div",{className:"separator-text-container",children:(0,r.jsx)(rt,{type:"secondary",className:"separator-text",children:e.content})})]}):(0,r.jsxs)("div",{className:"system-message-container",children:[(0,r.jsxs)("div",{className:"system-message-header",children:[(0,r.jsx)(AA.A,{component:i.icon||tk,style:{fontSize:20}}),(0,r.jsx)("span",{className:"system-message-title",children:i.title||"Playground"})]}),(e.content||e.result)&&(0,r.jsx)("div",{className:"system-message-content",children:"result"===e.type?(0,r.jsx)(tC,{result:e.result||null,loading:e.loading||!1,serverValid:!0,serviceMode:L,replayScriptsInfo:e.replayScriptsInfo||null,replayCounter:e.replayCounter||0,loadingProgressText:e.loadingProgressText||"",verticalMode:e.verticalMode||!1,fitMode:"width",actionType:e.actionType}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"system-message-text",children:e.content}),e.loading&&e.loadingProgressText&&(0,r.jsx)("div",{className:"loading-progress-text",children:(0,r.jsx)("span",{children:e.loadingProgressText})})]})})]})},e.id)}})}),k&&!1!==o.enableScrollToBottom&&(0,r.jsx)(eA.Ay,{className:"scroll-to-bottom-button",type:"primary",shape:"circle",icon:(0,r.jsx)(At.A,{}),onClick:O,size:"large"})]}),(0,r.jsxs)("div",{className:"bottom-input-section",children:[o.showEnvConfigReminder?(0,r.jsx)(tr,{}):null,(0,r.jsx)(t4,{runButtonEnabled:z,form:c,serviceMode:L,selectedType:Q,dryMode:s,stoppable:B,loading:f,onRun:D,onStop:T,actionSpace:E,deviceType:U})]}),J&&i.version&&(0,r.jsx)("div",{className:"version-info-section",children:(0,r.jsxs)("span",{className:"version-text",children:["Midscene.js version: ",i.version]})})]})})}function ro(){let{config:e}=P(),A=(0,et.useMemo)(()=>new eW({type:"remote-execution"}),[]);return(0,et.useEffect)(()=>{(async()=>{try{let e=await A.checkStatus();console.log("[DEBUG] Android playground server status:",e,"ID:",A.id)}catch(e){console.error("Failed to check android playground server status:",e)}})()},[A]),(0,et.useEffect)(()=>{A.overrideConfig&&e&&A.overrideConfig(e).catch(e=>{console.error("Failed to override SDK config:",e)})},[A,e]),(0,r.jsxs)("div",{className:"playground-panel",children:[(0,r.jsx)("div",{className:"playground-panel-header",children:(0,r.jsxs)("div",{className:"header-row",children:[(0,r.jsx)(e0,{}),(0,r.jsx)(e8,{showTooltipWhenEmpty:!1,showModelName:!1})]})}),(0,r.jsx)("div",{className:"playground-panel-playground",children:(0,r.jsx)(rn,{playgroundSDK:A,config:{showContextPreview:!1,layout:"vertical",showVersionInfo:!0,enableScrollToBottom:!0,serverMode:!0,showEnvConfigReminder:!0,deviceType:"android"},branding:{title:"Android Playground",version:"1.4.9"},className:"playground-container"})})]})}var ri=t(36978),ra=t(57304),rs=t(88863),rl=t(44631),rc=t(85094),rd=t(25656),ru=t(44540),rp=t(79582);let rg=e=>(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16",...e,children:(0,r.jsx)("path",{fill:"#000",fillOpacity:.25,fillRule:"evenodd",d:"M9.68 2c1.2-1.2 3.2-1.28 4.4-.08s1.12 3.2-.08 4.4l-2.16 2.16c-.24.24-.56.24-.8 0s-.24-.56 0-.8l2.16-2.16c.8-.8.8-2.08.08-2.8s-2-.72-2.8.08L8.32 4.96c-.24.24-.56.24-.8 0s-.24-.56 0-.8zM5.6 13.2l2.16-2.16c.24-.24.56-.24.8 0s.24.56 0 .8L6.4 14c-1.2 1.2-3.12 1.36-4.4.08-1.36-1.28-1.2-3.2.08-4.4l2.16-2.16c.24-.24.56-.24.8 0s.24.56 0 .8l-2.16 2.16c-.8.8-.88 2-.08 2.8s2 .72 2.8-.08m4.64-8.24c.24-.24.64-.24.96 0 .24.24.24.64 0 .96L5.92 11.2c-.24.24-.64.24-.96 0-.24-.24-.24-.64 0-.96z",clipRule:"evenodd"})}),rf=e=>(0,r.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16",...e,children:[(0,r.jsxs)("g",{fill:"#606266",clipPath:"url(#screenshot_svg__a)",children:[(0,r.jsx)("path",{d:"m4.883 2.663-.858 2.001h-2.69v8.673h13.341V4.664H11.32l-.859-2zm-1.738.667.858-2.001h7.338l.858 2.001h2.477a1.334 1.334 0 0 1 1.334 1.334v8.673a1.335 1.335 0 0 1-1.334 1.334H1.334A1.334 1.334 0 0 1 0 13.337V4.664A1.334 1.334 0 0 1 1.334 3.33z"}),(0,r.jsx)("path",{d:"M8.005 10.001a1.334 1.334 0 1 0 0-2.668 1.334 1.334 0 0 0 0 2.668m0 1.335a2.668 2.668 0 1 1 0-5.337 2.668 2.668 0 0 1 0 5.337m3.336-6.004h.667q.667 0 .667.667 0 .666-.667.667h-.667q-.667 0-.667-.667t.667-.667"})]}),(0,r.jsx)("defs",{children:(0,r.jsx)("clipPath",{id:"screenshot_svg__a",children:(0,r.jsx)("path",{fill:"#fff",d:"M0 0h16v16H0z"})})})]}),rm=e=>(0,r.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16",...e,children:(0,r.jsx)("path",{fill:"#FF4550",d:"M14.08 1.92C12.88.72 10.88.8 9.68 2L7.52 4.16c-.24.24-.24.56 0 .8s.56.24.8 0l2.16-2.16c.8-.8 2.08-.8 2.8-.08s.72 2-.08 2.8l-2.16 2.16c-.24.24-.24.56 0 .8s.56.24.8 0L14 6.32c1.2-1.2 1.28-3.2.08-4.4m-6.32 9.12L5.6 13.2c-.8.8-2 .88-2.8.08s-.72-2 .08-2.8l2.16-2.16c.24-.24.24-.56 0-.8s-.56-.24-.8 0L2.08 9.68C.8 10.88.64 12.8 2 14.08c1.28 1.28 3.2 1.12 4.4-.08l2.16-2.16c.24-.24.24-.56 0-.8s-.56-.24-.8 0M5.92 4.96c-.24-.24-.64-.24-.96 0-.24.24-.24.64 0 .96l5.28 5.28c.24.24.64.24.96 0 .24-.24.24-.64 0-.96z"})}),{Text:rh}=e3.A,ry=(0,et.forwardRef)((e,A)=>{let{serverUrl:t,maxSize:n=1024,autoConnect:o=!0,autoReconnect:i=!0,reconnectInterval:a=5e3}=e,[s,l]=(0,et.useState)(!1),[c,d]=(0,et.useState)(!1),[u,p]=(0,et.useState)(null),[g,f]=(0,et.useState)(""),m=(0,et.useRef)(null),h=(0,et.useRef)(null),y=(0,et.useRef)(null),E=(0,et.useRef)(null),v=(0,et.useRef)(null),b=(0,et.useRef)(null),C=e_(!0),k=(0,et.useCallback)(e=>{if(e)try{for(;e.firstChild;)try{e.removeChild(e.firstChild)}catch(A){if(console.warn("Failed to remove child, skipping:",A),e.firstChild){e.innerHTML="";break}}}catch(A){console.error("Error clearing container:",A);try{e.innerHTML=""}catch(e){console.error("Failed to reset innerHTML:",e)}}},[]),S=(0,et.useCallback)(()=>{if(!y.current||!h.current||!u)return;let e=h.current,A=y.current,t=e.clientWidth,r=e.clientHeight,{width:n,height:o}=u,i=r-40,a=n/o,s=t,l=t/a;l>i&&(l=i,s=i*a),A.width=n,A.height=o,A.style.width=`${s}px`,A.style.height=`${l}px`,A.style.marginTop="20px",A.style.marginBottom="20px"},[u]);(0,et.useEffect)(()=>{let e=()=>{S()};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[S]),(0,et.useEffect)(()=>{S()},[u,S]);let I=async()=>{if(rs.p.isSupported){let e=new rs.p;return{renderer:e,element:e.canvas}}let e=new rl.x;return{renderer:e,element:e.canvas}},R=async e=>{if(!ra.p.isSupported)throw Error("Current browser does not support WebCodecs API, please use the latest version of Chrome/Edge browser");let{renderer:A,element:t}=await I();if(y.current=t,h.current){let e=h.current.querySelector(".canvas-wrapper");e&&(k(e),e.appendChild(y.current))}return new ra.p({codec:e,renderer:A})},x=async()=>{if(E.current)try{let e=await E.current.snapshot();if(e){let A=URL.createObjectURL(e),t=document.createElement("a");t.href=A,t.download=`screenshot_${new Date().toISOString().replace(/:/g,"-")}.png`,t.click(),URL.revokeObjectURL(A)}}catch(e){console.error("screenshot failed:",e),alert("screenshot failed")}},j=(0,et.useCallback)(()=>{if(E.current)try{E.current.dispose(),E.current=null}catch(e){console.error("Error disposing decoder:",e)}h.current&&k(h.current.querySelector(".canvas-wrapper")),m.current&&(m.current.disconnect(),m.current=null),v.current&&(clearTimeout(v.current),v.current=null),b.current&&(clearTimeout(b.current),b.current=null),d(!1),l(!1),p(null)},[k]);(0,et.useImperativeHandle)(A,()=>({disconnectDevice:j}),[j]);let P=(0,et.useCallback)(async()=>{try{if(j(),d(!1),l(!0),p(null),await new Promise(e=>setTimeout(e,150)),!t){console.error("Cannot connect: missing server URL"),l(!1);return}let e=()=>{b.current&&(clearTimeout(b.current),b.current=null),b.current=setTimeout(()=>{var A;if(null==(A=m.current)?void 0:A.connected)try{m.current.emit("connect-device",{maxSize:n}),e()}catch(e){console.error("Failed to request connection:",e),G.Ay.error("connection request failed, please refresh the page")}else try{m.current&&setTimeout(()=>{m.current&&m.current.connect()},500)}catch(e){console.error("Failed to reconnect:",e),G.Ay.error("reconnection failed, please refresh the page")}},5e3)};if(m.current)m.current.connected?(m.current.emit("connect-device",{maxSize:n}),e()):m.current.connect();else try{m.current=(0,el.io)(t,{withCredentials:!0,reconnection:!0,reconnectionAttempts:5,reconnectionDelay:1e3,timeout:1e4}),m.current.on("connect",()=>{var A,t;(null==(A=m.current)?void 0:A.id)&&f(m.current.id),v.current&&(clearTimeout(v.current),v.current=null),null==(t=m.current)||t.emit("connect-device",{maxSize:n}),e()}),m.current.on("video-metadata",async e=>{try{let A,t,r;if(b.current&&(clearTimeout(b.current),b.current=null),E.current)try{E.current.dispose(),E.current=null}catch(e){console.error("Error disposing old decoder:",e)}if(h.current){let e=h.current.querySelector(".canvas-wrapper");k(e)}let n=(null==e?void 0:e.codec)?e.codec:ri.n.H264;if(E.current=await R(n),!E.current)throw Error("Failed to create decoder");E.current.sizeChanged(e=>{let{width:A,height:t}=e;p({width:A,height:t})}),(A=!1,t=[],r=new TransformStream({transform(e,r){let n={type:e.type,data:new Uint8Array(e.data),timestamp:e.timestamp};"configuration"===n.type?(r.enqueue(n),A=!0,t.length>0&&(t.forEach(e=>r.enqueue(e)),t=[])):"data"===n.type?A?r.enqueue(n):t.push(n):r.enqueue(n)}}),new ReadableStream({start(e){let A=!1,t=t=>{if(!A)try{e.enqueue(t)}catch(e){console.error("error occurred while enqueuing video data:",e),A=!0,o()}},r=t=>{console.error("stream error:",t),A||(e.error(Error(t.message)),A=!0,o())},n=()=>{A||(e.close(),A=!0,o())},o=()=>{m.current&&(m.current.off("video-data",t),m.current.off("error",r),m.current.off("disconnect",n))};return m.current&&(m.current.on("video-data",t),m.current.on("error",r),m.current.on("disconnect",n)),()=>{A=!0,o()}}}).pipeThrough(r)).pipeTo(E.current.writable).catch(e=>{console.error("video stream processing error:",e)}),d(!0),l(!1)}catch(e){console.error("Failed to initialize decoder:",e),l(!1)}}),m.current.on("error",e=>{console.error("server error:",e),G.Ay.error("server error"),l(!1),b.current&&(clearTimeout(b.current),b.current=null)}),m.current.on("disconnect",()=>{d(!1),b.current&&(clearTimeout(b.current),b.current=null),E.current&&(E.current.dispose(),E.current=null),h.current&&k(h.current.querySelector(".canvas-wrapper")),i&&!v.current&&(v.current=setTimeout(()=>{v.current=null,P()},a))})}catch(e){console.error("Failed to create socket connection:",e),l(!1),i&&!v.current&&(v.current=setTimeout(()=>{v.current=null,P()},a))}}catch(e){l(!1),console.error(`Failed to connect: ${e.message}`),G.Ay.error("connection failed"),i&&!v.current&&(v.current=setTimeout(()=>{v.current=null,P()},a))}},[t,n,i,a,j]);return(0,et.useEffect)(()=>{if(o&&!c&&!s){let e=setTimeout(()=>{P()},300);return()=>clearTimeout(e)}},[o,c,s,P]),(0,et.useEffect)(()=>()=>{if(E.current)try{E.current.dispose(),E.current=null}catch(e){console.error("Error disposing decoder during unmount:",e)}if(h.current)try{let e=h.current.querySelector(".canvas-wrapper");e&&(e.innerHTML="")}catch(e){console.error("Error clearing canvas wrapper during unmount:",e)}m.current&&(m.current.disconnect(),m.current=null),v.current&&(clearTimeout(v.current),v.current=null),b.current&&(clearTimeout(b.current),b.current=null)},[]),(0,r.jsx)("div",{className:"scrcpy-container",children:(0,r.jsxs)(rc.A,{children:[c&&(0,r.jsxs)("div",{className:"header-bar",children:[(0,r.jsxs)("div",{className:"header-left",children:[(0,r.jsx)(rh,{style:{fontWeight:600,fontSize:12},children:"Screen Projection"}),(0,r.jsx)(ee.A,{placement:"bottom",title:`Device ID: ${g||"Unknown"}`,children:(0,r.jsx)(Y.A,{})})]}),(0,r.jsx)("div",{className:"screen-info",children:(0,r.jsxs)(rh,{type:"secondary",children:["size : ",null==u?void 0:u.width,"\xd7",null==u?void 0:u.height]})}),(0,r.jsxs)("div",{className:"header-right",children:[(0,r.jsx)(ee.A,{placement:"bottom",title:"Screenshot",children:(0,r.jsx)(eA.Ay,{icon:(0,r.jsx)(rf,{}),onClick:x})}),(0,r.jsx)(rd.A,{type:"vertical",style:{margin:"0 16px"}}),(0,r.jsx)(ee.A,{placement:"bottom",title:"Connect Device",children:(0,r.jsx)(eA.Ay,{disabled:c,style:{backgroundColor:"#fff"},icon:(0,r.jsx)(rg,{}),onClick:P})}),c&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(rd.A,{type:"vertical",style:{margin:"0 16px"}}),(0,r.jsx)(ee.A,{title:"Disconnect Device",children:(0,r.jsx)(eA.Ay,{icon:(0,r.jsx)(rm,{}),onClick:j})})]})]})]}),(0,r.jsx)(ru.A,{gutter:[16,16],children:(0,r.jsx)(rp.A,{span:24,children:(0,r.jsx)("div",{className:"video-section",children:(0,r.jsxs)("div",{ref:h,className:"video-container",children:[(0,r.jsx)("div",{className:"canvas-wrapper"}),!c&&C&&(0,r.jsxs)("div",{className:"empty-state",children:[(0,r.jsx)("div",{className:"empty-state-icon",children:"\uD83D\uDCF1"}),(0,r.jsx)("div",{className:"empty-state-text",children:s?"Connecting to device...":"No device connected"}),!s&&(0,r.jsx)(eA.Ay,{type:"primary",onClick:()=>{P()},children:"Connect now"}),s&&(0,r.jsx)("div",{className:"loading-spinner",children:(0,r.jsx)($.A,{size:"large"})})]}),!C&&(0,r.jsx)("span",{children:"Please launch playground server!"})]})})})})]})})}),{Content:rE}=ei.A,rv=document.getElementById("root");rv&&n.createRoot(rv).render((0,r.jsx)(function(){let[e,A]=(0,et.useState)(null),[t,n]=(0,et.useState)(!1),[o,i]=G.Ay.useMessage(),[a,s]=(0,et.useState)(`http://${window.location.hostname}:5700`),[l,c]=(0,et.useState)(!1),[d,u]=(0,et.useState)(!1),{config:p}=P();(0,et.useEffect)(()=>{!function(e){let A=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=!(arguments.length>2)||void 0===arguments[2]||arguments[2];try{V(e,A)}catch(A){let e=A instanceof Error?A:Error(String(A));return console.error("Failed to override AI config:",e),t&&G.Ay.error(`Failed to apply AI configuration: ${e.message}`),!1}}(p)},[p]),(0,et.useEffect)(()=>{let e=window.SCRCPY_PORT;e&&s(`http://${window.location.hostname}:${e}`)},[]);let g=(0,et.useRef)(null),f=(0,et.useRef)(null);return(0,et.useEffect)(()=>{if(!a)return;let e=(0,el.io)(a,{withCredentials:!0,reconnectionAttempts:5,reconnectionDelay:1e3,timeout:5e3});return e.on("connect",()=>{e.emit("get-devices")}),e.on("devices-list",e=>{e.currentDeviceId&&(A(e.currentDeviceId),n(!0))}),e.on("connect_error",e=>{console.error("Socket.IO connection error:",e),o.error("Waiting for device server connection, please try again later")}),e.on("error",e=>{console.error("Socket.IO error:",e),o.error(`Error occurred while communicating with the server: ${e.message||"Unknown error"}`)}),g.current=e,()=>{e.disconnect()}},[o,a]),(0,et.useEffect)(()=>{if(t){let e=setTimeout(()=>{n(!1)},800);return()=>clearTimeout(e)}},[t]),(0,et.useEffect)(()=>{let e=()=>{c(window.innerWidth<=1024)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),(0,et.useEffect)(()=>{u(!!e&&/^\d+\.\d+\.\d+\.\d+:\d+$/.test(e))},[e]),(0,r.jsxs)(ea.Ay,{theme:{token:{colorPrimary:"#2B83FF"},components:{Layout:{headerHeight:60,headerPadding:"0 30px",headerBg:"#FFF",bodyBg:"#FFF"}}},children:[i,(0,r.jsx)(ei.A,{className:"app-container playground-container vertical-mode",children:(0,r.jsx)(rE,{className:"app-content",children:(0,r.jsxs)(es.YZ,{autoSaveId:"android-playground-layout",direction:l?"vertical":"horizontal",children:[(0,r.jsx)(es.Zk,{defaultSize:l?67:32,maxSize:l?85:60,minSize:l?67:25,className:"app-panel left-panel",children:(0,r.jsx)("div",{className:"panel-content left-panel-content",children:(0,r.jsx)(ro,{})})}),(0,r.jsx)(es.TW,{className:`panel-resize-handle ${l?"vertical":"horizontal"}`}),(0,r.jsx)(es.Zk,{className:"app-panel right-panel",children:(0,r.jsxs)("div",{className:"panel-content right-panel-content",children:[(0,r.jsx)(e$,{selectedDeviceId:e,scrcpyPlayerRef:f}),d?(0,r.jsx)(eo,{getScreenshot:()=>fetch("/screenshot").then(e=>e.json()),getInterfaceInfo:()=>fetch("/interface-info").then(e=>e.json()),serverOnline:!0,isUserOperating:!1}):(0,r.jsx)(ry,{ref:f,serverUrl:a,autoConnect:t})]})})]})})})]})},{}))},91182(){},83198(e,A,t){"use strict";t.d(A,{ZH:()=>u});var r=t(53244),n=t(35207),o=t(13078),i=t.n(o),a=t(50217),s=t(29368),l=t(19152),c=t(85409);let d="midscene_run",u=e=>{if(!l.$9)return"";let A=(()=>{if(!l.$9)return"";let e=i().resolve(c.cwd(),l.$9?(0,a.j)(s.Tr)||d:"");if(!(0,r.existsSync)(e))try{(0,r.mkdirSync)(e,{recursive:!0})}catch(A){e=i().join((0,n.tmpdir)(),d),(0,r.mkdirSync)(e,{recursive:!0})}return e})(),t=i().join(A,e);return(0,r.existsSync)(t)||(0,r.mkdirSync)(t,{recursive:!0}),t}},50217(e,A,t){"use strict";t.d(A,{j:()=>o});var r=t(29368),n=t(85409);let o=e=>{if(!r.Wh.includes(e))throw Error(`getBasicEnvValue with key ${e} is not supported.`);return n.env[e]}},29368(e,A,t){"use strict";t.d(A,{$:()=>x,$H:()=>g,$L:()=>c,$l:()=>i,AU:()=>C,BQ:()=>j,CA:()=>R,Cn:()=>el,DL:()=>eE,El:()=>z,FU:()=>u,HR:()=>n,I2:()=>r,IQ:()=>p,JM:()=>w,Jq:()=>k,Km:()=>y,Lg:()=>eb,Lh:()=>q,M1:()=>b,NF:()=>O,OK:()=>ei,OY:()=>eu,Od:()=>P,Sk:()=>B,T4:()=>J,TN:()=>L,Tr:()=>Z,UH:()=>eR,V7:()=>H,VM:()=>v,Vb:()=>ep,W4:()=>h,Wh:()=>eh,XE:()=>eC,YK:()=>Q,Yf:()=>U,Yg:()=>G,Z$:()=>es,Z7:()=>V,ZX:()=>l,_j:()=>eS,_q:()=>X,aK:()=>E,aO:()=>ef,ag:()=>ea,b6:()=>I,c$:()=>ey,d8:()=>M,fS:()=>eA,fZ:()=>s,ho:()=>D,iw:()=>d,jG:()=>S,j_:()=>T,kX:()=>F,mZ:()=>er,n0:()=>a,nc:()=>ee,pp:()=>K,rd:()=>ev,rg:()=>f,sg:()=>ec,tk:()=>ek,u1:()=>eg,v:()=>_,v4:()=>o,vC:()=>W,wu:()=>ed,xP:()=>et,xg:()=>Y,y2:()=>$,yR:()=>em,yb:()=>N,zD:()=>m,zG:()=>eo,zQ:()=>en});let r="MIDSCENE_MODEL_INIT_CONFIG_JSON",n="MIDSCENE_MODEL_NAME",o="MIDSCENE_DEBUG_MODEL_PROFILE",i="MIDSCENE_DEBUG_MODEL_RESPONSE",a="MIDSCENE_DEBUG_MODE",s="MIDSCENE_FORCE_DEEP_THINK",l="MIDSCENE_LANGSMITH_DEBUG",c="MIDSCENE_LANGFUSE_DEBUG",d="MIDSCENE_MODEL_SOCKS_PROXY",u="MIDSCENE_MODEL_HTTP_PROXY",p="MIDSCENE_MODEL_API_KEY",g="MIDSCENE_MODEL_BASE_URL",f="MIDSCENE_MODEL_MAX_TOKENS",m="MIDSCENE_MODEL_TIMEOUT",h="MIDSCENE_MODEL_TEMPERATURE",y="MIDSCENE_MODEL_RETRY_COUNT",E="MIDSCENE_MODEL_RETRY_INTERVAL",v="MIDSCENE_MODEL_REASONING_EFFORT",b="MIDSCENE_MODEL_REASONING_ENABLED",C="MIDSCENE_MODEL_REASONING_BUDGET",k="OPENAI_API_KEY",S="OPENAI_BASE_URL",I="MIDSCENE_OPENAI_INIT_CONFIG_JSON",R="MIDSCENE_OPENAI_HTTP_PROXY",x="MIDSCENE_OPENAI_SOCKS_PROXY",j="OPENAI_MAX_TOKENS",P="MIDSCENE_CACHE",w="MIDSCENE_USE_VLM_UI_TARS",N="MIDSCENE_USE_QWEN_VL",O="MIDSCENE_USE_QWEN3_VL",K="MIDSCENE_USE_DOUBAO_VISION",T="MIDSCENE_USE_GEMINI",B="MATCH_BY_POSITION",D="MIDSCENE_REPORT_TAG_NAME",M="MIDSCENE_REPORT_QUIET",z="MIDSCENE_PREFERRED_LANGUAGE",Q="MIDSCENE_CACHE_MAX_FILENAME_LENGTH",L="MIDSCENE_REPLANNING_CYCLE_LIMIT",Z="MIDSCENE_RUN_DIR",X="MIDSCENE_INSIGHT_MODEL_NAME",J="MIDSCENE_INSIGHT_MODEL_SOCKS_PROXY",U="MIDSCENE_INSIGHT_MODEL_HTTP_PROXY",F="MIDSCENE_INSIGHT_MODEL_BASE_URL",q="MIDSCENE_INSIGHT_MODEL_API_KEY",V="MIDSCENE_INSIGHT_MODEL_INIT_CONFIG_JSON",G="MIDSCENE_INSIGHT_MODEL_TIMEOUT",H="MIDSCENE_INSIGHT_MODEL_TEMPERATURE",W="MIDSCENE_INSIGHT_MODEL_RETRY_COUNT",Y="MIDSCENE_INSIGHT_MODEL_RETRY_INTERVAL",_="MIDSCENE_INSIGHT_MODEL_FAMILY",$="MIDSCENE_INSIGHT_MODEL_REASONING_EFFORT",ee="MIDSCENE_INSIGHT_MODEL_REASONING_ENABLED",eA="MIDSCENE_INSIGHT_MODEL_REASONING_BUDGET",et="MIDSCENE_PLANNING_MODEL_NAME",er="MIDSCENE_PLANNING_MODEL_SOCKS_PROXY",en="MIDSCENE_PLANNING_MODEL_HTTP_PROXY",eo="MIDSCENE_PLANNING_MODEL_BASE_URL",ei="MIDSCENE_PLANNING_MODEL_API_KEY",ea="MIDSCENE_PLANNING_MODEL_INIT_CONFIG_JSON",es="MIDSCENE_PLANNING_MODEL_TIMEOUT",el="MIDSCENE_PLANNING_MODEL_TEMPERATURE",ec="MIDSCENE_PLANNING_MODEL_RETRY_COUNT",ed="MIDSCENE_PLANNING_MODEL_RETRY_INTERVAL",eu="MIDSCENE_PLANNING_MODEL_FAMILY",ep="MIDSCENE_PLANNING_MODEL_REASONING_EFFORT",eg="MIDSCENE_PLANNING_MODEL_REASONING_ENABLED",ef="MIDSCENE_PLANNING_MODEL_REASONING_BUDGET",em="MIDSCENE_MODEL_FAMILY",eh=[a,o,i,Z],ey=[P,s,"MIDSCENE_MCP_USE_PUPPETEER_MODE","MIDSCENE_MCP_ANDROID_MODE",l,c,M],eE=[f,Q,L],ev=[f,j,"MIDSCENE_ADB_PATH","MIDSCENE_ADB_REMOTE_HOST","MIDSCENE_ADB_REMOTE_PORT","MIDSCENE_ANDROID_IME_STRATEGY","MIDSCENE_IOS_DEVICE_UDID","MIDSCENE_IOS_SIMULATOR_UDID",D,z,B,"MIDSCENE_MCP_CHROME_PATH","DOCKER_CONTAINER"],eb=[...ey,...eE,...ev],eC=[n,r,p,g,d,u,m,h,y,E,v,b,C,w,N,O,K,T,"MIDSCENE_USE_VL_MODEL",k,S,I,R,x,X,J,U,F,q,V,G,H,W,Y,_,$,ee,eA,et,er,en,eo,ei,ea,es,el,ec,ed,eu,ep,eg,ef,em],ek=["MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG",...eh,...eb,...eC],eS=["doubao-vision","doubao-seed","gemini","qwen2.5-vl","qwen3-vl","qwen3.5","vlm-ui-tars","vlm-ui-tars-doubao","vlm-ui-tars-doubao-1.5","glm-v","auto-glm","auto-glm-multilingual","gpt-5"];var eI,eR=((eI={}).V1_0="1.0",eI.V1_5="1.5",eI.DOUBAO_1_5_15B="doubao-1.5-15B",eI.DOUBAO_1_5_20B="doubao-1.5-20B",eI)},64565(e,A,t){"use strict";t.d(A,{Nw:()=>m,aZ:()=>function e(A,t){let r=`${p}:${A}`,o=(null==t?void 0:t.console)??!1,a=o?`${r}:withConsole`:r;if(!f.has(a))if(o){let t=e(A);f.set(a,function(){for(var e=arguments.length,A=Array(e),r=0;r<e;r++)A[r]=arguments[r];t(...A),console.warn("[Midscene]",...A)})}else{let e=c()(r);f.set(a,function(){for(var t=arguments.length,r=Array(t),o=0;o<t;o++)r[o]=arguments[o];u.$9&&function(e,A){if(!u.$9)return;let t=function(e){let A=e.replace(/:/g,"-");if(!g.has(A)){let e=i().join((0,d.ZH)("log"),`${A}.log`),t=n().createWriteStream(e,{flags:"a"});g.set(A,t)}return g.get(A)}(e),r=new Date,o=r.toLocaleDateString("sv-SE"),a=r.toLocaleTimeString("sv-SE"),s=r.getMilliseconds().toString().padStart(3,"0"),l=r.getTimezoneOffset(),c=Math.floor(Math.abs(l)/60).toString().padStart(2,"0"),p=(Math.abs(l)%60).toString().padStart(2,"0"),f=`${l<=0?"+":"-"}${c}:${p}`,m=`${o}T${a}.${s}${f}`;t.write(`[${m}] ${A}
9
9
  `)}(A,s().format(...r)),e(...r)})}return f.get(a)}});var r=t(53244),n=t.n(r),o=t(13078),i=t.n(o),a=t(1344),s=t.n(a),l=t(27617),c=t.n(l),d=t(83198),u=t(19152);let p="midscene",g=new Map,f=new Map;function m(e){u.$9||c().enable(`${p}:${e}`)}},19152(e,A,t){"use strict";t.d(A,{$9:()=>l,NB:()=>E,Qd:()=>C,gQ:()=>g,gV:()=>b,ht:()=>a,rS:()=>s,tD:()=>u,uR:()=>c,vA:()=>p,x3:()=>v});var r,n=t(87086),o=t(63961),i=t(85409);let a="undefined"!=typeof window,s="undefined"!=typeof WorkerGlobalScope,l=void 0!==i&&(null==(r=i.versions)?void 0:r.node);function c(){return(0,o.A)()}let d={};function u(e){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=JSON.stringify({content:A,rect:e}),r=5,o="",i=n.sha256.create().update(t).hex().split("").map(e=>String.fromCharCode(97+Number.parseInt(e,16)%26)).join("");for(;r<i.length-1;){if(d[o=i.slice(0,r)]&&d[o]!==t){r++;continue}d[o]=t;break}return o}function p(e,A){if(!e)throw Error(A||"Assertion failed")}function g(){for(var e=arguments.length,A=Array(e),t=0;t<e;t++)A[t]=arguments[t];console.log(...A)}let f=/</g,m=/>/g,h="__midscene_lt__",y="__midscene_gt__",E=e=>e.replace(f,h).replace(m,y),v=e=>{let A=RegExp(h,"g"),t=RegExp(y,"g");return e.replace(A,"<").replace(t,">")};function b(e){return e.replace(/[:*?"<>|# ]/g,"-")}function C(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}},82297(e){"use strict";if("undefined"==typeof sharp){var A=Error("Cannot find module 'sharp'");throw A.code="MODULE_NOT_FOUND",A}e.exports=sharp},26122(){},17407(){},9140(){},13009(){},52801(){},76970(){},63612(){},53244(){},25592(){}},s={};function l(e){var A=s[e];if(void 0!==A)return A.exports;var t=s[e]={exports:{}};return a[e].call(t.exports,t,t.exports,l),t.exports}l.m=a,l.n=e=>{var A=e&&e.__esModule?()=>e.default:()=>e;return l.d(A,{a:A}),A},A=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,l.t=function(t,r){if(1&r&&(t=this(t)),8&r||"object"==typeof t&&t&&(4&r&&t.__esModule||16&r&&"function"==typeof t.then))return t;var n=Object.create(null);l.r(n);var o={};e=e||[null,A({}),A([]),A(A)];for(var i=2&r&&t;("object"==typeof i||"function"==typeof i)&&!~e.indexOf(i);i=A(i))Object.getOwnPropertyNames(i).forEach(e=>{o[e]=()=>t[e]});return o.default=()=>t,l.d(n,o),n},l.d=(e,A)=>{for(var t in A)l.o(A,t)&&!l.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},l.f={},l.e=e=>Promise.all(Object.keys(l.f).reduce((A,t)=>(l.f[t](e,A),A),[])),l.u=e=>"static/js/async/"+e+"."+({195:"05312dd9",199:"de925865",221:"213edee4",271:"1691b0d2",35:"918ea007",376:"b7913581",467:"9dc30840",652:"af2f1788",856:"379e0ce3",860:"baac349b",985:"39436e58",990:"bb6496cd"})[e]+".js",l.miniCssF=e=>""+e+".css",l.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),l.o=(e,A)=>Object.prototype.hasOwnProperty.call(e,A),t={},l.l=function(e,A,r,n){if(t[e])return void t[e].push(A);if(void 0!==r)for(var o,i,a=document.getElementsByTagName("script"),s=0;s<a.length;s++){var c=a[s];if(c.getAttribute("src")==e||c.getAttribute("data-rspack")=="android-playground:"+r){o=c;break}}o||(i=!0,(o=document.createElement("script")).timeout=120,l.nc&&o.setAttribute("nonce",l.nc),o.setAttribute("data-rspack","android-playground:"+r),o.src=e),t[e]=[A];var d=function(A,r){o.onerror=o.onload=null,clearTimeout(u);var n=t[e];if(delete t[e],o.parentNode&&o.parentNode.removeChild(o),n&&n.forEach(function(e){return e(r)}),A)return A(r)},u=setTimeout(d.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=d.bind(null,o.onerror),o.onload=d.bind(null,o.onload),i&&document.head.appendChild(o)},l.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r=[],l.O=(e,A,t,n)=>{if(A){n=n||0;for(var o=r.length;o>0&&r[o-1][2]>n;o--)r[o]=r[o-1];r[o]=[A,t,n];return}for(var i=1/0,o=0;o<r.length;o++){for(var[A,t,n]=r[o],a=!0,s=0;s<A.length;s++)(!1&n||i>=n)&&Object.keys(l.O).every(e=>l.O[e](A[s]))?A.splice(s--,1):(a=!1,n<i&&(i=n));if(a){r.splice(o--,1);var c=t();void 0!==c&&(e=c)}}return e},l.p="/",l.b=document.baseURI||self.location.href,n={410:0},l.f.j=function(e,A){var t=l.o(n,e)?n[e]:void 0;if(0!==t)if(t)A.push(t[2]);else{var r=new Promise((A,r)=>t=n[e]=[A,r]);A.push(t[2]=r);var o=l.p+l.u(e),i=Error();l.l(o,function(A){if(l.o(n,e)&&(0!==(t=n[e])&&(n[e]=void 0),t)){var r=A&&("load"===A.type?"missing":A.type),o=A&&A.target&&A.target.src;i.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",i.name="ChunkLoadError",i.type=r,i.request=o,t[1](i)}},"chunk-"+e,e)}},l.O.j=e=>0===n[e],o=(e,A)=>{var t,r,[o,i,a]=A,s=0;if(o.some(e=>0!==n[e])){for(t in i)l.o(i,t)&&(l.m[t]=i[t]);if(a)var c=a(l)}for(e&&e(A);s<o.length;s++)r=o[s],l.o(n,r)&&n[r]&&n[r][0](),n[r]=0;return l.O(c)},(i=self.webpackChunkandroid_playground=self.webpackChunkandroid_playground||[]).forEach(o.bind(null,0)),i.push=o.bind(null,i.push.bind(i));var c=l.O(void 0,["783","552"],()=>l(15608));c=l.O(c)})();
10
- //# sourceMappingURL=index.4fd271a2.js.map
10
+ //# sourceMappingURL=index.60642267.js.map