ff-automationv2 2.2.22 → 2.2.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/llmcalls/decodeApiKey.js +4 -1
- package/dist/ai/llmcalls/llmAction.js +27 -20
- package/dist/ai/llmcalls/parseLlmOputput.js +5 -1
- package/dist/ai/llmprompts/llmPromptTypes/systemPromptTypes.js +2 -1
- package/dist/ai/llmprompts/promptRegistry.js +38 -35
- package/dist/ai/llmprompts/systemPrompts/actionExtractorPrompt.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/combinedActionExtractorPrompt.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/combinedActionExtractorPromptMob.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/errorDescriptionPrompt.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtactors.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtractor_Mob.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/getActionExtractorPrompt.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/getActionExtractorPromptMob.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/mobileKeywordExtractor.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/userStoryToListPrompt.js +6 -2
- package/dist/ai/llmprompts/systemPrompts/verifyActionExtractorPrompt.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/verifyActionExtractorPromptMob.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/visionPrompt.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/visionPromptMobile.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/waitActionExtractorPrompt.js +4 -1
- package/dist/ai/llmprompts/systemPrompts/waitActionExtractorPromptMob.js +4 -1
- package/dist/ai/llmprompts/userPrompts/userPrompt.js +16 -13
- package/dist/automation/actions/executor.js +1064 -1060
- package/dist/automation/actions/interaction/alert/clickCancelOnAlertPopup.js +4 -1
- package/dist/automation/actions/interaction/alert/clickOkOnAlertPopup.js +4 -1
- package/dist/automation/actions/interaction/alert/enterDataToAlert.js +4 -1
- package/dist/automation/actions/interaction/alert/getTextPresentOnAlertPopup.js +4 -1
- package/dist/automation/actions/interaction/alert/verifyAlertPopUpMessageContainsString.js +4 -1
- package/dist/automation/actions/interaction/alert/verifyAlertPopupIsDisplayed.js +4 -1
- package/dist/automation/actions/interaction/alert/verifyTextPresentOnAlertPopup.js +4 -1
- package/dist/automation/actions/interaction/alert/waitTillAlertIsPresent.js +4 -1
- package/dist/automation/actions/interaction/clear/clear.js +4 -1
- package/dist/automation/actions/interaction/clear/clearAndEnter.js +4 -1
- package/dist/automation/actions/interaction/click/MOB_DoubleTapAtSpecifiedLocation.js +4 -1
- package/dist/automation/actions/interaction/click/click.js +4 -1
- package/dist/automation/actions/interaction/click/clickNtimes.js +4 -1
- package/dist/automation/actions/interaction/click/clickUsingJs.js +4 -1
- package/dist/automation/actions/interaction/click/doubleClick.js +4 -1
- package/dist/automation/actions/interaction/click/rightClick.js +4 -1
- package/dist/automation/actions/interaction/click/tapOnSpecifiedLocation.js +5 -1
- package/dist/automation/actions/interaction/click/waitAndClick.js +7 -4
- package/dist/automation/actions/interaction/dragAndDrop/dragAndDrop.js +4 -1
- package/dist/automation/actions/interaction/elementLessAction/MobCheckIfAppIsClosed.js +4 -1
- package/dist/automation/actions/interaction/elementLessAction/MobRunAppInBackgroundInterface.js +4 -1
- package/dist/automation/actions/interaction/elementlessActions/activateAppUsingAppPackage.js +4 -1
- package/dist/automation/actions/interaction/elementlessActions/installAPK.js +14 -8
- package/dist/automation/actions/interaction/elementlessActions/isAppInstalled.js +8 -5
- package/dist/automation/actions/interaction/elementlessActions/openAppWithApkFilePath.js +18 -12
- package/dist/automation/actions/interaction/elementlessActions/openMobileApplication.js +4 -1
- package/dist/automation/actions/interaction/elementlessActions/receiveMessageOnEmulator.js +6 -3
- package/dist/automation/actions/interaction/elementlessActions/terminateAppUsingAppPackage.js +6 -3
- package/dist/automation/actions/interaction/elementlessActions/uninstallAPK.js +9 -6
- package/dist/automation/actions/interaction/enterActions/EnterInputIntoElementFromClipBoardInterface_mob.js +6 -3
- package/dist/automation/actions/interaction/enterActions/enterInput.js +41 -5
- package/dist/automation/actions/interaction/enterActions/enterInputAndPress.js +7 -4
- package/dist/automation/actions/interaction/enterActions/enterUrl.js +4 -1
- package/dist/automation/actions/interaction/enterActions/enterusingJs.js +8 -5
- package/dist/automation/actions/interaction/enterActions/waitAndEnter.js +7 -4
- package/dist/automation/actions/interaction/find/MOB_FindElement.js +4 -1
- package/dist/automation/actions/interaction/find/findElements.js +4 -1
- package/dist/automation/actions/interaction/get/MOB_GetADBLogsForGivenAppPackage.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetAllContexts.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetAllWindowHandles.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetAltitude.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetBatteryPercentage.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetBatteryStatus.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetClipBoardText.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentActivity.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentAppPackage.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentContext.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceDate.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceSettings.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceStatus.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceSystemBars.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentDeviceTime.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentOrientation.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetCurrentSessionId.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetDeviceLocation.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetDeviceName.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetDeviceOsVersion.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetDeviceUdid.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetHeightOfElement.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetHeightOfScreen.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetHourFromCurrentDeviceTime.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetLatitude.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetLongitude.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetMinuteFromCurrentDeviceTime.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetSecondFromCurrentDeviceTime.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetSizeOfScreen.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetSupportedPerformanceDataTypes.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetTextFromElementAndSetToClipBoard.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetWidthOfElement.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetWidthOfScreen.js +5 -1
- package/dist/automation/actions/interaction/get/browserWindowGetPosition.js +5 -1
- package/dist/automation/actions/interaction/get/getAllBrokenImages.js +5 -1
- package/dist/automation/actions/interaction/get/getAllBrokenLinkCount.js +5 -1
- package/dist/automation/actions/interaction/get/getAllBrokenLinks.js +5 -1
- package/dist/automation/actions/interaction/get/getAllConsoleErrors.js +5 -1
- package/dist/automation/actions/interaction/get/getAllConsoleInformation.js +5 -1
- package/dist/automation/actions/interaction/get/getAllConsoleLogs.js +5 -1
- package/dist/automation/actions/interaction/get/getAllConsoleWarnings.js +5 -1
- package/dist/automation/actions/interaction/get/getAllCookieNames.js +5 -1
- package/dist/automation/actions/interaction/get/getAllCookieValues.js +5 -1
- package/dist/automation/actions/interaction/get/getAllSelectedOptions.js +5 -1
- package/dist/automation/actions/interaction/get/getAllTheOptionsFromListBoxAsText.js +5 -1
- package/dist/automation/actions/interaction/get/getAllTheOptionsFromListBoxAsTextInSortedOrder.js +5 -1
- package/dist/automation/actions/interaction/get/getAllTheSelectedOptionsFromListBoxAsText.js +5 -1
- package/dist/automation/actions/interaction/get/getAllWindowHandles.js +5 -1
- package/dist/automation/actions/interaction/get/getAttribute.js +7 -4
- package/dist/automation/actions/interaction/get/getAudioCurrentPlaybackRate.js +5 -1
- package/dist/automation/actions/interaction/get/getAudioCurrentSeekTime.js +5 -1
- package/dist/automation/actions/interaction/get/getAudioCurrentVolume.js +5 -1
- package/dist/automation/actions/interaction/get/getAudioDecodedByte.js +5 -1
- package/dist/automation/actions/interaction/get/getAudioDefaultPlaybackRate.js +5 -1
- package/dist/automation/actions/interaction/get/getAudioDimension.js +5 -1
- package/dist/automation/actions/interaction/get/getAudioHeight.js +5 -1
- package/dist/automation/actions/interaction/get/getAudioMediaLength.js +5 -1
- package/dist/automation/actions/interaction/get/getAudioMediaSource.js +5 -1
- package/dist/automation/actions/interaction/get/getAudioWidth.js +5 -1
- package/dist/automation/actions/interaction/get/getBestPracticesScore.js +5 -1
- package/dist/automation/actions/interaction/get/getBrowserCount.js +5 -1
- package/dist/automation/actions/interaction/get/getBrowserVersion.js +5 -1
- package/dist/automation/actions/interaction/get/getCapabilityNames.js +5 -1
- package/dist/automation/actions/interaction/get/getClipBoardText.js +5 -1
- package/dist/automation/actions/interaction/get/getCollectiveApiResponseTime.js +5 -1
- package/dist/automation/actions/interaction/get/getCollectiveApiStatusCode.js +5 -1
- package/dist/automation/actions/interaction/get/getCssValue.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentDayOfTheWeek.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentSecondsFromCurrentSystemTime.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentSystemDate.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentSystemDay.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentSystemMonth.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentSystemTime.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentSystemYear.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentWindowHandle.js +5 -1
- package/dist/automation/actions/interaction/get/getDataFromApiRequestHeaderForJsonPath.js +5 -1
- package/dist/automation/actions/interaction/get/getDataFromApiResponseForJsonPath.js +5 -1
- package/dist/automation/actions/interaction/get/getDateWithGivenFormat.js +5 -1
- package/dist/automation/actions/interaction/get/getDriverInstance.js +5 -1
- package/dist/automation/actions/interaction/get/getFirstContentfulPaint.js +5 -1
- package/dist/automation/actions/interaction/get/getFirstSelectedOption.js +5 -1
- package/dist/automation/actions/interaction/get/getFullPaintTime.js +5 -1
- package/dist/automation/actions/interaction/get/getHTMLCodeOfPage.js +5 -1
- package/dist/automation/actions/interaction/get/getHeightOfBrowserWindow.js +5 -1
- package/dist/automation/actions/interaction/get/getHeightOfWebElement.js +5 -1
- package/dist/automation/actions/interaction/get/getHourFromCurrentSystemTime.js +5 -1
- package/dist/automation/actions/interaction/get/getImplicitTimeOut.js +5 -1
- package/dist/automation/actions/interaction/get/getLargestContentfulPaint.js +5 -1
- package/dist/automation/actions/interaction/get/getListBoxSize.js +6 -3
- package/dist/automation/actions/interaction/get/getListOfElementsFromLocatorTypeLocatorValue.js +7 -3
- package/dist/automation/actions/interaction/get/getLocation.js +8 -4
- package/dist/automation/actions/interaction/get/getMinuteFromCurrentSystemTime.js +5 -1
- package/dist/automation/actions/interaction/get/getNetworkRouteTime.js +5 -1
- package/dist/automation/actions/interaction/get/getNumberOfBrokenImages.js +5 -1
- package/dist/automation/actions/interaction/get/getNumberOfLinksPresentInCurrentPage.js +5 -1
- package/dist/automation/actions/interaction/get/getNumberOfWorkingLinksFromCurrentPage.js +5 -1
- package/dist/automation/actions/interaction/get/getOptions.js +5 -1
- package/dist/automation/actions/interaction/get/getPageTitle.js +5 -1
- package/dist/automation/actions/interaction/get/getPerformanceMetrics.js +5 -1
- package/dist/automation/actions/interaction/get/getPwaScore.js +5 -1
- package/dist/automation/actions/interaction/get/getRect.js +8 -4
- package/dist/automation/actions/interaction/get/getScreenshot.js +5 -1
- package/dist/automation/actions/interaction/get/getScreenshotAs.js +5 -1
- package/dist/automation/actions/interaction/get/getSeoScore.js +5 -1
- package/dist/automation/actions/interaction/get/getSingleApiRequestPayload.js +5 -1
- package/dist/automation/actions/interaction/get/getSingleApiResponse.js +5 -1
- package/dist/automation/actions/interaction/get/getSingleApiResponseTime.js +5 -1
- package/dist/automation/actions/interaction/get/getSingleApiStatusCode.js +5 -1
- package/dist/automation/actions/interaction/get/getSize.js +7 -3
- package/dist/automation/actions/interaction/get/getSizeOfBrowserWindow.js +5 -1
- package/dist/automation/actions/interaction/get/getStringDataFromLocalFile.js +11 -4
- package/dist/automation/actions/interaction/get/getSystemProperty.js +14 -7
- package/dist/automation/actions/interaction/get/getTagName.js +4 -1
- package/dist/automation/actions/interaction/get/getText.js +8 -4
- package/dist/automation/actions/interaction/get/getTheFirstSelectedOptionFromListBoxAsText.js +5 -1
- package/dist/automation/actions/interaction/get/getTotalNumberOfCookies.js +5 -1
- package/dist/automation/actions/interaction/get/getTunnelIdentifier.js +5 -1
- package/dist/automation/actions/interaction/get/getURLPresentInAddressBar.js +5 -1
- package/dist/automation/actions/interaction/get/getUserHomeDirectory.js +5 -1
- package/dist/automation/actions/interaction/get/getValueByCookieName.js +5 -1
- package/dist/automation/actions/interaction/get/getValueFromLocalStorage.js +5 -1
- package/dist/automation/actions/interaction/get/getValueOfSystemVariable.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoCurrentPlaybackRate.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoCurrentSeekTime.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoCurrentVolume.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoDecodedByte.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoDefaultPlaybackRate.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoDimension.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoHeight.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoMediaLength.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoMediaSource.js +5 -1
- package/dist/automation/actions/interaction/get/getVideoWidth.js +5 -1
- package/dist/automation/actions/interaction/get/getWidthOfBrowser.js +5 -1
- package/dist/automation/actions/interaction/get/getWidthOfWebElement.js +5 -1
- package/dist/automation/actions/interaction/get/getWorkingLinksFromCurrentPage.js +5 -1
- package/dist/automation/actions/interaction/get/getWrappedElement.js +5 -1
- package/dist/automation/actions/interaction/get/getWrappedOptionFromListBoxAsText.js +6 -3
- package/dist/automation/actions/interaction/get/getXLocationOfBrowserWindow.js +5 -1
- package/dist/automation/actions/interaction/get/getXLocationOfWebElement.js +8 -4
- package/dist/automation/actions/interaction/get/getYLocationOfBrowserWindow.js +5 -1
- package/dist/automation/actions/interaction/get/getYLocationOfWebElement.js +7 -3
- package/dist/automation/actions/interaction/iframe/switchToDefaultContent.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/AirplaneModeSwitchOff.js +9 -6
- package/dist/automation/actions/interaction/inputlessActions/AirplaneModeSwitchOn.js +9 -6
- package/dist/automation/actions/interaction/inputlessActions/Break.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/Continue.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/GpsSwitchOff.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/GpsSwitchOn.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/HideKeyboard.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/LockDevice.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/OpenChromeBrowser.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/OpenNotification.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/ResetApp.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/RestartCurrentDevice.js +9 -6
- package/dist/automation/actions/interaction/inputlessActions/SetDeviceOrientationAsLandscape.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/SetDeviceOrientationAsPortrait.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/SetEmulatorPowerStateOff.js +8 -5
- package/dist/automation/actions/interaction/inputlessActions/SetEmulatorPowerStateOn.js +8 -5
- package/dist/automation/actions/interaction/inputlessActions/WifiSwitchOff.js +4 -1
- package/dist/automation/actions/interaction/inputlessActions/WifiSwitchOn.js +4 -1
- package/dist/automation/actions/interaction/maximize/maximize.js +4 -1
- package/dist/automation/actions/interaction/maximize/minimize.js +4 -1
- package/dist/automation/actions/interaction/navigation/goBack.js +4 -1
- package/dist/automation/actions/interaction/navigation/navigate.js +4 -1
- package/dist/automation/actions/interaction/navigation/refresh.js +4 -1
- package/dist/automation/actions/interaction/pinch/PinchInByPercentMob.js +4 -1
- package/dist/automation/actions/interaction/pinch/PinchOutByPercentMob.js +4 -1
- package/dist/automation/actions/interaction/press/longPress.js +5 -1
- package/dist/automation/actions/interaction/press/mobPressBackKey.js +4 -1
- package/dist/automation/actions/interaction/press/mobPressBackSpaceKey.js +4 -1
- package/dist/automation/actions/interaction/press/mobPressSpaceKey.js +4 -1
- package/dist/automation/actions/interaction/press/pressAnyKey.js +4 -1
- package/dist/automation/actions/interaction/press/pressAnyKeyNTimes.js +4 -1
- package/dist/automation/actions/interaction/press/pressEnterKey.js +4 -1
- package/dist/automation/actions/interaction/press/pressHomeKey.js +8 -5
- package/dist/automation/actions/interaction/scroll/scrollHorizontallyTillElementIsVisible.js +4 -1
- package/dist/automation/actions/interaction/scroll/scrollPageToSpecificLocation.js +5 -1
- package/dist/automation/actions/interaction/scroll/scrollToElement.js +4 -1
- package/dist/automation/actions/interaction/scroll/scrollVerticallyTillElementIsVisible.js +4 -1
- package/dist/automation/actions/interaction/set/MOB_SetContext.js +5 -1
- package/dist/automation/actions/interaction/set/MOB_SetEmulatorPowerPercentage.js +5 -1
- package/dist/automation/actions/interaction/set/setClipBoardText.js +4 -1
- package/dist/automation/actions/interaction/shadowDom/shadowDomClick.js +7 -4
- package/dist/automation/actions/interaction/shadowDom/shadowDomEnter.js +7 -4
- package/dist/automation/actions/interaction/shadowDom/shadowDomGetText.js +7 -4
- package/dist/automation/actions/interaction/shadowDom/shadowDomUpload.js +7 -4
- package/dist/automation/actions/interaction/shadowDom/shadowDomVerifyPartialText.js +7 -4
- package/dist/automation/actions/interaction/shadowDom/shadowDomVerifyText.js +7 -4
- package/dist/automation/actions/interaction/swipe/swipeDirectionNTimes.js +6 -3
- package/dist/automation/actions/interaction/swipe/swipeDownToElement.js +8 -5
- package/dist/automation/actions/interaction/swipe/swipeLeftToElement.js +8 -5
- package/dist/automation/actions/interaction/swipe/swipeRightToElement.js +8 -5
- package/dist/automation/actions/interaction/swipe/swipeUpToElement.js +11 -8
- package/dist/automation/actions/interaction/swipe/swipeUpToElementForMWeb.js +8 -5
- package/dist/automation/actions/interaction/swipe/swipeUsingReferenceElement.js +19 -16
- package/dist/automation/actions/interaction/switch/switchToNewTabBasedOnTitle.js +4 -1
- package/dist/automation/actions/interaction/switch/switchToNewWindowBasedOnTitle.js +4 -1
- package/dist/automation/actions/interaction/switch/switchToParentWindow.js +4 -1
- package/dist/automation/actions/interaction/switch/switchToTabBasedOnUrl.js +4 -1
- package/dist/automation/actions/interaction/switch/switchToWindowBasedOnURL.js +4 -1
- package/dist/automation/actions/interaction/switch/switchToWindowIfTitleContainsString.js +4 -1
- package/dist/automation/actions/interaction/switch/switchToWindowIfUrlContainsString.js +4 -1
- package/dist/automation/actions/interaction/upload/uploadfile.js +6 -3
- package/dist/automation/actions/interaction/verify/MOB_VerifyBatteryLevel.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfAirplaneModeOff.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfAirplaneModeOn.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfAppIsClosed.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfDeviceIsLocked.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfDeviceIsUnlocked.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfGpsOff.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfGpsOn.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfKeyboardIsHidden.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfKeyboardIsShown.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfWifiOff.js +5 -1
- package/dist/automation/actions/interaction/verify/MOB_VerifyIfWifiOn.js +5 -1
- package/dist/automation/actions/interaction/verify/VerifyAccessibilityScore.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyAllBrokenImages.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyAllBrowserWindowsClosed.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyAllOptionsAreDeSelected.js +8 -5
- package/dist/automation/actions/interaction/verify/VerifyAllOptionsAreSelected.js +8 -5
- package/dist/automation/actions/interaction/verify/VerifyAttributeValue.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyBestPracticesScore.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyBrowserHtmlCodeContainsString.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowHeight.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowTitleContainsString.js +9 -6
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowTitleIsString.js +8 -5
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowUrlContainsExpectedUrl.js +8 -5
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowUrlIsString.js +8 -5
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowWidth.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowXLocation.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowYLocation.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyCheckBoxIsNotSelected.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyCheckBoxIsSelected.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyCssAttributeValue.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyElementIsClickable.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyElementIsDisabled.js +9 -6
- package/dist/automation/actions/interaction/verify/VerifyElementIsDisplayed.js +8 -5
- package/dist/automation/actions/interaction/verify/VerifyElementIsEnabled.js +9 -6
- package/dist/automation/actions/interaction/verify/VerifyElementIsNotDisplayed.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyElementIsSelected.js +9 -6
- package/dist/automation/actions/interaction/verify/VerifyElementNotContainsText.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyHeightOfWebElement.js +8 -5
- package/dist/automation/actions/interaction/verify/VerifyHexCodeForGivenXYCoordinates.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyIfAllCookiesAreDeleted.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyIfAudioEnded.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfAudioIsMuted.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfAudioIsPaused.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfAudioIsPlaying.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyIfBrowserWindowIsClosed.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyIfCookieNameIsAdded.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyIfCookieNameIsDeleted.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfCookieObjectIsPresent.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyIfGivenOptionIsDuplicate.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfImageIsBroken.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyIfLinkIsBroken.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyIfLinkIsWorking.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfLinksAreBroken.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyIfLinksAreWorking.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithIndexIsDeselectedInElement.js +8 -5
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithIndexIsSelectedInListBox.js +10 -7
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithTextIsDeselected.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithValueIsDeselected.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithValueIsSelected.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithVisibleTextIsSelected.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyIfSpecifiedOptionIsSelected.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfStatusCodeOfALinkIsStatusCode.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyIfStatusCodesOfLinks.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyIfVideoEnded.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfVideoIsMuted.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfVideoIsPaused.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfVideoIsPlaying.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfVideoPlayingInMute.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfVideoPlayingInUnmute.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyIfXAndYCoordinateOfElement.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyLinkNavigatesToTitle.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyListBoxOptionsAreSorted.js +8 -5
- package/dist/automation/actions/interaction/verify/VerifyNavigateURL.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyNumberOfElementsByTagName.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyNumberOfElementsByXpath.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyPartialAttributeValue.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyPartialTitleOfCurrentPage.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyPerformanceScore.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyPwaScore.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyRadioButtonIsNotSelected.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyRadioButtonIsSelected.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifySeoScore.js +4 -1
- package/dist/automation/actions/interaction/verify/VerifyTagName.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyThatSpecifiedOptionIsNotSelected.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyTitleInAllPage.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyTitleOfCurrentPage.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyValueOfElementContainsString.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyValueOfElementIsCleared.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyValueOfElementIsString.js +6 -3
- package/dist/automation/actions/interaction/verify/VerifyWidthOfElement.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyXLocationOfElement.js +7 -4
- package/dist/automation/actions/interaction/verify/VerifyYLocationOfElement.js +7 -4
- package/dist/automation/actions/interaction/verify/checkIfElementIsDisplayed.js +7 -4
- package/dist/automation/actions/interaction/verify/verifypartialtext.js +8 -5
- package/dist/automation/actions/interaction/verify/verifytext.js +13 -10
- package/dist/automation/actions/interaction/wait/MOB_WaitTillAllElementsAreInvisible.ts.js +5 -1
- package/dist/automation/actions/interaction/wait/MOB_WaitTillAttributeOfElementContainsString.js +5 -1
- package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsEnabled.js +5 -1
- package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsInvisible.js +5 -1
- package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsSelected.js +5 -1
- package/dist/automation/actions/interaction/wait/MOB_WaitTillElementIsVisible.js +5 -1
- package/dist/automation/actions/interaction/wait/MOB_WaitTillStalenessOfElement.js +5 -1
- package/dist/automation/actions/interaction/wait/wait.js +4 -1
- package/dist/automation/actions/interaction/wait/waitTillAttributeOfElementIsString.js +4 -1
- package/dist/automation/actions/interaction/wait/waitTillElementContainsText.js +4 -1
- package/dist/automation/actions/interaction/wait/waitTillElementHasText.js +4 -1
- package/dist/automation/actions/interaction/wait/waitTillElementIsClickable.js +4 -1
- package/dist/automation/actions/interaction/wait/waitTillPresenceOfAllElements.js +6 -3
- package/dist/automation/actions/interaction/wait/waitTillPresenceOfElement.js +4 -1
- package/dist/automation/actions/interface/IframeInterface.js +2 -1
- package/dist/automation/actions/interface/InputlessActionnterface.js +2 -1
- package/dist/automation/actions/interface/alertActionInterface.js +2 -1
- package/dist/automation/actions/interface/clearActionInterface.js +2 -1
- package/dist/automation/actions/interface/clickActionInterface.js +2 -1
- package/dist/automation/actions/interface/dragAndDropToElementInterface.js +2 -1
- package/dist/automation/actions/interface/elelementLessActionInterface.js +2 -1
- package/dist/automation/actions/interface/elementlessInterface.js +2 -1
- package/dist/automation/actions/interface/findActionInterface.js +2 -1
- package/dist/automation/actions/interface/getActionInterface.js +2 -1
- package/dist/automation/actions/interface/interactionActionInterface.js +2 -1
- package/dist/automation/actions/interface/maximizeAndMinimizeInterface.js +2 -1
- package/dist/automation/actions/interface/navigationActionInterface.js +2 -1
- package/dist/automation/actions/interface/pinchActionInterface.js +2 -1
- package/dist/automation/actions/interface/pressActionInterface.js +2 -1
- package/dist/automation/actions/interface/scrollActionInterface.js +2 -1
- package/dist/automation/actions/interface/setActionInterface.js +2 -1
- package/dist/automation/actions/interface/shadowDomInterface.js +2 -1
- package/dist/automation/actions/interface/swipeActionInterface.js +2 -1
- package/dist/automation/actions/interface/switchingActionInterface.js +2 -1
- package/dist/automation/actions/interface/uploadFile.js +2 -1
- package/dist/automation/actions/interface/verifyActionInterface.js +2 -1
- package/dist/automation/actions/interface/waitActionInterface.js +2 -1
- package/dist/automation/browserSession/initiateBrowserSession.js +11 -7
- package/dist/automation/cloudSession/initiateCloudSession.js +11 -7
- package/dist/automation/mobileSession/initiateMobileSession.js +14 -10
- package/dist/core/constants/allAction.js +4 -1
- package/dist/core/constants/defaultValues.js +4 -1
- package/dist/core/constants/supportedActions.js +5 -2
- package/dist/core/interfaces/StableDomInterface.js +2 -1
- package/dist/core/interfaces/actionInterface.js +2 -1
- package/dist/core/interfaces/automationRunnerInterface.js +2 -1
- package/dist/core/interfaces/browserCapabilitiesInterface.js +4 -1
- package/dist/core/interfaces/browserConfigurationInterface.js +2 -1
- package/dist/core/interfaces/cloudConfigInterface.js +2 -1
- package/dist/core/interfaces/domAnalysisInterface.js +2 -1
- package/dist/core/interfaces/errorInfoInterface.js +2 -1
- package/dist/core/interfaces/executionDetails.js +2 -1
- package/dist/core/interfaces/fireflinkScriptPayloadInterface.js +2 -1
- package/dist/core/interfaces/llmConfigurationInterface.js +2 -1
- package/dist/core/interfaces/llmResponseInterface.js +2 -1
- package/dist/core/interfaces/promptInterface.js +3 -1
- package/dist/core/interfaces/scriptGenrationDataInterface.js +2 -1
- package/dist/core/interfaces/simplifyAndFlattenInterface.js +2 -1
- package/dist/core/interfaces/toolsInterface.js +2 -1
- package/dist/core/main/actionHandlerFactory.js +13 -10
- package/dist/core/main/executionContext.js +15 -11
- package/dist/core/main/runAutomationScript.js +114 -110
- package/dist/core/main/stepProcessor.js +7 -3
- package/dist/core/types/browserType.js +4 -1
- package/dist/core/types/cloudServerPortType.js +4 -1
- package/dist/core/types/cloudprotocolType.js +2 -1
- package/dist/core/types/llmResponseType.js +2 -1
- package/dist/core/types/promptMap.js +2 -1
- package/dist/core/types/promptType.js +5 -2
- package/dist/core/types/scriptTypesType.js +2 -1
- package/dist/core/types/visionllmInputType.js +2 -1
- package/dist/domAnalysis/getRelaventElements.js +14 -10
- package/dist/domAnalysis/relativeElementsFromDom.js +5 -1
- package/dist/domAnalysis/searchBest.js +8 -4
- package/dist/domAnalysis/simplifyAndFlatten.js +41 -4
- package/dist/fireflinkData/fireflinkLocators/elementsFromHTML.js +13 -10
- package/dist/fireflinkData/fireflinkLocators/getListOfLocators.js +9 -5
- package/dist/fireflinkData/fireflinkLocators/typeList.js +4 -1
- package/dist/fireflinkData/fireflinkScript/scriptGenrationData.js +5 -1
- package/dist/imageAnalysisMobile/annotatedScreenshotMobile.js +11 -8
- package/dist/imageAnalysisMobile/annotatedScreenshotMobileInterface.js +2 -1
- package/dist/imageAnalysisWeb/annotateScreenshot.js +7 -4
- package/dist/imageAnalysisWeb/generateAnnotatedScreenshots.js +8 -5
- package/dist/imageAnalysisWeb/screenshotInterface.js +2 -1
- package/dist/index.js +5 -2
- package/dist/llmConfig/llmConfiguration.js +5 -1
- package/dist/service/api/fireflinkApi.service.js +10 -3
- package/dist/service/fireflink.service.js +10 -6
- package/dist/service/kafka/fireflinkKafka.service.js +12 -8
- package/dist/tests/multiBrowser.d.ts +1 -0
- package/dist/tests/multiBrowser.js +34 -0
- package/dist/tests/poc.js +21 -16
- package/dist/tests/test12.js +12 -7
- package/dist/tests/test3.js +4 -2
- package/dist/tests/tests.data.js +4 -1
- package/dist/utils/DomExtraction/jsForAttributeInjection.js +12 -8
- package/dist/utils/InstancesDetails/getInstancesInfo.js +4 -1
- package/dist/utils/alertPopup/isAlertPresent.js +5 -1
- package/dist/utils/alertPopup/isAlertPresentInterface.js +2 -1
- package/dist/utils/browserCap/capability.js +4 -1
- package/dist/utils/cloudConfig/cloudPath.js +4 -1
- package/dist/utils/helpers/enterActionHelper.js +23 -15
- package/dist/utils/helpers/imageUtils.js +4 -1
- package/dist/utils/helpers/sameActionsHelper.js +4 -1
- package/dist/utils/helpers/xpathcreation.js +11 -5
- package/dist/utils/iframesExtraction/findElementUsingFF.js +7 -3
- package/dist/utils/iframesExtraction/iframeInterface.js +2 -1
- package/dist/utils/iframesExtraction/switchToIframeByMeta.js +4 -1
- package/dist/utils/javascript/jsFindElement.js +4 -1
- package/dist/utils/javascript/jsForShadowRoot.js +9 -6
- package/dist/utils/javascript/jsForToaster.js +4 -1
- package/dist/utils/javascript/jsForVision.js +5 -2
- package/dist/utils/logger/logData.js +28 -21
- package/dist/utils/newTab/newTabTracker.js +4 -1
- package/dist/utils/swipe/domSearchHelper.js +10 -7
- package/dist/utils/swipe/swipeMovement.js +4 -1
- package/package.json +6 -5
|
@@ -1,29 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AutomationRunner = void 0;
|
|
4
|
+
const llmConfiguration_js_1 = require("../../llmConfig/llmConfiguration.js");
|
|
5
|
+
const llmAction_js_1 = require("../../ai/llmcalls/llmAction.js");
|
|
6
|
+
const executionContext_js_1 = require("./executionContext.js");
|
|
7
|
+
const actionHandlerFactory_js_1 = require("../../core/main/actionHandlerFactory.js");
|
|
8
|
+
const stepProcessor_js_1 = require("./stepProcessor.js");
|
|
9
|
+
const fireflinkApi_service_js_1 = require("../../service/api/fireflinkApi.service.js");
|
|
10
|
+
const fireflink_service_js_1 = require("../../service/fireflink.service.js");
|
|
11
|
+
const promptType_js_1 = require("../types/promptType.js");
|
|
12
|
+
const supportedActions_js_1 = require("../constants/supportedActions.js");
|
|
13
|
+
const getRelaventElements_js_1 = require("../../domAnalysis/getRelaventElements.js");
|
|
14
|
+
const jsForAttributeInjection_js_1 = require("../../utils/DomExtraction/jsForAttributeInjection.js");
|
|
15
|
+
const jsdom_1 = require("jsdom");
|
|
16
|
+
const jsForAttributeInjection_js_2 = require("../../utils/DomExtraction/jsForAttributeInjection.js");
|
|
17
|
+
const allAction_js_1 = require("../constants/allAction.js");
|
|
18
|
+
const newTabTracker_js_1 = require("../../utils/newTab/newTabTracker.js");
|
|
19
|
+
const generateAnnotatedScreenshots_js_1 = require("../../imageAnalysisWeb/generateAnnotatedScreenshots.js");
|
|
20
|
+
const getInstancesInfo_js_1 = require("../../utils/InstancesDetails/getInstancesInfo.js");
|
|
21
|
+
const isAlertPresent_js_1 = require("../../utils/alertPopup/isAlertPresent.js");
|
|
22
|
+
const jsForToaster_js_1 = require("../../utils/javascript/jsForToaster.js");
|
|
23
|
+
const jsFindElement_js_1 = require("../../utils/javascript/jsFindElement.js");
|
|
24
|
+
const xpathcreation_js_1 = require("../../utils/helpers/xpathcreation.js");
|
|
25
|
+
const logData_js_1 = require("../../utils/logger/logData.js");
|
|
26
|
+
const sameActionsHelper_js_1 = require("../../utils/helpers/sameActionsHelper.js");
|
|
27
|
+
const node_console_1 = require("node:console");
|
|
28
|
+
const annotatedScreenshotMobile_js_1 = require("../../imageAnalysisMobile/annotatedScreenshotMobile.js");
|
|
29
|
+
class AutomationRunner {
|
|
27
30
|
constructor() {
|
|
28
31
|
this.KafkaPayload = {};
|
|
29
32
|
}
|
|
@@ -35,7 +38,7 @@ export class AutomationRunner {
|
|
|
35
38
|
}
|
|
36
39
|
async cleanup(context, domInfo, extractedRelevantDom, stepProcessor, fireflinkService, request, platform, driver) {
|
|
37
40
|
try {
|
|
38
|
-
logger.info("Starting cleanup process...");
|
|
41
|
+
logData_js_1.logger.info("Starting cleanup process...");
|
|
39
42
|
domInfo = null;
|
|
40
43
|
extractedRelevantDom = null;
|
|
41
44
|
if ((context?.session) || (context?.androidSession)) {
|
|
@@ -45,24 +48,24 @@ export class AutomationRunner {
|
|
|
45
48
|
if (driver?.sessionId) {
|
|
46
49
|
await driver.deleteSession();
|
|
47
50
|
}
|
|
48
|
-
logger.info("Android session deleted successfully");
|
|
51
|
+
logData_js_1.logger.info("Android session deleted successfully");
|
|
49
52
|
},
|
|
50
53
|
web: async () => {
|
|
51
54
|
if (request.isCloud) {
|
|
52
55
|
if (driver?.sessionId) {
|
|
53
56
|
await driver.deleteSession();
|
|
54
57
|
}
|
|
55
|
-
logger.info("Cloud session closed");
|
|
58
|
+
logData_js_1.logger.info("Cloud session closed");
|
|
56
59
|
}
|
|
57
60
|
if (driver?.sessionId) {
|
|
58
|
-
logger.info("Still browser session is active, session id :", driver.sessionId);
|
|
61
|
+
logData_js_1.logger.info("Still browser session is active, session id :", driver.sessionId);
|
|
59
62
|
}
|
|
60
63
|
}
|
|
61
64
|
};
|
|
62
65
|
await (platformHandlers[platform] ?? platformHandlers.web)();
|
|
63
66
|
}
|
|
64
67
|
catch {
|
|
65
|
-
logger.error("Browser session is deactivated");
|
|
68
|
+
logData_js_1.logger.error("Browser session is deactivated");
|
|
66
69
|
}
|
|
67
70
|
}
|
|
68
71
|
if (stepProcessor) {
|
|
@@ -73,40 +76,40 @@ export class AutomationRunner {
|
|
|
73
76
|
if (global.gc) {
|
|
74
77
|
global.gc();
|
|
75
78
|
}
|
|
76
|
-
logger.info("Cleanup completed successfully.");
|
|
79
|
+
logData_js_1.logger.info("Cleanup completed successfully.");
|
|
77
80
|
}
|
|
78
81
|
catch (error) {
|
|
79
|
-
logger.error("Cleanup error:", error);
|
|
82
|
+
logData_js_1.logger.error("Cleanup error:", error);
|
|
80
83
|
}
|
|
81
84
|
}
|
|
82
85
|
async run(request) {
|
|
83
86
|
const usedElementNames = [];
|
|
84
|
-
initLogger(request.sessionPath);
|
|
85
|
-
logger.info("User Given Step", request.userStory);
|
|
87
|
+
(0, logData_js_1.initLogger)(request.sessionPath);
|
|
88
|
+
logData_js_1.logger.info("User Given Step", request.userStory);
|
|
86
89
|
if (request.isTerminate)
|
|
87
90
|
return AutomationRunner.updateSessionTerminationInfo(request.testCaseId);
|
|
88
91
|
AutomationRunner.sessionTerminationDetails[request.testCaseId] = request.isTerminate;
|
|
89
|
-
const apiService = new FireFlinkApiService();
|
|
90
|
-
const fireflinkServiceInstance = new fireflinkService(apiService, request.broker, request.sslConfig);
|
|
92
|
+
const apiService = new fireflinkApi_service_js_1.FireFlinkApiService();
|
|
93
|
+
const fireflinkServiceInstance = new fireflink_service_js_1.fireflinkService(apiService, request.broker, request.sslConfig);
|
|
91
94
|
const instanceDetails = await fireflinkServiceInstance.runGetInstancesDetails(request.projectId, request.token, request.serverHost);
|
|
92
|
-
const aiInfo = getAiInstanceInfo(instanceDetails.responseObject);
|
|
93
|
-
const context = new ExecutionContext(request);
|
|
94
|
-
const configProvider = new ServiceProviderBaseUrlProvider();
|
|
95
|
+
const aiInfo = (0, getInstancesInfo_js_1.getAiInstanceInfo)(instanceDetails.responseObject);
|
|
96
|
+
const context = new executionContext_js_1.ExecutionContext(request);
|
|
97
|
+
const configProvider = new llmConfiguration_js_1.ServiceProviderBaseUrlProvider();
|
|
95
98
|
const baseUrl = configProvider.getBaseUrl(aiInfo.serviceProvider);
|
|
96
99
|
let domInfo = null;
|
|
97
100
|
let extractedRelevantDom = null;
|
|
98
101
|
let errorInfo = {};
|
|
99
|
-
const llm = new llmAction(aiInfo.apiKey, baseUrl, aiInfo.model, aiInfo.visionApiKey);
|
|
102
|
+
const llm = new llmAction_js_1.llmAction(aiInfo.apiKey, baseUrl, aiInfo.model, aiInfo.visionApiKey);
|
|
100
103
|
let preCapturedDomInfo = null;
|
|
101
|
-
const stepProcessor = new StepProcessor(llm);
|
|
104
|
+
const stepProcessor = new stepProcessor_js_1.StepProcessor(llm);
|
|
102
105
|
const platform = request.platform.toLocaleLowerCase();
|
|
103
|
-
const actionHandlers = createActionHandlers(context);
|
|
104
|
-
const domProcessor = new DomProcessingEngine();
|
|
106
|
+
const actionHandlers = (0, actionHandlerFactory_js_1.createActionHandlers)(context);
|
|
107
|
+
const domProcessor = new getRelaventElements_js_1.DomProcessingEngine();
|
|
105
108
|
let stepCount = 1;
|
|
106
109
|
const listOfSteps = request.userStory.map(step => String(step));
|
|
107
110
|
let driver;
|
|
108
111
|
if (listOfSteps.length == 0) {
|
|
109
|
-
logger.info(listOfSteps);
|
|
112
|
+
logData_js_1.logger.info(listOfSteps);
|
|
110
113
|
throw new Error("No executable manual steps were returned by the LLM.");
|
|
111
114
|
}
|
|
112
115
|
const start_time = new Date().getTime();
|
|
@@ -123,16 +126,16 @@ export class AutomationRunner {
|
|
|
123
126
|
let beforeHandles = null;
|
|
124
127
|
try {
|
|
125
128
|
if (AutomationRunner.getSessionTerminationInfo(request.testCaseId)) {
|
|
126
|
-
logger.info(`Execution terminated successfully. Script: ${request.scriptName}, Test Case ID: ${request.testCaseId}`);
|
|
129
|
+
logData_js_1.logger.info(`Execution terminated successfully. Script: ${request.scriptName}, Test Case ID: ${request.testCaseId}`);
|
|
127
130
|
break;
|
|
128
131
|
}
|
|
129
|
-
logger.info(`Processing step ${stepCount}: ${step}`);
|
|
132
|
+
logData_js_1.logger.info(`Processing step ${stepCount}: ${step}`);
|
|
130
133
|
const start = Math.max(0, stepCount - 3);
|
|
131
134
|
const end = Math.min(listOfSteps.length, stepCount + 3);
|
|
132
135
|
const priorAndNextSteps = listOfSteps.slice(start, end);
|
|
133
136
|
const result = await stepProcessor.getLLMResponse({
|
|
134
137
|
platform: platform,
|
|
135
|
-
type: PromptType.KEYWORD_EXTRACTOR,
|
|
138
|
+
type: promptType_js_1.PromptType.KEYWORD_EXTRACTOR,
|
|
136
139
|
args: { priorAndNextSteps },
|
|
137
140
|
input: { currentStep: step }
|
|
138
141
|
});
|
|
@@ -150,12 +153,12 @@ export class AutomationRunner {
|
|
|
150
153
|
result.response.elementName = elementName;
|
|
151
154
|
usedElementNames.push(elementName);
|
|
152
155
|
}
|
|
153
|
-
if (!allKeywordAction.includes(action)) {
|
|
156
|
+
if (!allAction_js_1.allKeywordAction.includes(action)) {
|
|
154
157
|
throw new Error(`Unsupported action at action or keyword exracter: ${action}`);
|
|
155
158
|
}
|
|
156
159
|
let handler = actionHandlers[action];
|
|
157
|
-
if (INPUTLESS_ACTIONS.includes(action)) {
|
|
158
|
-
logger.info(result.response.keywords);
|
|
160
|
+
if (supportedActions_js_1.INPUTLESS_ACTIONS.includes(action)) {
|
|
161
|
+
logData_js_1.logger.info(result.response.keywords);
|
|
159
162
|
await handler({ keywords: result.response.keywords, step: step });
|
|
160
163
|
stepCount++;
|
|
161
164
|
continue;
|
|
@@ -166,11 +169,11 @@ export class AutomationRunner {
|
|
|
166
169
|
else {
|
|
167
170
|
driver = await context.androidSession.getCurrentDriver();
|
|
168
171
|
}
|
|
169
|
-
if (await isAlertPresent(driver) && action != "wait") {
|
|
170
|
-
logger.info("Alert is present");
|
|
172
|
+
if (await (0, isAlertPresent_js_1.isAlertPresent)(driver) && action != "wait") {
|
|
173
|
+
logData_js_1.logger.info("Alert is present");
|
|
171
174
|
stepResult = await stepProcessor.getLLMResponse({
|
|
172
175
|
platform: platform,
|
|
173
|
-
type: PromptType.FF_INSPECTOR,
|
|
176
|
+
type: promptType_js_1.PromptType.FF_INSPECTOR,
|
|
174
177
|
args: {
|
|
175
178
|
stepAction: action,
|
|
176
179
|
extractedDomJson: JSON.stringify(extractedRelevantDom, null, 2),
|
|
@@ -189,21 +192,21 @@ export class AutomationRunner {
|
|
|
189
192
|
}
|
|
190
193
|
else {
|
|
191
194
|
if (preCapturedDomInfo) {
|
|
192
|
-
logger.info("Using pre-captured DOM from previous toaster detection");
|
|
195
|
+
logData_js_1.logger.info("Using pre-captured DOM from previous toaster detection");
|
|
193
196
|
domInfo = preCapturedDomInfo;
|
|
194
197
|
preCapturedDomInfo = null;
|
|
195
198
|
}
|
|
196
199
|
else {
|
|
197
200
|
if (platform === "web") {
|
|
198
|
-
domInfo = await getAnnotatedDOM(driver);
|
|
199
|
-
logger.saveDOM(domInfo.dom, `annotated-dom-${stepCount}`);
|
|
201
|
+
domInfo = await (0, jsForAttributeInjection_js_1.getAnnotatedDOM)(driver);
|
|
202
|
+
logData_js_1.logger.saveDOM(domInfo.dom, `annotated-dom-${stepCount}`);
|
|
200
203
|
}
|
|
201
204
|
else {
|
|
202
|
-
domInfo = await getAnnotatedDOMForMobile(driver);
|
|
203
|
-
logger.saveDOM(domInfo.dom, `annotated-dom-Mob-${stepCount}`);
|
|
205
|
+
domInfo = await (0, jsForAttributeInjection_js_2.getAnnotatedDOMForMobile)(driver);
|
|
206
|
+
logData_js_1.logger.saveDOM(domInfo.dom, `annotated-dom-Mob-${stepCount}`);
|
|
204
207
|
}
|
|
205
208
|
}
|
|
206
|
-
const parser = new JSDOM(domInfo.dom);
|
|
209
|
+
const parser = new jsdom_1.JSDOM(domInfo.dom);
|
|
207
210
|
doc = parser.window.document;
|
|
208
211
|
if (platform === "web") {
|
|
209
212
|
extractedRelevantDom = domProcessor.webProcess({
|
|
@@ -211,7 +214,7 @@ export class AutomationRunner {
|
|
|
211
214
|
rawDom: domInfo.dom,
|
|
212
215
|
stepCount: stepCount
|
|
213
216
|
});
|
|
214
|
-
logger.saveJSON(extractedRelevantDom, `relevant-dom-${stepCount}`);
|
|
217
|
+
logData_js_1.logger.saveJSON(extractedRelevantDom, `relevant-dom-${stepCount}`);
|
|
215
218
|
}
|
|
216
219
|
else {
|
|
217
220
|
extractedRelevantDom = domProcessor.mobileProcess({
|
|
@@ -219,12 +222,12 @@ export class AutomationRunner {
|
|
|
219
222
|
rawDom: domInfo.dom,
|
|
220
223
|
stepCount: stepCount
|
|
221
224
|
});
|
|
222
|
-
logger.saveJSON(extractedRelevantDom, `relevant-dom-Mob-${stepCount}`);
|
|
225
|
+
logData_js_1.logger.saveJSON(extractedRelevantDom, `relevant-dom-Mob-${stepCount}`);
|
|
223
226
|
}
|
|
224
227
|
if (action == "verify") {
|
|
225
228
|
stepResult = await stepProcessor.getLLMResponse({
|
|
226
229
|
platform: platform,
|
|
227
|
-
type: PromptType.VERIFY_PROMPT,
|
|
230
|
+
type: promptType_js_1.PromptType.VERIFY_PROMPT,
|
|
228
231
|
args: {
|
|
229
232
|
extractedDomJson: JSON.stringify(extractedRelevantDom, null, 2),
|
|
230
233
|
priorAndNextSteps,
|
|
@@ -236,7 +239,7 @@ export class AutomationRunner {
|
|
|
236
239
|
else if (action == "get") {
|
|
237
240
|
stepResult = await stepProcessor.getLLMResponse({
|
|
238
241
|
platform: platform,
|
|
239
|
-
type: PromptType.GET_PROMPT,
|
|
242
|
+
type: promptType_js_1.PromptType.GET_PROMPT,
|
|
240
243
|
args: {
|
|
241
244
|
extractedDomJson: JSON.stringify(extractedRelevantDom, null, 2),
|
|
242
245
|
priorAndNextSteps,
|
|
@@ -248,7 +251,7 @@ export class AutomationRunner {
|
|
|
248
251
|
else if (action == "wait") {
|
|
249
252
|
stepResult = await stepProcessor.getLLMResponse({
|
|
250
253
|
platform: platform,
|
|
251
|
-
type: PromptType.WAIT_ACTION_EXTRACTOR_PROMPT,
|
|
254
|
+
type: promptType_js_1.PromptType.WAIT_ACTION_EXTRACTOR_PROMPT,
|
|
252
255
|
args: {
|
|
253
256
|
extractedDomJson: JSON.stringify(extractedRelevantDom, null, 2),
|
|
254
257
|
priorAndNextSteps,
|
|
@@ -260,7 +263,7 @@ export class AutomationRunner {
|
|
|
260
263
|
else if (action == "combined") {
|
|
261
264
|
stepResult = await stepProcessor.getLLMResponse({
|
|
262
265
|
platform: platform,
|
|
263
|
-
type: PromptType.COMBINED_ACTION_EXTRACTOR_PROMPT,
|
|
266
|
+
type: promptType_js_1.PromptType.COMBINED_ACTION_EXTRACTOR_PROMPT,
|
|
264
267
|
args: {
|
|
265
268
|
extractedDomJson: JSON.stringify(extractedRelevantDom, null, 2),
|
|
266
269
|
priorAndNextSteps,
|
|
@@ -272,7 +275,7 @@ export class AutomationRunner {
|
|
|
272
275
|
else if (action == "drag_and_drop") {
|
|
273
276
|
stepResult = await stepProcessor.getLLMResponse({
|
|
274
277
|
platform: platform,
|
|
275
|
-
type: PromptType.FF_INSPECTOR,
|
|
278
|
+
type: promptType_js_1.PromptType.FF_INSPECTOR,
|
|
276
279
|
args: {
|
|
277
280
|
extractedDomJson: JSON.stringify(extractedRelevantDom, null, 2),
|
|
278
281
|
priorAndNextSteps,
|
|
@@ -286,7 +289,7 @@ export class AutomationRunner {
|
|
|
286
289
|
else {
|
|
287
290
|
stepResult = await stepProcessor.getLLMResponse({
|
|
288
291
|
platform: platform,
|
|
289
|
-
type: PromptType.FF_INSPECTOR,
|
|
292
|
+
type: promptType_js_1.PromptType.FF_INSPECTOR,
|
|
290
293
|
args: {
|
|
291
294
|
stepAction: action,
|
|
292
295
|
extractedDomJson: JSON.stringify(extractedRelevantDom, null, 2),
|
|
@@ -305,10 +308,10 @@ export class AutomationRunner {
|
|
|
305
308
|
}
|
|
306
309
|
}
|
|
307
310
|
if (platform === "android") {
|
|
308
|
-
stepAction = sameActionHelper[stepAction] || stepAction;
|
|
309
|
-
logger.info(`step action: ${stepAction}`);
|
|
311
|
+
stepAction = sameActionsHelper_js_1.sameActionHelper[stepAction] || stepAction;
|
|
312
|
+
logData_js_1.logger.info(`step action: ${stepAction}`);
|
|
310
313
|
}
|
|
311
|
-
if (ELEMENTLESS_ACTION.includes(stepAction)) {
|
|
314
|
+
if (supportedActions_js_1.ELEMENTLESS_ACTION.includes(stepAction)) {
|
|
312
315
|
let currentDriver = null;
|
|
313
316
|
let beforeHandles = null;
|
|
314
317
|
if (platform == "web") {
|
|
@@ -321,7 +324,7 @@ export class AutomationRunner {
|
|
|
321
324
|
handler = actionHandlers[stepAction];
|
|
322
325
|
await handler({ value: stepResult.response.input_text });
|
|
323
326
|
if ((currentDriver) && (platform == "web")) {
|
|
324
|
-
await newTabTracker(currentDriver, action, beforeHandles, context.scriptAppender);
|
|
327
|
+
await (0, newTabTracker_js_1.newTabTracker)(currentDriver, action, beforeHandles, context.scriptAppender);
|
|
325
328
|
}
|
|
326
329
|
stepCount++;
|
|
327
330
|
continue;
|
|
@@ -329,20 +332,20 @@ export class AutomationRunner {
|
|
|
329
332
|
try {
|
|
330
333
|
fireflinkIndex = stepResult.response.attribute_value;
|
|
331
334
|
if (fireflinkIndex == "Fire-Flink-0") {
|
|
332
|
-
logger.error(`element not found for step "${step}"`);
|
|
333
|
-
throw new Error(`element not found for step "${step}"`, { cause: error });
|
|
335
|
+
logData_js_1.logger.error(`element not found for step "${step}"`);
|
|
336
|
+
throw new Error(`element not found for step "${step}"`, { cause: node_console_1.error });
|
|
334
337
|
}
|
|
335
338
|
if (platform === "web") {
|
|
336
339
|
const ele = doc.querySelector(`[ff-inspect="${fireflinkIndex}"]`);
|
|
337
340
|
selector = ele.getAttribute("ff-xpath");
|
|
338
341
|
}
|
|
339
342
|
else {
|
|
340
|
-
const result = await getFFIndexAndXPath(domInfo.dom, fireflinkIndex);
|
|
343
|
+
const result = await (0, xpathcreation_js_1.getFFIndexAndXPath)(domInfo.dom, fireflinkIndex);
|
|
341
344
|
selector = result.xpathPath;
|
|
342
345
|
}
|
|
343
346
|
if (!selector) {
|
|
344
|
-
logger.info(`Unable to resolve xpath for ${fireflinkIndex}`);
|
|
345
|
-
throw new Error(`Unable to resolve xpath for ${fireflinkIndex}`, { cause: error });
|
|
347
|
+
logData_js_1.logger.info(`Unable to resolve xpath for ${fireflinkIndex}`);
|
|
348
|
+
throw new Error(`Unable to resolve xpath for ${fireflinkIndex}`, { cause: node_console_1.error });
|
|
346
349
|
}
|
|
347
350
|
if (platform === "web") {
|
|
348
351
|
beforeHandles = await driver.getWindowHandles();
|
|
@@ -376,7 +379,7 @@ export class AutomationRunner {
|
|
|
376
379
|
}
|
|
377
380
|
if (selector.includes("shadow")) {
|
|
378
381
|
stepAction = stepAction + "_shadow";
|
|
379
|
-
logger.info(stepAction);
|
|
382
|
+
logData_js_1.logger.info(stepAction);
|
|
380
383
|
}
|
|
381
384
|
else if (selector.includes("iframe")) {
|
|
382
385
|
frameAction = "switchToDefaultContent";
|
|
@@ -384,9 +387,9 @@ export class AutomationRunner {
|
|
|
384
387
|
await handler({
|
|
385
388
|
driver: driver,
|
|
386
389
|
});
|
|
387
|
-
const result_if = await driver.executeAsyncScript(Find_element_by_ff_js_script, [fireflinkIndex]);
|
|
390
|
+
const result_if = await driver.executeAsyncScript(jsFindElement_js_1.Find_element_by_ff_js_script, [fireflinkIndex]);
|
|
388
391
|
if (!result_if?.success) {
|
|
389
|
-
logger.info("Not found");
|
|
392
|
+
logData_js_1.logger.info("Not found");
|
|
390
393
|
return;
|
|
391
394
|
}
|
|
392
395
|
const { xpath_if, frames, iframe_dom_html } = result_if;
|
|
@@ -420,46 +423,46 @@ export class AutomationRunner {
|
|
|
420
423
|
direction: stepResult.response.direction,
|
|
421
424
|
});
|
|
422
425
|
if (platform === "web") {
|
|
423
|
-
if (await isAlertPresent(driver) != true) {
|
|
426
|
+
if (await (0, isAlertPresent_js_1.isAlertPresent)(driver) != true) {
|
|
424
427
|
if (action === "click") {
|
|
425
|
-
await driver.executeScript(TOAST_WATCHER_JS, []);
|
|
428
|
+
await driver.executeScript(jsForToaster_js_1.TOAST_WATCHER_JS, []);
|
|
426
429
|
await new Promise(resolve => setTimeout(resolve, 100));
|
|
427
430
|
const postClickToastDetected = await driver.executeScript("return window.__toastDetected === true;", []);
|
|
428
431
|
if (postClickToastDetected) {
|
|
429
|
-
logger.info(`Toast detected after click`);
|
|
430
|
-
preCapturedDomInfo = await getAnnotatedDOM(driver);
|
|
431
|
-
logger.saveDOM(preCapturedDomInfo.dom, `toaster-dom-${stepCount}`);
|
|
432
|
+
logData_js_1.logger.info(`Toast detected after click`);
|
|
433
|
+
preCapturedDomInfo = await (0, jsForAttributeInjection_js_1.getAnnotatedDOM)(driver);
|
|
434
|
+
logData_js_1.logger.saveDOM(preCapturedDomInfo.dom, `toaster-dom-${stepCount}`);
|
|
432
435
|
}
|
|
433
436
|
}
|
|
434
437
|
}
|
|
435
|
-
await newTabTracker(driver, action, beforeHandles, context.scriptAppender);
|
|
438
|
+
await (0, newTabTracker_js_1.newTabTracker)(driver, action, beforeHandles, context.scriptAppender);
|
|
436
439
|
}
|
|
437
440
|
}
|
|
438
441
|
catch (error) {
|
|
439
|
-
logger.error(`execution failed for step "${step}": ${error.message} and going for vision`);
|
|
442
|
+
logData_js_1.logger.error(`execution failed for step "${step}": ${error.message} and going for vision`);
|
|
440
443
|
try {
|
|
441
444
|
let annotatedScreenshot;
|
|
442
445
|
let bounds;
|
|
443
446
|
if (platform === "web") {
|
|
444
|
-
annotatedScreenshot = await generateAnnotatedScreenshots(driver);
|
|
447
|
+
annotatedScreenshot = await (0, generateAnnotatedScreenshots_js_1.generateAnnotatedScreenshots)(driver);
|
|
445
448
|
}
|
|
446
449
|
else {
|
|
447
|
-
const VissionResult = await annotateScreenshot(driver, domInfo.dom);
|
|
450
|
+
const VissionResult = await (0, annotatedScreenshotMobile_js_1.annotateScreenshot)(driver, domInfo.dom);
|
|
448
451
|
annotatedScreenshot = VissionResult.boxedImageBuffer;
|
|
449
452
|
bounds = VissionResult.boxes;
|
|
450
453
|
}
|
|
451
454
|
stepResultVision = await stepProcessor.getLLMResponse({
|
|
452
455
|
platform: platform,
|
|
453
|
-
type: PromptType.VISION_PROMPT,
|
|
456
|
+
type: promptType_js_1.PromptType.VISION_PROMPT,
|
|
454
457
|
args: {
|
|
455
458
|
priorAndNextSteps
|
|
456
459
|
},
|
|
457
460
|
input: { currentStep: step, annotatedScreenshot: annotatedScreenshot }
|
|
458
461
|
});
|
|
459
462
|
fireflinkIndex = stepResultVision.response.fireflinkIndex;
|
|
460
|
-
logger.info(`fireflinkIndex: ${fireflinkIndex}`);
|
|
463
|
+
logData_js_1.logger.info(`fireflinkIndex: ${fireflinkIndex}`);
|
|
461
464
|
if (fireflinkIndex == "Fire-Flink-0") {
|
|
462
|
-
logger.error(`vision unable to find element for step "${step}"`);
|
|
465
|
+
logData_js_1.logger.error(`vision unable to find element for step "${step}"`);
|
|
463
466
|
context.scriptAppender.setErrorNLP(stepAction);
|
|
464
467
|
throw new Error(`vision unable to find element for step "${step}"`, { cause: error });
|
|
465
468
|
}
|
|
@@ -471,17 +474,17 @@ export class AutomationRunner {
|
|
|
471
474
|
}
|
|
472
475
|
const { x1, y1, x2, y2 } = box;
|
|
473
476
|
const boundsStr = `[${x1},${y1}][${x2},${y2}]`;
|
|
474
|
-
const result = getFFIndexAndXPath(domInfo.dom, boundsStr);
|
|
477
|
+
const result = (0, xpathcreation_js_1.getFFIndexAndXPath)(domInfo.dom, boundsStr);
|
|
475
478
|
xpath = result.xpathPath;
|
|
476
479
|
fireflinkIndex = result.ffInspector ?? fireflinkIndex;
|
|
477
|
-
logger.info(`fireflinkIndex: ${fireflinkIndex}`);
|
|
478
|
-
logger.info(`xpath: ${xpath}`);
|
|
480
|
+
logData_js_1.logger.info(`fireflinkIndex: ${fireflinkIndex}`);
|
|
481
|
+
logData_js_1.logger.info(`xpath: ${xpath}`);
|
|
479
482
|
}
|
|
480
483
|
else {
|
|
481
484
|
const ele = doc.querySelector(`[ff-inspect="${fireflinkIndex}"]`);
|
|
482
485
|
xpath = ele.getAttribute("ff-xpath");
|
|
483
486
|
if (!xpath) {
|
|
484
|
-
logger.info(`Unable to resolve xpath for ${fireflinkIndex}`);
|
|
487
|
+
logData_js_1.logger.info(`Unable to resolve xpath for ${fireflinkIndex}`);
|
|
485
488
|
context.scriptAppender.setErrorNLP(stepAction);
|
|
486
489
|
throw new Error(`Unable to resolve xpath for ${fireflinkIndex}`, { cause: error });
|
|
487
490
|
}
|
|
@@ -492,7 +495,7 @@ export class AutomationRunner {
|
|
|
492
495
|
else {
|
|
493
496
|
domInfo = domInfo.dom;
|
|
494
497
|
}
|
|
495
|
-
logger.info(`elementType: ${stepResult.response.elementType}`);
|
|
498
|
+
logData_js_1.logger.info(`elementType: ${stepResult.response.elementType}`);
|
|
496
499
|
handler = actionHandlers[stepAction];
|
|
497
500
|
await handler({
|
|
498
501
|
selector: xpath,
|
|
@@ -502,21 +505,21 @@ export class AutomationRunner {
|
|
|
502
505
|
elementName: result.response.elementName,
|
|
503
506
|
elementType: stepResult.response.elementType
|
|
504
507
|
});
|
|
505
|
-
if (await isAlertPresent(driver) != true) {
|
|
508
|
+
if (await (0, isAlertPresent_js_1.isAlertPresent)(driver) != true) {
|
|
506
509
|
if (action === "click") {
|
|
507
|
-
await driver.executeScript(TOAST_WATCHER_JS, []);
|
|
510
|
+
await driver.executeScript(jsForToaster_js_1.TOAST_WATCHER_JS, []);
|
|
508
511
|
await new Promise(resolve => setTimeout(resolve, 100));
|
|
509
512
|
const postClickToastDetected = await driver.executeScript("return window.__toastDetected === true;", []);
|
|
510
513
|
if (postClickToastDetected) {
|
|
511
|
-
logger.info(`Toast detected after click`);
|
|
512
|
-
preCapturedDomInfo = await getAnnotatedDOM(driver);
|
|
513
|
-
logger.saveDOM(preCapturedDomInfo.dom, `toaster-dom-${stepCount}`);
|
|
514
|
+
logData_js_1.logger.info(`Toast detected after click`);
|
|
515
|
+
preCapturedDomInfo = await (0, jsForAttributeInjection_js_1.getAnnotatedDOM)(driver);
|
|
516
|
+
logData_js_1.logger.saveDOM(preCapturedDomInfo.dom, `toaster-dom-${stepCount}`);
|
|
514
517
|
}
|
|
515
518
|
}
|
|
516
519
|
}
|
|
517
520
|
}
|
|
518
521
|
catch (error) {
|
|
519
|
-
logger.error(`vision execution failed for step "${step}": ${error}`);
|
|
522
|
+
logData_js_1.logger.error(`vision execution failed for step "${step}": ${error}`);
|
|
520
523
|
throw error;
|
|
521
524
|
}
|
|
522
525
|
}
|
|
@@ -525,8 +528,8 @@ export class AutomationRunner {
|
|
|
525
528
|
stepCount++;
|
|
526
529
|
}
|
|
527
530
|
catch (error) {
|
|
528
|
-
logger.error(`Error executing step "${step}":`, error);
|
|
529
|
-
errorInfo = (await stepProcessor.getLLMResponse({ platform: platform, type: PromptType.ERROR_DESCRIPTION, args: {}, input: { error: logger.getError(error) } })).response;
|
|
531
|
+
logData_js_1.logger.error(`Error executing step "${step}":`, error);
|
|
532
|
+
errorInfo = (await stepProcessor.getLLMResponse({ platform: platform, type: promptType_js_1.PromptType.ERROR_DESCRIPTION, args: {}, input: { error: logData_js_1.logger.getError(error) } })).response;
|
|
530
533
|
if (errorInfo.error === "Context Length Exceeded (400)" ||
|
|
531
534
|
errorInfo.error === "Rate Limit Exceeded (429)") {
|
|
532
535
|
break;
|
|
@@ -535,11 +538,11 @@ export class AutomationRunner {
|
|
|
535
538
|
errorInfo.nlp = context.scriptAppender.getErrorNLP();
|
|
536
539
|
}
|
|
537
540
|
errorInfo.erroredManualStep = step;
|
|
538
|
-
errorInfo.rawError = logger.getError(error);
|
|
541
|
+
errorInfo.rawError = logData_js_1.logger.getError(error);
|
|
539
542
|
break;
|
|
540
543
|
}
|
|
541
544
|
}
|
|
542
|
-
logger.info('execution time->', new Date().getTime() - start_time);
|
|
545
|
+
logData_js_1.logger.info('execution time->', new Date().getTime() - start_time);
|
|
543
546
|
const payload = {
|
|
544
547
|
scriptName: request.scriptName,
|
|
545
548
|
version: request.version,
|
|
@@ -560,7 +563,7 @@ export class AutomationRunner {
|
|
|
560
563
|
};
|
|
561
564
|
try {
|
|
562
565
|
await context.scriptAppender.waitForAllSteps();
|
|
563
|
-
logger.info(context.scriptAppender.getData());
|
|
566
|
+
logData_js_1.logger.info(context.scriptAppender.getData());
|
|
564
567
|
this.KafkaPayload.topic = `Topic-FIREFLINK-api-requests-${request.env}`;
|
|
565
568
|
this.KafkaPayload.message = {
|
|
566
569
|
...payload,
|
|
@@ -568,11 +571,11 @@ export class AutomationRunner {
|
|
|
568
571
|
serverHost: request.serverHost
|
|
569
572
|
};
|
|
570
573
|
delete payload.tokensConsumed;
|
|
571
|
-
logger.info({ ...payload, topic: this.KafkaPayload.topic });
|
|
574
|
+
logData_js_1.logger.info({ ...payload, topic: this.KafkaPayload.topic });
|
|
572
575
|
await fireflinkServiceInstance.produceMessageToKafka(this.KafkaPayload);
|
|
573
576
|
}
|
|
574
577
|
catch (error) {
|
|
575
|
-
logger.error("Failed to produce message :", logger.getError(error));
|
|
578
|
+
logData_js_1.logger.error("Failed to produce message :", logData_js_1.logger.getError(error));
|
|
576
579
|
throw new Error("Failed to produce message :", { cause: error });
|
|
577
580
|
}
|
|
578
581
|
finally {
|
|
@@ -581,4 +584,5 @@ export class AutomationRunner {
|
|
|
581
584
|
}
|
|
582
585
|
}
|
|
583
586
|
}
|
|
587
|
+
exports.AutomationRunner = AutomationRunner;
|
|
584
588
|
AutomationRunner.sessionTerminationDetails = {};
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StepProcessor = void 0;
|
|
4
|
+
const parseLlmOputput_js_1 = require("../../ai/llmcalls/parseLlmOputput.js");
|
|
5
|
+
class StepProcessor {
|
|
3
6
|
constructor(llm) {
|
|
4
7
|
this.llm = llm;
|
|
5
|
-
this.resultParser = new LLMResultParser();
|
|
8
|
+
this.resultParser = new parseLlmOputput_js_1.LLMResultParser();
|
|
6
9
|
}
|
|
7
10
|
async getResultTokenUsage() {
|
|
8
11
|
return this.resultParser.getTokenUsage();
|
|
@@ -12,3 +15,4 @@ export class StepProcessor {
|
|
|
12
15
|
return this.resultParser.fetchResult(response);
|
|
13
16
|
}
|
|
14
17
|
}
|
|
18
|
+
exports.StepProcessor = StepProcessor;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PromptType = void 0;
|
|
4
|
+
var PromptType;
|
|
2
5
|
(function (PromptType) {
|
|
3
6
|
PromptType["USER_STORY_TO_LIST"] = "userStoryToList";
|
|
4
7
|
PromptType["KEYWORD_EXTRACTOR"] = "keywordExtractorPrompt";
|
|
@@ -9,4 +12,4 @@ export var PromptType;
|
|
|
9
12
|
PromptType["GET_PROMPT"] = "getActionExtractorPrompt";
|
|
10
13
|
PromptType["WAIT_ACTION_EXTRACTOR_PROMPT"] = "waitActionExtractorPrompt";
|
|
11
14
|
PromptType["COMBINED_ACTION_EXTRACTOR_PROMPT"] = "combinedActionExtractorPrompt";
|
|
12
|
-
})(PromptType || (PromptType = {}));
|
|
15
|
+
})(PromptType || (exports.PromptType = PromptType = {}));
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|