@midscene/android-playground 0.27.7-beta-20250904153459.0 → 0.27.7-beta-20250905091950.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +4 -4
- package/static/index.html +1 -1
- package/static/static/js/{index.5704b956.js → index.f9093263.js} +3 -3
- package/static/static/js/index.f9093263.js.map +1 -0
- package/static/static/js/index.5704b956.js.map +0 -1
- /package/static/static/js/{index.5704b956.js.LICENSE.txt → index.f9093263.js.LICENSE.txt} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! For license information please see index.
|
|
1
|
+
/*! For license information please see index.f9093263.js.LICENSE.txt */
|
|
2
2
|
(()=>{"use strict";var e={69946:function(e,t,r){var o,i=r(31549),n=r(8082),a=r(18113),l=r(77410),s=r(80911),c=r(81232),d=r(72715);let u="MIDSCENE_OPENAI_INIT_CONFIG_JSON",p="MIDSCENE_MODEL_NAME",y="MIDSCENE_DEBUG_AI_PROFILE",h="MIDSCENE_DEBUG_AI_RESPONSE",m="MIDSCENE_OPENAI_SOCKS_PROXY",f="MIDSCENE_OPENAI_HTTP_PROXY",g="OPENAI_API_KEY",k="OPENAI_BASE_URL",v="MIDSCENE_USE_VLM_UI_TARS",C="MIDSCENE_USE_QWEN_VL",A="MIDSCENE_USE_DOUBAO_VISION",E="MIDSCENE_USE_GEMINI",N="MATCH_BY_POSITION",x="MIDSCENE_USE_AZURE_OPENAI",w="MIDSCENE_AZURE_OPENAI_SCOPE",S="MIDSCENE_AZURE_OPENAI_INIT_CONFIG_JSON",b="AZURE_OPENAI_ENDPOINT",I="AZURE_OPENAI_KEY",j="AZURE_OPENAI_API_VERSION",O="AZURE_OPENAI_DEPLOYMENT",D="MIDSCENE_USE_ANTHROPIC_SDK",P="ANTHROPIC_API_KEY",M="MIDSCENE_RUN_DIR",T="MIDSCENE_OPENAI_BASE_URL",L="MIDSCENE_OPENAI_API_KEY",K="MIDSCENE_OPENAI_USE_AZURE",R="MIDSCENE_AZURE_OPENAI_KEY",_="MIDSCENE_AZURE_OPENAI_ENDPOINT",F="MIDSCENE_AZURE_OPENAI_API_VERSION",z="MIDSCENE_AZURE_OPENAI_DEPLOYMENT",U="MIDSCENE_VL_MODE",Z="MIDSCENE_VQA_MODEL_NAME",B="MIDSCENE_VQA_OPENAI_SOCKS_PROXY",V="MIDSCENE_VQA_OPENAI_HTTP_PROXY",G="MIDSCENE_VQA_OPENAI_BASE_URL",H="MIDSCENE_VQA_OPENAI_API_KEY",Y="MIDSCENE_VQA_OPENAI_INIT_CONFIG_JSON",W="MIDSCENE_VQA_OPENAI_USE_AZURE",Q="MIDSCENE_VQA_USE_AZURE_OPENAI",J="MIDSCENE_VQA_AZURE_OPENAI_SCOPE",X="MIDSCENE_VQA_AZURE_OPENAI_KEY",q="MIDSCENE_VQA_AZURE_OPENAI_ENDPOINT",$="MIDSCENE_VQA_AZURE_OPENAI_API_VERSION",ee="MIDSCENE_VQA_AZURE_OPENAI_DEPLOYMENT",et="MIDSCENE_VQA_AZURE_OPENAI_INIT_CONFIG_JSON",er="MIDSCENE_VQA_USE_ANTHROPIC_SDK",eo="MIDSCENE_VQA_ANTHROPIC_API_KEY",ei="MIDSCENE_VQA_VL_MODE",en="MIDSCENE_PLANNING_MODEL_NAME",ea="MIDSCENE_PLANNING_OPENAI_SOCKS_PROXY",el="MIDSCENE_PLANNING_OPENAI_HTTP_PROXY",es="MIDSCENE_PLANNING_OPENAI_BASE_URL",ec="MIDSCENE_PLANNING_OPENAI_API_KEY",ed="MIDSCENE_PLANNING_OPENAI_INIT_CONFIG_JSON",eu="MIDSCENE_PLANNING_OPENAI_USE_AZURE",ep="MIDSCENE_PLANNING_USE_AZURE_OPENAI",ey="MIDSCENE_PLANNING_AZURE_OPENAI_SCOPE",eh="MIDSCENE_PLANNING_AZURE_OPENAI_KEY",em="MIDSCENE_PLANNING_AZURE_OPENAI_ENDPOINT",ef="MIDSCENE_PLANNING_AZURE_OPENAI_API_VERSION",eg="MIDSCENE_PLANNING_AZURE_OPENAI_DEPLOYMENT",ek="MIDSCENE_PLANNING_AZURE_OPENAI_INIT_CONFIG_JSON",ev="MIDSCENE_PLANNING_USE_ANTHROPIC_SDK",eC="MIDSCENE_PLANNING_ANTHROPIC_API_KEY",eA="MIDSCENE_PLANNING_VL_MODE",eE="MIDSCENE_GROUNDING_MODEL_NAME",eN="MIDSCENE_GROUNDING_OPENAI_SOCKS_PROXY",ex="MIDSCENE_GROUNDING_OPENAI_HTTP_PROXY",ew="MIDSCENE_GROUNDING_OPENAI_BASE_URL",eS="MIDSCENE_GROUNDING_OPENAI_API_KEY",eb="MIDSCENE_GROUNDING_OPENAI_INIT_CONFIG_JSON",eI="MIDSCENE_GROUNDING_OPENAI_USE_AZURE",ej="MIDSCENE_GROUNDING_USE_AZURE_OPENAI",eO="MIDSCENE_GROUNDING_AZURE_OPENAI_SCOPE",eD="MIDSCENE_GROUNDING_AZURE_OPENAI_KEY",eP="MIDSCENE_GROUNDING_AZURE_OPENAI_ENDPOINT",eM="MIDSCENE_GROUNDING_AZURE_OPENAI_API_VERSION",eT="MIDSCENE_GROUNDING_AZURE_OPENAI_DEPLOYMENT",eL="MIDSCENE_GROUNDING_AZURE_OPENAI_INIT_CONFIG_JSON",eK="MIDSCENE_GROUNDING_USE_ANTHROPIC_SDK",eR="MIDSCENE_GROUNDING_ANTHROPIC_API_KEY",e_="MIDSCENE_GROUNDING_VL_MODE",eF="OPENAI_USE_AZURE",ez=["MIDSCENE_DEBUG_MODE",y,h,M],eU=["MIDSCENE_CACHE","MIDSCENE_LANGSMITH_DEBUG","MIDSCENE_FORCE_DEEP_THINK","MIDSCENE_MCP_USE_PUPPETEER_MODE","MIDSCENE_MCP_ANDROID_MODE"],eZ=["MIDSCENE_CACHE_MAX_FILENAME_LENGTH","MIDSCENE_REPLANNING_CYCLE_LIMIT"],eB=["OPENAI_MAX_TOKENS","MIDSCENE_ADB_PATH","MIDSCENE_ADB_REMOTE_HOST","MIDSCENE_ADB_REMOTE_PORT","MIDSCENE_ANDROID_IME_STRATEGY","MIDSCENE_REPORT_TAG_NAME","MIDSCENE_PREFERRED_LANGUAGE",N,"MIDSCENE_MCP_CHROME_PATH","DOCKER_CONTAINER"],eV=[...eU,...eZ,...eB],eG=[p,u,L,T,K,m,f,x,w,S,D,v,C,A,E,"MIDSCENE_USE_VL_MODEL",P,_,R,F,z,U,g,k,eF,P,b,I,j,O,Z,B,V,G,H,Y,W,Q,J,X,q,$,ee,et,er,eo,ei,en,ea,el,es,ec,ed,eu,ep,ey,eh,em,ef,eg,ek,ev,eC,eA,eE,eN,ex,ew,eS,eb,eI,ej,eO,eD,eP,eM,eT,eL,eK,eR,e_],eH=["MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG",...ez,...eV,...eG];var eY=r(73656);let eW=e=>{if(!ez.includes(e))throw Error(`getBasicEnvValue with key ${e} is not supported.`);return eY.env[e]};r(93114);var eQ=r(73656);let eJ=void 0!==eQ&&(null==(o=eQ.versions)?void 0:o.node);function eX(e,t){if(!e)throw Error(t||"Assertion failed")}var eq=r(73656);let e$="midscene_run",e0=()=>eJ?eW(M)||e$:"",e1=()=>{if(!eJ)return"";let e=l.resolve(eq.cwd(),e0());if(!(0,a.existsSync)(e))try{(0,a.mkdirSync)(e,{recursive:!0})}catch(t){e=l.join((0,d.tmpdir)(),e$),(0,a.mkdirSync)(e,{recursive:!0})}return e},e2=e=>{if(!eJ)return"";let t=e1(),r=l.join(t,e);return(0,a.existsSync)(r)||(0,a.mkdirSync)(r,{recursive:!0}),r},e6="midscene",e3=new Map,e4=new Map;function e8(e){let t=`${e6}:${e}`;if(!e4.has(t)){let r=c(t);e4.set(t,(...t)=>{eJ&&function(e,t){if(!eJ)return;let r=function(e){let t=e.replace(/:/g,"-");if(!e3.has(t)){let e=l.join(e2("log"),`${t}.log`),r=a.createWriteStream(e,{flags:"a"});e3.set(t,r)}return e3.get(t)}(e),o=new Date,i=o.toLocaleDateString("sv-SE"),n=o.toLocaleTimeString("sv-SE"),s=o.getMilliseconds().toString().padStart(3,"0"),c=o.getTimezoneOffset(),d=Math.floor(Math.abs(c)/60).toString().padStart(2,"0"),u=(Math.abs(c)%60).toString().padStart(2,"0"),p=`${c<=0?"+":"-"}${d}:${u}`,y=`${i}T${n}.${s}${p}`;r.write(`[${y}] ${t}
|
|
3
3
|
`)}(e,s.format(...t)),r(...t)})}return e4.get(t)}let e5=()=>{var e;let t=eW(y),r="";t&&(console.warn("MIDSCENE_DEBUG_AI_PROFILE is deprecated, use DEBUG=midscene:ai:profile instead"),r="ai:profile"),eW(h)&&(console.warn("MIDSCENE_DEBUG_AI_RESPONSE is deprecated, use DEBUG=midscene:ai:response instead"),r=r?"ai:*":"ai:call"),r&&(e=r,eJ||c.enable(`${e6}:${e}`))},e7={modelName:p,socksProxy:m,httpProxy:f,openaiBaseURL:T,openaiApiKey:L,openaiExtraConfig:u,openaiUseAzureDeprecated:K,useAzureOpenai:x,azureOpenaiScope:w,azureOpenaiKey:R,azureOpenaiEndpoint:_,azureOpenaiApiVersion:F,azureOpenaiDeployment:z,azureExtraConfig:S,useAnthropicSdk:D,anthropicApiKey:"MIDSCENE_ANTHROPIC_API_KEY",vlMode:U},e9={modelName:p,socksProxy:m,httpProxy:f,openaiBaseURL:k,openaiApiKey:g,openaiExtraConfig:u,openaiUseAzureDeprecated:eF,useAzureOpenai:x,azureOpenaiScope:w,azureOpenaiKey:I,azureOpenaiEndpoint:b,azureOpenaiApiVersion:j,azureOpenaiDeployment:O,azureExtraConfig:S,useAnthropicSdk:D,anthropicApiKey:P,vlMode:"DEFAULT_MODEL_CONFIG_KEYS has no vlMode key"},te=(e,t="*")=>{if("string"!=typeof e||0===e.length)return e;if(e.length<=6)return e;let r=e.substring(0,3),o=e.substring(e.length-3),i=e.length-6,n=t.repeat(i);return`${r}${n}${o}`},tt=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>["openaiApiKey","azureOpenaiKey","anthropicApiKey"].includes(e)?[e,te(t)]:["openaiExtraConfig","azureExtraConfig"].includes(e)?[e,te(JSON.stringify(t))]:[e,t])),tr=(e,t)=>{if(t)try{return JSON.parse(t)}catch(t){throw Error(`Failed to parse ${e} as a JSON. ${t.message}`,{cause:t})}},to=(e,t,r)=>(o,i,n)=>{r?n?eX(o,`The ${i} must be a non-empty string because of the ${e} is declared as ${r} and ${n} has also been specified in ${t}, but got: ${o}. Please check your config.`):eX(o,`The ${i} must be a non-empty string because of the ${e} is declared as ${r} in ${t}, but got: ${o}. Please check your config.`):eX(o,`The ${i} must be a non-empty string, but got: ${o}. Please check your config.`)},ti=["doubao-vision","gemini","qwen-vl","vlm-ui-tars","vlm-ui-tars-doubao","vlm-ui-tars-doubao-1.5"],tn=e=>{if(!e)return{vlMode:void 0,uiTarsVersion:void 0};if(!ti.includes(e))throw Error(`the value ${e} is not a valid VL_MODE value, must be one of ${ti}`);return"vlm-ui-tars"===e?{vlMode:"vlm-ui-tars",uiTarsVersion:"1.0"}:"vlm-ui-tars-doubao"===e||"vlm-ui-tars-doubao-1.5"===e?{vlMode:"vlm-ui-tars",uiTarsVersion:"doubao-1.5-20B"}:{vlMode:e,uiTarsVersion:void 0}},ta=e=>{let t=e[A],r=e[C],o=e[v],i=e[E],n=[t&&A,r&&C,o&&v,i&&E].filter(Boolean);if(n.length>1)throw Error(`Only one vision mode can be enabled at a time. Currently enabled modes: ${n.join(", ")}. Please disable all but one mode.`);if(r)return{vlMode:"qwen-vl",uiTarsVersion:void 0};if(t)return{vlMode:"doubao-vision",uiTarsVersion:void 0};if(i)return{vlMode:"gemini",uiTarsVersion:void 0};if(o)if("1"===o)return{vlMode:"vlm-ui-tars",uiTarsVersion:"1.0"};else if("DOUBAO"===o||"DOUBAO-1.5"===o)return{vlMode:"vlm-ui-tars",uiTarsVersion:"doubao-1.5-20B"};else return{vlMode:"vlm-ui-tars",uiTarsVersion:`${o}`};return{vlMode:void 0,uiTarsVersion:void 0}},tl={VQA:{modelName:Z,socksProxy:B,httpProxy:V,openaiBaseURL:G,openaiApiKey:H,openaiExtraConfig:Y,openaiUseAzureDeprecated:W,useAzureOpenai:Q,azureOpenaiScope:J,azureOpenaiKey:X,azureOpenaiEndpoint:q,azureOpenaiApiVersion:$,azureOpenaiDeployment:ee,azureExtraConfig:et,useAnthropicSdk:er,anthropicApiKey:eo,vlMode:ei},grounding:{modelName:eE,socksProxy:eN,httpProxy:ex,openaiBaseURL:ew,openaiApiKey:eS,openaiExtraConfig:eb,openaiUseAzureDeprecated:eI,useAzureOpenai:ej,azureOpenaiScope:eO,azureOpenaiKey:eD,azureOpenaiEndpoint:eP,azureOpenaiApiVersion:eM,azureOpenaiDeployment:eT,azureExtraConfig:eL,useAnthropicSdk:eK,anthropicApiKey:eR,vlMode:e_},planning:{modelName:en,socksProxy:ea,httpProxy:el,openaiBaseURL:es,openaiApiKey:ec,openaiExtraConfig:ed,openaiUseAzureDeprecated:eu,useAzureOpenai:ep,azureOpenaiScope:ey,azureOpenaiKey:eh,azureOpenaiEndpoint:em,azureOpenaiApiVersion:ef,azureOpenaiDeployment:eg,azureExtraConfig:ek,useAnthropicSdk:ev,anthropicApiKey:eC,vlMode:eA},default:e7},ts=({keys:e,provider:t,valueAssert:r})=>{e5();let o=e8("ai:globalConfig"),i=t[e.socksProxy],n=t[e.httpProxy],a=t[e.vlMode];if(o("enter decideOpenaiSdkConfig with keys:",e),t[e.openaiUseAzureDeprecated]){o(`provider has ${e.openaiUseAzureDeprecated} with value${t[e.openaiUseAzureDeprecated]}`);let l=t[e.openaiBaseURL],s=t[e.openaiApiKey],c=tr(e.openaiExtraConfig,t[e.openaiExtraConfig]);return r(s,e.openaiApiKey,e.openaiUseAzureDeprecated),{socksProxy:i,httpProxy:n,vlModeRaw:a,openaiUseAzureDeprecated:!0,openaiApiKey:s,openaiBaseURL:l,openaiExtraConfig:c}}if(t[e.useAzureOpenai]){o(`provider has ${e.useAzureOpenai} with value ${t[e.useAzureOpenai]}`);let l=t[e.azureOpenaiScope],s=t[e.azureOpenaiKey],c=t[e.azureOpenaiEndpoint],d=t[e.azureOpenaiDeployment],u=t[e.azureOpenaiApiVersion],p=tr(e.azureExtraConfig,t[e.azureExtraConfig]),y=tr(e.openaiExtraConfig,t[e.openaiExtraConfig]);return r(s,e.azureOpenaiKey,e.useAzureOpenai),{socksProxy:i,httpProxy:n,vlModeRaw:a,useAzureOpenai:!0,azureOpenaiScope:l,azureOpenaiKey:s,azureOpenaiEndpoint:c,azureOpenaiDeployment:d,azureOpenaiApiVersion:u,azureExtraConfig:p,openaiExtraConfig:y}}if(t[e.useAnthropicSdk]){o(`provider has ${e.useAnthropicSdk} with value ${t[e.useAnthropicSdk]}`);let a=t[e.anthropicApiKey];return r(a,e.anthropicApiKey,e.useAnthropicSdk),{socksProxy:i,httpProxy:n,useAnthropicSdk:!0,anthropicApiKey:a}}{o("provider has no specific model SDK declared");let l=t[e.openaiBaseURL],s=t[e.openaiApiKey],c=tr(e.openaiExtraConfig,t[e.openaiExtraConfig]);return r(s,e.openaiApiKey),{socksProxy:i,httpProxy:n,vlModeRaw:a,openaiBaseURL:l,openaiApiKey:s,openaiExtraConfig:c}}},tc=(e,t)=>{if(e)if(t)return`UI-TARS=${t}`;else return`${e} mode`;return""},td=({intent:e,modelConfigFromFn:t,allConfig:r})=>{e5();let o=e8("ai:globalConfig");if(t){o("decideModelConfig base on agent.modelConfig()");let r=tl[e],i=t[r.modelName];o("Got modelName from modelConfigFn",i);let n=i?(o("query modelConfig from fn by intent got corresponding modelName, will get other corresponding keys"),r):(o("query modelConfig from fn by intent got no corresponding modelName, will get other keys by default"),eX(t[e7.modelName],`The return value of agent.modelConfig do not have a valid value with key ${e7.modelName}.`),e7),a=ts({keys:n,provider:t,valueAssert:to(n.modelName,"modelConfig",i)}),{vlMode:l,uiTarsVersion:s}=tn(a.vlModeRaw),c=tc(l,s),d={...a,modelName:t[n.modelName],vlMode:l,uiTarsVersion:s,modelDescription:c,from:"modelConfig"};return o(`decideModelConfig result by agent.modelConfig() with intent ${e}:`,tt(d)),d}let i="default"===e?e9:tl[e],n=r[i.modelName];if(o(`Get value of ${i.modelName} from globalConfig`,n),"default"!==e&&r[i.modelName]){let t=r[i.modelName];o(`Got intent ${e} corresponding modelName ${t} by key ${i.modelName} from globalConfig, will get other config by intent.`);let n=ts({keys:i,provider:r,valueAssert:to(i.modelName,"process.env",t)}),{vlMode:a,uiTarsVersion:l}=tn(n.vlModeRaw),s=tc(a,l),c={...n,modelName:t,vlMode:a,uiTarsVersion:l,modelDescription:s,from:"env"};return o(`decideModelConfig result by process.env with intent ${e}:`,tt(c)),c}o(`decideModelConfig as legacy logic with intent ${e}.`);let a=ts({keys:e9,provider:r,valueAssert:to(e9.modelName,"process.env")}),{vlMode:l,uiTarsVersion:s}=ta(r),c=tc(l,s),d={...a,modelName:r[e9.modelName]||"gpt-4o",vlMode:l,uiTarsVersion:s,modelDescription:c,from:"legacy-env"};return o(`decideModelConfig result by legacy logic with intent ${e}:`,tt(d)),d};var tu=r(73656);function tp(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}let ty=()=>eH.reduce((e,t)=>({...e,[t]:tu.env[t]}),Object.create(null)),th=()=>"undefined"!=typeof chrome&&chrome.runtime.id,tm=["VQA","default","grounding","planning"],tf=new class{initAllEnvConfig(){let e=ty();this.allEnvConfig=(()=>{if(this.override){this.debugLog("initAllConfig with override from overrideAIConfig");let{newConfig:t,extendMode:r}=this.override;return r?(this.debugLog("initAllConfig with extend mode from overrideAIConfig"),{...e,...t}):(this.debugLog("initAllConfig without override mode from overrideAIConfig"),{...t})}return this.debugLog("initAllConfig without override from overrideAIConfig"),e})()}initIntentConfigFromFn(){let e={VQA:void 0,default:void 0,grounding:void 0,planning:void 0};if(this.latestModelConfigFn)for(let t of tm){let r=this.latestModelConfigFn({intent:t});if(!r)throw Error(`The agent has an option named modelConfig is a function, but it return ${r} when call with intent ${t}, which should be a object.`);e[t]=r}return e}createUninitializedError(e){let t=Error(e);return t.GLOBAL_CONFIG_MANAGER_UNINITIALIZED_FLAG=!0,t}reset(){console.warn("globalConfigManager.reset should only be called in Midscene owner unit test"),this.initialized=!1,this.override=void 0,this.allEnvConfig=void 0,this.keysHaveBeenRead={},this.modelConfigByIntent={VQA:void 0,default:void 0,grounding:void 0,planning:void 0}}initModelConfigForIntent(){this.initAllEnvConfig();let e=this.initIntentConfigFromFn();for(let t of tm){let r=td({intent:t,allConfig:this.allEnvConfig,modelConfigFromFn:e[t]});this.modelConfigByIntent[t]=r}}initModelConfigForChromeExtension(){this.initAllEnvConfig(),this.modelConfigForChromeExtension=td({intent:"default",allConfig:this.allEnvConfig,modelConfigFromFn:void 0})}init(e){this.latestModelConfigFn=e,this.initModelConfigForIntent(),this.initialized=!0}getModelConfigByIntent(e){if(!this.initialized){if(th())return console.warn("globalConfigManager is not initialized but was called in chrome Extension, will get model config from env"),this.modelConfigForChromeExtension||this.initModelConfigForChromeExtension(),this.modelConfigForChromeExtension;throw this.createUninitializedError(`globalConfigManager is not initialized when call getModelConfigByIntent with intent ${e}`)}return this.modelConfigByIntent[e]}getEnvConfigValue(e){let t=this.allEnvConfig||tu.env;if(!eB.includes(e))throw Error(`getEnvConfigValue with key ${e} is not supported.`);if(e===N)throw Error("MATCH_BY_POSITION is deprecated, use MIDSCENE_USE_VL_MODEL instead");let r=t[e];return(this.keysHaveBeenRead[e]=!0,"string"==typeof r)?r.trim():r}getEnvConfigInNumber(e){let t=this.allEnvConfig||tu.env;if(!eZ.includes(e))throw Error(`getEnvConfigInNumber with key ${e} is not supported`);let r=t[e];return this.keysHaveBeenRead[e]=!0,Number(r||"")}getEnvConfigInBoolean(e){let t=this.allEnvConfig||tu.env;if(!eU.includes(e))throw Error(`getEnvConfigInBoolean with key ${e} is not supported`);let r=t[e];return this.keysHaveBeenRead[e]=!0,!!r&&(!!/^(true|1)$/i.test(r)||!/^(false|0)$/i.test(r)&&!!r.trim())}registerOverride(e,t=!1){var r;for(let t in e){if(![...eV,...eG].includes(t))throw Error(`Failed to override AI config, invalid key: ${t}`);let r=e[t];if("string"!=typeof r)throw Error(`Failed to override AI config, value for key ${t} must be a string, but got with type ${typeof r}`);this.keysHaveBeenRead[t]&&console.warn(`Warning: try to override AI config with key ${t} ,but it has been read.`)}let o=t?{...null==(r=this.override)?void 0:r.newConfig,...e}:e;this.override={newConfig:{...o},extendMode:t},this.initialized?this.initModelConfigForIntent():(this.initAllEnvConfig(),this.modelConfigForChromeExtension=void 0)}constructor(){tp(this,"override",void 0),tp(this,"initialized",!1),tp(this,"debugLog",void 0),tp(this,"modelConfigByIntent",{VQA:void 0,default:void 0,grounding:void 0,planning:void 0}),tp(this,"allEnvConfig",void 0),tp(this,"keysHaveBeenRead",{}),tp(this,"latestModelConfigFn",void 0),tp(this,"modelConfigForChromeExtension",void 0),e5();let e=e8("ai:global-config");this.debugLog=e}},tg=(e,t=!1)=>{tf.registerOverride(e,t)};var tk=r(62858),tv={};tv.d=(e,t)=>{for(var r in t)tv.o(t,r)&&!tv.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},tv.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),tv.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var tC={};tv.r(tC),tv.d(tC,{create:()=>tk.Ue});let{create:tA}=tC,tE="midscene-auto-zoom",tN="midscene-background-visible",tx="midscene-elements-visible",tw=tA(e=>{let t="false"!==localStorage.getItem(tE);return{backgroundVisible:"false"!==localStorage.getItem(tN),elementsVisible:"false"!==localStorage.getItem(tx),autoZoom:t,setBackgroundVisible:t=>{e({backgroundVisible:t}),localStorage.setItem(tN,t.toString())},setElementsVisible:t=>{e({elementsVisible:t}),localStorage.setItem(tx,t.toString())},setAutoZoom:t=>{e({autoZoom:t}),localStorage.setItem(tE,t.toString())}}}),tS="midscene-env-config",tb="midscene-service-mode",tI="midscene-tracking-active-tab",tj="midscene-deep-think",tO="midscene-screenshot-included",tD="midscene-dom-included",tP=()=>localStorage.getItem(tS)||"",tM=e=>{let t=e.split("\n"),r={};return t.forEach(e=>{let t=e.trim();if(t.startsWith("#"))return;let o=t.replace(/^export\s+/i,"").replace(/;$/,"").trim().match(/^(\w+)=(.*)$/);if(o){let[,e,t]=o,i=t.trim();(i.startsWith("'")&&i.endsWith("'")||i.startsWith('"')&&i.endsWith('"'))&&(i=i.slice(1,-1)),r[e]=i}}),r},tT=tA((e,t)=>{let r=tP(),o=tM(r),i=window.location.href.startsWith("chrome-extension"),n=localStorage.getItem(tb),a="false"!==localStorage.getItem(tI),l="true"===localStorage.getItem(tj),s="false"!==localStorage.getItem(tO),c=localStorage.getItem(tD)||"false";return{serviceMode:i?"In-Browser-Extension":n||"Server",setServiceMode:t=>{if(i)throw Error("serviceMode cannot be set in extension");e({serviceMode:t}),localStorage.setItem(tb,t)},config:o,configString:r,setConfig:t=>e({config:t}),loadConfig:t=>{e({config:tM(t),configString:t}),localStorage.setItem(tS,t)},syncFromStorage:()=>{let t=tP();e({config:tM(t),configString:t})},forceSameTabNavigation:a,setForceSameTabNavigation:t=>{e({forceSameTabNavigation:t}),localStorage.setItem(tI,t.toString())},deepThink:l,setDeepThink:t=>{e({deepThink:t}),localStorage.setItem(tj,t.toString())},screenshotIncluded:s,setScreenshotIncluded:t=>{e({screenshotIncluded:t}),localStorage.setItem(tO,t.toString())},domIncluded:"visible-only"===c?"visible-only":"true"===c,setDomIncluded:t=>{e({domIncluded:t}),localStorage.setItem(tD,t.toString())},popupTab:"playground",setPopupTab:t=>{e({popupTab:t})}}});var tL=r(44194),tK=r(43427);r(15787),r(5460),r(57861).Buffer,r(73656),r(21437),r(93096),r(11260),r(75044),r(57861),r(5174),r(17444),e8("img"),r(25626),r(27736),r(17374),r(27641);var tR=r(55695);function t_(e){let t=[];return!function e(r){for(let o of(r.node&&t.push(r.node),r.children))e(o)}(e),t}new tR.Pf({template:`
|
|
4
4
|
Here is the item user want to find:
|
|
@@ -11,5 +11,5 @@ Here is the item user want to find:
|
|
|
11
11
|
<targetDescription>
|
|
12
12
|
{sectionDescription}
|
|
13
13
|
</targetDescription>
|
|
14
|
-
`,inputVariables:["sectionDescription"]}),e8("ai:inspect"),e8("ai:section"),e8("planning");var tG=r(73656);let tH={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(tH).reduce((e,[t,r])=>{let o=t.toLowerCase();return o!==t&&(e[o]=r),e},{});let tY="undefined"!=typeof window?/Mac|iPod|iPhone|iPad/.test(window.navigator.platform):"darwin"===tG.platform;function tW(e){return e.subType&&"Plan"!==e.subType?`${e.type} / ${e.subType||""}`:e.type}function tQ(e){var t,r,o,i,n,a,l,s,c,d,u,p;let y;if("Planning"===e.type&&(y=null==e||null==(t=e.param)?void 0:t.userInstruction),"Insight"===e.type&&(y=(null==e||null==(r=e.param)?void 0:r.prompt)||(null==e||null==(o=e.param)?void 0:o.id)||(null==e||null==(i=e.param)?void 0:i.dataDemand)||(null==e||null==(n=e.param)?void 0:n.assertion)),"Action"===e.type){let t=null==e?void 0:e.locate,r=t&&t?"string"==typeof t?t:"string"==typeof t.prompt?t.prompt:"object"==typeof t.prompt&&t.prompt.prompt?t.prompt.prompt:"":"";(y=e.thought||"","number"==typeof(null==e||null==(a=e.param)?void 0:a.timeMs))?y=`${null==e||null==(d=e.param)?void 0:d.timeMs}ms`:"string"==typeof(null==e||null==(l=e.param)?void 0:l.scrollType)?y=(p=null==e?void 0:e.param)?`${p.direction||"down"}, ${p.scrollType||"once"}, ${p.distance||"distance-not-set"}`:"":"string"==typeof(null==e||null==(s=e.param)?void 0:s.direction)&&(null==e?void 0:e.subType)==="AndroidPull"?y=function(e){if(!e)return"";let t=[];return t.push(`direction: ${e.direction||"down"}`),e.distance&&t.push(`distance: ${e.distance}`),e.duration&&t.push(`duration: ${e.duration}ms`),t.join(", ")}(null==e?void 0:e.param):void 0!==(null==e||null==(c=e.param)?void 0:c.value)&&(y=null==e||null==(u=e.param)?void 0:u.value),r&&(y=y?`${r} - ${y}`:r)}return void 0===y?"":"string"==typeof y?y:JSON.stringify(y,void 0,2)}tH.Enter.key,tH.Enter.key,tY?tH.Meta.key:tH.Control.key,tH.Shift.key,tH.Alt.key,tH.Space.key,tH.PageDown.key,tH.PageDown.key,tH.PageUp.key,tH.PageUp.key,r(91488),e8("ui-tars-planning"),e8("ai:insight"),r(40021),r(61546),r(73656),e8("yaml:utils"),r(73656),e8("yaml-player"),r(87333),r(81507),r(28977),r(73656),e8("web:tool:profile"),r(57861).Buffer,e8("cache"),e8("device-task-executor"),e8("agent"),tK.z.object({locate:tV.describe("The element to be tapped")}),tK.z.object({locate:tV.describe("The element to be right clicked")}),tK.z.object({locate:tV.describe("The element to be double clicked")}),tK.z.object({locate:tV.describe("The element to be hovered")}),tK.z.object({value:tK.z.string().describe("The value to be input"),locate:tV.describe("The element to be input")}),tK.z.object({locate:tV.describe("The element to be clicked before pressing the key").optional(),keyName:tK.z.string().describe("The key to be pressed")}),tK.z.object({direction:tK.z.enum(["down","up","right","left"]).default("down").describe("The direction to scroll"),scrollType:tK.z.enum(["once","untilBottom","untilTop","untilRight","untilLeft"]).default("once").describe("The scroll type"),distance:tK.z.number().nullable().optional().describe("The distance in pixels to scroll"),locate:tV.optional().describe("The element to be scrolled")}),tK.z.object({from:tV.describe("The position to be dragged"),to:tV.describe("The position to be dropped")});let tJ={ZOD_TYPES:{OPTIONAL:"ZodOptional",DEFAULT:"ZodDefault",NULLABLE:"ZodNullable",OBJECT:"ZodObject",ENUM:"ZodEnum",NUMBER:"ZodNumber",STRING:"ZodString"},FIELD_FLAGS:{LOCATION:"midscene_location_field_flag"}},tX=e=>"object"==typeof e&&null!==e&&("shape"in e||"ZodObject"===e.type),tq=e=>{var t,r,o;if((null==(t=e._def)?void 0:t.typeName)===tJ.ZOD_TYPES.OBJECT){let t;if(e._def.shape&&(t="function"==typeof e._def.shape?e._def.shape():e._def.shape),!t&&e.shape&&(t=e.shape),t&&tJ.FIELD_FLAGS.LOCATION in t)return!0;let o=(null==(r=e._def)?void 0:r.description)||e.description||"";if("string"==typeof o&&o.toLowerCase().includes("input field"))return!0}if("object"==typeof e&&null!==e){let t=e.description||(null==(o=e._def)?void 0:o.description)||"";if("string"==typeof t){let e=t.toLowerCase();if(e.includes("input field")||e.includes("element")||e.includes("locate"))return!0}if("ZodObject"===e.typeName||"ZodObject"===e.type)return"string"==typeof t&&t.toLowerCase().includes("input field")}return!1},t$=e=>{var t,r,o,i,n;let a=e,l=!1,s=!1;for(;(null==(t=a._def)?void 0:t.typeName)===tJ.ZOD_TYPES.OPTIONAL||(null==(r=a._def)?void 0:r.typeName)===tJ.ZOD_TYPES.DEFAULT||(null==(o=a._def)?void 0:o.typeName)===tJ.ZOD_TYPES.NULLABLE;)(null==(i=a._def)?void 0:i.typeName)===tJ.ZOD_TYPES.OPTIONAL&&(l=!0),(null==(n=a._def)?void 0:n.typeName)===tJ.ZOD_TYPES.DEFAULT&&(s=!0),a=a._def.innerType||a;return{actualField:a,isOptional:l,hasDefault:s}},t0=e=>{var t;let r=e;for(;null==(t=r._def)?void 0:t.innerType;){if(r._def.typeName===tJ.ZOD_TYPES.DEFAULT&&r._def.defaultValue)return r._def.defaultValue();r=r._def.innerType}},t1="http://localhost:5800",t2=async()=>{try{let e=await fetch(`${t1}/status`);return 200===e.status}catch(e){return!1}},t6=async function(e,t,r){let{requestId:o,deepThink:i,params:n,screenshotIncluded:a,domIncluded:l}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},s={context:e,type:t,prompt:r};return o&&(s.requestId=o),i&&(s.deepThink=i),void 0!==a&&(s.screenshotIncluded=a),void 0!==l&&(s.domIncluded=l),n&&(s.params=n),(await fetch(`${t1}/execute`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})).json()},t3=async e=>fetch(`${t1}/config`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({aiConfig:e})}),t4=async e=>{try{return(await fetch(`${t1}/cancel/${e}`)).json()}catch(e){return console.error("Failed to cancel task:",e),{error:"Failed to cancel task"}}},t8=async e=>{try{let t=await fetch(`${t1}/task-progress/${e}`);return await t.json()}catch(e){return console.error("Failed to poll task progress:",e),{tip:null}}},t5=async e=>{try{if(!e)return[];let t=await fetch(`${t1}/action-space`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({context:e})});if(t.ok)return await t.json();return[]}catch(e){return console.error("Failed to get action space:",e),[]}},t7=e=>{let t=(e.startsWith("ai")?e.slice(2):e).replace(/([A-Z])/g," $1").trim(),r=t.split(" ");return r.length>3?r.slice(-3).join(" "):t},t9=e=>"aiQuery"===e?"What do you want to query?":"aiAssert"===e?"What do you want to assert?":"aiTap"===e?"What element do you want to tap?":"aiDoubleClick"===e?"What element do you want to double-click?":"aiHover"===e?"What element do you want to hover over?":"aiInput"===e?"Format: <value> | <element>\nExample: hello world | search box":"aiRightClick"===e?"What element do you want to right-click?":"aiKeyboardPress"===e?"Format: <key> | <element (optional)>\nExample: Enter | text field":"aiScroll"===e?"Format: <direction> <amount> | <element (optional)>\nExample: down 500 | main content":"aiLocate"===e?"What element do you want to locate?":"aiBoolean"===e?"What do you want to check (returns true/false)?":"aiNumber"===e?"What number do you want to extract?":"aiString"===e?"What text do you want to extract?":"aiAsk"===e?"What do you want to ask?":"aiWaitFor"===e?"What condition do you want to wait for?":"What do you want to do?",re=(e,t,r,o,i,n)=>{if(!e)return!1;if(!(()=>{if(o){let e=o.find(e=>e.interfaceAlias===i||e.name===i);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(t){let e=r||{},t=null==o?void 0:o.find(e=>e.interfaceAlias===i||e.name===i);if((null==t?void 0:t.paramSchema)&&tX(t.paramSchema)){let r=t.paramSchema.shape||{};return Object.keys(r).every(t=>{let{isOptional:o}=t$(r[t]),i=e[t];return o||void 0!==i&&""!==i&&null!==i})}return!0}return n.trim().length>0},rt=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],[t,r]=(0,tL.useState)(!0),{serviceMode:o}=tT();return(0,tL.useEffect)(()=>{let t=!1;if(e)return Promise.resolve((async()=>{for(;!t;)await t2()?r(!0):r(!1),await new Promise(e=>setTimeout(e,1e3))})()),()=>{t=!0}},[o,e]),t},rr="data:image/png;base64,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",ro="data:image/png;base64,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",ri=(e,t,r)=>{let o,i=(o=e.width/e.height>=t/r?e.width:e.height/r*t)>400?.1:o>50?.2:.3,n=Math.min(t,o+t*i*2),a=Math.min(e.left-t*i,t-n);a=Math.max(a,0);let l=Math.min(e.top-r*i,r-r/t*n);return{left:Math.round(a),top:Math.round(l=Math.max(l,0)),width:Math.round(n)}},rn=(e,t)=>{let r=Math.min(e.left,t.left),o=Math.min(e.top,t.top);return{left:r,top:o,width:Math.max(e.left+e.width,t.left+t.width)-r}},ra=e=>"string"!=typeof e||0===e.length?e:e.charAt(0).toUpperCase()+e.slice(1),rl=e=>{let t,r,o,i=new Set;if(e.executions.forEach(e=>{e.sdkVersion&&(o=e.sdkVersion),e.tasks.forEach(e=>{var o,i;(null==(i=e.uiContext)||null==(o=i.size)?void 0:o.width)&&(t=e.uiContext.size.width,r=e.uiContext.size.height)})}),!t||!r)return console.warn("width or height is missing in dump file"),{scripts:[],sdkVersion:o,modelBriefs:[]};let n=[];e.executions.forEach(e=>{let o=rs(e,-1,t,r);o&&n.push(...o),e.tasks.forEach(e=>{if(e.usage){let{model_name:t,model_description:r,intent:o}=e.usage;o&&t&&i.add(r?`${ra(o)}/${t}(${r})`:t)}})});let a=n.filter((e,t)=>t===n.length-1||"Done"!==e.title),l=(()=>{var e;let t=[...i];if(!t.length)return t;let r=null==(e=t[0])?void 0:e.split("/",2)[1];return r&&t.slice(1).every(e=>(null==e?void 0:e.split("/",2)[1])===r)?[r]:t})();return{scripts:a,width:t,height:r,sdkVersion:o,modelBriefs:l}},rs=(e,t,r,o)=>{let i;if(!e||!e.tasks.length||0===r||0===o)return null;let n=[];if(-1===t)n=e.tasks;else{let r=e.tasks.findIndex(e=>e===t);if(-1===r)return console.error("task not found, cannot generate animation scripts"),null;if(r===e.tasks.length-1)return null;for(let t=r;t<e.tasks.length&&(!(t>r)||"Planning"!==e.tasks[t].type);t++)n.push(e.tasks[t])}if(0===n.length)return null;let a=ri({left:0,top:0,width:r,height:o},r,o),l=(e,t,r)=>({type:"pointer",img:e,duration:0,title:t,subTitle:r}),s=[],c=a,d=!1,u=n.length,p="",y=!1;return n.forEach((e,t)=>{var n,h,m,f,g,k,v,C,A,E,N,x,w,S;if(!y){if(0===t&&(p=tQ(e)),"Planning"===e.type)e.recorder&&e.recorder.length>0&&s.push({type:"img",img:null==(h=e.recorder)||null==(n=h[0])?void 0:n.screenshot,camera:0===t?a:void 0,duration:900,title:tW(e),subTitle:tQ(e)});else if("Insight"===e.type&&"Locate"===e.subType){let t=null==(m=e.output)?void 0:m.element,n=tW(e),l=tQ(e);(null==t?void 0:t.rect)&&(i={...ri(t.rect,r,o),pointerLeft:t.center[0],pointerTop:t.center[1]});let u=e.uiContext;if(null==u?void 0:u.screenshotBase64){let t,r=null==(f=e.log)?void 0:f.dump,o=u.tree?t_(u.tree).length:0;u.screenshotBase64&&s.push({type:"img",img:u.screenshotBase64,duration:300,title:n,subTitle:l}),t=c===a?void 0:i?rn(c,i):void 0,s.push({type:"insight",img:u.screenshotBase64,context:u,camera:t,highlightElement:(null==(g=e.output)?void 0:g.element)||void 0,searchArea:null==r||null==(k=r.taskInfo)?void 0:k.searchArea,duration:o>20?800:400,insightCameraDuration:800,title:n,subTitle:l}),s.push({type:"sleep",duration:300,title:n,subTitle:l}),d=!0}}else if("Action"===e.type&&"FalsyConditionStatement"!==e.subType){let r=tW(e),o=tQ(e);s.push(l(rr,r,o)),c=null!=i?i:a,s.push({type:"img",img:null==(C=e.recorder)||null==(v=C[0])?void 0:v.screenshot,duration:1e3,camera:"Sleep"===e.subType?a:i,title:r,subTitle:o}),d&&(s.push({type:"clear-insight",duration:200,title:r,subTitle:o}),d=!1);let n=900*(t<u-1);(null==(E=e.recorder)||null==(A=E[1])?void 0:A.screenshot)?(s.push({type:"spinning-pointer",duration:300,title:r,subTitle:o}),s.push(l(rr,r,o)),s.push({type:"img",img:null==(x=e.recorder)||null==(N=x[1])?void 0:N.screenshot,duration:n,title:r,subTitle:o})):s.push({type:"sleep",duration:n,title:r,subTitle:o})}else{let t=tW(e),r=tQ(e),o=null==(S=e.recorder)||null==(w=S[e.recorder.length-1])?void 0:w.screenshot;o&&s.push({type:"img",img:o,duration:900,camera:a,title:t,subTitle:r})}if("finished"!==e.status){y=!0;let t=tW(e),r=e.errorMessage||"unknown error",o=r.indexOf("NOT_IMPLEMENTED_AS_DESIGNED")>0?"Further actions cannot be performed in the current environment":r;s.push({type:"img",img:e.recorder&&e.recorder.length>0?e.recorder[e.recorder.length-1].screenshot:"",camera:a,duration:900,title:t,subTitle:o});return}}}),y||s.push({title:"Done",subTitle:p,type:"img",duration:900,camera:a}),s},rc=["#01204E"];function rd(e){return"searchArea"===e?"#028391":"#fd5907"}let ru=e=>{let{hideLogo:t=!1}=e;return t?null:(0,i.jsx)("div",{className:"logo",children:(0,i.jsx)("a",{href:"https://midscenejs.com/",target:"_blank",rel:"noreferrer",children:(0,i.jsx)("img",{alt:"Midscene_logo",src:"https://lf3-static.bytednsdoc.com/obj/eden-cn/vhaeh7vhabf/Midscene.png"})})})};var rp=r(42968),ry=r(79055),rh=r(51946),rm=r(70021);function rf(e){let{showTooltipWhenEmpty:t=!0,showModelName:r=!0,tooltipPlacement:o="bottom",mode:n="icon"}=e,{config:a,configString:l,loadConfig:s,syncFromStorage:c}=tT(),[d,u]=(0,tL.useState)(!1),[p,y]=(0,tL.useState)(l),h=a.MIDSCENE_MODEL_NAME,m=(0,tL.useRef)(null),f=e=>{c(),u(!0),e.preventDefault(),e.stopPropagation()};return(0,tL.useEffect)(()=>{d&&y(l)},[d,l]),(0,i.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"10px",alignItems:"center",height:"100%",minHeight:"32px"},ref:m,children:[r?h:null,(0,i.jsx)(ry.Z,{title:"Please set up your environment variables before using.",placement:o,align:{offset:[-10,5]},getPopupContainer:()=>m.current,open:!d&&(t?0===Object.keys(a).length:void 0),children:"icon"===n?(0,i.jsx)(rp.Z,{onClick:f}):(0,i.jsx)("span",{onClick:f,style:{color:"#006AFF",cursor:"pointer"},children:"set up"})}),(0,i.jsxs)(rh.Z,{title:"Model Env Config",open:d,onOk:()=>{u(!1),s(p)},onCancel:()=>{u(!1)},okText:"Save",style:{width:"800px",height:"100%",marginTop:"10%"},destroyOnClose:!0,maskClosable:!0,centered:!0,children:[(0,i.jsx)(rm.Z.TextArea,{rows:7,placeholder:"OPENAI_API_KEY=sk-...\nMIDSCENE_MODEL_NAME=gpt-4o-2024-08-06\n...",value:p,onChange:e=>y(e.target.value),style:{whiteSpace:"nowrap",wordWrap:"break-word"}}),(0,i.jsxs)("div",{children:[(0,i.jsx)("p",{children:"The format is KEY=VALUE and separated by new lines."}),(0,i.jsxs)("p",{children:["These data will be saved ",(0,i.jsx)("strong",{children:"locally in your browser"}),"."]})]})]})]})}var rg=r(35725),rk=r(9004),rv=r(13098),rC=r(93080),rA=r(18780),rE=r(7173),rN=r(18142),rx=r(39970),rw={};rw.d=(e,t)=>{for(var r in t)rw.o(t,r)&&!rw.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},rw.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),rw.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var rS={};rw.r(rS),rw.d(rS,{create:()=>tk.Ue});let{create:rb}=rS,rI="midscene-prompt-history-v2",rj="midscene-last-selected-type",rO=()=>{let e=localStorage.getItem(rI);return e?JSON.parse(e):{}},rD=()=>localStorage.getItem(rj)||"aiAction",rP=e=>{localStorage.setItem(rj,e)},rM=rb((e,t)=>({history:rO(),lastSelectedType:rD(),clearHistory:r=>{let o={...t().history};delete o[r],e({history:o}),localStorage.setItem(rI,JSON.stringify(o))},addHistory:r=>{let{type:o}=r,i=t().history,n=i[o]||[],a=JSON.stringify({prompt:r.prompt,params:r.params}),l=[r,...n.filter(e=>JSON.stringify({prompt:e.prompt,params:e.params})!==a)];l.length>10&&(l.length=10);let s={...i,[o]:l};e({history:s}),localStorage.setItem(rI,JSON.stringify(s))},getHistoryForType:e=>t().history[e]||[],setLastSelectedType:t=>{e({lastSelectedType:t}),rP(t)}}));var rT=r(75091);let rL=e=>(0,i.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:27,height:27,fill:"none",viewBox:"0 0 27 27",...e,children:(0,i.jsx)("path",{stroke:"#000",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"})});var rK=r(99598);let rR=e=>{let{text:t,disabled:r=!1,speed:o=5,className:n=""}=e,a={"--animation-duration":`${o}s`};return(0,i.jsx)("div",{className:`shiny-text ${r?"disabled":""} ${n}`,style:a,children:t})},r_=(0,i.jsxs)("span",{children:["Don't worry, just one more step to launch the playground server.",(0,i.jsx)("br",{}),"Please run one of the commands under the midscene project directory:",(0,i.jsx)("br",{}),"a. ",(0,i.jsx)("strong",{children:"npx midscene-playground"}),(0,i.jsx)("br",{}),"b. ",(0,i.jsx)("strong",{children:"npx --yes @midscene/web"})]}),rF=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:r_;return(0,i.jsx)("div",{className:"server-tip",children:(0,i.jsx)(rK.Z,{message:"Playground Server Not Ready",description:e,type:"warning"})})},rz=(0,i.jsx)("div",{className:"result-empty-tip",style:{textAlign:"center"},children:(0,i.jsx)(rR,{disabled:!0,text:"The result will be shown here"})}),rU={aiAction:{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"}},rZ=["aiAction","aiTap","aiQuery","aiAssert"],rB=e=>{let{showDeepThinkOption:t=!1,enableTracking:r=!1,showDataExtractionOptions:o=!1,hideDomAndScreenshotOptions:n=!1}=e,a=tT(e=>e.forceSameTabNavigation),l=tT(e=>e.setForceSameTabNavigation),s=tT(e=>e.deepThink),c=tT(e=>e.setDeepThink),d=tT(e=>e.screenshotIncluded),u=tT(e=>e.setScreenshotIncluded),p=tT(e=>e.domIncluded),y=tT(e=>e.setDomIncluded);if(!r&&!t&&!o)return null;let h=function(){let e=[];return r&&e.push({label:(0,i.jsx)(rT.Z,{onChange:e=>l(e.target.checked),checked:a,children:"limit popup to current tab"}),key:"track-config"}),t&&e.push({label:(0,i.jsx)(rT.Z,{onChange:e=>{c(e.target.checked)},checked:s,children:"deep think"}),key:"deep-think-config"}),o&&!n&&(e.push({label:(0,i.jsx)(rT.Z,{onChange:e=>{u(e.target.checked)},checked:d,children:"include screenshot in request"}),key:"screenshot-included-config"}),e.push({label:(0,i.jsxs)("div",{style:{padding:"4px 0"},children:[(0,i.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:"include DOM info in request"}),(0,i.jsxs)(rN.ZP.Group,{size:"small",value:p,onChange:e=>y(e.target.value),children:[(0,i.jsx)(rN.ZP,{value:!1,children:"Off"}),(0,i.jsx)(rN.ZP,{value:!0,children:"All"}),(0,i.jsx)(rN.ZP,{value:"visible-only",children:"Visible only"})]})]}),key:"dom-included-config"})),e}();return(0,i.jsx)("div",{className:"selector-trigger",children:(0,i.jsx)(rx.Z,{menu:{items:h},trigger:["click"],children:(0,i.jsx)(rL,{width:24,height:24})})})};var rV=r(4312),rG=r(80889);let{TextArea:rH}=rm.Z,rY=(e,t)=>`${e}${t?" (Optional)":""}`,rW=e=>{let{name:t,label:r,isRequired:o,marginBottom:n,placeholder:a}=e,l=a||`Enter ${t}`;return(0,i.jsx)(rC.Z.Item,{name:["params",t],label:rY(r,!o),rules:o?[{required:!0,message:`Please input ${t}`}]:[],style:{marginBottom:n},children:(0,i.jsx)(rm.Z,{placeholder:l})},t)},rQ=e=>{let{name:t,label:r,isRequired:o,marginBottom:n,placeholder:a}=e,l=a||`Describe the ${t}, use natural language`;return(0,i.jsx)(rC.Z.Item,{name:["params",t],label:rY(r,!o),rules:o?[{required:!0,message:`The ${t} is required`}]:[],style:{marginBottom:n},children:(0,i.jsx)(rH,{rows:2,placeholder:l})},t)},rJ=e=>{let{name:t,label:r,fieldSchema:o,isRequired:n,marginBottom:a,placeholder:l}=e,s=(o._def.values||[]).map(e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)}));return(0,i.jsx)(rC.Z.Item,{name:["params",t],label:r,rules:n?[{required:!0,message:`Please select ${t}`}]:[],style:{marginBottom:a},children:(0,i.jsx)(rV.Z,{placeholder:l||`Select ${t}`,options:s})},t)},rX=e=>{let{name:t,label:r,isRequired:o,marginBottom:n,placeholder:a}=e,l=500*("distance"===t),s=a&&Number(a)||l,c="distance"===t?1e4:void 0;return(0,i.jsx)(rC.Z.Item,{name:["params",t],label:`${r}${"distance"===t?" (px)":""}`,rules:o?[{required:!0,message:`Please input ${t}`},{type:"number",min:0,message:`${r} must be at least 0`}]:[{type:"number",min:0,message:`${r} must be at least 0`}],style:{flex:"distance"===t?1:void 0,marginBottom:n},children:(0,i.jsx)(rG.Z,{placeholder:s.toString(),min:0,max:c,step:"distance"===t?10:1,style:{width:"100%"}})},t)};var rq=r(80434);let r$=e=>(0,i.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:18,height:16,fill:"none",viewBox:"0 0 18 16",...e,children:(0,i.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"})}),r0=e=>(0,i.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:25,height:25,fill:"none",viewBox:"0 0 25 25",...e,children:[(0,i.jsx)("path",{stroke:"#000",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,i.jsx)("path",{stroke:"#000",strokeLinecap:"round",strokeLinejoin:"round",strokeOpacity:.85,strokeWidth:1.33,d:"M12.695 8.322v4.203l2.967 2.968"})]}),r1=e=>(0,i.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:19,height:19,fill:"none",viewBox:"0 0 19 19",...e,children:[(0,i.jsxs)("g",{stroke:"#000",strokeLinejoin:"round",strokeOpacity:.65,strokeWidth:1.5,clipPath:"url(#magnifying-glass_svg__a)",children:[(0,i.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,i.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,i.jsx)("defs",{children:(0,i.jsx)("clipPath",{id:"magnifying-glass_svg__a",children:(0,i.jsx)("path",{fill:"#fff",d:"M.522.04h18v18h-18z"})})})]}),{Text:r2}=rq.Z,r6=e=>{let{onSelect:t,history:r,currentType:o}=e,[n,a]=(0,tL.useState)(!1),[l,s]=(0,tL.useState)(""),c=rM(e=>e.clearHistory),d=(0,tL.useMemo)(()=>{let e=Date.now(),t=e-6048e5,o=e-31536e6,i=r.filter(e=>e.prompt.toLowerCase().includes(l.toLowerCase()));return{recent7Days:i.filter(e=>e.timestamp>=t),recent1Year:i.filter(e=>e.timestamp<t&&e.timestamp>=o),older:i.filter(e=>e.timestamp<o)}},[r,l]),u=e=>{t(e),a(!1)},p=(e,t)=>0===t.length?null:(0,i.jsxs)("div",{className:"history-group",children:[(0,i.jsx)("div",{className:"history-group-title",children:e}),t.map((e,t)=>(0,i.jsx)("div",{className:"history-item",onClick:()=>u(e),children:e.prompt},`${e.timestamp}-${t}`))]},e);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",{className:"selector-trigger",onClick:()=>a(!0),children:(0,i.jsx)(r0,{width:24,height:24})}),(0,i.jsx)(rh.Z,{open:n,onCancel:()=>a(!1),footer:null,width:"100%",closable:!1,centered:!1,transitionName:"",maskTransitionName:"",style:{margin:0,padding:0,maxWidth:"none",top:"auto",bottom:0},styles:{wrapper:{alignItems:"flex-end",justifyContent:"center",paddingBottom:0,display:"flex"},body:{height:"70vh",padding:0,margin:0},content:{height:"70vh",borderRadius:"12px 12px 0 0",margin:0,padding:0,marginBottom:0,position:"fixed",bottom:0,left:0,right:0}},maskClosable:!0,destroyOnClose:!0,children:(0,i.jsxs)("div",{className:"history-modal-container",children:[(0,i.jsxs)("div",{className:"history-modal-header",children:[(0,i.jsxs)(r2,{strong:!0,style:{fontSize:"16px"},children:["History (",r.length,")"]}),(0,i.jsx)(rA.ZP,{size:"small",type:"text",icon:(0,i.jsx)(r$,{width:16,height:16}),onClick:()=>a(!1),className:"close-button"})]}),(0,i.jsx)("div",{className:"history-search-section",children:(0,i.jsxs)("div",{className:"search-input-wrapper",children:[(0,i.jsx)(rm.Z,{placeholder:"Search",value:l,onChange:e=>s(e.target.value),prefix:(0,i.jsx)(r1,{width:18,height:18}),className:"search-input",allowClear:!0}),(0,i.jsx)(rA.ZP,{type:"link",onClick:()=>{c(o),s(""),a(!1)},className:"clear-button",disabled:0===r.length,children:"Clear"})]})}),(0,i.jsx)("div",{className:"history-content",children:0===r.length?(0,i.jsx)("div",{className:"no-results",children:(0,i.jsx)(r2,{type:"secondary",children:"No history record"})}):(0,i.jsxs)(i.Fragment,{children:[p("Last 7 days",d.recent7Days),p("Last 1 year",d.recent1Year),p("Earlier",d.older),l&&0===d.recent7Days.length&&0===d.recent1Year.length&&0===d.older.length&&(0,i.jsx)("div",{className:"no-results",children:(0,i.jsx)(r2,{type:"secondary",children:"No matching history record"})})]})})]})})]})},{TextArea:r3}=rm.Z,r4=e=>{let{runButtonEnabled:t,form:r,serviceMode:o,selectedType:n,dryMode:a,stoppable:l,loading:s,onRun:c,onStop:d,clearPromptAfterRun:u=!0,actionSpace:p,hideDomAndScreenshotOptions:y=!1}=e,[h,m]=(0,tL.useState)(!1),[f,g]=(0,tL.useState)(""),k=t9(n),v=(0,tL.useRef)(null),C=rC.Z.useWatch("params",r),A=(0,tL.useRef)(null),E=rM(e=>e.history),N=rM(e=>e.lastSelectedType),x=rM(e=>e.addHistory),w=rM(e=>e.setLastSelectedType),S=(0,tL.useMemo)(()=>E[n]||[],[E,n]),b=(0,tL.useMemo)(()=>{if(p){let e=p.find(e=>e.interfaceAlias===n||e.name===n);return!!(null==e?void 0:e.paramSchema)&&(!tX(e.paramSchema)||Object.keys(e.paramSchema.shape||{}).length>0)}return!1},[n,p]),I=(0,tL.useMemo)(()=>{if(p&&p.length>0){let e=p.find(e=>e.interfaceAlias===n||e.name===n);if(e){if(e.paramSchema&&tX(e.paramSchema)){let t=e.paramSchema.shape||{};return Object.keys(t).some(e=>{let{isOptional:r}=t$(t[e]);return!r})}return!!e.paramSchema}}return!0},[n,p]),j=(0,tL.useMemo)(()=>["aiQuery","aiBoolean","aiNumber","aiString","aiAsk","aiAssert"].includes(n),[n]),O=(0,tL.useMemo)(()=>{if("aiLocate"===n)return!0;if(p){let e=p.find(e=>e.interfaceAlias===n||e.name===n);if((null==e?void 0:e.paramSchema)&&tX(e.paramSchema)){let t=e.paramSchema;return Object.keys(t.shape).some(e=>{let{actualField:r}=t$(t.shape[e]);return tq(r)})}}return!1},[n,p]),D=(0,tL.useMemo)(()=>{let e=j&&!y;return"In-Browser-Extension"===o||O||e},[o,O,j,y]),P=(0,tL.useMemo)(()=>{let e=Object.keys(rU);if(!p||0===p.length)return e;let t=p.map(e=>e.interfaceAlias||e.name),r=new Set;return e.forEach(e=>{let o=rU[e];(null==o?void 0:o.group)==="extraction"||(null==o?void 0:o.group)==="validation"?r.add(e):t.includes(e)&&r.add(e)}),t.forEach(e=>{r.add(e)}),Array.from(r)},[p]),M=(0,tL.useCallback)(()=>{if(!b||!p)return{};let e=p.find(e=>e.interfaceAlias===n||e.name===n);if((null==e?void 0:e.paramSchema)&&tX(e.paramSchema)){let t={},r=e.paramSchema.shape||{};return Object.keys(r).forEach(e=>{let o=t0(r[e]);void 0!==o&&(t[e]=o)}),t}return{}},[n,b,p]);(0,tL.useEffect)(()=>{!r.getFieldValue("type")&&N&&r.setFieldValue("type",N)},[r,N]),(0,tL.useEffect)(()=>{n&&n!==N&&w(n)},[n,N,w]),(0,tL.useEffect)(()=>{let e=S[0];if(!e||!A.current||e.timestamp!==A.current.timestamp)if(e)r.setFieldsValue({type:e.type,prompt:e.prompt||"",params:e.params}),g(e.prompt||""),A.current=e;else{let e=M();r.setFieldsValue({prompt:"",params:e}),g(""),A.current=null}},[n,S,r,M]);let T=rC.Z.useWatch("prompt",r);(0,tL.useEffect)(()=>{T!==f&&g(T||"")},[T,f]);let L=(0,tL.useCallback)(e=>{r.setFieldsValue({prompt:e.prompt,type:e.type,params:e.params}),g(e.prompt)},[r]),K=(0,tL.useCallback)(e=>{g(e.target.value)},[]),R=(0,tL.useMemo)(()=>{if(!b||!p)return!1;let e=p.find(e=>e.interfaceAlias===n||e.name===n);return!!((null==e?void 0:e.paramSchema)&&tX(e.paramSchema))&&1===Object.keys(e.paramSchema.shape||{}).length},[n,b,p]),_=(0,tL.useMemo)(()=>re(t,!!b,C,p,n,f),[t,b,n,p,f,C]),F=(0,tL.useCallback)(()=>{let e=r.getFieldsValue(),t="";if(b&&e.params&&p){let r=p.find(e=>e.interfaceAlias===n||e.name===n);if((null==r?void 0:r.paramSchema)&&tX(r.paramSchema)){let o="",i=[],n=r.paramSchema.shape||{};Object.keys(n).forEach(t=>{let r=e.params[t];if(null!=r&&""!==r){let{actualField:e}=t$(n[t]);tq(e)?o=String(r):"distance"===t?i.push(`${r}`):i.push(String(r))}});let a=i.join(" ");t=o?`${o} - ${a}`:a}else t=e.prompt||""}else t=e.prompt||"";let o={type:e.type,prompt:t,params:e.params,timestamp:Date.now()};if(x(o),c(),u)if(A.current=o,g(""),b){let e=M();r.setFieldValue("params",e)}else r.setFieldValue("prompt","")},[r,x,c,b,n,u,p,M]),z=(0,tL.useCallback)(e=>{"Enter"===e.key&&e.metaKey&&_?(F(),e.preventDefault(),e.stopPropagation()):"Enter"===e.key&&setTimeout(()=>{if(v.current){let e=v.current.resizableTextArea.textArea,t=e.selectionStart,r=e.value.lastIndexOf("\n");(-1===r||t>r)&&(e.scrollTop=e.scrollHeight)}},0)},[F,_]),U=(0,tL.useCallback)(e=>{"Enter"===e.key&&e.metaKey&&_&&(F(),e.preventDefault(),e.stopPropagation())},[F,_]),Z=(0,tL.useCallback)(()=>{if(!b)return null;if(p){let e=p.find(e=>e.interfaceAlias===n||e.name===n);if((null==e?void 0:e.paramSchema)&&tX(e.paramSchema)){let t=e.paramSchema.shape||{},r=Object.keys(t);if(1===r.length){let e=r[0],{actualField:o}=t$(t[e]),a=tq(o),l=(()=>{var t,r;if(null==(t=o._def)?void 0:t.description)return o._def.description;if(o.description)return o.description;if(p){let t=p.find(e=>e.interfaceAlias===n||e.name===n);if((null==t?void 0:t.paramSchema)&&"object"==typeof t.paramSchema&&"shape"in t.paramSchema){let o=(t.paramSchema.shape||{})[e];if(null==o||null==(r=o._def)?void 0:r.description)return o._def.description;if(null==o?void 0:o.description)return o.description}}return a?"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,i.jsx)(rC.Z.Item,{name:["params",e],style:{margin:0},children:(0,i.jsx)(rm.Z.TextArea,{className:"main-side-console-input-textarea",rows:4,placeholder:l,autoFocus:!0,onKeyDown:U})})}let o=[];if(r.forEach((e,a)=>{var l,s;let{actualField:c,isOptional:d}=t$(t[e]),u=tq(c),y=e.charAt(0).toUpperCase()+e.slice(1),h=12*(a!==r.length-1),m=(()=>{var t,r;if(null==(t=c._def)?void 0:t.description)return c._def.description;if(c.description)return c.description;if(p){let t=p.find(e=>e.interfaceAlias===n||e.name===n);if((null==t?void 0:t.paramSchema)&&"object"==typeof t.paramSchema&&"shape"in t.paramSchema){let o=(t.paramSchema.shape||{})[e];if(null==o||null==(r=o._def)?void 0:r.description)return o._def.description;if(null==o?void 0:o.description)return o.description}}if(u)return"Describe the element you want to interact with"})(),f={name:e,label:y,fieldSchema:c,isRequired:!d,marginBottom:h,placeholder:m};u?o.push((0,i.jsx)(rQ,{...f},e)):(null==(l=c._def)?void 0:l.typeName)==="ZodEnum"?o.push((0,i.jsx)(rJ,{...f},e)):(null==(s=c._def)?void 0:s.typeName)==="ZodNumber"?o.push((0,i.jsx)(rX,{...f},e)):o.push((0,i.jsx)(rW,{...f},e))}),"aiScroll"===n){let e=o.find(e=>tL.isValidElement(e)&&"direction"===e.props.name),t=o.find(e=>tL.isValidElement(e)&&"distance"===e.props.name),r=o.filter(e=>tL.isValidElement(e)&&"direction"!==e.props.name&&"distance"!==e.props.name);if(e&&t)return(0,i.jsxs)("div",{className:"structured-params",children:[(0,i.jsxs)("div",{style:{display:"flex",gap:12,marginBottom:12},children:[e,t]}),r]})}return(0,i.jsx)("div",{className:"structured-params",children:o})}}return null},[n,b,p,U]),B=(0,tL.useCallback)(()=>{m(!0)},[]),V=(0,tL.useCallback)(()=>{m(!1)},[]),G=(0,tL.useCallback)(()=>{let e=e=>(0,i.jsx)(rA.ZP,{type:"primary",icon:(0,i.jsx)(rg.Z,{}),style:{borderRadius:20,zIndex:999},onClick:F,disabled:!_,loading:s,children:e});return a?"aiAction"===n?(0,i.jsx)(ry.Z,{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"):l?(0,i.jsx)(rA.ZP,{icon:(0,i.jsx)(rk.Z,{}),onClick:d,style:{borderRadius:20,zIndex:999},children:"Stop"}):e("Run")},[a,s,F,d,_,n,l]);return(0,i.jsxs)("div",{className:"prompt-input-wrapper",children:[(0,i.jsxs)(rE.Z,{className:"mode-radio-group-wrapper",children:[(0,i.jsxs)("div",{className:"mode-radio-group",children:[(0,i.jsx)(rC.Z.Item,{name:"type",style:{margin:0},children:(0,i.jsx)(rN.ZP.Group,{buttonStyle:"solid",disabled:!t,children:rZ.map(e=>{var t;return(0,i.jsx)(ry.Z,{title:(null==(t=rU[e])?void 0:t.title)||"",children:(0,i.jsx)(rN.ZP.Button,{value:e,children:t7(e)})},e)})})}),(0,i.jsx)(rx.Z,{menu:(()=>{let e=P.filter(e=>!rZ.includes(e)),t=[],o=e.filter(e=>{var t;return(null==(t=rU[e])?void 0:t.group)==="interaction"});o.length>0&&t.push({key:"interaction-group",type:"group",label:"Interaction APIs",children:o.map(e=>{var t;return{key:e,label:t7(e),title:(null==(t=rU[e])?void 0:t.title)||"",onClick:()=>{r.setFieldValue("type",e)}}})});let i=e.filter(e=>{var t;return(null==(t=rU[e])?void 0:t.group)==="extraction"});i.length>0&&t.push({key:"extraction-group",type:"group",label:"Data Extraction APIs",children:i.map(e=>{var t;return{key:e,label:t7(e),title:(null==(t=rU[e])?void 0:t.title)||"",onClick:()=>{r.setFieldValue("type",e)}}})});let n=e.filter(e=>{var t;return(null==(t=rU[e])?void 0:t.group)==="validation"});n.length>0&&t.push({key:"validation-group",type:"group",label:"Validation APIs",children:n.map(e=>{var t;return{key:e,label:t7(e),title:(null==(t=rU[e])?void 0:t.title)||"",onClick:()=>{r.setFieldValue("type",e)}}})});let a=e.filter(e=>!rU[e]);return a.length>0&&t.push({key:"device-specific-group",type:"group",label:"Device-Specific APIs",children:a.map(e=>({key:e,label:t7(e),title:"",onClick:()=>{r.setFieldValue("type",e)}}))}),{items:t}})(),placement:"bottomLeft",trigger:["click"],disabled:!t,children:(0,i.jsxs)(rA.ZP,{className:`more-apis-button ${!rZ.includes(n)?"selected-from-dropdown":""}`,children:[n&&!rZ.includes(n)?t7(n):"more",(0,i.jsx)(rv.Z,{style:{fontSize:"10px",marginLeft:"2px"}})]})})]}),(0,i.jsxs)("div",{className:"action-icons",children:[(0,i.jsx)(r6,{onSelect:L,history:S,currentType:n}),D&&(0,i.jsx)("div",{className:h?"settings-wrapper settings-wrapper-hover":"settings-wrapper",onMouseEnter:B,onMouseLeave:V,children:(0,i.jsx)(rB,{enableTracking:"In-Browser-Extension"===o,showDeepThinkOption:O,showDataExtractionOptions:j,hideDomAndScreenshotOptions:y})})]})]}),(0,i.jsxs)("div",{className:`main-side-console-input ${!t?"disabled":""} ${s?"loading":""}`,children:[I?b?R?Z():(0,i.jsx)("div",{className:"structured-params-container",children:Z()}):(0,i.jsx)(rC.Z.Item,{name:"prompt",style:{margin:0},children:(0,i.jsx)(r3,{className:"main-side-console-input-textarea",disabled:!t,rows:4,placeholder:k,autoFocus:!0,onKeyDown:z,onChange:K,ref:v})}):(0,i.jsxs)("div",{className:"no-input-method",style:{padding:"20px",textAlign:"center",color:"#666",fontSize:"14px"},children:['Click "Run" to execute ',t7(n)]}),(0,i.jsx)("div",{className:"form-controller-wrapper",children:G()})]})]})};var r8=r(16383),r5=r(92446);r(83264);var r7=r(15284),r9=r(11322),oe=r(50408),ot=r(94878),or=r(47877);let oo=e=>(0,i.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16",...e,children:(0,i.jsx)("path",{fill:"#333",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"})}),oi=e=>(0,i.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16",...e,children:[(0,i.jsx)("path",{stroke:"#333",strokeLinejoin:"round",strokeWidth:1.333,d:"M11.333 13.667 14.667 8l-3.334-5.667H4.667L1.333 8l3.334 5.667z"}),(0,i.jsx)("path",{stroke:"#333",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"})]}),on=e=>(0,i.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16",...e,children:(0,i.jsx)("path",{fill:"#333",d:"M13 1.835a2.165 2.165 0 0 1 .665 4.225v3.88a2.166 2.166 0 1 1-2.725 2.725H5.06a2.165 2.165 0 1 1-2.725-2.726V6.06A2.165 2.165 0 1 1 5.06 3.336h5.88c.281-.87 1.097-1.5 2.06-1.5m-10 9.33a.835.835 0 1 0 0 1.67.835.835 0 0 0 0-1.67m10 0a.835.835 0 1 0 0 1.67.835.835 0 0 0 0-1.67m-7.94-6.5A2.17 2.17 0 0 1 3.665 6.06v3.88c.66.213 1.181.734 1.395 1.395h5.88a2.17 2.17 0 0 1 1.395-1.396V6.06a2.17 2.17 0 0 1-1.395-1.394zM3 3.165a.835.835 0 1 0 0 1.67.835.835 0 0 0 0-1.67m10 0a.835.835 0 1 0 0 1.67.835.835 0 0 0 0-1.67"})});var oa=r(8811);let ol=(e,t,r)=>{let o,{left:i,top:n,width:a,height:l}=e;o="element"===r?rc[function(e){e||(e="unnamed");let t=5381;for(let r=0;r<e.length;r++)t=(t<<5)+t+e.charCodeAt(r);return t>>>0}(t)%rc.length]:"searchArea"===r?rd("searchArea"):rd("element");let s=new r7.TCu;if(s.beginFill(o,.4),s.lineStyle(1,o,1),s.drawRect(i,n,a,l),s.endFill(),s.filters=[new oa.pt({blur:2,quality:3,alpha:.4,offset:{x:4,y:4},color:3355443})],!t)return[s];let c=new r7.xvT(t,{fontSize:18,fill:0});return c.x=i,c.y=Math.max(n-22,0),[s,c]},os=new Map,oc=async e=>{if(!os.has(e))return r7.deM.load(e).then(t=>{os.set(e,t)})},od=e=>os.get(e);function ou(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}let op=(e,t,r,o,i)=>{let n=1-e;return t*n*n*n+3*r*e*n*n+3*o*e*e*n+i*e*e*e},oy=e=>of(e),oh=e=>op(e,0,.5,.5,1),om=e=>of(e),of=e=>e,og=e=>new Promise(t=>setTimeout(t,e)),ok="frame cancel (this is an error on purpose)",ov=()=>{let e=!1;return{frame:t=>{if(e)throw Error(ok);requestAnimationFrame(()=>{if(e)throw Error(ok);t(performance.now())})},timeout:(t,r)=>{if(e)throw Error(ok);setTimeout(()=>{if(e)throw Error(ok);t()},r)},cancel:()=>{e=!0}}},oC=e=>{let t=new Blob([e],{type:"text/html"}),r=URL.createObjectURL(t),o=document.createElement("a");o.href=r,o.download="midscene_report.html",o.click()};class oA{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)},this.mediaRecorder=e,this.recording=!0,this.mediaRecorder.start()}stop(){var e;if(!this.recording||!this.mediaRecorder)return void console.warn("not recording");this.mediaRecorder.onstop=()=>{let e=new Blob(this.chunks,{type:"video/webm"}),t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download="midscene_replay.webm",r.click(),URL.revokeObjectURL(t)},null==(e=this.mediaRecorder)||e.stop(),this.recording=!1,this.mediaRecorder=null}constructor(e){ou(this,"canvas",void 0),ou(this,"mediaRecorder",null),ou(this,"chunks",void 0),ou(this,"recording",!1),this.canvas=e,this.chunks=[]}}function oE(e){var t;let r,[o,n]=(0,tL.useState)(""),[a,l]=(0,tL.useState)(""),{autoZoom:s,setAutoZoom:c,elementsVisible:d,setElementsVisible:u}=tw();(0,tL.useEffect)(()=>{(null==e?void 0:e.autoZoom)!==void 0&&c(e.autoZoom)},[null==e?void 0:e.autoZoom,c]);let p=null==e?void 0:e.replayScripts,y=(null==e?void 0:e.imageWidth)||1920,h=(null==e?void 0:e.imageHeight)||1080,m=(null==e?void 0:e.fitMode)||"height",f=(0,tL.useRef)((null==p||null==(t=p[0])?void 0:t.img)||null),g=(0,tL.useRef)(null),k=(0,tL.useMemo)(()=>new r7.MxU,[]),v=(0,tL.useRef)(null),C=(0,tL.useRef)(null),[A,E]=(0,tL.useState)(0),N=()=>{E(Date.now())},x=(0,tL.useMemo)(()=>new r7.W20,[]),w=(0,tL.useMemo)(()=>{let e=new r7.W20;return e.zIndex=1,e},[]);(0,tL.useEffect)(()=>{w.visible=d},[d,w]);let S={left:0,top:0,width:y,pointerLeft:Math.round(y/2),pointerTop:Math.round(h/2)},[b,I]=(0,tL.useState)(-1),j=(0,tL.useRef)(!1);(0,tL.useEffect)(()=>(j.current=!1,()=>{j.current=!0}),[]);let O=(0,tL.useRef)({...S}),D=async()=>{let e=f.current;if(!e)return void console.warn("no image to update");od(e)||(console.warn("image not loaded",e),await oc(e));let t=od(e);if(!t)throw Error("texture not found");let r=r7.jyi.from(t);if(!r)throw Error("sprite not found");let o="main-img",i=x.getChildByLabel(o);i&&x.removeChild(i),r.label=o,r.zIndex=0,r.width=y,r.height=h,x.addChild(r)},P=e=>{var t,r;let o;C.current||(C.current=r7.jyi.from(ro),C.current.zIndex=3,C.current.anchor.set(.5,.5),C.current.scale.set(.5),C.current.label="spinning-pointer"),C.current.x=(null==(t=v.current)?void 0:t.x)||0,C.current.y=(null==(r=v.current)?void 0:r.y)||0,x.addChild(C.current);let i=!1,n=t=>{if(i)return;o||(o=t);let r=(Math.sin((t-o)/500-Math.PI/2)+1)/2*Math.PI*2;C.current&&(C.current.rotation=r),e(n)};return e(n),()=>{C.current&&x.removeChild(C.current),i=!0}},M=async(e,t,r)=>{var o,i;od(e)||(console.warn("image not loaded",e),await oc(e));let n=od(e);if(!n)throw Error("texture not found");let a=r7.jyi.from(n),l=null==(o=v.current)?void 0:o.x,s=null==(i=v.current)?void 0:i.y;if("number"==typeof t&&(l=t),"number"==typeof r&&(s=r),void 0===l||void 0===s)return void console.warn("invalid pointer position",t,r);if(v.current){let e=x.getChildByLabel("pointer");e&&x.removeChild(e)}v.current=a,v.current.x=l,v.current.y=s,v.current.label="pointer",v.current.zIndex=2,x.addChild(v.current)},T=e=>{O.current=e;let t=s?Math.max(1,y/e.width):1;x.scale.set(t),x.x=s?Math.round(0-e.left*t):0,x.y=s?Math.round(0-e.top*t):0;let r=x.getChildByLabel("pointer");r&&(r.scale.set(1/t),"number"==typeof e.pointerLeft&&"number"==typeof e.pointerTop&&(r.x=e.pointerLeft,r.y=e.pointerTop))},L=async(e,t,r)=>{if(!s){let o={...O.current},i=o.pointerLeft,n=o.pointerTop,a=performance.now();if("number"!=typeof e.pointerLeft||"number"!=typeof e.pointerTop||e.pointerLeft===i&&e.pointerTop===n)return;await new Promise(l=>{let s=c=>{let d=c-a,u=om(Math.min(d/t,1));T({...o,pointerLeft:i+(e.pointerLeft-i)*u,pointerTop:n+(e.pointerTop-n)*u}),d<t?r(s):l()};r(s)});return}let o={...O.current},i=o.left,n=o.top,a=o.pointerLeft,l=o.pointerTop,c=o.width/y,d=performance.now(),u="number"==typeof e.pointerLeft&&"number"==typeof e.pointerTop&&(e.pointerLeft!==a||e.pointerTop!==l),p=u?.375*t:0,m=t-p;await new Promise(o=>{let s=f=>{let g={...O.current},k=f-d;if(u)if(k<=p){let t=om(Math.min(k/p,1));g.pointerLeft=a+(e.pointerLeft-a)*t,g.pointerTop=l+(e.pointerTop-l)*t}else g.pointerLeft=e.pointerLeft,g.pointerTop=e.pointerTop;if(k>p){let t=oy(Math.min((k-p)/m,1)),r=c+(e.width/y-c)*t,o=y*r,a=h*r;g.width=o;let l=i+(e.left-i)*t,s=n+(e.top-n)*t,d=l+o-y,u=s+a-h;g.left=d>0?l+d:l,g.top=u>0?s+u:s}T(g),k<t?r(s):o()};r(s)})},K=function(e,t,r){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return new Promise(i=>{let n=performance.now(),a=l=>{let s=l-n,c=Math.min(s/t,1);e.alpha=0===o?1-of(c):of(c),s<t?r(a):i()};r(a)})},R=async(e,t,r)=>K(e,t,r,0),_=async(e,t,r,o,i)=>{w.removeChildren();let n=[...e],a=n.length,l=0;await new Promise(e=>{let s=performance.now(),c=d=>{let u=d-s,p=Math.floor(oh(Math.min(u/o,1))*a);for(;l<p;){let e=Math.floor(Math.random()*n.length),t=n.splice(e,1)[0];if(t){let[e]=ol(t.rect,t.content,"element");e.alpha=0,w.addChild(e),l++,K(e,80,i)}}if(u<o)i(c);else{for(;n.length>0;){let e=Math.floor(Math.random()*n.length),t=n.splice(e,1)[0],[r]=ol(t.rect,t.content,"element");r.alpha=1,w.addChild(r)}if(r){let[e]=ol(r,"Search Area","searchArea");e.alpha=1,w.addChild(e)}t.map(e=>{let[t]=ol(e.rect,e.content||"","highlight");t.alpha=1,w.addChild(t)}),e()}};i(c)})},F=async()=>{g.current&&p&&(await k.init({width:y,height:h,background:0xf4f4f4,autoDensity:!0,antialias:!0}),g.current&&(g.current.appendChild(k.canvas),x.x=0,x.y=0,k.stage.addChild(x),w.x=0,w.y=0,x.addChild(w)))},[z,U]=(0,tL.useState)(!1),Z=(0,tL.useRef)(null),B=()=>{let e;return Promise.resolve((async()=>{if(!k)throw Error("app is not initialized");if(!p)throw Error("scripts is required");let{frame:t,cancel:r,timeout:o}=ov();e=r;let i=p.filter(e=>!!e.img).map(e=>e.img);await Promise.all([...i,ro,rr].map(oc)),w.removeChildren(),await M(rr,y/2,h/2),await D(),await T({...S});let a=p.reduce((e,t)=>e+t.duration+(t.camera&&t.insightCameraDuration?t.insightCameraDuration:0),0),s=performance.now();I(0);let c=()=>{let e=Math.min((performance.now()-s)/a,1);if(I(e),e<1)return o(c,200)};for(let e in t(c),Z.current&&Z.current.start(),p){let r=p[e];if(n(r.title||""),l(r.subTitle||""),"sleep"===r.type)await og(r.duration);else if("insight"===r.type){var d;if(!r.img)throw Error("img is required");f.current=r.img,await D();let e=(null==(d=r.context)?void 0:d.tree)?t_(r.context.tree):[],o=r.highlightElement?[r.highlightElement]:[];if(await _(e,o,r.searchArea,r.duration,t),r.camera){if(!r.insightCameraDuration)throw Error("insightCameraDuration is required");await L(r.camera,r.insightCameraDuration,t)}}else if("clear-insight"===r.type)await R(w,r.duration,t),w.removeChildren(),w.alpha=1;else if("img"===r.type)r.img&&r.img!==f.current&&(f.current=r.img,await D()),r.camera?await L(r.camera,r.duration,t):await og(r.duration);else if("pointer"===r.type){if(!r.img)throw Error("pointer img is required");await M(r.img)}else if("spinning-pointer"===r.type){let e=P(t);await og(r.duration),e()}}Z.current&&(Z.current.stop(),Z.current=null,U(!1))})().catch(e=>{console.error("player error",e)})),()=>{null==e||e()}};(0,tL.useEffect)(()=>(Promise.resolve((async()=>{if(await F(),g.current&&y&&h){let e=y/h;g.current.style.setProperty("--canvas-aspect-ratio",e.toString()),g.current.setAttribute("data-fit-mode",m);let t=g.current.closest(".player-container");t&&t.setAttribute("data-fit-mode",m)}N()})()),()=>{try{k.destroy(!0,{children:!0,texture:!0})}catch(e){console.warn("destroy failed",e)}}),[y,h,m]),(0,tL.useEffect)(()=>{if(A)return B()},[A]);let[V,G]=(0,tL.useState)(!1),[H,Y]=(0,tL.useState)(!1),W=Math.round(100*b),Q=1===b;(0,tL.useEffect)(()=>{if(Q){let e=e=>{" "===e.key&&N()};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}},[Q]);let J=()=>{};return b<1?r=(0,i.jsx)(r5.Z,{indicator:(0,i.jsx)(r8.Z,{spin:!0,color:"#333"}),size:"default"}):V?(r=(0,i.jsx)(r5.Z,{indicator:(0,i.jsx)(r9.Z,{color:"#333"}),size:"default"}),J=()=>N()):r=(0,i.jsx)(r5.Z,{indicator:(0,i.jsx)(r9.Z,{color:"#333"}),size:"default"}),(0,i.jsxs)("div",{className:"player-container",children:[(0,i.jsx)("div",{className:"canvas-container",ref:g}),(0,i.jsx)("div",{className:"player-timeline-wrapper",children:(0,i.jsx)("div",{className:"player-timeline",children:(0,i.jsx)("div",{className:"player-timeline-progress",style:{width:`${W}%`,transition:0===b?"none":"0.3s"}})})}),(0,i.jsx)("div",{className:"player-tools-wrapper",children:(0,i.jsx)("div",{className:"player-tools",children:(0,i.jsxs)("div",{className:"player-control",children:[(0,i.jsxs)("div",{className:"status-text",children:[(0,i.jsx)("div",{className:"title",children:o}),(0,i.jsx)(ry.Z,{title:a,children:(0,i.jsx)("div",{className:"subtitle",children:a})})]}),z?null:(0,i.jsx)("div",{className:"status-icon",onMouseEnter:()=>G(!0),onMouseLeave:()=>G(!1),onClick:J,children:r}),(null==e?void 0:e.reportFileContent)?(0,i.jsx)(ry.Z,{title:"Download Report",children:(0,i.jsx)("div",{className:"status-icon",onMouseEnter:()=>G(!0),onMouseLeave:()=>G(!1),onClick:()=>oC(e.reportFileContent),children:(0,i.jsx)(oe.Z,{color:"#333"})})}):null,(0,i.jsx)(ry.Z,{title:z?"Generating...":"Export Video",children:(0,i.jsx)("div",{className:"status-icon",onClick:z?void 0:()=>Z.current?void console.warn("recorderSession exists"):k.canvas?void(Z.current=new oA(k.canvas),U(!0),N()):void console.warn("canvas is not initialized"),style:{opacity:z?.5:1,cursor:z?"not-allowed":"pointer"},children:z?(0,i.jsx)(r5.Z,{size:"default",percent:W}):(0,i.jsx)(ot.Z,{})})}),(0,i.jsx)(rx.Z,{trigger:["hover","click"],placement:"bottomRight",overlayStyle:{minWidth:"148px"},dropdownRender:e=>(0,i.jsx)("div",{style:{borderRadius:"8px",border:"1px solid rgba(0, 0, 0, 0.08)",backgroundColor:"#fff",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.08)",overflow:"hidden"},children:e}),menu:{style:{borderRadius:"8px",padding:0},items:[{key:"autoZoom",style:{height:"39px",margin:0,padding:"0 12px"},label:(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",height:"39px"},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[(0,i.jsx)(oo,{style:{width:"16px",height:"16px"}}),(0,i.jsx)("span",{style:{fontSize:"12px",marginRight:"16px"},children:"Focus on Cursor"})]}),(0,i.jsx)(or.Z,{size:"small",checked:s,onChange:e=>{c(e),N()},onClick:(e,t)=>{var r;return null==t||null==(r=t.stopPropagation)?void 0:r.call(t)}})]})},{key:"elementsVisible",style:{height:"39px",margin:0,padding:"0 12px"},label:(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",height:"39px"},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[(0,i.jsx)(on,{style:{width:"16px",height:"16px"}}),(0,i.jsx)("span",{style:{fontSize:"12px",marginRight:"16px"},children:"Show Element Markers"})]}),(0,i.jsx)(or.Z,{size:"small",checked:d,onChange:e=>{u(e),N()},onClick:(e,t)=>{var r;return null==t||null==(r=t.stopPropagation)?void 0:r.call(t)}})]})}]},children:(0,i.jsx)("div",{className:"status-icon",onMouseEnter:()=>Y(!0),onMouseLeave:()=>Y(!1),style:{cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",opacity:H?1:.7,transition:"opacity 0.2s"},children:(0,i.jsx)(oi,{style:{width:"16px",height:"16px"}})})})]})})})]})}let oN=e=>{let{result:t,loading:r,serverValid:o,serviceMode:n,replayScriptsInfo:a,replayCounter:l,loadingProgressText:s,verticalMode:c=!1,notReadyMessage:d,fitMode:u,autoZoom:p}=e,y="result-wrapper";c&&(y+=" vertical-mode-result"),a&&c&&(y+=" result-wrapper-compact");let h=rz;return o||"Server"!==n?r?h=(0,i.jsxs)("div",{className:"loading-container",children:[(0,i.jsx)(r5.Z,{spinning:r,indicator:(0,i.jsx)(r8.Z,{spin:!0})}),(0,i.jsx)("div",{className:"loading-progress-text loading-progress-text-progress",children:(0,i.jsx)(rR,{text:s,speed:3})})]}):a?h=(0,i.jsx)(oE,{replayScripts:a.scripts,imageWidth:a.width,imageHeight:a.height,reportFileContent:("In-Browser-Extension"===n||"Server"===n)&&(null==t?void 0:t.reportHTML)?null==t?void 0:t.reportHTML:null,fitMode:u,autoZoom:p},l):(null==t?void 0:t.error)?h=(0,i.jsx)("pre",{children:null==t?void 0:t.error}):(null==t?void 0:t.result)!==void 0&&(h="string"==typeof(null==t?void 0:t.result)?(0,i.jsx)("pre",{children:null==t?void 0:t.result}):(0,i.jsx)("pre",{children:JSON.stringify(null==t?void 0:t.result,null,2)})):h=rF(d),(0,i.jsx)("div",{className:y,style:{height:"100%",display:"flex",flexDirection:"column",flex:"1 1 auto"},children:h})};var ox=r(60247),ow=r(1754),oS=r(16327),ob=r(93636),oI=r(4465),oj=r(9450),oO=r(43876),oD=r(64838);let oP=e=>(0,i.jsx)("span",{className:"status-dot",style:{color:e},children:"●"}),oM=e=>{var t,r,o;let{devices:n,loadingDevices:a,selectedDeviceId:l,onDeviceSelect:s,socketRef:c,scrcpyPlayerRef:d}=e,[u,p]=(0,tL.useState)(!1),y=(0,tL.useRef)(null),[h,m]=ow.ZP.useMessage(),f=rt(!0),g=(0,tL.useCallback)(e=>{e!==y.current&&c.current&&c.current.connected&&(p(!1),s(e),y.current=e)},[s,c]),k=(0,tL.useCallback)(()=>{d.current&&(d.current.disconnectDevice(),h.info("Device disconnected"))},[d,h]),v=!!l&&(null==(t=n.find(e=>e.id===l))?void 0:t.status.toLowerCase())!=="device";return(0,tL.useEffect)(()=>{v&&l&&k()},[v,l,k,h]),(0,i.jsxs)("div",{className:"device-header",children:[m,(0,i.jsxs)("div",{className:"device-title-container",children:[(0,i.jsx)("h2",{className:"device-title",children:"Device"}),(0,i.jsx)(rx.Z,{trigger:["click"],placement:"bottomLeft",open:u,onOpenChange:p,dropdownRender:()=>(0,i.jsxs)("div",{className:"device-dropdown",children:[(0,i.jsx)("div",{className:"dropdown-header",children:(0,i.jsx)("span",{className:"dropdown-title",children:"Devices list"})}),(0,i.jsxs)("div",{className:"device-list",children:[n.map(e=>(0,i.jsx)("div",{onClick:()=>{"device"===e.status.toLowerCase()&&g(e.id)},className:`device-list-item ${"device"===e.status.toLowerCase()&&l===e.id?"selected":""} ${"device"!==e.status.toLowerCase()?"offline":""}`,children:(0,i.jsxs)("div",{className:"device-item-content",children:[(0,i.jsx)("div",{className:"device-item-icon-container",children:(0,i.jsx)(oO.Z,{className:"device-item-icon"})}),(0,i.jsxs)("div",{className:"device-item-info",children:[(0,i.jsx)("div",{className:"device-item-name",children:e.name||e.id}),(0,i.jsxs)("div",{className:"device-item-status",children:[(0,i.jsx)("div",{className:"status-badge",children:"device"===e.status.toLowerCase()?(0,i.jsxs)(i.Fragment,{children:[oP("#52c41a"),(0,i.jsx)("span",{className:"status-text",children:"Online"})]}):(0,i.jsxs)(i.Fragment,{children:[oP("#f5222d"),(0,i.jsx)("span",{className:"status-text",children:"Offline"})]})}),(0,i.jsx)(oD.Z,{type:"vertical",className:"status-divider"}),(0,i.jsxs)("div",{className:"device-id-container",children:["Device ID: ",e.id]})]})]}),"device"===e.status.toLowerCase()&&l===e.id&&(0,i.jsx)("div",{className:"current-device-indicator",children:"Current device"})]})},e.id)),0===n.length&&(0,i.jsx)("div",{className:"device-list-empty",children:"No devices found"})]})]}),children:(0,i.jsxs)(rA.ZP,{className:"device-dropdown-button",children:[(0,i.jsxs)("div",{className:"device-icon-container",children:[(0,i.jsx)(oO.Z,{className:"device-icon"}),l&&f&&(0,i.jsx)("div",{className:"status-indicator",children:(null==(r=n.find(e=>e.id===l))?void 0:r.status.toLowerCase())==="device"?(0,i.jsx)(i.Fragment,{children:oP("#52c41a")}):(0,i.jsx)(i.Fragment,{children:oP("#f5222d")})})]}),l&&!v&&f?(0,i.jsx)("span",{className:"device-name",children:(null==(o=n.find(e=>e.id===l))?void 0:o.name)||l}):(0,i.jsx)("span",{className:"device-name no-device",children:"No device"}),(0,i.jsx)("span",{className:"dropdown-arrow",children:"▼"})]})})]})]})};var oT=r(7379),oL=r(92882),oK=r(81138),oR=r(32686),o_=r(72688),oF=r(44600);let oz=e=>(0,i.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16",...e,children:(0,i.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"})}),oU=e=>(0,i.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16",...e,children:[(0,i.jsxs)("g",{fill:"#606266",clipPath:"url(#screenshot_svg__a)",children:[(0,i.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,i.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,i.jsx)("defs",{children:(0,i.jsx)("clipPath",{id:"screenshot_svg__a",children:(0,i.jsx)("path",{fill:"#fff",d:"M0 0h16v16H0z"})})})]}),oZ=e=>(0,i.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16",...e,children:(0,i.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:oB}=rq.Z,oV=(0,tL.forwardRef)((e,t)=>{let{serverUrl:r,maxSize:o=1024,autoConnect:n=!0,autoReconnect:a=!0,reconnectInterval:l=5e3,onConnectionStatusChange:s}=e,[c,d]=(0,tL.useState)(!1),[u,p]=(0,tL.useState)(!1),[y,h]=(0,tL.useState)(null),[m,f]=(0,tL.useState)(""),g=(0,tL.useRef)(null),k=(0,tL.useRef)(null),v=(0,tL.useRef)(null),C=(0,tL.useRef)(null),A=(0,tL.useRef)(null),E=(0,tL.useRef)(null),N=rt(!0),x=(0,tL.useCallback)(e=>{if(e)try{for(;e.firstChild;)try{e.removeChild(e.firstChild)}catch(t){if(console.warn("Failed to remove child, skipping:",t),e.firstChild){e.innerHTML="";break}}}catch(t){console.error("Error clearing container:",t);try{e.innerHTML=""}catch(e){console.error("Failed to reset innerHTML:",e)}}},[]),w=(0,tL.useCallback)(()=>{if(!v.current||!k.current||!y)return;let e=k.current,t=v.current,r=e.clientWidth,o=e.clientHeight,{width:i,height:n}=y,a=o-40,l=i/n,s=r,c=r/l;c>a&&(c=a,s=a*l),t.width=i,t.height=n,t.style.width=`${s}px`,t.style.height=`${c}px`,t.style.marginTop="20px",t.style.marginBottom="20px"},[y]);(0,tL.useEffect)(()=>{let e=()=>{w()};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[w]),(0,tL.useEffect)(()=>{w()},[y,w]);let S=async()=>{if(oR.P.isSupported){let e=new oR.P;return{renderer:e,element:e.canvas}}let e=new o_.I;return{renderer:e,element:e.canvas}},b=async e=>{if(!oK.h.isSupported)throw Error("Current browser does not support WebCodecs API, please use the latest version of Chrome/Edge browser");let{renderer:t,element:r}=await S();if(v.current=r,k.current){let e=k.current.querySelector(".canvas-wrapper");e&&(x(e),e.appendChild(v.current))}return new oK.h({codec:e,renderer:t})},I=e=>{let t=!1,r=[],o=new TransformStream({transform(e,o){let i={type:e.type,data:new Uint8Array(e.data),timestamp:e.timestamp};"configuration"===i.type?(o.enqueue(i),t=!0,r.length>0&&(r.forEach(e=>o.enqueue(e)),r=[])):"data"===i.type?t?o.enqueue(i):r.push(i):o.enqueue(i)}});return new ReadableStream({start(e){let t=!1,r=r=>{if(!t)try{e.enqueue(r)}catch(e){console.error("error occurred while enqueuing video data:",e),t=!0,n()}},o=r=>{console.error("stream error:",r),t||(e.error(Error(r.message)),t=!0,n())},i=()=>{t||(e.close(),t=!0,n())},n=()=>{g.current&&(g.current.off("video-data",r),g.current.off("error",o),g.current.off("disconnect",i))};return g.current&&(g.current.on("video-data",r),g.current.on("error",o),g.current.on("disconnect",i)),()=>{t=!0,n()}}}).pipeThrough(o)},j=async()=>{if(C.current)try{let e=await C.current.snapshot();if(e){let t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download=`screenshot_${new Date().toISOString().replace(/:/g,"-")}.png`,r.click(),URL.revokeObjectURL(t)}}catch(e){console.error("screenshot failed:",e),alert("screenshot failed")}},O=(0,tL.useCallback)(()=>{if(C.current)try{C.current.dispose(),C.current=null}catch(e){console.error("Error disposing decoder:",e)}k.current&&x(k.current.querySelector(".canvas-wrapper")),g.current&&(g.current.disconnect(),g.current=null),A.current&&(clearTimeout(A.current),A.current=null),E.current&&(clearTimeout(E.current),E.current=null),p(!1),d(!1),h(null)},[x]);(0,tL.useImperativeHandle)(t,()=>({disconnectDevice:O}),[O]);let D=(0,tL.useCallback)(async()=>{try{if(O(),p(!1),d(!0),h(null),await new Promise(e=>setTimeout(e,150)),!r){console.error("Cannot connect: missing server URL"),d(!1),null==s||s(!1);return}let e=()=>{E.current&&(clearTimeout(E.current),E.current=null),E.current=setTimeout(()=>{var t;if(null==(t=g.current)?void 0:t.connected)try{g.current.emit("connect-device",{maxSize:o}),e()}catch(e){console.error("Failed to request connection:",e),null==s||s(!1),ow.ZP.error("connection request failed, please refresh the page")}else{null==s||s(!1);try{g.current&&setTimeout(()=>{g.current&&g.current.connect()},500)}catch(e){console.error("Failed to reconnect:",e),ow.ZP.error("reconnection failed, please refresh the page")}}},5e3)};if(g.current)g.current.connected?(g.current.emit("connect-device",{maxSize:o}),e()):g.current.connect();else try{g.current=(0,oj.io)(r,{withCredentials:!0,reconnection:!0,reconnectionAttempts:5,reconnectionDelay:1e3,timeout:1e4}),g.current.on("connect",()=>{var t,r;null==s||s(!0),(null==(t=g.current)?void 0:t.id)&&f(g.current.id),A.current&&(clearTimeout(A.current),A.current=null),null==(r=g.current)||r.emit("connect-device",{maxSize:o}),e()}),g.current.on("video-metadata",async e=>{try{if(E.current&&(clearTimeout(E.current),E.current=null),C.current)try{C.current.dispose(),C.current=null}catch(e){console.error("Error disposing old decoder:",e)}if(k.current){let e=k.current.querySelector(".canvas-wrapper");x(e)}let t=(null==e?void 0:e.codec)?e.codec:oL.W.H264;if(C.current=await b(t),!C.current)throw Error("Failed to create decoder");C.current.sizeChanged(e=>{let{width:t,height:r}=e;h({width:t,height:r})}),I(e).pipeTo(C.current.writable).catch(e=>{console.error("video stream processing error:",e),null==s||s(!1)}),p(!0),d(!1),null==s||s(!0)}catch(e){console.error("Failed to initialize decoder:",e),d(!1),null==s||s(!1)}}),g.current.on("error",e=>{console.error("server error:",e),ow.ZP.error("server error"),d(!1),null==s||s(!1),E.current&&(clearTimeout(E.current),E.current=null)}),g.current.on("disconnect",()=>{p(!1),null==s||s(!1),E.current&&(clearTimeout(E.current),E.current=null),C.current&&(C.current.dispose(),C.current=null),k.current&&x(k.current.querySelector(".canvas-wrapper")),a&&!A.current&&(A.current=setTimeout(()=>{A.current=null,D()},l))})}catch(e){console.error("Failed to create socket connection:",e),d(!1),null==s||s(!1),a&&!A.current&&(A.current=setTimeout(()=>{A.current=null,D()},l))}}catch(e){d(!1),null==s||s(!1),console.error(`Failed to connect: ${e.message}`),ow.ZP.error("connection failed"),a&&!A.current&&(A.current=setTimeout(()=>{A.current=null,D()},l))}},[r,o,a,l,s,O]);return(0,tL.useEffect)(()=>{if(n&&!u&&!c){let e=setTimeout(()=>{D()},300);return()=>clearTimeout(e)}},[n,u,c,D]),(0,tL.useEffect)(()=>()=>{if(null==s||s(!1),C.current)try{C.current.dispose(),C.current=null}catch(e){console.error("Error disposing decoder during unmount:",e)}if(k.current)try{let e=k.current.querySelector(".canvas-wrapper");e&&(e.innerHTML="")}catch(e){console.error("Error clearing canvas wrapper during unmount:",e)}g.current&&(g.current.disconnect(),g.current=null),A.current&&(clearTimeout(A.current),A.current=null),E.current&&(clearTimeout(E.current),E.current=null)},[s]),(0,i.jsx)("div",{className:"scrcpy-container",children:(0,i.jsxs)(oF.Z,{children:[u&&(0,i.jsxs)("div",{className:"header-bar",children:[(0,i.jsxs)("div",{className:"header-left",children:[(0,i.jsx)(oB,{style:{fontWeight:600,fontSize:12},children:"Screen Projection"}),(0,i.jsx)(ry.Z,{placement:"bottom",title:`Device ID: ${m||"Unknown"}`,children:(0,i.jsx)(oT.Z,{})})]}),(0,i.jsx)("div",{className:"screen-info",children:(0,i.jsxs)(oB,{type:"secondary",children:["size : ",null==y?void 0:y.width,"\xd7",null==y?void 0:y.height]})}),(0,i.jsxs)("div",{className:"header-right",children:[(0,i.jsx)(ry.Z,{placement:"bottom",title:"Screenshot",children:(0,i.jsx)(rA.ZP,{icon:(0,i.jsx)(oU,{}),onClick:j})}),(0,i.jsx)(oD.Z,{type:"vertical",style:{margin:"0 16px"}}),(0,i.jsx)(ry.Z,{placement:"bottom",title:"Connect Device",children:(0,i.jsx)(rA.ZP,{disabled:u,style:{backgroundColor:"#fff"},icon:(0,i.jsx)(oz,{}),onClick:D})}),u&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(oD.Z,{type:"vertical",style:{margin:"0 16px"}}),(0,i.jsx)(ry.Z,{title:"Disconnect Device",children:(0,i.jsx)(rA.ZP,{icon:(0,i.jsx)(oZ,{}),onClick:O})})]})]})]}),(0,i.jsx)(ob.Z,{gutter:[16,16],children:(0,i.jsx)(oI.Z,{span:24,children:(0,i.jsx)("div",{className:"video-section",children:(0,i.jsxs)("div",{ref:k,className:"video-container",children:[(0,i.jsx)("div",{className:"canvas-wrapper"}),!u&&N&&(0,i.jsxs)("div",{className:"empty-state",children:[(0,i.jsx)("div",{className:"empty-state-icon",children:"\uD83D\uDCF1"}),(0,i.jsx)("div",{className:"empty-state-text",children:c?"Connecting to device...":"No device connected"}),!c&&(0,i.jsx)(rA.ZP,{type:"primary",onClick:()=>{D()},children:"Connect now"}),c&&(0,i.jsx)("div",{className:"loading-spinner",children:(0,i.jsx)(r5.Z,{size:"large"})})]}),!N&&(0,i.jsx)("span",{children:"Please launch playground server!"})]})})})})]})})}),{Content:oG}=ox.Z,oH="http://localhost:5700",oY=document.getElementById("root");oY&&n.createRoot(oY).render((0,i.jsx)(function(){let[e]=rC.Z.useForm(),t=rC.Z.useWatch("type",e),[r,o]=(0,tL.useState)(!1),[n,a]=(0,tL.useState)(null),[l,s]=(0,tL.useState)(!1),[c,d]=(0,tL.useState)([]),[u,p]=(0,tL.useState)(!0),y=(0,tL.useRef)(null),[h,m]=ow.ZP.useMessage(),[f,g]=(0,tL.useState)(!1),[k,v]=(0,tL.useState)({result:void 0,dump:null,reportHTML:null,error:null}),[C,A]=(0,tL.useState)(0),[E,N]=(0,tL.useState)(null),{config:x,deepThink:w}=tT(),[S,b]=(0,tL.useState)(""),I=(0,tL.useRef)(null),j=(0,tL.useRef)(null),O=Object.keys(x||{}).length>=1,D=rt(!0),[P,M]=(0,tL.useState)([]),T=(0,tL.useRef)(null),L=(0,tL.useRef)(null),K=(0,tL.useCallback)(()=>{j.current&&(clearInterval(j.current),j.current=null)},[]);(0,tL.useEffect)(()=>{let e=(0,oj.io)(oH,{withCredentials:!0,reconnectionAttempts:5,reconnectionDelay:1e3,timeout:5e3});e.on("connect",()=>{e.emit("get-devices")}),e.on("disconnect",e=>{p(!0)}),e.on("devices-list",e=>{d(e.devices),e.currentDeviceId&&(a(e.currentDeviceId),1===e.devices.length&&R(e.devices[0].id,!0)),p(!1)}),e.on("global-device-switched",e=>{a(e.deviceId)}),e.on("connect_error",e=>{console.error("Socket.IO connection error:",e),h.error("Waiting for device server connection, please try again later"),p(!1)}),e.on("error",e=>{console.error("Socket.IO error:",e),h.error(`Error occurred while communicating with the server: ${e.message||"Unknown error"}`)}),T.current=e;let t=setTimeout(()=>{e.connected&&e.emit("get-devices")},2e3);return()=>{clearTimeout(t),e.disconnect()}},[h]);let R=(0,tL.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e!==y.current){if(!T.current||!T.current.connected)return void h.warning("Waiting for device server connection, please try again later");s(!1),g(!1),v(null),N(null),o(!1),K(),setTimeout(()=>{if(a(e),y.current=e,p(!0),T.current){T.current.emit("switch-device",e);let r=setTimeout(()=>{p(!1),h.error("Device switch timeout, please try again")},1e4);T.current.once("device-switched",()=>{clearTimeout(r),p(!1),setTimeout(()=>{s(!0),t||h.success(`Device selected: ${e}`)},500)}),T.current.once("error",e=>{clearTimeout(r),p(!1),h.error(`Device switch failed: ${e.message}`)})}else p(!1),h.error("Socket connection lost, please refresh the page")},500)}},[h,K]),_=(0,tL.useCallback)(e=>{K(),j.current=setInterval(async()=>{try{let t=await t8(e);t.tip&&b(t.tip)}catch(e){console.error("Failed to poll task progress:",e)}},500)},[K]);(0,tL.useEffect)(()=>()=>{K()},[K]);let F=(0,tL.useCallback)(e=>{g(e),e&&n&&!l&&setTimeout(()=>{s(!0)},100)},[n]);(0,tL.useEffect)(()=>{if(l){let e=setTimeout(()=>{n===y.current&&s(!1)},800);return()=>clearTimeout(e)}},[l,n]),(0,tL.useEffect)(()=>{tg(x),t3(x)},[x]),(0,tL.useEffect)(()=>{let e=async()=>{try{if(n){let e=await t5(n);M(e||[])}else M([])}catch(e){console.error("Failed to load actionSpace:",e),M([])}};D&&e()},[D,n]);let z=(0,tL.useCallback)(async()=>{if(!n)return void h.warning("Please select a device first");if(!f)return void h.warning("Waiting for connection establishment, please try again later");o(!0),v(null),N(null),b("");let{type:t,prompt:r,params:i}=e.getFieldsValue(),a=null==P?void 0:P.find(e=>e.interfaceAlias===t||e.name===t),l=!!(null==a?void 0:a.paramSchema)&&("object"!=typeof a.paramSchema||!("shape"in a.paramSchema)||Object.keys(a.paramSchema.shape||{}).length>0),s=(()=>{if(a)return a.paramSchema&&"object"==typeof a.paramSchema&&"shape"in a.paramSchema?0!==Object.keys(a.paramSchema.shape||{}).length:!!a.paramSchema;return!0})();if(l&&!i)return void h.error("Structured parameters are required for this action");if(s&&!l&&!r)return void h.error("Prompt is required");let c=Date.now().toString();I.current=c,_(c);try{let e=await t6(n,t,r,{requestId:c,deepThink:w,params:i});if(K(),v(e),o(!1),!e)throw Error("server returned empty response");if((null==e?void 0:e.dump)&&!["aiQuery","aiAssert"].includes(t)){let t=rl(e.dump);N(t),A(e=>e+1)}else N(null);h.success("Command executed")}catch(e){K(),o(!1),console.error("execute command error:",e),h.error(`Command execution failed: ${e instanceof Error?e.message:"Unknown error"}`)}},[n,h,f,e,_,K,w]),U=()=>{v(null),N(null),o(!1)},Z=(0,tL.useCallback)(async()=>{K(),o(!1),U(),I.current&&await t4(I.current),h.info("Operation stopped")},[h,K]);return(0,i.jsxs)(oS.ZP,{theme:{token:{colorPrimary:"#2B83FF"},components:{Layout:{headerHeight:60,headerPadding:"0 30px",headerBg:"#FFF",bodyBg:"#FFF"}}},children:[m,(0,i.jsx)(ox.Z,{className:"app-container playground-container vertical-mode",children:(0,i.jsx)(oG,{className:"app-content",children:(0,i.jsx)("div",{className:"app-grid-layout",children:(0,i.jsxs)(ob.Z,{className:"app-grid-layout",children:[(0,i.jsx)(oI.Z,{className:"app-panel left-panel",children:(0,i.jsxs)("div",{className:"panel-content left-panel-content",children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"10px"},children:[(0,i.jsx)(ru,{}),(0,i.jsx)(rf,{})]}),(0,i.jsx)("h2",{children:"Command input"}),(0,i.jsx)(rC.Z,{form:e,className:"command-form",children:(0,i.jsxs)("div",{className:"form-content",children:[(0,i.jsx)("div",{className:"command-input-wrapper",children:(0,i.jsx)(r4,{runButtonEnabled:!!n&&O,form:e,serviceMode:"Server",selectedType:t,dryMode:!1,stoppable:r,loading:r,onRun:z,onStop:Z,hideDomAndScreenshotOptions:!0,actionSpace:P})}),(0,i.jsx)("div",{className:"result-container",style:k?{}:{border:"1px solid #0000001f",borderRadius:"8px"},children:(0,i.jsx)(oN,{result:k,loading:r,serverValid:D,serviceMode:"Server",replayScriptsInfo:E,replayCounter:C,loadingProgressText:S,verticalMode:!1,notReadyMessage:(0,i.jsxs)("span",{children:["Don't worry, just one more step to launch the playground server.",(0,i.jsx)("br",{}),(0,i.jsx)("strong",{children:"npx --yes @midscene/android-playground"})]})})})]})})]})}),(0,i.jsx)(oI.Z,{className:"app-panel right-panel",children:(0,i.jsxs)("div",{className:"panel-content right-panel-content",children:[(0,i.jsx)(oM,{devices:c,loadingDevices:u,selectedDeviceId:n,onDeviceSelect:R,socketRef:T,scrcpyPlayerRef:L}),(0,i.jsx)(oV,{ref:L,serverUrl:oH,autoConnect:l,onConnectionStatusChange:F})]})})]})})})})]})},{}))},66460:function(e){if("undefined"==typeof sharp){var t=Error("Cannot find module 'sharp'");throw t.code="MODULE_NOT_FOUND",t}e.exports=sharp},86110:function(){},58241:function(){},32176:function(){},13527:function(){},64849:function(){},51114:function(){},6156:function(){},41037:function(){},35665:function(){},6281:function(){},39229:function(){},40924:function(){},87333:function(){},15787:function(){},5460:function(){},61546:function(){},18113:function(){},5174:function(){}},t={};function r(o){var i=t[o];if(void 0!==i)return i.exports;var n=t[o]={id:o,loaded:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}r.m=e,r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(o,i){if(1&i&&(o=this(o)),8&i||"object"==typeof o&&o&&(4&i&&o.__esModule||16&i&&"function"==typeof o.then))return o;var n=Object.create(null);r.r(n);var a={};e=e||[null,t({}),t([]),t(t)];for(var l=2&i&&o;"object"==typeof l&&!~e.indexOf(l);l=t(l))Object.getOwnPropertyNames(l).forEach(e=>{a[e]=()=>o[e]});return a.default=()=>o,r.d(n,a),n}})(),r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>"static/js/async/"+e+"."+({166:"834644b5",173:"f2381e64",212:"850ade70",290:"45247363",329:"261bc4a1",364:"d88c3cff",544:"18ac9afb",582:"8f4b5264",624:"8a1fe2e8",644:"910ce3d0",702:"1f38a17e",975:"693266d2",983:"b98b40af"})[e]+".js",r.miniCssF=e=>""+e+".css",r.h=()=>"e3330f119a316411",r.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="android-playground:";r.l=function(o,i,n,a){if(e[o])return void e[o].push(i);if(void 0!==n)for(var l,s,c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var u=c[d];if(u.getAttribute("src")==o||u.getAttribute("data-webpack")==t+n){l=u;break}}l||(s=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,r.nc&&l.setAttribute("nonce",r.nc),l.setAttribute("data-webpack",t+n),l.src=o),e[o]=[i];var p=function(t,r){l.onerror=l.onload=null,clearTimeout(y);var i=e[o];if(delete e[o],l.parentNode&&l.parentNode.removeChild(l),i&&i.forEach(function(e){return e(r)}),t)return t(r)},y=setTimeout(p.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=p.bind(null,l.onerror),l.onload=p.bind(null,l.onload),s&&document.head.appendChild(l)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e=[];r.O=(t,o,i,n)=>{if(o){n=n||0;for(var a=e.length;a>0&&e[a-1][2]>n;a--)e[a]=e[a-1];e[a]=[o,i,n];return}for(var l=1/0,a=0;a<e.length;a++){for(var[o,i,n]=e[a],s=!0,c=0;c<o.length;c++)(!1&n||l>=n)&&Object.keys(r.O).every(e=>r.O[e](o[c]))?o.splice(c--,1):(s=!1,n<l&&(l=n));if(s){e.splice(a--,1);var d=i();void 0!==d&&(t=d)}}return t}})(),r.p="/",r.rv=()=>"1.3.12",(()=>{r.b=document.baseURI||self.location.href;var e={980:0};r.f.j=function(t,o){var i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)o.push(i[2]);else{var n=new Promise((r,o)=>i=e[t]=[r,o]);o.push(i[2]=n);var a=r.p+r.u(t),l=Error();r.l(a,function(o){if(r.o(e,t)&&(0!==(i=e[t])&&(e[t]=void 0),i)){var n=o&&("load"===o.type?"missing":o.type),a=o&&o.target&&o.target.src;l.message="Loading chunk "+t+" failed.\n("+n+": "+a+")",l.name="ChunkLoadError",l.type=n,l.request=a,i[1](l)}},"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,o)=>{var i,n,[a,l,s]=o,c=0;if(a.some(t=>0!==e[t])){for(i in l)r.o(l,i)&&(r.m[i]=l[i]);if(s)var d=s(r)}for(t&&t(o);c<a.length;c++)n=a[c],r.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return r.O(d)},o=self.webpackChunkandroid_playground=self.webpackChunkandroid_playground||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))})(),r.ruid="bundler=rspack@1.3.12";var o=r.O(void 0,["361","763"],function(){return r(69946)});o=r.O(o)})();
|
|
15
|
-
//# sourceMappingURL=index.
|
|
14
|
+
`,inputVariables:["sectionDescription"]}),e8("ai:inspect"),e8("ai:section"),e8("planning");var tG=r(73656);let tH={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(tH).reduce((e,[t,r])=>{let o=t.toLowerCase();return o!==t&&(e[o]=r),e},{});let tY="undefined"!=typeof window?/Mac|iPod|iPhone|iPad/.test(window.navigator.platform):"darwin"===tG.platform;function tW(e){return e.subType&&"Plan"!==e.subType?`${e.type} / ${e.subType||""}`:e.type}function tQ(e){var t,r,o,i,n,a,l,s,c,d,u,p;let y;if("Planning"===e.type&&(y=null==e||null==(t=e.param)?void 0:t.userInstruction),"Insight"===e.type&&(y=(null==e||null==(r=e.param)?void 0:r.prompt)||(null==e||null==(o=e.param)?void 0:o.id)||(null==e||null==(i=e.param)?void 0:i.dataDemand)||(null==e||null==(n=e.param)?void 0:n.assertion)),"Action"===e.type){let t=null==e?void 0:e.locate,r=t&&t?"string"==typeof t?t:"string"==typeof t.prompt?t.prompt:"object"==typeof t.prompt&&t.prompt.prompt?t.prompt.prompt:"":"";(y=e.thought||"","number"==typeof(null==e||null==(a=e.param)?void 0:a.timeMs))?y=`${null==e||null==(d=e.param)?void 0:d.timeMs}ms`:"string"==typeof(null==e||null==(l=e.param)?void 0:l.scrollType)?y=(p=null==e?void 0:e.param)?`${p.direction||"down"}, ${p.scrollType||"once"}, ${p.distance||"distance-not-set"}`:"":"string"==typeof(null==e||null==(s=e.param)?void 0:s.direction)&&(null==e?void 0:e.subType)==="AndroidPull"?y=function(e){if(!e)return"";let t=[];return t.push(`direction: ${e.direction||"down"}`),e.distance&&t.push(`distance: ${e.distance}`),e.duration&&t.push(`duration: ${e.duration}ms`),t.join(", ")}(null==e?void 0:e.param):void 0!==(null==e||null==(c=e.param)?void 0:c.value)&&(y=null==e||null==(u=e.param)?void 0:u.value),r&&(y=y?`${r} - ${y}`:r)}return void 0===y?"":"string"==typeof y?y:JSON.stringify(y,void 0,2)}tH.Enter.key,tH.Enter.key,tY?tH.Meta.key:tH.Control.key,tH.Shift.key,tH.Alt.key,tH.Space.key,tH.PageDown.key,tH.PageDown.key,tH.PageUp.key,tH.PageUp.key,r(91488),e8("ui-tars-planning"),e8("ai:insight"),r(40021),r(61546),r(73656),e8("yaml:utils"),r(73656),e8("yaml-player"),r(87333),r(81507),r(28977),r(73656),e8("web:tool:profile"),r(57861).Buffer,e8("cache"),e8("device-task-executor"),e8("agent"),tK.z.object({locate:tV.describe("The element to be tapped")}),tK.z.object({locate:tV.describe("The element to be right clicked")}),tK.z.object({locate:tV.describe("The element to be double clicked")}),tK.z.object({locate:tV.describe("The element to be hovered")}),tK.z.object({value:tK.z.string().describe("The value to be input"),locate:tV.describe("The element to be input")}),tK.z.object({locate:tV.describe("The element to be clicked before pressing the key").optional(),keyName:tK.z.string().describe("The key to be pressed")}),tK.z.object({direction:tK.z.enum(["down","up","right","left"]).default("down").describe("The direction to scroll"),scrollType:tK.z.enum(["once","untilBottom","untilTop","untilRight","untilLeft"]).default("once").describe("The scroll type"),distance:tK.z.number().nullable().optional().describe("The distance in pixels to scroll"),locate:tV.optional().describe("The element to be scrolled")}),tK.z.object({from:tV.describe("The position to be dragged"),to:tV.describe("The position to be dropped")});let tJ={ZOD_TYPES:{OPTIONAL:"ZodOptional",DEFAULT:"ZodDefault",NULLABLE:"ZodNullable",OBJECT:"ZodObject",ENUM:"ZodEnum",NUMBER:"ZodNumber",STRING:"ZodString"},FIELD_FLAGS:{LOCATION:"midscene_location_field_flag"}},tX=e=>"object"==typeof e&&null!==e&&("shape"in e||"ZodObject"===e.type),tq=e=>{var t,r,o;if((null==(t=e._def)?void 0:t.typeName)===tJ.ZOD_TYPES.OBJECT){let t;if(e._def.shape&&(t="function"==typeof e._def.shape?e._def.shape():e._def.shape),!t&&e.shape&&(t=e.shape),t&&tJ.FIELD_FLAGS.LOCATION in t)return!0;let o=(null==(r=e._def)?void 0:r.description)||e.description||"";if("string"==typeof o&&o.toLowerCase().includes("input field"))return!0}if("object"==typeof e&&null!==e){let t=e.description||(null==(o=e._def)?void 0:o.description)||"";if("string"==typeof t){let e=t.toLowerCase();if(e.includes("input field")||e.includes("element")||e.includes("locate"))return!0}if("ZodObject"===e.typeName||"ZodObject"===e.type)return"string"==typeof t&&t.toLowerCase().includes("input field")}return!1},t$=e=>{var t,r,o,i,n;let a=e,l=!1,s=!1;for(;(null==(t=a._def)?void 0:t.typeName)===tJ.ZOD_TYPES.OPTIONAL||(null==(r=a._def)?void 0:r.typeName)===tJ.ZOD_TYPES.DEFAULT||(null==(o=a._def)?void 0:o.typeName)===tJ.ZOD_TYPES.NULLABLE;)(null==(i=a._def)?void 0:i.typeName)===tJ.ZOD_TYPES.OPTIONAL&&(l=!0),(null==(n=a._def)?void 0:n.typeName)===tJ.ZOD_TYPES.DEFAULT&&(s=!0),a=a._def.innerType||a;return{actualField:a,isOptional:l,hasDefault:s}},t0=e=>{var t;let r=e;for(;null==(t=r._def)?void 0:t.innerType;){if(r._def.typeName===tJ.ZOD_TYPES.DEFAULT&&r._def.defaultValue)return r._def.defaultValue();r=r._def.innerType}},t1="http://localhost:5800",t2=async()=>{try{let e=await fetch(`${t1}/status`);return 200===e.status}catch(e){return!1}},t6=async function(e,t,r){let{requestId:o,deepThink:i,params:n,screenshotIncluded:a,domIncluded:l}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},s={context:e,type:t,prompt:r};return o&&(s.requestId=o),i&&(s.deepThink=i),void 0!==a&&(s.screenshotIncluded=a),void 0!==l&&(s.domIncluded=l),n&&(s.params=n),(await fetch(`${t1}/execute`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})).json()},t3=async e=>fetch(`${t1}/config`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({aiConfig:e})}),t4=async e=>{try{return(await fetch(`${t1}/cancel/${e}`)).json()}catch(e){return console.error("Failed to cancel task:",e),{error:"Failed to cancel task"}}},t8=async e=>{try{let t=await fetch(`${t1}/task-progress/${e}`);return await t.json()}catch(e){return console.error("Failed to poll task progress:",e),{tip:null}}},t5=async e=>{try{if(!e)return[];let t=await fetch(`${t1}/action-space`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({context:e})});if(t.ok)return await t.json();return[]}catch(e){return console.error("Failed to get action space:",e),[]}},t7=e=>{let t=(e.startsWith("ai")?e.slice(2):e).replace(/([A-Z])/g," $1").trim(),r=t.split(" ");return r.length>3?r.slice(-3).join(" "):t},t9=e=>"aiQuery"===e?"What do you want to query?":"aiAssert"===e?"What do you want to assert?":"aiTap"===e?"What element do you want to tap?":"aiDoubleClick"===e?"What element do you want to double-click?":"aiHover"===e?"What element do you want to hover over?":"aiInput"===e?"Format: <value> | <element>\nExample: hello world | search box":"aiRightClick"===e?"What element do you want to right-click?":"aiKeyboardPress"===e?"Format: <key> | <element (optional)>\nExample: Enter | text field":"aiScroll"===e?"Format: <direction> <amount> | <element (optional)>\nExample: down 500 | main content":"aiLocate"===e?"What element do you want to locate?":"aiBoolean"===e?"What do you want to check (returns true/false)?":"aiNumber"===e?"What number do you want to extract?":"aiString"===e?"What text do you want to extract?":"aiAsk"===e?"What do you want to ask?":"aiWaitFor"===e?"What condition do you want to wait for?":"What do you want to do?",re=(e,t,r,o,i,n)=>{if(!e)return!1;if(!(()=>{if(o){let e=o.find(e=>e.interfaceAlias===i||e.name===i);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(t){let e=r||{},t=null==o?void 0:o.find(e=>e.interfaceAlias===i||e.name===i);if((null==t?void 0:t.paramSchema)&&tX(t.paramSchema)){let r=t.paramSchema.shape||{};return Object.keys(r).every(t=>{let{isOptional:o}=t$(r[t]),i=e[t];return o||void 0!==i&&""!==i&&null!==i})}return!0}return n.trim().length>0},rt=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],[t,r]=(0,tL.useState)(!0),{serviceMode:o}=tT();return(0,tL.useEffect)(()=>{let t=!1;if(e)return Promise.resolve((async()=>{for(;!t;)await t2()?r(!0):r(!1),await new Promise(e=>setTimeout(e,1e3))})()),()=>{t=!0}},[o,e]),t},rr="data:image/png;base64,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",ro="data:image/png;base64,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",ri=(e,t,r)=>{let o,i=(o=e.width/e.height>=t/r?e.width:e.height/r*t)>400?.1:o>50?.2:.3,n=Math.min(t,o+t*i*2),a=Math.min(e.left-t*i,t-n);a=Math.max(a,0);let l=Math.min(e.top-r*i,r-r/t*n);return{left:Math.round(a),top:Math.round(l=Math.max(l,0)),width:Math.round(n)}},rn=(e,t)=>{let r=Math.min(e.left,t.left),o=Math.min(e.top,t.top);return{left:r,top:o,width:Math.max(e.left+e.width,t.left+t.width)-r}},ra=e=>"string"!=typeof e||0===e.length?e:e.charAt(0).toUpperCase()+e.slice(1),rl=e=>{let t,r,o,i=new Set;if(e.executions.forEach(e=>{e.sdkVersion&&(o=e.sdkVersion),e.tasks.forEach(e=>{var o,i;(null==(i=e.uiContext)||null==(o=i.size)?void 0:o.width)&&(t=e.uiContext.size.width,r=e.uiContext.size.height)})}),!t||!r)return console.warn("width or height is missing in dump file"),{scripts:[],sdkVersion:o,modelBriefs:[]};let n=[];e.executions.forEach(e=>{let o=rs(e,-1,t,r);o&&n.push(...o),e.tasks.forEach(e=>{if(e.usage){let{model_name:t,model_description:r,intent:o}=e.usage;o&&t&&i.add(r?`${ra(o)}/${t}(${r})`:t)}})});let a=n.filter((e,t)=>t===n.length-1||"Done"!==e.title),l=(()=>{var e;let t=[...i];if(!t.length)return t;let r=null==(e=t[0])?void 0:e.split("/",2)[1];return r&&t.slice(1).every(e=>(null==e?void 0:e.split("/",2)[1])===r)?[r]:t})();return{scripts:a,width:t,height:r,sdkVersion:o,modelBriefs:l}},rs=(e,t,r,o)=>{let i;if(!e||!e.tasks.length||0===r||0===o)return null;let n=[];if(-1===t)n=e.tasks;else{let r=e.tasks.findIndex(e=>e===t);if(-1===r)return console.error("task not found, cannot generate animation scripts"),null;if(r===e.tasks.length-1)return null;for(let t=r;t<e.tasks.length&&(!(t>r)||"Planning"!==e.tasks[t].type);t++)n.push(e.tasks[t])}if(0===n.length)return null;let a=ri({left:0,top:0,width:r,height:o},r,o),l=(e,t,r)=>({type:"pointer",img:e,duration:0,title:t,subTitle:r}),s=[],c=a,d=!1,u=n.length,p="",y=!1;return n.forEach((e,t)=>{var n,h,m,f,g,k,v,C,A,E,N,x,w,S;if(!y){if(0===t&&(p=tQ(e)),"Planning"===e.type)e.recorder&&e.recorder.length>0&&s.push({type:"img",img:null==(h=e.recorder)||null==(n=h[0])?void 0:n.screenshot,camera:0===t?a:void 0,duration:900,title:tW(e),subTitle:tQ(e)});else if("Insight"===e.type&&"Locate"===e.subType){let t=null==(m=e.output)?void 0:m.element,n=tW(e),l=tQ(e);(null==t?void 0:t.rect)&&(i={...ri(t.rect,r,o),pointerLeft:t.center[0],pointerTop:t.center[1]});let u=e.uiContext;if(null==u?void 0:u.screenshotBase64){let t,r=null==(f=e.log)?void 0:f.dump,o=u.tree?t_(u.tree).length:0;u.screenshotBase64&&s.push({type:"img",img:u.screenshotBase64,duration:300,title:n,subTitle:l}),t=c===a?void 0:i?rn(c,i):void 0,s.push({type:"insight",img:u.screenshotBase64,context:u,camera:t,highlightElement:(null==(g=e.output)?void 0:g.element)||void 0,searchArea:null==r||null==(k=r.taskInfo)?void 0:k.searchArea,duration:o>20?800:400,insightCameraDuration:800,title:n,subTitle:l}),s.push({type:"sleep",duration:300,title:n,subTitle:l}),d=!0}}else if("Action"===e.type&&"FalsyConditionStatement"!==e.subType){let r=tW(e),o=tQ(e);s.push(l(rr,r,o)),c=null!=i?i:a,s.push({type:"img",img:null==(C=e.recorder)||null==(v=C[0])?void 0:v.screenshot,duration:1e3,camera:"Sleep"===e.subType?a:i,title:r,subTitle:o}),d&&(s.push({type:"clear-insight",duration:200,title:r,subTitle:o}),d=!1);let n=900*(t<u-1);(null==(E=e.recorder)||null==(A=E[1])?void 0:A.screenshot)?(s.push({type:"spinning-pointer",duration:300,title:r,subTitle:o}),s.push(l(rr,r,o)),s.push({type:"img",img:null==(x=e.recorder)||null==(N=x[1])?void 0:N.screenshot,duration:n,title:r,subTitle:o})):s.push({type:"sleep",duration:n,title:r,subTitle:o})}else{let t=tW(e),r=tQ(e),o=null==(S=e.recorder)||null==(w=S[e.recorder.length-1])?void 0:w.screenshot;o&&s.push({type:"img",img:o,duration:900,camera:a,title:t,subTitle:r})}if("finished"!==e.status){y=!0;let t=tW(e),r=e.errorMessage||"unknown error",o=r.indexOf("NOT_IMPLEMENTED_AS_DESIGNED")>0?"Further actions cannot be performed in the current environment":r;s.push({type:"img",img:e.recorder&&e.recorder.length>0?e.recorder[e.recorder.length-1].screenshot:"",camera:a,duration:900,title:t,subTitle:o});return}}}),y||s.push({title:"Done",subTitle:p,type:"img",duration:900,camera:a}),s},rc=["#01204E"];function rd(e){return"searchArea"===e?"#028391":"#fd5907"}let ru=e=>{let{hideLogo:t=!1}=e;return t?null:(0,i.jsx)("div",{className:"logo",children:(0,i.jsx)("a",{href:"https://midscenejs.com/",target:"_blank",rel:"noreferrer",children:(0,i.jsx)("img",{alt:"Midscene_logo",src:"https://lf3-static.bytednsdoc.com/obj/eden-cn/vhaeh7vhabf/Midscene.png"})})})};var rp=r(42968),ry=r(79055),rh=r(51946),rm=r(70021);function rf(e){let{showTooltipWhenEmpty:t=!0,showModelName:r=!0,tooltipPlacement:o="bottom",mode:n="icon"}=e,{config:a,configString:l,loadConfig:s,syncFromStorage:c}=tT(),[d,u]=(0,tL.useState)(!1),[p,y]=(0,tL.useState)(l),h=a.MIDSCENE_MODEL_NAME,m=(0,tL.useRef)(null),f=e=>{c(),u(!0),e.preventDefault(),e.stopPropagation()};return(0,tL.useEffect)(()=>{d&&y(l)},[d,l]),(0,i.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"10px",alignItems:"center",height:"100%",minHeight:"32px"},ref:m,children:[r?h:null,(0,i.jsx)(ry.Z,{title:"Please set up your environment variables before using.",placement:o,align:{offset:[-10,5]},getPopupContainer:()=>m.current,open:!d&&(t?0===Object.keys(a).length:void 0),children:"icon"===n?(0,i.jsx)(rp.Z,{onClick:f}):(0,i.jsx)("span",{onClick:f,style:{color:"#006AFF",cursor:"pointer"},children:"set up"})}),(0,i.jsxs)(rh.Z,{title:"Model Env Config",open:d,onOk:()=>{u(!1),s(p)},onCancel:()=>{u(!1)},okText:"Save",style:{width:"800px",height:"100%",marginTop:"10%"},destroyOnClose:!0,maskClosable:!0,centered:!0,children:[(0,i.jsx)(rm.Z.TextArea,{rows:7,placeholder:"OPENAI_API_KEY=sk-...\nMIDSCENE_MODEL_NAME=gpt-4o-2024-08-06\n...",value:p,onChange:e=>y(e.target.value),style:{whiteSpace:"nowrap",wordWrap:"break-word"}}),(0,i.jsxs)("div",{children:[(0,i.jsx)("p",{children:"The format is KEY=VALUE and separated by new lines."}),(0,i.jsxs)("p",{children:["These data will be saved ",(0,i.jsx)("strong",{children:"locally in your browser"}),"."]})]})]})]})}var rg=r(35725),rk=r(9004),rv=r(13098),rC=r(93080),rA=r(18780),rE=r(7173),rN=r(18142),rx=r(39970),rw={};rw.d=(e,t)=>{for(var r in t)rw.o(t,r)&&!rw.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},rw.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),rw.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var rS={};rw.r(rS),rw.d(rS,{create:()=>tk.Ue});let{create:rb}=rS,rI="midscene-prompt-history-v2",rj="midscene-last-selected-type",rO=()=>{let e=localStorage.getItem(rI);return e?JSON.parse(e):{}},rD=()=>localStorage.getItem(rj)||"aiAction",rP=e=>{localStorage.setItem(rj,e)},rM=rb((e,t)=>({history:rO(),lastSelectedType:rD(),clearHistory:r=>{let o={...t().history};delete o[r],e({history:o}),localStorage.setItem(rI,JSON.stringify(o))},addHistory:r=>{let{type:o}=r,i=t().history,n=i[o]||[],a=JSON.stringify({prompt:r.prompt,params:r.params}),l=[r,...n.filter(e=>JSON.stringify({prompt:e.prompt,params:e.params})!==a)];l.length>10&&(l.length=10);let s={...i,[o]:l};e({history:s}),localStorage.setItem(rI,JSON.stringify(s))},getHistoryForType:e=>t().history[e]||[],setLastSelectedType:t=>{e({lastSelectedType:t}),rP(t)}}));var rT=r(75091);let rL=e=>(0,i.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:27,height:27,fill:"none",viewBox:"0 0 27 27",...e,children:(0,i.jsx)("path",{stroke:"#000",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"})});var rK=r(99598);let rR=e=>{let{text:t,disabled:r=!1,speed:o=5,className:n=""}=e,a={"--animation-duration":`${o}s`};return(0,i.jsx)("div",{className:`shiny-text ${r?"disabled":""} ${n}`,style:a,children:t})},r_=(0,i.jsxs)("span",{children:["Don't worry, just one more step to launch the playground server.",(0,i.jsx)("br",{}),"Please run one of the commands under the midscene project directory:",(0,i.jsx)("br",{}),"a. ",(0,i.jsx)("strong",{children:"npx midscene-playground"}),(0,i.jsx)("br",{}),"b. ",(0,i.jsx)("strong",{children:"npx --yes @midscene/web"})]}),rF=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:r_;return(0,i.jsx)("div",{className:"server-tip",children:(0,i.jsx)(rK.Z,{message:"Playground Server Not Ready",description:e,type:"warning"})})},rz=(0,i.jsx)("div",{className:"result-empty-tip",style:{textAlign:"center"},children:(0,i.jsx)(rR,{disabled:!0,text:"The result will be shown here"})}),rU={aiAction:{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"}},rZ=["aiAction","aiTap","aiQuery","aiAssert"],rB=e=>{let{showDeepThinkOption:t=!1,enableTracking:r=!1,showDataExtractionOptions:o=!1,hideDomAndScreenshotOptions:n=!1}=e,a=tT(e=>e.forceSameTabNavigation),l=tT(e=>e.setForceSameTabNavigation),s=tT(e=>e.deepThink),c=tT(e=>e.setDeepThink),d=tT(e=>e.screenshotIncluded),u=tT(e=>e.setScreenshotIncluded),p=tT(e=>e.domIncluded),y=tT(e=>e.setDomIncluded);if(!r&&!t&&!o)return null;let h=function(){let e=[];return r&&e.push({label:(0,i.jsx)(rT.Z,{onChange:e=>l(e.target.checked),checked:a,children:"limit popup to current tab"}),key:"track-config"}),t&&e.push({label:(0,i.jsx)(rT.Z,{onChange:e=>{c(e.target.checked)},checked:s,children:"deep think"}),key:"deep-think-config"}),o&&!n&&(e.push({label:(0,i.jsx)(rT.Z,{onChange:e=>{u(e.target.checked)},checked:d,children:"include screenshot in request"}),key:"screenshot-included-config"}),e.push({label:(0,i.jsxs)("div",{style:{padding:"4px 0"},children:[(0,i.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:"include DOM info in request"}),(0,i.jsxs)(rN.ZP.Group,{size:"small",value:p,onChange:e=>y(e.target.value),children:[(0,i.jsx)(rN.ZP,{value:!1,children:"Off"}),(0,i.jsx)(rN.ZP,{value:!0,children:"All"}),(0,i.jsx)(rN.ZP,{value:"visible-only",children:"Visible only"})]})]}),key:"dom-included-config"})),e}();return(0,i.jsx)("div",{className:"selector-trigger",children:(0,i.jsx)(rx.Z,{menu:{items:h},trigger:["click"],children:(0,i.jsx)(rL,{width:24,height:24})})})};var rV=r(4312),rG=r(80889);let{TextArea:rH}=rm.Z,rY=(e,t)=>`${e}${t?" (Optional)":""}`,rW=e=>{let{name:t,label:r,isRequired:o,marginBottom:n,placeholder:a}=e,l=a||`Enter ${t}`;return(0,i.jsx)(rC.Z.Item,{name:["params",t],label:rY(r,!o),rules:o?[{required:!0,message:`Please input ${t}`}]:[],style:{marginBottom:n},children:(0,i.jsx)(rm.Z,{placeholder:l})},t)},rQ=e=>{let{name:t,label:r,isRequired:o,marginBottom:n,placeholder:a}=e,l=a||`Describe the ${t}, use natural language`;return(0,i.jsx)(rC.Z.Item,{name:["params",t],label:rY(r,!o),rules:o?[{required:!0,message:`The ${t} is required`}]:[],style:{marginBottom:n},children:(0,i.jsx)(rH,{rows:2,placeholder:l})},t)},rJ=e=>{let{name:t,label:r,fieldSchema:o,isRequired:n,marginBottom:a,placeholder:l}=e,s=(o._def.values||[]).map(e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)}));return(0,i.jsx)(rC.Z.Item,{name:["params",t],label:r,rules:n?[{required:!0,message:`Please select ${t}`}]:[],style:{marginBottom:a},children:(0,i.jsx)(rV.Z,{placeholder:l||`Select ${t}`,options:s})},t)},rX=e=>{let{name:t,label:r,isRequired:o,marginBottom:n,placeholder:a}=e,l=500*("distance"===t),s=a&&Number(a)||l,c="distance"===t?1e4:void 0;return(0,i.jsx)(rC.Z.Item,{name:["params",t],label:`${r}${"distance"===t?" (px)":""}`,rules:o?[{required:!0,message:`Please input ${t}`},{type:"number",min:0,message:`${r} must be at least 0`}]:[{type:"number",min:0,message:`${r} must be at least 0`}],style:{flex:"distance"===t?1:void 0,marginBottom:n},children:(0,i.jsx)(rG.Z,{placeholder:s.toString(),min:0,max:c,step:"distance"===t?10:1,style:{width:"100%"}})},t)};var rq=r(80434);let r$=e=>(0,i.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:18,height:16,fill:"none",viewBox:"0 0 18 16",...e,children:(0,i.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"})}),r0=e=>(0,i.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:25,height:25,fill:"none",viewBox:"0 0 25 25",...e,children:[(0,i.jsx)("path",{stroke:"#000",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,i.jsx)("path",{stroke:"#000",strokeLinecap:"round",strokeLinejoin:"round",strokeOpacity:.85,strokeWidth:1.33,d:"M12.695 8.322v4.203l2.967 2.968"})]}),r1=e=>(0,i.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:19,height:19,fill:"none",viewBox:"0 0 19 19",...e,children:[(0,i.jsxs)("g",{stroke:"#000",strokeLinejoin:"round",strokeOpacity:.65,strokeWidth:1.5,clipPath:"url(#magnifying-glass_svg__a)",children:[(0,i.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,i.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,i.jsx)("defs",{children:(0,i.jsx)("clipPath",{id:"magnifying-glass_svg__a",children:(0,i.jsx)("path",{fill:"#fff",d:"M.522.04h18v18h-18z"})})})]}),{Text:r2}=rq.Z,r6=e=>{let{onSelect:t,history:r,currentType:o}=e,[n,a]=(0,tL.useState)(!1),[l,s]=(0,tL.useState)(""),c=rM(e=>e.clearHistory),d=(0,tL.useMemo)(()=>{let e=Date.now(),t=e-6048e5,o=e-31536e6,i=r.filter(e=>e.prompt.toLowerCase().includes(l.toLowerCase()));return{recent7Days:i.filter(e=>e.timestamp>=t),recent1Year:i.filter(e=>e.timestamp<t&&e.timestamp>=o),older:i.filter(e=>e.timestamp<o)}},[r,l]),u=e=>{t(e),a(!1)},p=(e,t)=>0===t.length?null:(0,i.jsxs)("div",{className:"history-group",children:[(0,i.jsx)("div",{className:"history-group-title",children:e}),t.map((e,t)=>(0,i.jsx)("div",{className:"history-item",onClick:()=>u(e),children:e.prompt},`${e.timestamp}-${t}`))]},e);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("div",{className:"selector-trigger",onClick:()=>a(!0),children:(0,i.jsx)(r0,{width:24,height:24})}),(0,i.jsx)(rh.Z,{open:n,onCancel:()=>a(!1),footer:null,width:"100%",closable:!1,centered:!1,transitionName:"",maskTransitionName:"",style:{margin:0,padding:0,maxWidth:"none",top:"auto",bottom:0},styles:{wrapper:{alignItems:"flex-end",justifyContent:"center",paddingBottom:0,display:"flex"},body:{height:"70vh",padding:0,margin:0},content:{height:"70vh",borderRadius:"12px 12px 0 0",margin:0,padding:0,marginBottom:0,position:"fixed",bottom:0,left:0,right:0}},maskClosable:!0,destroyOnClose:!0,children:(0,i.jsxs)("div",{className:"history-modal-container",children:[(0,i.jsxs)("div",{className:"history-modal-header",children:[(0,i.jsxs)(r2,{strong:!0,style:{fontSize:"16px"},children:["History (",r.length,")"]}),(0,i.jsx)(rA.ZP,{size:"small",type:"text",icon:(0,i.jsx)(r$,{width:16,height:16}),onClick:()=>a(!1),className:"close-button"})]}),(0,i.jsx)("div",{className:"history-search-section",children:(0,i.jsxs)("div",{className:"search-input-wrapper",children:[(0,i.jsx)(rm.Z,{placeholder:"Search",value:l,onChange:e=>s(e.target.value),prefix:(0,i.jsx)(r1,{width:18,height:18}),className:"search-input",allowClear:!0}),(0,i.jsx)(rA.ZP,{type:"link",onClick:()=>{c(o),s(""),a(!1)},className:"clear-button",disabled:0===r.length,children:"Clear"})]})}),(0,i.jsx)("div",{className:"history-content",children:0===r.length?(0,i.jsx)("div",{className:"no-results",children:(0,i.jsx)(r2,{type:"secondary",children:"No history record"})}):(0,i.jsxs)(i.Fragment,{children:[p("Last 7 days",d.recent7Days),p("Last 1 year",d.recent1Year),p("Earlier",d.older),l&&0===d.recent7Days.length&&0===d.recent1Year.length&&0===d.older.length&&(0,i.jsx)("div",{className:"no-results",children:(0,i.jsx)(r2,{type:"secondary",children:"No matching history record"})})]})})]})})]})},{TextArea:r3}=rm.Z,r4=e=>{let{runButtonEnabled:t,form:r,serviceMode:o,selectedType:n,dryMode:a,stoppable:l,loading:s,onRun:c,onStop:d,clearPromptAfterRun:u=!0,actionSpace:p,hideDomAndScreenshotOptions:y=!1}=e,[h,m]=(0,tL.useState)(!1),[f,g]=(0,tL.useState)(""),k=t9(n),v=(0,tL.useRef)(null),C=rC.Z.useWatch("params",r),A=(0,tL.useRef)(null),E=rM(e=>e.history),N=rM(e=>e.lastSelectedType),x=rM(e=>e.addHistory),w=rM(e=>e.setLastSelectedType),S=(0,tL.useMemo)(()=>E[n]||[],[E,n]),b=(0,tL.useMemo)(()=>{if(p){let e=p.find(e=>e.interfaceAlias===n||e.name===n);return!!(null==e?void 0:e.paramSchema)&&(!tX(e.paramSchema)||Object.keys(e.paramSchema.shape||{}).length>0)}return!1},[n,p]),I=(0,tL.useMemo)(()=>{if(p&&p.length>0){let e=p.find(e=>e.interfaceAlias===n||e.name===n);if(e){if(e.paramSchema&&tX(e.paramSchema)){let t=e.paramSchema.shape||{};return Object.keys(t).some(e=>{let{isOptional:r}=t$(t[e]);return!r})}return!!e.paramSchema}}return!0},[n,p]),j=(0,tL.useMemo)(()=>["aiQuery","aiBoolean","aiNumber","aiString","aiAsk","aiAssert"].includes(n),[n]),O=(0,tL.useMemo)(()=>{if("aiLocate"===n)return!0;if(p){let e=p.find(e=>e.interfaceAlias===n||e.name===n);if((null==e?void 0:e.paramSchema)&&tX(e.paramSchema)){let t=e.paramSchema;return Object.keys(t.shape).some(e=>{let{actualField:r}=t$(t.shape[e]);return tq(r)})}}return!1},[n,p]),D=(0,tL.useMemo)(()=>{let e=j&&!y;return"In-Browser-Extension"===o||O||e},[o,O,j,y]),P=(0,tL.useMemo)(()=>{let e=Object.keys(rU);if(!p||0===p.length)return e;let t=p.map(e=>e.interfaceAlias||e.name),r=new Set;return e.forEach(e=>{let o=rU[e];(null==o?void 0:o.group)==="extraction"||(null==o?void 0:o.group)==="validation"?r.add(e):t.includes(e)&&r.add(e)}),t.forEach(e=>{r.add(e)}),Array.from(r)},[p]),M=(0,tL.useCallback)(()=>{if(!b||!p)return{};let e=p.find(e=>e.interfaceAlias===n||e.name===n);if((null==e?void 0:e.paramSchema)&&tX(e.paramSchema)){let t={},r=e.paramSchema.shape||{};return Object.keys(r).forEach(e=>{let o=t0(r[e]);void 0!==o&&(t[e]=o)}),t}return{}},[n,b,p]);(0,tL.useEffect)(()=>{!r.getFieldValue("type")&&N&&r.setFieldValue("type",N)},[r,N]),(0,tL.useEffect)(()=>{n&&n!==N&&w(n)},[n,N,w]),(0,tL.useEffect)(()=>{let e=S[0];if(!e||!A.current||e.timestamp!==A.current.timestamp)if(e)r.setFieldsValue({type:e.type,prompt:e.prompt||"",params:e.params}),g(e.prompt||""),A.current=e;else{let e=M();r.setFieldsValue({prompt:"",params:e}),g(""),A.current=null}},[n,S,r,M]);let T=rC.Z.useWatch("prompt",r);(0,tL.useEffect)(()=>{T!==f&&g(T||"")},[T,f]);let L=(0,tL.useCallback)(e=>{r.setFieldsValue({prompt:e.prompt,type:e.type,params:e.params}),g(e.prompt)},[r]),K=(0,tL.useCallback)(e=>{g(e.target.value)},[]),R=(0,tL.useMemo)(()=>{if(!b||!p)return!1;let e=p.find(e=>e.interfaceAlias===n||e.name===n);return!!((null==e?void 0:e.paramSchema)&&tX(e.paramSchema))&&1===Object.keys(e.paramSchema.shape||{}).length},[n,b,p]),_=(0,tL.useMemo)(()=>re(t,!!b,C,p,n,f),[t,b,n,p,f,C]),F=(0,tL.useCallback)(()=>{let e=r.getFieldsValue(),t="";if(b&&e.params&&p){let r=p.find(e=>e.interfaceAlias===n||e.name===n);if((null==r?void 0:r.paramSchema)&&tX(r.paramSchema)){let o="",i=[],n=r.paramSchema.shape||{};Object.keys(n).forEach(t=>{let r=e.params[t];if(null!=r&&""!==r){let{actualField:e}=t$(n[t]);tq(e)?o=String(r):"distance"===t?i.push(`${r}`):i.push(String(r))}});let a=i.join(" ");t=o?`${o} - ${a}`:a}else t=e.prompt||""}else t=e.prompt||"";let o={type:e.type,prompt:t,params:e.params,timestamp:Date.now()};if(x(o),c(),u)if(A.current=o,g(""),b){let e=M();r.setFieldValue("params",e)}else r.setFieldValue("prompt","")},[r,x,c,b,n,u,p,M]),z=(0,tL.useCallback)(e=>{"Enter"===e.key&&e.metaKey&&_?(F(),e.preventDefault(),e.stopPropagation()):"Enter"===e.key&&setTimeout(()=>{if(v.current){let e=v.current.resizableTextArea.textArea,t=e.selectionStart,r=e.value.lastIndexOf("\n");(-1===r||t>r)&&(e.scrollTop=e.scrollHeight)}},0)},[F,_]),U=(0,tL.useCallback)(e=>{"Enter"===e.key&&e.metaKey&&_&&(F(),e.preventDefault(),e.stopPropagation())},[F,_]),Z=(0,tL.useCallback)(()=>{if(!b)return null;if(p){let e=p.find(e=>e.interfaceAlias===n||e.name===n);if((null==e?void 0:e.paramSchema)&&tX(e.paramSchema)){let t=e.paramSchema.shape||{},r=Object.keys(t);if(1===r.length){let e=r[0],{actualField:o}=t$(t[e]),a=tq(o),l=(()=>{var t,r;if(null==(t=o._def)?void 0:t.description)return o._def.description;if(o.description)return o.description;if(p){let t=p.find(e=>e.interfaceAlias===n||e.name===n);if((null==t?void 0:t.paramSchema)&&"object"==typeof t.paramSchema&&"shape"in t.paramSchema){let o=(t.paramSchema.shape||{})[e];if(null==o||null==(r=o._def)?void 0:r.description)return o._def.description;if(null==o?void 0:o.description)return o.description}}return a?"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,i.jsx)(rC.Z.Item,{name:["params",e],style:{margin:0},children:(0,i.jsx)(rm.Z.TextArea,{className:"main-side-console-input-textarea",rows:4,placeholder:l,autoFocus:!0,onKeyDown:U})})}let o=[];if(r.forEach((e,a)=>{var l,s;let{actualField:c,isOptional:d}=t$(t[e]),u=tq(c),y=e.charAt(0).toUpperCase()+e.slice(1),h=12*(a!==r.length-1),m=(()=>{var t,r;if(null==(t=c._def)?void 0:t.description)return c._def.description;if(c.description)return c.description;if(p){let t=p.find(e=>e.interfaceAlias===n||e.name===n);if((null==t?void 0:t.paramSchema)&&"object"==typeof t.paramSchema&&"shape"in t.paramSchema){let o=(t.paramSchema.shape||{})[e];if(null==o||null==(r=o._def)?void 0:r.description)return o._def.description;if(null==o?void 0:o.description)return o.description}}if(u)return"Describe the element you want to interact with"})(),f={name:e,label:y,fieldSchema:c,isRequired:!d,marginBottom:h,placeholder:m};u?o.push((0,i.jsx)(rQ,{...f},e)):(null==(l=c._def)?void 0:l.typeName)==="ZodEnum"?o.push((0,i.jsx)(rJ,{...f},e)):(null==(s=c._def)?void 0:s.typeName)==="ZodNumber"?o.push((0,i.jsx)(rX,{...f},e)):o.push((0,i.jsx)(rW,{...f},e))}),"aiScroll"===n){let e=o.find(e=>tL.isValidElement(e)&&"direction"===e.props.name),t=o.find(e=>tL.isValidElement(e)&&"distance"===e.props.name),r=o.filter(e=>tL.isValidElement(e)&&"direction"!==e.props.name&&"distance"!==e.props.name);if(e&&t)return(0,i.jsxs)("div",{className:"structured-params",children:[(0,i.jsxs)("div",{style:{display:"flex",gap:12,marginBottom:12},children:[e,t]}),r]})}return(0,i.jsx)("div",{className:"structured-params",children:o})}}return null},[n,b,p,U]),B=(0,tL.useCallback)(()=>{m(!0)},[]),V=(0,tL.useCallback)(()=>{m(!1)},[]),G=(0,tL.useCallback)(()=>{let e=e=>(0,i.jsx)(rA.ZP,{type:"primary",icon:(0,i.jsx)(rg.Z,{}),style:{borderRadius:20,zIndex:999},onClick:F,disabled:!_,loading:s,children:e});return a?"aiAction"===n?(0,i.jsx)(ry.Z,{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"):l?(0,i.jsx)(rA.ZP,{icon:(0,i.jsx)(rk.Z,{}),onClick:d,style:{borderRadius:20,zIndex:999},children:"Stop"}):e("Run")},[a,s,F,d,_,n,l]);return(0,i.jsxs)("div",{className:"prompt-input-wrapper",children:[(0,i.jsxs)(rE.Z,{className:"mode-radio-group-wrapper",children:[(0,i.jsxs)("div",{className:"mode-radio-group",children:[(0,i.jsx)(rC.Z.Item,{name:"type",style:{margin:0},children:(0,i.jsx)(rN.ZP.Group,{buttonStyle:"solid",disabled:!t,children:rZ.map(e=>{var t;return(0,i.jsx)(ry.Z,{title:(null==(t=rU[e])?void 0:t.title)||"",children:(0,i.jsx)(rN.ZP.Button,{value:e,children:t7(e)})},e)})})}),(0,i.jsx)(rx.Z,{menu:(()=>{let e=P.filter(e=>!rZ.includes(e)),t=[],o=e.filter(e=>{var t;return(null==(t=rU[e])?void 0:t.group)==="interaction"});o.length>0&&t.push({key:"interaction-group",type:"group",label:"Interaction APIs",children:o.map(e=>{var t;return{key:e,label:t7(e),title:(null==(t=rU[e])?void 0:t.title)||"",onClick:()=>{r.setFieldValue("type",e)}}})});let i=e.filter(e=>{var t;return(null==(t=rU[e])?void 0:t.group)==="extraction"});i.length>0&&t.push({key:"extraction-group",type:"group",label:"Data Extraction APIs",children:i.map(e=>{var t;return{key:e,label:t7(e),title:(null==(t=rU[e])?void 0:t.title)||"",onClick:()=>{r.setFieldValue("type",e)}}})});let n=e.filter(e=>{var t;return(null==(t=rU[e])?void 0:t.group)==="validation"});n.length>0&&t.push({key:"validation-group",type:"group",label:"Validation APIs",children:n.map(e=>{var t;return{key:e,label:t7(e),title:(null==(t=rU[e])?void 0:t.title)||"",onClick:()=>{r.setFieldValue("type",e)}}})});let a=e.filter(e=>!rU[e]);return a.length>0&&t.push({key:"device-specific-group",type:"group",label:"Device-Specific APIs",children:a.map(e=>({key:e,label:t7(e),title:"",onClick:()=>{r.setFieldValue("type",e)}}))}),{items:t}})(),placement:"bottomLeft",trigger:["click"],disabled:!t,children:(0,i.jsxs)(rA.ZP,{className:`more-apis-button ${!rZ.includes(n)?"selected-from-dropdown":""}`,children:[n&&!rZ.includes(n)?t7(n):"more",(0,i.jsx)(rv.Z,{style:{fontSize:"10px",marginLeft:"2px"}})]})})]}),(0,i.jsxs)("div",{className:"action-icons",children:[(0,i.jsx)(r6,{onSelect:L,history:S,currentType:n}),D&&(0,i.jsx)("div",{className:h?"settings-wrapper settings-wrapper-hover":"settings-wrapper",onMouseEnter:B,onMouseLeave:V,children:(0,i.jsx)(rB,{enableTracking:"In-Browser-Extension"===o,showDeepThinkOption:O,showDataExtractionOptions:j,hideDomAndScreenshotOptions:y})})]})]}),(0,i.jsxs)("div",{className:`main-side-console-input ${!t?"disabled":""} ${s?"loading":""}`,children:[I?b?R?Z():(0,i.jsx)("div",{className:"structured-params-container",children:Z()}):(0,i.jsx)(rC.Z.Item,{name:"prompt",style:{margin:0},children:(0,i.jsx)(r3,{className:"main-side-console-input-textarea",disabled:!t,rows:4,placeholder:k,autoFocus:!0,onKeyDown:z,onChange:K,ref:v})}):(0,i.jsxs)("div",{className:"no-input-method",style:{padding:"20px",textAlign:"center",color:"#666",fontSize:"14px"},children:['Click "Run" to execute ',t7(n)]}),(0,i.jsx)("div",{className:"form-controller-wrapper",children:G()})]})]})};var r8=r(16383),r5=r(92446);r(83264);var r7=r(15284),r9=r(11322),oe=r(50408),ot=r(94878),or=r(47877);let oo=e=>(0,i.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16",...e,children:(0,i.jsx)("path",{fill:"#333",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"})}),oi=e=>(0,i.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16",...e,children:[(0,i.jsx)("path",{stroke:"#333",strokeLinejoin:"round",strokeWidth:1.333,d:"M11.333 13.667 14.667 8l-3.334-5.667H4.667L1.333 8l3.334 5.667z"}),(0,i.jsx)("path",{stroke:"#333",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"})]}),on=e=>(0,i.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16",...e,children:(0,i.jsx)("path",{fill:"#333",d:"M13 1.835a2.165 2.165 0 0 1 .665 4.225v3.88a2.166 2.166 0 1 1-2.725 2.725H5.06a2.165 2.165 0 1 1-2.725-2.726V6.06A2.165 2.165 0 1 1 5.06 3.336h5.88c.281-.87 1.097-1.5 2.06-1.5m-10 9.33a.835.835 0 1 0 0 1.67.835.835 0 0 0 0-1.67m10 0a.835.835 0 1 0 0 1.67.835.835 0 0 0 0-1.67m-7.94-6.5A2.17 2.17 0 0 1 3.665 6.06v3.88c.66.213 1.181.734 1.395 1.395h5.88a2.17 2.17 0 0 1 1.395-1.396V6.06a2.17 2.17 0 0 1-1.395-1.394zM3 3.165a.835.835 0 1 0 0 1.67.835.835 0 0 0 0-1.67m10 0a.835.835 0 1 0 0 1.67.835.835 0 0 0 0-1.67"})});var oa=r(8811);let ol=(e,t,r)=>{let o,{left:i,top:n,width:a,height:l}=e;o="element"===r?rc[function(e){e||(e="unnamed");let t=5381;for(let r=0;r<e.length;r++)t=(t<<5)+t+e.charCodeAt(r);return t>>>0}(t)%rc.length]:"searchArea"===r?rd("searchArea"):rd("element");let s=new r7.TCu;if(s.beginFill(o,.4),s.lineStyle(1,o,1),s.drawRect(i,n,a,l),s.endFill(),s.filters=[new oa.pt({blur:2,quality:3,alpha:.4,offset:{x:4,y:4},color:3355443})],!t)return[s];let c=new r7.xvT(t,{fontSize:18,fill:0});return c.x=i,c.y=Math.max(n-22,0),[s,c]},os=new Map,oc=async e=>{if(!os.has(e))return r7.deM.load(e).then(t=>{os.set(e,t)})},od=e=>os.get(e);function ou(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}let op=(e,t,r,o,i)=>{let n=1-e;return t*n*n*n+3*r*e*n*n+3*o*e*e*n+i*e*e*e},oy=e=>of(e),oh=e=>op(e,0,.5,.5,1),om=e=>of(e),of=e=>e,og=e=>new Promise(t=>setTimeout(t,e)),ok="frame cancel (this is an error on purpose)",ov=()=>{let e=!1;return{frame:t=>{if(e)throw Error(ok);requestAnimationFrame(()=>{if(e)throw Error(ok);t(performance.now())})},timeout:(t,r)=>{if(e)throw Error(ok);setTimeout(()=>{if(e)throw Error(ok);t()},r)},cancel:()=>{e=!0}}},oC=e=>{let t=new Blob([e],{type:"text/html"}),r=URL.createObjectURL(t),o=document.createElement("a");o.href=r,o.download="midscene_report.html",o.click()};class oA{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)},this.mediaRecorder=e,this.recording=!0,this.mediaRecorder.start()}stop(){var e;if(!this.recording||!this.mediaRecorder)return void console.warn("not recording");this.mediaRecorder.onstop=()=>{let e=new Blob(this.chunks,{type:"video/webm"}),t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download="midscene_replay.webm",r.click(),URL.revokeObjectURL(t)},null==(e=this.mediaRecorder)||e.stop(),this.recording=!1,this.mediaRecorder=null}constructor(e){ou(this,"canvas",void 0),ou(this,"mediaRecorder",null),ou(this,"chunks",void 0),ou(this,"recording",!1),this.canvas=e,this.chunks=[]}}function oE(e){var t;let r,[o,n]=(0,tL.useState)(""),[a,l]=(0,tL.useState)(""),{autoZoom:s,setAutoZoom:c,elementsVisible:d,setElementsVisible:u}=tw();(0,tL.useEffect)(()=>{(null==e?void 0:e.autoZoom)!==void 0&&c(e.autoZoom)},[null==e?void 0:e.autoZoom,c]);let p=null==e?void 0:e.replayScripts,y=(null==e?void 0:e.imageWidth)||1920,h=(null==e?void 0:e.imageHeight)||1080,m=(null==e?void 0:e.fitMode)||"height",f=(0,tL.useRef)((null==p||null==(t=p[0])?void 0:t.img)||null),g=(0,tL.useRef)(null),k=(0,tL.useMemo)(()=>new r7.MxU,[]),v=(0,tL.useRef)(null),C=(0,tL.useRef)(null),[A,E]=(0,tL.useState)(0),N=()=>{E(Date.now())},x=(0,tL.useMemo)(()=>new r7.W20,[]),w=(0,tL.useMemo)(()=>{let e=new r7.W20;return e.zIndex=1,e},[]);(0,tL.useEffect)(()=>{w.visible=d},[d,w]);let S={left:0,top:0,width:y,pointerLeft:Math.round(y/2),pointerTop:Math.round(h/2)},[b,I]=(0,tL.useState)(-1),j=(0,tL.useRef)(!1);(0,tL.useEffect)(()=>(j.current=!1,()=>{j.current=!0}),[]);let O=(0,tL.useRef)({...S}),D=async()=>{let e=f.current;if(!e)return void console.warn("no image to update");od(e)||(console.warn("image not loaded",e),await oc(e));let t=od(e);if(!t)throw Error("texture not found");let r=r7.jyi.from(t);if(!r)throw Error("sprite not found");let o="main-img",i=x.getChildByLabel(o);i&&x.removeChild(i),r.label=o,r.zIndex=0,r.width=y,r.height=h,x.addChild(r)},P=e=>{var t,r;let o;C.current||(C.current=r7.jyi.from(ro),C.current.zIndex=3,C.current.anchor.set(.5,.5),C.current.scale.set(.5),C.current.label="spinning-pointer"),C.current.x=(null==(t=v.current)?void 0:t.x)||0,C.current.y=(null==(r=v.current)?void 0:r.y)||0,x.addChild(C.current);let i=!1,n=t=>{if(i)return;o||(o=t);let r=(Math.sin((t-o)/500-Math.PI/2)+1)/2*Math.PI*2;C.current&&(C.current.rotation=r),e(n)};return e(n),()=>{C.current&&x.removeChild(C.current),i=!0}},M=async(e,t,r)=>{var o,i;od(e)||(console.warn("image not loaded",e),await oc(e));let n=od(e);if(!n)throw Error("texture not found");let a=r7.jyi.from(n),l=null==(o=v.current)?void 0:o.x,s=null==(i=v.current)?void 0:i.y;if("number"==typeof t&&(l=t),"number"==typeof r&&(s=r),void 0===l||void 0===s)return void console.warn("invalid pointer position",t,r);if(v.current){let e=x.getChildByLabel("pointer");e&&x.removeChild(e)}v.current=a,v.current.x=l,v.current.y=s,v.current.label="pointer",v.current.zIndex=2,x.addChild(v.current)},T=e=>{O.current=e;let t=s?Math.max(1,y/e.width):1;x.scale.set(t),x.x=s?Math.round(0-e.left*t):0,x.y=s?Math.round(0-e.top*t):0;let r=x.getChildByLabel("pointer");r&&(r.scale.set(1/t),"number"==typeof e.pointerLeft&&"number"==typeof e.pointerTop&&(r.x=e.pointerLeft,r.y=e.pointerTop))},L=async(e,t,r)=>{if(!s){let o={...O.current},i=o.pointerLeft,n=o.pointerTop,a=performance.now();if("number"!=typeof e.pointerLeft||"number"!=typeof e.pointerTop||e.pointerLeft===i&&e.pointerTop===n)return;await new Promise(l=>{let s=c=>{let d=c-a,u=om(Math.min(d/t,1));T({...o,pointerLeft:i+(e.pointerLeft-i)*u,pointerTop:n+(e.pointerTop-n)*u}),d<t?r(s):l()};r(s)});return}let o={...O.current},i=o.left,n=o.top,a=o.pointerLeft,l=o.pointerTop,c=o.width/y,d=performance.now(),u="number"==typeof e.pointerLeft&&"number"==typeof e.pointerTop&&(e.pointerLeft!==a||e.pointerTop!==l),p=u?.375*t:0,m=t-p;await new Promise(o=>{let s=f=>{let g={...O.current},k=f-d;if(u)if(k<=p){let t=om(Math.min(k/p,1));g.pointerLeft=a+(e.pointerLeft-a)*t,g.pointerTop=l+(e.pointerTop-l)*t}else g.pointerLeft=e.pointerLeft,g.pointerTop=e.pointerTop;if(k>p){let t=oy(Math.min((k-p)/m,1)),r=c+(e.width/y-c)*t,o=y*r,a=h*r;g.width=o;let l=i+(e.left-i)*t,s=n+(e.top-n)*t,d=l+o-y,u=s+a-h;g.left=d>0?l+d:l,g.top=u>0?s+u:s}T(g),k<t?r(s):o()};r(s)})},K=function(e,t,r){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return new Promise(i=>{let n=performance.now(),a=l=>{let s=l-n,c=Math.min(s/t,1);e.alpha=0===o?1-of(c):of(c),s<t?r(a):i()};r(a)})},R=async(e,t,r)=>K(e,t,r,0),_=async(e,t,r,o,i)=>{w.removeChildren();let n=[...e],a=n.length,l=0;await new Promise(e=>{let s=performance.now(),c=d=>{let u=d-s,p=Math.floor(oh(Math.min(u/o,1))*a);for(;l<p;){let e=Math.floor(Math.random()*n.length),t=n.splice(e,1)[0];if(t){let[e]=ol(t.rect,t.content,"element");e.alpha=0,w.addChild(e),l++,K(e,80,i)}}if(u<o)i(c);else{for(;n.length>0;){let e=Math.floor(Math.random()*n.length),t=n.splice(e,1)[0],[r]=ol(t.rect,t.content,"element");r.alpha=1,w.addChild(r)}if(r){let[e]=ol(r,"Search Area","searchArea");e.alpha=1,w.addChild(e)}t.map(e=>{let[t]=ol(e.rect,e.content||"","highlight");t.alpha=1,w.addChild(t)}),e()}};i(c)})},F=async()=>{g.current&&p&&(await k.init({width:y,height:h,background:0xf4f4f4,autoDensity:!0,antialias:!0}),g.current&&(g.current.appendChild(k.canvas),x.x=0,x.y=0,k.stage.addChild(x),w.x=0,w.y=0,x.addChild(w)))},[z,U]=(0,tL.useState)(!1),Z=(0,tL.useRef)(null),B=()=>{let e;return Promise.resolve((async()=>{if(!k)throw Error("app is not initialized");if(!p)throw Error("scripts is required");let{frame:t,cancel:r,timeout:o}=ov();e=r;let i=p.filter(e=>!!e.img).map(e=>e.img);await Promise.all([...i,ro,rr].map(oc)),w.removeChildren(),await M(rr,y/2,h/2),await D(),await T({...S});let a=p.reduce((e,t)=>e+t.duration+(t.camera&&t.insightCameraDuration?t.insightCameraDuration:0),0),s=performance.now();I(0);let c=()=>{let e=Math.min((performance.now()-s)/a,1);if(I(e),e<1)return o(c,200)};for(let e in t(c),Z.current&&Z.current.start(),p){let r=p[e];if(n(r.title||""),l(r.subTitle||""),"sleep"===r.type)await og(r.duration);else if("insight"===r.type){var d;if(!r.img)throw Error("img is required");f.current=r.img,await D();let e=(null==(d=r.context)?void 0:d.tree)?t_(r.context.tree):[],o=r.highlightElement?[r.highlightElement]:[];if(await _(e,o,r.searchArea,r.duration,t),r.camera){if(!r.insightCameraDuration)throw Error("insightCameraDuration is required");await L(r.camera,r.insightCameraDuration,t)}}else if("clear-insight"===r.type)await R(w,r.duration,t),w.removeChildren(),w.alpha=1;else if("img"===r.type)r.img&&r.img!==f.current&&(f.current=r.img,await D()),r.camera?await L(r.camera,r.duration,t):await og(r.duration);else if("pointer"===r.type){if(!r.img)throw Error("pointer img is required");await M(r.img)}else if("spinning-pointer"===r.type){let e=P(t);await og(r.duration),e()}}Z.current&&(Z.current.stop(),Z.current=null,U(!1))})().catch(e=>{console.error("player error",e)})),()=>{null==e||e()}};(0,tL.useEffect)(()=>(Promise.resolve((async()=>{if(await F(),g.current&&y&&h){let e=y/h;g.current.style.setProperty("--canvas-aspect-ratio",e.toString()),g.current.setAttribute("data-fit-mode",m);let t=g.current.closest(".player-container");t&&t.setAttribute("data-fit-mode",m)}N()})()),()=>{try{k.destroy(!0,{children:!0,texture:!0})}catch(e){console.warn("destroy failed",e)}}),[y,h,m]),(0,tL.useEffect)(()=>{if(A)return B()},[A]);let[V,G]=(0,tL.useState)(!1),[H,Y]=(0,tL.useState)(!1),W=Math.round(100*b),Q=1===b;(0,tL.useEffect)(()=>{if(Q){let e=e=>{" "===e.key&&N()};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}}},[Q]);let J=()=>{};return b<1?r=(0,i.jsx)(r5.Z,{indicator:(0,i.jsx)(r8.Z,{spin:!0,color:"#333"}),size:"default"}):V?(r=(0,i.jsx)(r5.Z,{indicator:(0,i.jsx)(r9.Z,{color:"#333"}),size:"default"}),J=()=>N()):r=(0,i.jsx)(r5.Z,{indicator:(0,i.jsx)(r9.Z,{color:"#333"}),size:"default"}),(0,i.jsxs)("div",{className:"player-container",children:[(0,i.jsx)("div",{className:"canvas-container",ref:g}),(0,i.jsx)("div",{className:"player-timeline-wrapper",children:(0,i.jsx)("div",{className:"player-timeline",children:(0,i.jsx)("div",{className:"player-timeline-progress",style:{width:`${W}%`,transition:0===b?"none":"0.3s"}})})}),(0,i.jsx)("div",{className:"player-tools-wrapper",children:(0,i.jsx)("div",{className:"player-tools",children:(0,i.jsxs)("div",{className:"player-control",children:[(0,i.jsxs)("div",{className:"status-text",children:[(0,i.jsx)("div",{className:"title",children:o}),(0,i.jsx)(ry.Z,{title:a,children:(0,i.jsx)("div",{className:"subtitle",children:a})})]}),z?null:(0,i.jsx)("div",{className:"status-icon",onMouseEnter:()=>G(!0),onMouseLeave:()=>G(!1),onClick:J,children:r}),(null==e?void 0:e.reportFileContent)?(0,i.jsx)(ry.Z,{title:"Download Report",children:(0,i.jsx)("div",{className:"status-icon",onMouseEnter:()=>G(!0),onMouseLeave:()=>G(!1),onClick:()=>oC(e.reportFileContent),children:(0,i.jsx)(oe.Z,{color:"#333"})})}):null,(0,i.jsx)(ry.Z,{title:z?"Generating...":"Export Video",children:(0,i.jsx)("div",{className:"status-icon",onClick:z?void 0:()=>Z.current?void console.warn("recorderSession exists"):k.canvas?void(Z.current=new oA(k.canvas),U(!0),N()):void console.warn("canvas is not initialized"),style:{opacity:z?.5:1,cursor:z?"not-allowed":"pointer"},children:z?(0,i.jsx)(r5.Z,{size:"default",percent:W}):(0,i.jsx)(ot.Z,{})})}),(0,i.jsx)(rx.Z,{trigger:["hover","click"],placement:"bottomRight",overlayStyle:{minWidth:"148px"},dropdownRender:e=>(0,i.jsx)("div",{style:{borderRadius:"8px",border:"1px solid rgba(0, 0, 0, 0.08)",backgroundColor:"#fff",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.08)",overflow:"hidden"},children:e}),menu:{style:{borderRadius:"8px",padding:0},items:[{key:"autoZoom",style:{height:"39px",margin:0,padding:"0 12px"},label:(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",height:"39px"},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[(0,i.jsx)(oo,{style:{width:"16px",height:"16px"}}),(0,i.jsx)("span",{style:{fontSize:"12px",marginRight:"16px"},children:"Focus on Cursor"})]}),(0,i.jsx)(or.Z,{size:"small",checked:s,onChange:e=>{c(e),N()},onClick:(e,t)=>{var r;return null==t||null==(r=t.stopPropagation)?void 0:r.call(t)}})]})},{key:"elementsVisible",style:{height:"39px",margin:0,padding:"0 12px"},label:(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",height:"39px"},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[(0,i.jsx)(on,{style:{width:"16px",height:"16px"}}),(0,i.jsx)("span",{style:{fontSize:"12px",marginRight:"16px"},children:"Show Element Markers"})]}),(0,i.jsx)(or.Z,{size:"small",checked:d,onChange:e=>{u(e),N()},onClick:(e,t)=>{var r;return null==t||null==(r=t.stopPropagation)?void 0:r.call(t)}})]})}]},children:(0,i.jsx)("div",{className:"status-icon",onMouseEnter:()=>Y(!0),onMouseLeave:()=>Y(!1),style:{cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",opacity:H?1:.7,transition:"opacity 0.2s"},children:(0,i.jsx)(oi,{style:{width:"16px",height:"16px"}})})})]})})})]})}let oN=e=>{let{result:t,loading:r,serverValid:o,serviceMode:n,replayScriptsInfo:a,replayCounter:l,loadingProgressText:s,verticalMode:c=!1,notReadyMessage:d,fitMode:u,autoZoom:p}=e,y="result-wrapper";c&&(y+=" vertical-mode-result"),a&&c&&(y+=" result-wrapper-compact");let h=rz;return o||"Server"!==n?r?h=(0,i.jsxs)("div",{className:"loading-container",children:[(0,i.jsx)(r5.Z,{spinning:r,indicator:(0,i.jsx)(r8.Z,{spin:!0})}),(0,i.jsx)("div",{className:"loading-progress-text loading-progress-text-progress",children:(0,i.jsx)(rR,{text:s,speed:3})})]}):a?h=(0,i.jsx)(oE,{replayScripts:a.scripts,imageWidth:a.width,imageHeight:a.height,reportFileContent:("In-Browser-Extension"===n||"Server"===n)&&(null==t?void 0:t.reportHTML)?null==t?void 0:t.reportHTML:null,fitMode:u,autoZoom:p},l):(null==t?void 0:t.error)?h=(0,i.jsx)("pre",{children:null==t?void 0:t.error}):(null==t?void 0:t.result)!==void 0&&(h="string"==typeof(null==t?void 0:t.result)?(0,i.jsx)("pre",{children:null==t?void 0:t.result}):(0,i.jsx)("pre",{children:JSON.stringify(null==t?void 0:t.result,null,2)})):h=rF(d),(0,i.jsx)("div",{className:y,style:{height:"100%",display:"flex",flexDirection:"column",flex:"1 1 auto"},children:h})};var ox=r(60247),ow=r(1754),oS=r(16327),ob=r(93636),oI=r(4465),oj=r(9450),oO=r(43876),oD=r(64838);let oP=e=>(0,i.jsx)("span",{className:"status-dot",style:{color:e},children:"●"}),oM=e=>{var t,r,o;let{devices:n,loadingDevices:a,selectedDeviceId:l,onDeviceSelect:s,socketRef:c,scrcpyPlayerRef:d}=e,[u,p]=(0,tL.useState)(!1),y=(0,tL.useRef)(null),[h,m]=ow.ZP.useMessage(),f=rt(!0),g=(0,tL.useCallback)(e=>{e!==y.current&&c.current&&c.current.connected&&(p(!1),s(e),y.current=e)},[s,c]),k=(0,tL.useCallback)(()=>{d.current&&(d.current.disconnectDevice(),h.info("Device disconnected"))},[d,h]),v=!!l&&(null==(t=n.find(e=>e.id===l))?void 0:t.status.toLowerCase())!=="device";return(0,tL.useEffect)(()=>{v&&l&&k()},[v,l,k,h]),(0,i.jsxs)("div",{className:"device-header",children:[m,(0,i.jsxs)("div",{className:"device-title-container",children:[(0,i.jsx)("h2",{className:"device-title",children:"Device"}),(0,i.jsx)(rx.Z,{trigger:["click"],placement:"bottomLeft",open:u,onOpenChange:p,dropdownRender:()=>(0,i.jsxs)("div",{className:"device-dropdown",children:[(0,i.jsx)("div",{className:"dropdown-header",children:(0,i.jsx)("span",{className:"dropdown-title",children:"Devices list"})}),(0,i.jsxs)("div",{className:"device-list",children:[n.map(e=>(0,i.jsx)("div",{onClick:()=>{"device"===e.status.toLowerCase()&&g(e.id)},className:`device-list-item ${"device"===e.status.toLowerCase()&&l===e.id?"selected":""} ${"device"!==e.status.toLowerCase()?"offline":""}`,children:(0,i.jsxs)("div",{className:"device-item-content",children:[(0,i.jsx)("div",{className:"device-item-icon-container",children:(0,i.jsx)(oO.Z,{className:"device-item-icon"})}),(0,i.jsxs)("div",{className:"device-item-info",children:[(0,i.jsx)("div",{className:"device-item-name",children:e.name||e.id}),(0,i.jsxs)("div",{className:"device-item-status",children:[(0,i.jsx)("div",{className:"status-badge",children:"device"===e.status.toLowerCase()?(0,i.jsxs)(i.Fragment,{children:[oP("#52c41a"),(0,i.jsx)("span",{className:"status-text",children:"Online"})]}):(0,i.jsxs)(i.Fragment,{children:[oP("#f5222d"),(0,i.jsx)("span",{className:"status-text",children:"Offline"})]})}),(0,i.jsx)(oD.Z,{type:"vertical",className:"status-divider"}),(0,i.jsxs)("div",{className:"device-id-container",children:["Device ID: ",e.id]})]})]}),"device"===e.status.toLowerCase()&&l===e.id&&(0,i.jsx)("div",{className:"current-device-indicator",children:"Current device"})]})},e.id)),0===n.length&&(0,i.jsx)("div",{className:"device-list-empty",children:"No devices found"})]})]}),children:(0,i.jsxs)(rA.ZP,{className:"device-dropdown-button",children:[(0,i.jsxs)("div",{className:"device-icon-container",children:[(0,i.jsx)(oO.Z,{className:"device-icon"}),l&&f&&(0,i.jsx)("div",{className:"status-indicator",children:(null==(r=n.find(e=>e.id===l))?void 0:r.status.toLowerCase())==="device"?(0,i.jsx)(i.Fragment,{children:oP("#52c41a")}):(0,i.jsx)(i.Fragment,{children:oP("#f5222d")})})]}),l&&!v&&f?(0,i.jsx)("span",{className:"device-name",children:(null==(o=n.find(e=>e.id===l))?void 0:o.name)||l}):(0,i.jsx)("span",{className:"device-name no-device",children:"No device"}),(0,i.jsx)("span",{className:"dropdown-arrow",children:"▼"})]})})]})]})};var oT=r(7379),oL=r(92882),oK=r(81138),oR=r(32686),o_=r(72688),oF=r(44600);let oz=e=>(0,i.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16",...e,children:(0,i.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"})}),oU=e=>(0,i.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16",...e,children:[(0,i.jsxs)("g",{fill:"#606266",clipPath:"url(#screenshot_svg__a)",children:[(0,i.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,i.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,i.jsx)("defs",{children:(0,i.jsx)("clipPath",{id:"screenshot_svg__a",children:(0,i.jsx)("path",{fill:"#fff",d:"M0 0h16v16H0z"})})})]}),oZ=e=>(0,i.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16",...e,children:(0,i.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:oB}=rq.Z,oV=(0,tL.forwardRef)((e,t)=>{let{serverUrl:r,maxSize:o=1024,autoConnect:n=!0,autoReconnect:a=!0,reconnectInterval:l=5e3,onConnectionStatusChange:s}=e,[c,d]=(0,tL.useState)(!1),[u,p]=(0,tL.useState)(!1),[y,h]=(0,tL.useState)(null),[m,f]=(0,tL.useState)(""),g=(0,tL.useRef)(null),k=(0,tL.useRef)(null),v=(0,tL.useRef)(null),C=(0,tL.useRef)(null),A=(0,tL.useRef)(null),E=(0,tL.useRef)(null),N=rt(!0),x=(0,tL.useCallback)(e=>{if(e)try{for(;e.firstChild;)try{e.removeChild(e.firstChild)}catch(t){if(console.warn("Failed to remove child, skipping:",t),e.firstChild){e.innerHTML="";break}}}catch(t){console.error("Error clearing container:",t);try{e.innerHTML=""}catch(e){console.error("Failed to reset innerHTML:",e)}}},[]),w=(0,tL.useCallback)(()=>{if(!v.current||!k.current||!y)return;let e=k.current,t=v.current,r=e.clientWidth,o=e.clientHeight,{width:i,height:n}=y,a=o-40,l=i/n,s=r,c=r/l;c>a&&(c=a,s=a*l),t.width=i,t.height=n,t.style.width=`${s}px`,t.style.height=`${c}px`,t.style.marginTop="20px",t.style.marginBottom="20px"},[y]);(0,tL.useEffect)(()=>{let e=()=>{w()};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[w]),(0,tL.useEffect)(()=>{w()},[y,w]);let S=async()=>{if(oR.P.isSupported){let e=new oR.P;return{renderer:e,element:e.canvas}}let e=new o_.I;return{renderer:e,element:e.canvas}},b=async e=>{if(!oK.h.isSupported)throw Error("Current browser does not support WebCodecs API, please use the latest version of Chrome/Edge browser");let{renderer:t,element:r}=await S();if(v.current=r,k.current){let e=k.current.querySelector(".canvas-wrapper");e&&(x(e),e.appendChild(v.current))}return new oK.h({codec:e,renderer:t})},I=e=>{let t=!1,r=[],o=new TransformStream({transform(e,o){let i={type:e.type,data:new Uint8Array(e.data),timestamp:e.timestamp};"configuration"===i.type?(o.enqueue(i),t=!0,r.length>0&&(r.forEach(e=>o.enqueue(e)),r=[])):"data"===i.type?t?o.enqueue(i):r.push(i):o.enqueue(i)}});return new ReadableStream({start(e){let t=!1,r=r=>{if(!t)try{e.enqueue(r)}catch(e){console.error("error occurred while enqueuing video data:",e),t=!0,n()}},o=r=>{console.error("stream error:",r),t||(e.error(Error(r.message)),t=!0,n())},i=()=>{t||(e.close(),t=!0,n())},n=()=>{g.current&&(g.current.off("video-data",r),g.current.off("error",o),g.current.off("disconnect",i))};return g.current&&(g.current.on("video-data",r),g.current.on("error",o),g.current.on("disconnect",i)),()=>{t=!0,n()}}}).pipeThrough(o)},j=async()=>{if(C.current)try{let e=await C.current.snapshot();if(e){let t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download=`screenshot_${new Date().toISOString().replace(/:/g,"-")}.png`,r.click(),URL.revokeObjectURL(t)}}catch(e){console.error("screenshot failed:",e),alert("screenshot failed")}},O=(0,tL.useCallback)(()=>{if(C.current)try{C.current.dispose(),C.current=null}catch(e){console.error("Error disposing decoder:",e)}k.current&&x(k.current.querySelector(".canvas-wrapper")),g.current&&(g.current.disconnect(),g.current=null),A.current&&(clearTimeout(A.current),A.current=null),E.current&&(clearTimeout(E.current),E.current=null),p(!1),d(!1),h(null)},[x]);(0,tL.useImperativeHandle)(t,()=>({disconnectDevice:O}),[O]);let D=(0,tL.useCallback)(async()=>{try{if(O(),p(!1),d(!0),h(null),await new Promise(e=>setTimeout(e,150)),!r){console.error("Cannot connect: missing server URL"),d(!1),null==s||s(!1);return}let e=()=>{E.current&&(clearTimeout(E.current),E.current=null),E.current=setTimeout(()=>{var t;if(null==(t=g.current)?void 0:t.connected)try{g.current.emit("connect-device",{maxSize:o}),e()}catch(e){console.error("Failed to request connection:",e),null==s||s(!1),ow.ZP.error("connection request failed, please refresh the page")}else{null==s||s(!1);try{g.current&&setTimeout(()=>{g.current&&g.current.connect()},500)}catch(e){console.error("Failed to reconnect:",e),ow.ZP.error("reconnection failed, please refresh the page")}}},5e3)};if(g.current)g.current.connected?(g.current.emit("connect-device",{maxSize:o}),e()):g.current.connect();else try{g.current=(0,oj.io)(r,{withCredentials:!0,reconnection:!0,reconnectionAttempts:5,reconnectionDelay:1e3,timeout:1e4}),g.current.on("connect",()=>{var t,r;null==s||s(!0),(null==(t=g.current)?void 0:t.id)&&f(g.current.id),A.current&&(clearTimeout(A.current),A.current=null),null==(r=g.current)||r.emit("connect-device",{maxSize:o}),e()}),g.current.on("video-metadata",async e=>{try{if(E.current&&(clearTimeout(E.current),E.current=null),C.current)try{C.current.dispose(),C.current=null}catch(e){console.error("Error disposing old decoder:",e)}if(k.current){let e=k.current.querySelector(".canvas-wrapper");x(e)}let t=(null==e?void 0:e.codec)?e.codec:oL.W.H264;if(C.current=await b(t),!C.current)throw Error("Failed to create decoder");C.current.sizeChanged(e=>{let{width:t,height:r}=e;h({width:t,height:r})}),I(e).pipeTo(C.current.writable).catch(e=>{console.error("video stream processing error:",e),null==s||s(!1)}),p(!0),d(!1),null==s||s(!0)}catch(e){console.error("Failed to initialize decoder:",e),d(!1),null==s||s(!1)}}),g.current.on("error",e=>{console.error("server error:",e),ow.ZP.error("server error"),d(!1),null==s||s(!1),E.current&&(clearTimeout(E.current),E.current=null)}),g.current.on("disconnect",()=>{p(!1),null==s||s(!1),E.current&&(clearTimeout(E.current),E.current=null),C.current&&(C.current.dispose(),C.current=null),k.current&&x(k.current.querySelector(".canvas-wrapper")),a&&!A.current&&(A.current=setTimeout(()=>{A.current=null,D()},l))})}catch(e){console.error("Failed to create socket connection:",e),d(!1),null==s||s(!1),a&&!A.current&&(A.current=setTimeout(()=>{A.current=null,D()},l))}}catch(e){d(!1),null==s||s(!1),console.error(`Failed to connect: ${e.message}`),ow.ZP.error("connection failed"),a&&!A.current&&(A.current=setTimeout(()=>{A.current=null,D()},l))}},[r,o,a,l,s,O]);return(0,tL.useEffect)(()=>{if(n&&!u&&!c){let e=setTimeout(()=>{D()},300);return()=>clearTimeout(e)}},[n,u,c,D]),(0,tL.useEffect)(()=>()=>{if(null==s||s(!1),C.current)try{C.current.dispose(),C.current=null}catch(e){console.error("Error disposing decoder during unmount:",e)}if(k.current)try{let e=k.current.querySelector(".canvas-wrapper");e&&(e.innerHTML="")}catch(e){console.error("Error clearing canvas wrapper during unmount:",e)}g.current&&(g.current.disconnect(),g.current=null),A.current&&(clearTimeout(A.current),A.current=null),E.current&&(clearTimeout(E.current),E.current=null)},[s]),(0,i.jsx)("div",{className:"scrcpy-container",children:(0,i.jsxs)(oF.Z,{children:[u&&(0,i.jsxs)("div",{className:"header-bar",children:[(0,i.jsxs)("div",{className:"header-left",children:[(0,i.jsx)(oB,{style:{fontWeight:600,fontSize:12},children:"Screen Projection"}),(0,i.jsx)(ry.Z,{placement:"bottom",title:`Device ID: ${m||"Unknown"}`,children:(0,i.jsx)(oT.Z,{})})]}),(0,i.jsx)("div",{className:"screen-info",children:(0,i.jsxs)(oB,{type:"secondary",children:["size : ",null==y?void 0:y.width,"\xd7",null==y?void 0:y.height]})}),(0,i.jsxs)("div",{className:"header-right",children:[(0,i.jsx)(ry.Z,{placement:"bottom",title:"Screenshot",children:(0,i.jsx)(rA.ZP,{icon:(0,i.jsx)(oU,{}),onClick:j})}),(0,i.jsx)(oD.Z,{type:"vertical",style:{margin:"0 16px"}}),(0,i.jsx)(ry.Z,{placement:"bottom",title:"Connect Device",children:(0,i.jsx)(rA.ZP,{disabled:u,style:{backgroundColor:"#fff"},icon:(0,i.jsx)(oz,{}),onClick:D})}),u&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(oD.Z,{type:"vertical",style:{margin:"0 16px"}}),(0,i.jsx)(ry.Z,{title:"Disconnect Device",children:(0,i.jsx)(rA.ZP,{icon:(0,i.jsx)(oZ,{}),onClick:O})})]})]})]}),(0,i.jsx)(ob.Z,{gutter:[16,16],children:(0,i.jsx)(oI.Z,{span:24,children:(0,i.jsx)("div",{className:"video-section",children:(0,i.jsxs)("div",{ref:k,className:"video-container",children:[(0,i.jsx)("div",{className:"canvas-wrapper"}),!u&&N&&(0,i.jsxs)("div",{className:"empty-state",children:[(0,i.jsx)("div",{className:"empty-state-icon",children:"\uD83D\uDCF1"}),(0,i.jsx)("div",{className:"empty-state-text",children:c?"Connecting to device...":"No device connected"}),!c&&(0,i.jsx)(rA.ZP,{type:"primary",onClick:()=>{D()},children:"Connect now"}),c&&(0,i.jsx)("div",{className:"loading-spinner",children:(0,i.jsx)(r5.Z,{size:"large"})})]}),!N&&(0,i.jsx)("span",{children:"Please launch playground server!"})]})})})})]})})}),{Content:oG}=ox.Z,oH="http://localhost:5700",oY=document.getElementById("root");oY&&n.createRoot(oY).render((0,i.jsx)(function(){let[e]=rC.Z.useForm(),t=rC.Z.useWatch("type",e),[r,o]=(0,tL.useState)(!1),[n,a]=(0,tL.useState)(null),[l,s]=(0,tL.useState)(!1),[c,d]=(0,tL.useState)([]),[u,p]=(0,tL.useState)(!0),y=(0,tL.useRef)(null),[h,m]=ow.ZP.useMessage(),[f,g]=(0,tL.useState)(!1),[k,v]=(0,tL.useState)({result:void 0,dump:null,reportHTML:null,error:null}),[C,A]=(0,tL.useState)(0),[E,N]=(0,tL.useState)(null),{config:x,deepThink:w}=tT(),[S,b]=(0,tL.useState)(""),I=(0,tL.useRef)(null),j=(0,tL.useRef)(null),O=Object.keys(x||{}).length>=1,D=rt(!0),[P,M]=(0,tL.useState)([]),T=(0,tL.useRef)(null),L=(0,tL.useRef)(null),K=(0,tL.useCallback)(()=>{j.current&&(clearInterval(j.current),j.current=null)},[]);(0,tL.useEffect)(()=>{let e=(0,oj.io)(oH,{withCredentials:!0,reconnectionAttempts:5,reconnectionDelay:1e3,timeout:5e3});e.on("connect",()=>{e.emit("get-devices")}),e.on("disconnect",e=>{p(!0)}),e.on("devices-list",e=>{d(e.devices),e.currentDeviceId&&(a(e.currentDeviceId),1===e.devices.length&&R(e.devices[0].id,!0)),p(!1)}),e.on("global-device-switched",e=>{a(e.deviceId)}),e.on("connect_error",e=>{console.error("Socket.IO connection error:",e),h.error("Waiting for device server connection, please try again later"),p(!1)}),e.on("error",e=>{console.error("Socket.IO error:",e),h.error(`Error occurred while communicating with the server: ${e.message||"Unknown error"}`)}),T.current=e;let t=setTimeout(()=>{e.connected&&e.emit("get-devices")},2e3);return()=>{clearTimeout(t),e.disconnect()}},[h]);let R=(0,tL.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e!==y.current){if(!T.current||!T.current.connected)return void h.warning("Waiting for device server connection, please try again later");s(!1),g(!1),v(null),N(null),o(!1),K(),setTimeout(()=>{if(a(e),y.current=e,p(!0),T.current){T.current.emit("switch-device",e);let r=setTimeout(()=>{p(!1),h.error("Device switch timeout, please try again")},1e4);T.current.once("device-switched",()=>{clearTimeout(r),p(!1),setTimeout(()=>{s(!0),t||h.success(`Device selected: ${e}`)},500)}),T.current.once("error",e=>{clearTimeout(r),p(!1),h.error(`Device switch failed: ${e.message}`)})}else p(!1),h.error("Socket connection lost, please refresh the page")},500)}},[h,K]),_=(0,tL.useCallback)(e=>{K(),j.current=setInterval(async()=>{try{let t=await t8(e);t.tip&&b(t.tip)}catch(e){console.error("Failed to poll task progress:",e)}},500)},[K]);(0,tL.useEffect)(()=>()=>{K()},[K]);let F=(0,tL.useCallback)(e=>{g(e),e&&n&&!l&&setTimeout(()=>{s(!0)},100)},[n]);(0,tL.useEffect)(()=>{if(l){let e=setTimeout(()=>{n===y.current&&s(!1)},800);return()=>clearTimeout(e)}},[l,n]),(0,tL.useEffect)(()=>{tg(x),t3(x)},[x]),(0,tL.useEffect)(()=>{let e=async()=>{try{if(n){let e=await t5(n);M(e||[])}else M([])}catch(e){console.error("Failed to load actionSpace:",e),M([])}};D&&e()},[D,n]);let z=(0,tL.useCallback)(async()=>{if(!n)return void h.warning("Please select a device first");if(!f)return void h.warning("Waiting for connection establishment, please try again later");o(!0),v(null),N(null),b("");let{type:t,prompt:r,params:i}=e.getFieldsValue(),a=null==P?void 0:P.find(e=>e.interfaceAlias===t||e.name===t),l=!!(null==a?void 0:a.paramSchema)&&("object"!=typeof a.paramSchema||!("shape"in a.paramSchema)||Object.keys(a.paramSchema.shape||{}).length>0),s=(()=>{if(a)return a.paramSchema&&"object"==typeof a.paramSchema&&"shape"in a.paramSchema?0!==Object.keys(a.paramSchema.shape||{}).length:!!a.paramSchema;return!0})();if(l&&!i)return void h.error("Structured parameters are required for this action");if(s&&!l&&!r)return void h.error("Prompt is required");let c=Date.now().toString();I.current=c,_(c);try{let e=await t6(n,t,r,{requestId:c,deepThink:w,params:i});if(K(),v(e),o(!1),!e)throw Error("server returned empty response");if((null==e?void 0:e.dump)&&!["aiQuery","aiAssert"].includes(t)){let t=rl(e.dump);N(t),A(e=>e+1)}else N(null);h.success("Command executed")}catch(e){K(),o(!1),console.error("execute command error:",e),h.error(`Command execution failed: ${e instanceof Error?e.message:"Unknown error"}`)}},[n,h,f,e,_,K,w]),U=()=>{v(null),N(null),o(!1)},Z=(0,tL.useCallback)(async()=>{K(),o(!1),U(),I.current&&await t4(I.current),h.info("Operation stopped")},[h,K]);return(0,i.jsxs)(oS.ZP,{theme:{token:{colorPrimary:"#2B83FF"},components:{Layout:{headerHeight:60,headerPadding:"0 30px",headerBg:"#FFF",bodyBg:"#FFF"}}},children:[m,(0,i.jsx)(ox.Z,{className:"app-container playground-container vertical-mode",children:(0,i.jsx)(oG,{className:"app-content",children:(0,i.jsx)("div",{className:"app-grid-layout",children:(0,i.jsxs)(ob.Z,{className:"app-grid-layout",children:[(0,i.jsx)(oI.Z,{className:"app-panel left-panel",children:(0,i.jsxs)("div",{className:"panel-content left-panel-content",children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"10px"},children:[(0,i.jsx)(ru,{}),(0,i.jsx)(rf,{})]}),(0,i.jsx)("h2",{children:"Command input"}),(0,i.jsx)(rC.Z,{form:e,className:"command-form",children:(0,i.jsxs)("div",{className:"form-content",children:[(0,i.jsx)("div",{className:"command-input-wrapper",children:(0,i.jsx)(r4,{runButtonEnabled:!!n&&O,form:e,serviceMode:"Server",selectedType:t,dryMode:!1,stoppable:r,loading:r,onRun:z,onStop:Z,hideDomAndScreenshotOptions:!0,actionSpace:P})}),(0,i.jsx)("div",{className:"result-container",style:k?{}:{border:"1px solid #0000001f",borderRadius:"8px"},children:(0,i.jsx)(oN,{result:k,loading:r,serverValid:D,serviceMode:"Server",replayScriptsInfo:E,replayCounter:C,loadingProgressText:S,verticalMode:!1,notReadyMessage:(0,i.jsxs)("span",{children:["Don't worry, just one more step to launch the playground server.",(0,i.jsx)("br",{}),(0,i.jsx)("strong",{children:"npx --yes @midscene/android-playground"})]})})})]})})]})}),(0,i.jsx)(oI.Z,{className:"app-panel right-panel",children:(0,i.jsxs)("div",{className:"panel-content right-panel-content",children:[(0,i.jsx)(oM,{devices:c,loadingDevices:u,selectedDeviceId:n,onDeviceSelect:R,socketRef:T,scrcpyPlayerRef:L}),(0,i.jsx)(oV,{ref:L,serverUrl:oH,autoConnect:l,onConnectionStatusChange:F})]})})]})})})})]})},{}))},66460:function(e){if("undefined"==typeof sharp){var t=Error("Cannot find module 'sharp'");throw t.code="MODULE_NOT_FOUND",t}e.exports=sharp},86110:function(){},58241:function(){},32176:function(){},13527:function(){},64849:function(){},51114:function(){},6156:function(){},41037:function(){},35665:function(){},6281:function(){},39229:function(){},40924:function(){},87333:function(){},15787:function(){},5460:function(){},61546:function(){},18113:function(){},5174:function(){}},t={};function r(o){var i=t[o];if(void 0!==i)return i.exports;var n=t[o]={id:o,loaded:!1,exports:{}};return e[o].call(n.exports,n,n.exports,r),n.loaded=!0,n.exports}r.m=e,r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(o,i){if(1&i&&(o=this(o)),8&i||"object"==typeof o&&o&&(4&i&&o.__esModule||16&i&&"function"==typeof o.then))return o;var n=Object.create(null);r.r(n);var a={};e=e||[null,t({}),t([]),t(t)];for(var l=2&i&&o;"object"==typeof l&&!~e.indexOf(l);l=t(l))Object.getOwnPropertyNames(l).forEach(e=>{a[e]=()=>o[e]});return a.default=()=>o,r.d(n,a),n}})(),r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>"static/js/async/"+e+"."+({166:"834644b5",173:"f2381e64",212:"850ade70",290:"45247363",329:"261bc4a1",364:"d88c3cff",544:"18ac9afb",582:"8f4b5264",624:"8a1fe2e8",644:"910ce3d0",702:"1f38a17e",975:"693266d2",983:"b98b40af"})[e]+".js",r.miniCssF=e=>""+e+".css",r.h=()=>"f7801439e16d47d4",r.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="android-playground:";r.l=function(o,i,n,a){if(e[o])return void e[o].push(i);if(void 0!==n)for(var l,s,c=document.getElementsByTagName("script"),d=0;d<c.length;d++){var u=c[d];if(u.getAttribute("src")==o||u.getAttribute("data-webpack")==t+n){l=u;break}}l||(s=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,r.nc&&l.setAttribute("nonce",r.nc),l.setAttribute("data-webpack",t+n),l.src=o),e[o]=[i];var p=function(t,r){l.onerror=l.onload=null,clearTimeout(y);var i=e[o];if(delete e[o],l.parentNode&&l.parentNode.removeChild(l),i&&i.forEach(function(e){return e(r)}),t)return t(r)},y=setTimeout(p.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=p.bind(null,l.onerror),l.onload=p.bind(null,l.onload),s&&document.head.appendChild(l)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e=[];r.O=(t,o,i,n)=>{if(o){n=n||0;for(var a=e.length;a>0&&e[a-1][2]>n;a--)e[a]=e[a-1];e[a]=[o,i,n];return}for(var l=1/0,a=0;a<e.length;a++){for(var[o,i,n]=e[a],s=!0,c=0;c<o.length;c++)(!1&n||l>=n)&&Object.keys(r.O).every(e=>r.O[e](o[c]))?o.splice(c--,1):(s=!1,n<l&&(l=n));if(s){e.splice(a--,1);var d=i();void 0!==d&&(t=d)}}return t}})(),r.p="/",r.rv=()=>"1.3.12",(()=>{r.b=document.baseURI||self.location.href;var e={980:0};r.f.j=function(t,o){var i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)o.push(i[2]);else{var n=new Promise((r,o)=>i=e[t]=[r,o]);o.push(i[2]=n);var a=r.p+r.u(t),l=Error();r.l(a,function(o){if(r.o(e,t)&&(0!==(i=e[t])&&(e[t]=void 0),i)){var n=o&&("load"===o.type?"missing":o.type),a=o&&o.target&&o.target.src;l.message="Loading chunk "+t+" failed.\n("+n+": "+a+")",l.name="ChunkLoadError",l.type=n,l.request=a,i[1](l)}},"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,o)=>{var i,n,[a,l,s]=o,c=0;if(a.some(t=>0!==e[t])){for(i in l)r.o(l,i)&&(r.m[i]=l[i]);if(s)var d=s(r)}for(t&&t(o);c<a.length;c++)n=a[c],r.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return r.O(d)},o=self.webpackChunkandroid_playground=self.webpackChunkandroid_playground||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))})(),r.ruid="bundler=rspack@1.3.12";var o=r.O(void 0,["361","763"],function(){return r(69946)});o=r.O(o)})();
|
|
15
|
+
//# sourceMappingURL=index.f9093263.js.map
|