@@ -130,8 +130,8 @@ export class ScriptPlayer<T extends MidsceneYamlScriptEnv> {
130130 taskStatus . currentStep = currentStep ;
131131 const flowItem = flow [ flowItemIndex ] ;
132132 if (
133- ( flowItem as MidsceneYamlFlowItemAIAction ) . aiAction ||
134- ( flowItem as MidsceneYamlFlowItemAIAction ) . ai
133+ 'aiAction' in ( flowItem as MidsceneYamlFlowItemAIAction ) ||
134+ 'ai' in ( flowItem as MidsceneYamlFlowItemAIAction )
135135 ) {
136136 const actionTask = flowItem as MidsceneYamlFlowItemAIAction ;
137137 const prompt = actionTask . aiAction || actionTask . ai ;
@@ -141,7 +141,7 @@ export class ScriptPlayer<T extends MidsceneYamlScriptEnv> {
141141 'prompt for aiAction must be a string' ,
142142 ) ;
143143 await agent . aiAction ( prompt ) ;
144- } else if ( ( flowItem as MidsceneYamlFlowItemAIAssert ) . aiAssert ) {
144+ } else if ( 'aiAssert' in ( flowItem as MidsceneYamlFlowItemAIAssert ) ) {
145145 const assertTask = flowItem as MidsceneYamlFlowItemAIAssert ;
146146 const prompt = assertTask . aiAssert ;
147147 assert ( prompt , 'missing prompt for aiAssert' ) ;
@@ -150,7 +150,7 @@ export class ScriptPlayer<T extends MidsceneYamlScriptEnv> {
150150 'prompt for aiAssert must be a string' ,
151151 ) ;
152152 await agent . aiAssert ( prompt ) ;
153- } else if ( ( flowItem as MidsceneYamlFlowItemAIQuery ) . aiQuery ) {
153+ } else if ( 'aiQuery' in ( flowItem as MidsceneYamlFlowItemAIQuery ) ) {
154154 const queryTask = flowItem as MidsceneYamlFlowItemAIQuery ;
155155 const prompt = queryTask . aiQuery ;
156156 assert ( prompt , 'missing prompt for aiQuery' ) ;
@@ -160,7 +160,7 @@ export class ScriptPlayer<T extends MidsceneYamlScriptEnv> {
160160 ) ;
161161 const queryResult = await agent . aiQuery ( prompt ) ;
162162 this . setResult ( queryTask . name , queryResult ) ;
163- } else if ( ( flowItem as MidsceneYamlFlowItemAINumber ) . aiNumber ) {
163+ } else if ( 'aiNumber' in ( flowItem as MidsceneYamlFlowItemAINumber ) ) {
164164 const numberTask = flowItem as MidsceneYamlFlowItemAINumber ;
165165 const prompt = numberTask . aiNumber ;
166166 assert ( prompt , 'missing prompt for number' ) ;
@@ -170,7 +170,7 @@ export class ScriptPlayer<T extends MidsceneYamlScriptEnv> {
170170 ) ;
171171 const numberResult = await agent . aiNumber ( prompt ) ;
172172 this . setResult ( numberTask . name , numberResult ) ;
173- } else if ( ( flowItem as MidsceneYamlFlowItemAINString ) . aiString ) {
173+ } else if ( 'aiString' in ( flowItem as MidsceneYamlFlowItemAINString ) ) {
174174 const stringTask = flowItem as MidsceneYamlFlowItemAINString ;
175175 const prompt = stringTask . aiString ;
176176 assert ( prompt , 'missing prompt for string' ) ;
@@ -180,7 +180,7 @@ export class ScriptPlayer<T extends MidsceneYamlScriptEnv> {
180180 ) ;
181181 const stringResult = await agent . aiString ( prompt ) ;
182182 this . setResult ( stringTask . name , stringResult ) ;
183- } else if ( ( flowItem as MidsceneYamlFlowItemAIBoolean ) . aiBoolean ) {
183+ } else if ( 'aiBoolean' in ( flowItem as MidsceneYamlFlowItemAIBoolean ) ) {
184184 const booleanTask = flowItem as MidsceneYamlFlowItemAIBoolean ;
185185 const prompt = booleanTask . aiBoolean ;
186186 assert ( prompt , 'missing prompt for boolean' ) ;
@@ -190,7 +190,7 @@ export class ScriptPlayer<T extends MidsceneYamlScriptEnv> {
190190 ) ;
191191 const booleanResult = await agent . aiBoolean ( prompt ) ;
192192 this . setResult ( booleanTask . name , booleanResult ) ;
193- } else if ( ( flowItem as MidsceneYamlFlowItemAILocate ) . aiLocate ) {
193+ } else if ( 'aiLocate' in ( flowItem as MidsceneYamlFlowItemAILocate ) ) {
194194 const locateTask = flowItem as MidsceneYamlFlowItemAILocate ;
195195 const prompt = locateTask . aiLocate ;
196196 assert ( prompt , 'missing prompt for aiLocate' ) ;
@@ -200,7 +200,7 @@ export class ScriptPlayer<T extends MidsceneYamlScriptEnv> {
200200 ) ;
201201 const locateResult = await agent . aiLocate ( prompt ) ;
202202 this . setResult ( locateTask . name , locateResult ) ;
203- } else if ( ( flowItem as MidsceneYamlFlowItemAIWaitFor ) . aiWaitFor ) {
203+ } else if ( 'aiWaitFor' in ( flowItem as MidsceneYamlFlowItemAIWaitFor ) ) {
204204 const waitForTask = flowItem as MidsceneYamlFlowItemAIWaitFor ;
205205 const prompt = waitForTask . aiWaitFor ;
206206 assert ( prompt , 'missing prompt for aiWaitFor' ) ;
@@ -210,7 +210,7 @@ export class ScriptPlayer<T extends MidsceneYamlScriptEnv> {
210210 ) ;
211211 const timeout = waitForTask . timeout ;
212212 await agent . aiWaitFor ( prompt , { timeoutMs : timeout } ) ;
213- } else if ( ( flowItem as MidsceneYamlFlowItemSleep ) . sleep ) {
213+ } else if ( 'sleep' in ( flowItem as MidsceneYamlFlowItemSleep ) ) {
214214 const sleepTask = flowItem as MidsceneYamlFlowItemSleep ;
215215 const ms = sleepTask . sleep ;
216216 let msNumber = ms ;
@@ -222,17 +222,18 @@ export class ScriptPlayer<T extends MidsceneYamlScriptEnv> {
222222 `ms for sleep must be greater than 0, but got ${ ms } ` ,
223223 ) ;
224224 await new Promise ( ( resolve ) => setTimeout ( resolve , msNumber ) ) ;
225- } else if ( ( flowItem as MidsceneYamlFlowItemAITap ) . aiTap ) {
225+ } else if ( 'aiTap' in ( flowItem as MidsceneYamlFlowItemAITap ) ) {
226226 const tapTask = flowItem as MidsceneYamlFlowItemAITap ;
227227 await agent . aiTap ( tapTask . aiTap , tapTask ) ;
228- } else if ( ( flowItem as MidsceneYamlFlowItemAIHover ) . aiHover ) {
228+ } else if ( 'aiHover' in ( flowItem as MidsceneYamlFlowItemAIHover ) ) {
229229 const hoverTask = flowItem as MidsceneYamlFlowItemAIHover ;
230230 await agent . aiHover ( hoverTask . aiHover , hoverTask ) ;
231- } else if ( ( flowItem as MidsceneYamlFlowItemAIInput ) . aiInput ) {
231+ } else if ( 'aiInput' in ( flowItem as MidsceneYamlFlowItemAIInput ) ) {
232+ // may be input empty string ''
232233 const inputTask = flowItem as MidsceneYamlFlowItemAIInput ;
233234 await agent . aiInput ( inputTask . aiInput , inputTask . locate , inputTask ) ;
234235 } else if (
235- ( flowItem as MidsceneYamlFlowItemAIKeyboardPress ) . aiKeyboardPress
236+ 'aiKeyboardPress' in ( flowItem as MidsceneYamlFlowItemAIKeyboardPress )
236237 ) {
237238 const keyboardPressTask =
238239 flowItem as MidsceneYamlFlowItemAIKeyboardPress ;
@@ -241,15 +242,11 @@ export class ScriptPlayer<T extends MidsceneYamlScriptEnv> {
241242 keyboardPressTask . locate ,
242243 keyboardPressTask ,
243244 ) ;
244- } else if (
245- typeof ( flowItem as MidsceneYamlFlowItemAIScroll ) . aiScroll !==
246- 'undefined'
247- ) {
245+ } else if ( 'aiScroll' in ( flowItem as MidsceneYamlFlowItemAIScroll ) ) {
248246 const scrollTask = flowItem as MidsceneYamlFlowItemAIScroll ;
249247 await agent . aiScroll ( scrollTask , scrollTask . locate , scrollTask ) ;
250248 } else if (
251- typeof ( flowItem as MidsceneYamlFlowItemEvaluateJavaScript )
252- . javascript !== 'undefined'
249+ 'javascript' in ( flowItem as MidsceneYamlFlowItemEvaluateJavaScript )
253250 ) {
254251 const evaluateJavaScriptTask =
255252 flowItem as MidsceneYamlFlowItemEvaluateJavaScript ;
0 commit comments