ff-automationv2 2.2.31 → 2.2.32-beta.1
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/llmprompts/llmPromptTypes/systemPromptTypes.d.ts +3 -0
- package/dist/ai/llmprompts/promptRegistry.js +10 -2
- package/dist/ai/llmprompts/systemPrompts/actionExtractorPrompt.js +83 -27
- package/dist/ai/llmprompts/systemPrompts/fileVerifyActionExtractorPrompt.d.ts +2 -0
- package/dist/ai/llmprompts/systemPrompts/fileVerifyActionExtractorPrompt.js +45 -0
- package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtactors.js +35 -0
- package/dist/ai/llmprompts/systemPrompts/fireflinkElementIndexExtractor_Mob.js +5 -2
- package/dist/ai/llmprompts/systemPrompts/getActionExtractorPrompt.js +4 -2
- package/dist/ai/llmprompts/systemPrompts/getActionExtractorPromptMob.js +3 -1
- package/dist/ai/llmprompts/systemPrompts/inputContextPrompt.d.ts +2 -0
- package/dist/ai/llmprompts/systemPrompts/inputContextPrompt.js +54 -0
- package/dist/ai/llmprompts/systemPrompts/mobileKeywordExtractor.js +53 -8
- package/dist/ai/llmprompts/systemPrompts/verifyActionExtractorPrompt.js +5 -4
- package/dist/ai/llmprompts/systemPrompts/verifyActionExtractorPromptMob.js +1 -1
- package/dist/ai/llmprompts/userPrompts/userPrompt.js +2 -0
- package/dist/automation/actions/executor.d.ts +14 -6
- package/dist/automation/actions/executor.js +970 -251
- package/dist/automation/actions/interaction/alert/enterDataToAlert.js +3 -1
- package/dist/automation/actions/interaction/alert/getTextPresentOnAlertPopup.js +4 -0
- package/dist/automation/actions/interaction/alert/verifyAlertPopUpMessageContainsString.js +1 -1
- package/dist/automation/actions/interaction/alert/verifyAlertPopupIsDisplayed.js +1 -1
- package/dist/automation/actions/interaction/alert/verifyTextPresentOnAlertPopup.js +1 -1
- package/dist/automation/actions/interaction/clear/clearAndEnter.js +6 -3
- package/dist/automation/actions/interaction/elementlessActions/getOtp.js +25 -24
- package/dist/automation/actions/interaction/enterActions/EnterInputIntoElementFromClipBoardInterface_mob.js +3 -1
- package/dist/automation/actions/interaction/enterActions/enterInput.js +5 -2
- package/dist/automation/actions/interaction/enterActions/enterInputAndPress.js +5 -2
- package/dist/automation/actions/interaction/enterActions/enterUrl.js +5 -2
- package/dist/automation/actions/interaction/enterActions/enterusingJs.js +3 -1
- package/dist/automation/actions/interaction/enterActions/waitAndEnter.js +5 -2
- package/dist/automation/actions/interaction/files/VerifyPDF.d.ts +2 -0
- package/dist/automation/actions/interaction/files/VerifyPDF.js +122 -0
- package/dist/automation/actions/interaction/get/MOB_GetADBLogsForGivenAppPackage.js +4 -1
- package/dist/automation/actions/interaction/get/MOB_GetAllContexts.js +5 -1
- package/dist/automation/actions/interaction/get/MOB_GetAllWindowHandles.d.ts +1 -1
- package/dist/automation/actions/interaction/get/MOB_GetAllWindowHandles.js +10 -6
- 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.d.ts +1 -1
- package/dist/automation/actions/interaction/get/MOB_GetBatteryStatus.js +7 -3
- 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 -2
- 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 +4 -0
- 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 -0
- package/dist/automation/actions/interaction/get/getAllBrokenImages.js +9 -0
- package/dist/automation/actions/interaction/get/getAllBrokenLinkCount.js +9 -0
- package/dist/automation/actions/interaction/get/getAllBrokenLinks.js +10 -1
- package/dist/automation/actions/interaction/get/getAllConsoleErrors.js +11 -0
- package/dist/automation/actions/interaction/get/getAllConsoleInformation.js +12 -1
- package/dist/automation/actions/interaction/get/getAllConsoleLogs.js +11 -1
- package/dist/automation/actions/interaction/get/getAllConsoleWarnings.js +12 -1
- package/dist/automation/actions/interaction/get/getAllCookieNames.js +6 -1
- package/dist/automation/actions/interaction/get/getAllCookieValues.js +6 -1
- package/dist/automation/actions/interaction/get/getAllSelectedOptions.js +8 -1
- package/dist/automation/actions/interaction/get/getAllTheOptionsFromListBoxAsText.js +4 -1
- package/dist/automation/actions/interaction/get/getAllTheOptionsFromListBoxAsTextInSortedOrder.js +4 -1
- package/dist/automation/actions/interaction/get/getAllTheSelectedOptionsFromListBoxAsText.js +4 -1
- package/dist/automation/actions/interaction/get/getAllWindowHandles.js +5 -1
- package/dist/automation/actions/interaction/get/getAttribute.js +19 -14
- package/dist/automation/actions/interaction/get/getAudioCurrentPlaybackRate.js +4 -1
- package/dist/automation/actions/interaction/get/getAudioCurrentSeekTime.js +4 -1
- package/dist/automation/actions/interaction/get/getAudioCurrentVolume.js +4 -1
- package/dist/automation/actions/interaction/get/getAudioDecodedByte.js +4 -1
- package/dist/automation/actions/interaction/get/getAudioDefaultPlaybackRate.js +4 -1
- package/dist/automation/actions/interaction/get/getAudioMediaLength.js +4 -1
- package/dist/automation/actions/interaction/get/getAudioMediaSource.js +4 -1
- package/dist/automation/actions/interaction/get/getBestPracticesScore.js +11 -3
- package/dist/automation/actions/interaction/get/getBrowserCount.js +5 -0
- package/dist/automation/actions/interaction/get/getBrowserVersion.js +5 -0
- package/dist/automation/actions/interaction/get/getCapabilityNames.js +5 -0
- package/dist/automation/actions/interaction/get/getClipBoardText.js +13 -0
- package/dist/automation/actions/interaction/get/getCollectiveApiResponseTime.js +4 -1
- package/dist/automation/actions/interaction/get/getCollectiveApiStatusCode.js +4 -1
- package/dist/automation/actions/interaction/get/getCssValue.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentDayOfTheWeek.js +4 -0
- package/dist/automation/actions/interaction/get/getCurrentSecondsFromCurrentSystemTime.js +5 -1
- package/dist/automation/actions/interaction/get/getCurrentSystemDate.js +4 -0
- 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 +13 -26
- package/dist/automation/actions/interaction/get/getDataFromApiRequestHeaderForJsonPath.js +5 -4
- package/dist/automation/actions/interaction/get/getDataFromApiResponseForJsonPath.js +5 -4
- package/dist/automation/actions/interaction/get/getDateWithGivenFormat.js +13 -16
- package/dist/automation/actions/interaction/get/getDriverInstance.js +13 -28
- package/dist/automation/actions/interaction/get/getFirstContentfulPaint.js +8 -1
- package/dist/automation/actions/interaction/get/getFirstSelectedOption.js +5 -1
- package/dist/automation/actions/interaction/get/getFullPaintTime.js +8 -1
- package/dist/automation/actions/interaction/get/getHTMLCodeOfPage.js +4 -0
- package/dist/automation/actions/interaction/get/getHeightOfBrowserWindow.js +5 -0
- package/dist/automation/actions/interaction/get/getHeightOfWebElement.js +4 -1
- package/dist/automation/actions/interaction/get/getHourFromCurrentSystemTime.js +4 -0
- package/dist/automation/actions/interaction/get/getImplicitTimeOut.js +15 -28
- package/dist/automation/actions/interaction/get/getLargestContentfulPaint.js +7 -0
- package/dist/automation/actions/interaction/get/getListBoxSize.d.ts +1 -1
- package/dist/automation/actions/interaction/get/getListBoxSize.js +4 -2
- package/dist/automation/actions/interaction/get/getListOfElementsFromLocatorTypeLocatorValue.js +7 -2
- package/dist/automation/actions/interaction/get/getLocation.js +14 -8
- package/dist/automation/actions/interaction/get/getMinuteFromCurrentSystemTime.js +4 -0
- package/dist/automation/actions/interaction/get/getNetworkRouteTime.js +7 -0
- package/dist/automation/actions/interaction/get/getNumberOfBrokenImages.js +7 -0
- package/dist/automation/actions/interaction/get/getNumberOfLinksPresentInCurrentPage.js +5 -0
- package/dist/automation/actions/interaction/get/getNumberOfWorkingLinksFromCurrentPage.js +9 -0
- package/dist/automation/actions/interaction/get/getOptions.js +4 -1
- package/dist/automation/actions/interaction/get/getPageTitle.js +5 -1
- package/dist/automation/actions/interaction/get/getPerformanceMetrics.js +12 -1
- package/dist/automation/actions/interaction/get/getPwaScore.js +11 -3
- package/dist/automation/actions/interaction/get/getRect.js +9 -2
- package/dist/automation/actions/interaction/get/getScreenshot.js +13 -28
- package/dist/automation/actions/interaction/get/getScreenshotAs.js +14 -44
- package/dist/automation/actions/interaction/get/getSeoScore.js +15 -3
- package/dist/automation/actions/interaction/get/getSingleApiRequestPayload.js +5 -3
- package/dist/automation/actions/interaction/get/getSingleApiResponse.js +9 -8
- package/dist/automation/actions/interaction/get/getSingleApiResponseTime.js +9 -9
- package/dist/automation/actions/interaction/get/getSingleApiStatusCode.d.ts +1 -1
- package/dist/automation/actions/interaction/get/getSingleApiStatusCode.js +10 -17
- package/dist/automation/actions/interaction/get/getSize.js +7 -2
- package/dist/automation/actions/interaction/get/getSizeOfBrowserWindow.js +5 -4
- package/dist/automation/actions/interaction/get/getStringDataFromLocalFile.js +10 -7
- package/dist/automation/actions/interaction/get/getSystemProperty.js +6 -4
- package/dist/automation/actions/interaction/get/getTagName.js +9 -2
- package/dist/automation/actions/interaction/get/getText.js +7 -2
- package/dist/automation/actions/interaction/get/getTheFirstSelectedOptionFromListBoxAsText.js +5 -1
- package/dist/automation/actions/interaction/get/getTotalNumberOfCookies.js +6 -1
- package/dist/automation/actions/interaction/get/getTunnelIdentifier.js +5 -8
- package/dist/automation/actions/interaction/get/getURLPresentInAddressBar.js +5 -1
- package/dist/automation/actions/interaction/get/getUserHomeDirectory.js +9 -1
- package/dist/automation/actions/interaction/get/getValueByCookieName.js +7 -4
- package/dist/automation/actions/interaction/get/getValueFromLocalStorage.js +6 -4
- package/dist/automation/actions/interaction/get/getValueOfSystemVariable.js +6 -4
- package/dist/automation/actions/interaction/get/getVideoCurrentPlaybackRate.js +4 -1
- package/dist/automation/actions/interaction/get/getVideoCurrentSeekTime.js +4 -1
- package/dist/automation/actions/interaction/get/getVideoCurrentVolume.js +4 -1
- package/dist/automation/actions/interaction/get/getVideoDecodedByte.js +4 -1
- package/dist/automation/actions/interaction/get/getVideoDefaultPlaybackRate.js +4 -1
- package/dist/automation/actions/interaction/get/getVideoMediaLength.js +4 -1
- package/dist/automation/actions/interaction/get/getVideoMediaSource.js +5 -1
- package/dist/automation/actions/interaction/get/getWidthOfBrowser.js +6 -1
- package/dist/automation/actions/interaction/get/getWidthOfWebElement.js +4 -1
- package/dist/automation/actions/interaction/get/getWorkingLinksFromCurrentPage.js +10 -1
- package/dist/automation/actions/interaction/get/getWrappedElement.js +5 -1
- package/dist/automation/actions/interaction/get/getWrappedOptionFromListBoxAsText.d.ts +1 -1
- package/dist/automation/actions/interaction/get/getWrappedOptionFromListBoxAsText.js +4 -2
- package/dist/automation/actions/interaction/get/getXLocationOfBrowserWindow.js +4 -3
- package/dist/automation/actions/interaction/get/getXLocationOfWebElement.js +7 -2
- package/dist/automation/actions/interaction/get/getYLocationOfBrowserWindow.js +6 -1
- package/dist/automation/actions/interaction/get/getYLocationOfWebElement.js +7 -2
- package/dist/automation/actions/interaction/shadowDom/shadowDomEnter.js +2 -0
- package/dist/automation/actions/interaction/shadowDom/shadowDomGetText.js +5 -2
- package/dist/automation/actions/interaction/verify/MOB_VerifyBatteryLevel.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyAttributeValue.js +2 -2
- package/dist/automation/actions/interaction/verify/VerifyBrowserHtmlCodeContainsString.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowHeight.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowTitleContainsString.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowTitleIsString.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowUrlContainsExpectedUrl.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowUrlIsString.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowWidth.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowXLocation.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyBrowserWindowYLocation.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyCssAttributeValue.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyElementNotContainsText.js +2 -2
- package/dist/automation/actions/interaction/verify/VerifyHeightOfWebElement.js +2 -2
- package/dist/automation/actions/interaction/verify/VerifyHexCodeForGivenXYCoordinates.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfAllCookiesAreDeleted.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfCookieNameIsAdded.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfCookieNameIsDeleted.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfCookieObjectIsPresent.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfGivenOptionIsDuplicate.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfImageIsBroken.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfLinkIsBroken.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfLinkIsWorking.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfLinksAreBroken.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfLinksAreWorking.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithTextIsDeselected.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithValueIsDeselected.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithValueIsSelected.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfOptionWithVisibleTextIsSelected.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyIfSpecifiedOptionIsSelected.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyNavigateURL.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyPartialAttributeValue.js +2 -2
- package/dist/automation/actions/interaction/verify/VerifyPartialTitleOfCurrentPage.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyTagName.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyThatSpecifiedOptionIsNotSelected.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyTitleInAllPage.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyTitleOfCurrentPage.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyValueOfElementContainsString.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyValueOfElementIsString.js +1 -1
- package/dist/automation/actions/interaction/verify/VerifyWidthOfElement.js +2 -2
- package/dist/automation/actions/interaction/verify/VerifyXLocationOfElement.js +2 -2
- package/dist/automation/actions/interaction/verify/VerifyYLocationOfElement.js +2 -2
- package/dist/automation/actions/interaction/verify/checkIfElementIsDisplayed.js +2 -2
- package/dist/automation/actions/interaction/verify/verifypartialtext.js +2 -2
- package/dist/automation/actions/interaction/verify/verifytext.js +2 -2
- package/dist/automation/actions/interface/FireFlinkResponseSchema.d.ts +39 -1
- package/dist/automation/actions/interface/FireFlinkResponseSchema.js +37 -3
- package/dist/automation/actions/interface/alertActionInterface.d.ts +11 -0
- package/dist/automation/actions/interface/clearActionInterface.d.ts +4 -0
- package/dist/automation/actions/interface/getActionInterface.d.ts +150 -141
- package/dist/automation/actions/interface/getOtpInterface.d.ts +5 -0
- package/dist/automation/actions/interface/interactionActionInterface.d.ts +14 -7
- package/dist/automation/actions/interface/shadowDomInterface.d.ts +10 -0
- package/dist/automation/actions/interface/verifyActionInterface.d.ts +102 -0
- package/dist/core/Errors/InvalidFileTypeError.d.ts +5 -0
- package/dist/core/Errors/InvalidFileTypeError.js +14 -0
- package/dist/core/constants/supportedActions.js +5 -0
- package/dist/core/helpers/elementSelectorResolver.d.ts +11 -0
- package/dist/core/helpers/elementSelectorResolver.js +102 -0
- package/dist/core/helpers/runnerDomPipeline.d.ts +9 -0
- package/dist/core/helpers/runnerDomPipeline.js +97 -0
- package/dist/core/helpers/runnerKafkaReporter.d.ts +17 -0
- package/dist/core/helpers/runnerKafkaReporter.js +71 -0
- package/dist/core/helpers/runnerPostActionHelper.d.ts +2 -0
- package/dist/core/helpers/runnerPostActionHelper.js +30 -0
- package/dist/core/helpers/stepActionInspector.d.ts +5 -0
- package/dist/core/helpers/stepActionInspector.js +113 -0
- package/dist/core/helpers/visionFallbackHandler.d.ts +3 -0
- package/dist/core/helpers/visionFallbackHandler.js +138 -0
- package/dist/core/interfaces/actionInterface.d.ts +7 -5
- package/dist/core/interfaces/automationRunnerInterface.d.ts +56 -1
- package/dist/core/interfaces/fireflinkScriptPayloadInterface.d.ts +2 -0
- package/dist/core/interfaces/llmResponseInterface.d.ts +5 -0
- package/dist/core/interfaces/promptInterface.d.ts +9 -2
- package/dist/core/interfaces/scriptGenrationDataInterface.d.ts +4 -0
- package/dist/core/main/actionHandlerFactory.js +48 -7
- package/dist/core/main/executionContext.d.ts +2 -1
- package/dist/core/main/executionContext.js +3 -2
- package/dist/core/main/runAutomationScript.d.ts +1 -0
- package/dist/core/main/runAutomationScript.js +392 -1008
- package/dist/core/types/llmResponseType.d.ts +2 -2
- package/dist/core/types/promptType.d.ts +3 -1
- package/dist/core/types/promptType.js +2 -0
- package/dist/fireflinkData/fireflinkScript/appendScriptData.js +3 -0
- package/dist/utils/browserCap/capability.js +11 -0
- package/dist/utils/browserCap/systemCapabilities.d.ts +6 -0
- package/dist/utils/browserCap/systemCapabilities.js +25 -0
- package/dist/utils/downloadWatcher/pdfDownloadWatcher.d.ts +8 -0
- package/dist/utils/downloadWatcher/pdfDownloadWatcher.js +61 -0
- package/dist/utils/helpers/getHelper.d.ts +8 -0
- package/dist/utils/helpers/getHelper.js +115 -0
- package/dist/utils/helpers/platformSyntax.d.ts +1 -1
- package/dist/utils/logger/logData.d.ts +2 -0
- package/dist/utils/logger/logData.js +4 -1
- package/dist/utils/textExtractor/pdfTextExtractor.d.ts +2 -0
- package/dist/utils/textExtractor/pdfTextExtractor.js +35 -0
- package/package.json +2 -1
- package/dist/ai/llmprompts/systemPrompts/combinedActionExtractorPrompt.d.ts +0 -2
- package/dist/ai/llmprompts/systemPrompts/combinedActionExtractorPrompt.js +0 -36
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { IKeywordAction, IDragDropAction, IAlertAction, IScrollOrAttributeAction, IManualSteps, IVisionAction, IWaitAction, IClickAction, IVerifyAction, IGetAction } from "../interfaces/llmResponseInterface.js";
|
|
2
|
-
export type FireFlinkLLMResponse = IKeywordAction | IAlertAction | IDragDropAction | IScrollOrAttributeAction | IManualSteps | IVisionAction | IWaitAction | IClickAction | IVerifyAction | IGetAction | any;
|
|
1
|
+
import { IKeywordAction, IDragDropAction, IAlertAction, IScrollOrAttributeAction, IManualSteps, IVisionAction, IWaitAction, IClickAction, IVerifyAction, IGetAction, IInputTextExtractor } from "../interfaces/llmResponseInterface.js";
|
|
2
|
+
export type FireFlinkLLMResponse = IKeywordAction | IAlertAction | IDragDropAction | IScrollOrAttributeAction | IManualSteps | IVisionAction | IWaitAction | IClickAction | IVerifyAction | IGetAction | IInputTextExtractor | any;
|
|
@@ -8,5 +8,7 @@ export declare enum PromptType {
|
|
|
8
8
|
GET_PROMPT = "getActionExtractorPrompt",
|
|
9
9
|
WAIT_ACTION_EXTRACTOR_PROMPT = "waitActionExtractorPrompt",
|
|
10
10
|
COMBINED_ACTION_EXTRACTOR_PROMPT = "combinedActionExtractorPrompt",
|
|
11
|
-
OTP_EXTRACTOR = "otpExtractorPrompt"
|
|
11
|
+
OTP_EXTRACTOR = "otpExtractorPrompt",
|
|
12
|
+
FILE_VERIFY_PROMPT = "fileVerifyActionExtractorPrompt",
|
|
13
|
+
INPUT_CONTEXT_PROMPT = "inputContextPrompt"
|
|
12
14
|
}
|
|
@@ -13,4 +13,6 @@ var PromptType;
|
|
|
13
13
|
PromptType["WAIT_ACTION_EXTRACTOR_PROMPT"] = "waitActionExtractorPrompt";
|
|
14
14
|
PromptType["COMBINED_ACTION_EXTRACTOR_PROMPT"] = "combinedActionExtractorPrompt";
|
|
15
15
|
PromptType["OTP_EXTRACTOR"] = "otpExtractorPrompt";
|
|
16
|
+
PromptType["FILE_VERIFY_PROMPT"] = "fileVerifyActionExtractorPrompt";
|
|
17
|
+
PromptType["INPUT_CONTEXT_PROMPT"] = "inputContextPrompt";
|
|
16
18
|
})(PromptType || (exports.PromptType = PromptType = {}));
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getCapabilities = getCapabilities;
|
|
4
|
+
const logData_js_1 = require("../logger/logData.js");
|
|
4
5
|
function getCapabilities(browserName, path, profile, customCaps = []) {
|
|
5
6
|
const isLinux = process.platform === 'linux';
|
|
6
7
|
const caps = customCaps.map(c => c.toLowerCase());
|
|
@@ -39,6 +40,10 @@ function getCapabilities(browserName, path, profile, customCaps = []) {
|
|
|
39
40
|
};
|
|
40
41
|
const getChromiumPrefs = () => {
|
|
41
42
|
const prefs = {};
|
|
43
|
+
prefs["download.default_directory"] = logData_js_1.downloadDir;
|
|
44
|
+
prefs["download.prompt_for_download"] = false;
|
|
45
|
+
prefs["download.directory_upgrade"] = true;
|
|
46
|
+
prefs["safebrowsing.enabled"] = true;
|
|
42
47
|
if (hasCap("geolocation"))
|
|
43
48
|
prefs["profile.default_content_setting_values.geolocation"] = 2;
|
|
44
49
|
if (hasCap("camera"))
|
|
@@ -67,6 +72,12 @@ function getCapabilities(browserName, path, profile, customCaps = []) {
|
|
|
67
72
|
if (hasCap("disableExtensions"))
|
|
68
73
|
args.push('-safe-mode');
|
|
69
74
|
const prefs = {};
|
|
75
|
+
// Always redirect downloads to session/tempFile so VerifyPDF can reliably find them
|
|
76
|
+
prefs["browser.download.dir"] = logData_js_1.downloadDir;
|
|
77
|
+
prefs["browser.download.folderList"] = 2; // 2 = use custom download dir
|
|
78
|
+
prefs["browser.download.useDownloadDir"] = true;
|
|
79
|
+
prefs["browser.helperApps.neverAsk.saveToDisk"] = "application/pdf,application/octet-stream";
|
|
80
|
+
prefs["pdfjs.disabled"] = true; // prevent Firefox from opening PDFs inline
|
|
70
81
|
if (hasCap("disableNotifications") || hasCap("notifications"))
|
|
71
82
|
prefs["dom.webnotifications.enabled"] = false;
|
|
72
83
|
if (hasCap("disablePopups") || hasCap("popups"))
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.systemCapability = void 0;
|
|
4
|
+
exports.systemCapability = {
|
|
5
|
+
chrome: [
|
|
6
|
+
"download.default_directory",
|
|
7
|
+
"download.prompt_for_download",
|
|
8
|
+
"download.directory_upgrade",
|
|
9
|
+
"safebrowsing.enabled"
|
|
10
|
+
],
|
|
11
|
+
edge: [
|
|
12
|
+
"download.default_directory",
|
|
13
|
+
"download.prompt_for_download",
|
|
14
|
+
"download.directory_upgrade",
|
|
15
|
+
"safebrowsing.enabled"
|
|
16
|
+
],
|
|
17
|
+
firefox: [
|
|
18
|
+
"browser.download.dir",
|
|
19
|
+
"browser.download.folderList",
|
|
20
|
+
"browser.download.useDownloadDir",
|
|
21
|
+
"browser.helperApps.neverAsk.saveToDisk",
|
|
22
|
+
"pdfjs.disabled"
|
|
23
|
+
],
|
|
24
|
+
safari: []
|
|
25
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.waitForDownloadComplete = waitForDownloadComplete;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const DOWNLOAD_TIMEOUT_MS = 30000;
|
|
10
|
+
const POLL_INTERVAL_MS = 400;
|
|
11
|
+
const STABILITY_WAIT_MS = 250;
|
|
12
|
+
async function waitForDownloadComplete(downloadDir, timeoutMs = DOWNLOAD_TIMEOUT_MS) {
|
|
13
|
+
const startTime = Date.now();
|
|
14
|
+
while (Date.now() - startTime < timeoutMs) {
|
|
15
|
+
if (fs_1.default.existsSync(downloadDir)) {
|
|
16
|
+
const allEntries = fs_1.default.readdirSync(downloadDir);
|
|
17
|
+
let hasActiveDownload = false;
|
|
18
|
+
const pdfFiles = [];
|
|
19
|
+
// Single pass: early exit if active download is present, stat only PDF files
|
|
20
|
+
for (const file of allEntries) {
|
|
21
|
+
const lower = file.toLowerCase();
|
|
22
|
+
if (lower.endsWith(".crdownload") || lower.endsWith(".part") || lower.endsWith(".tmp")) {
|
|
23
|
+
hasActiveDownload = true;
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
if (lower.endsWith(".pdf")) {
|
|
27
|
+
const fullPath = path_1.default.join(downloadDir, file);
|
|
28
|
+
try {
|
|
29
|
+
const stat = fs_1.default.statSync(fullPath);
|
|
30
|
+
if (stat.isFile()) {
|
|
31
|
+
pdfFiles.push({ name: file, fullPath, mtime: stat.mtimeMs, size: stat.size });
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
// File locked or in transition, skip for this cycle
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (!hasActiveDownload && pdfFiles.length > 0) {
|
|
40
|
+
pdfFiles.sort((a, b) => b.mtime - a.mtime);
|
|
41
|
+
const latest = pdfFiles[0];
|
|
42
|
+
if (latest.size > 0) {
|
|
43
|
+
await new Promise(res => setTimeout(res, STABILITY_WAIT_MS));
|
|
44
|
+
try {
|
|
45
|
+
const newStat = fs_1.default.statSync(latest.fullPath);
|
|
46
|
+
if (newStat.size === latest.size && newStat.size > 0) {
|
|
47
|
+
const durationSeconds = Math.max(1, Math.ceil((Date.now() - startTime) / 1000));
|
|
48
|
+
return { file: latest, durationSeconds };
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
// Retry on next cycle
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
await new Promise(res => setTimeout(res, POLL_INTERVAL_MS));
|
|
58
|
+
}
|
|
59
|
+
throw new Error(`PDF download did not complete within ${timeoutMs / 1000} seconds in directory: ${downloadDir}. ` +
|
|
60
|
+
`Ensure the download was triggered prior to VerifyPDF.`);
|
|
61
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface StepInputDataArgs {
|
|
2
|
+
stepsInputData?: any[];
|
|
3
|
+
stepIndex?: any;
|
|
4
|
+
currentStep?: string;
|
|
5
|
+
manualStep?: string;
|
|
6
|
+
returnTypeVariableName?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function saveStepInputData(args: StepInputDataArgs | undefined, value: any): void;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// import { logger } from "../logger/logData.js";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.saveStepInputData = saveStepInputData;
|
|
5
|
+
function saveStepInputData(args, value) {
|
|
6
|
+
if (!args || !args.stepsInputData || !Array.isArray(args.stepsInputData)) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
const rawStepIndex = args.stepIndex !== undefined
|
|
10
|
+
? args.stepIndex
|
|
11
|
+
: args.stepsInputData?.currentStepIndex;
|
|
12
|
+
const currentStep = args.currentStep || "";
|
|
13
|
+
const manualStep = args.manualStep ||
|
|
14
|
+
args.stepsInputData?.currentManualStep ||
|
|
15
|
+
currentStep;
|
|
16
|
+
const isOneToMany = typeof rawStepIndex === "string" && rawStepIndex.includes(".");
|
|
17
|
+
const baseStepIndex = isOneToMany
|
|
18
|
+
? Number(rawStepIndex.split(".")[0])
|
|
19
|
+
: typeof rawStepIndex === "number"
|
|
20
|
+
? rawStepIndex
|
|
21
|
+
: Number(rawStepIndex) || rawStepIndex;
|
|
22
|
+
let inputText;
|
|
23
|
+
if (value === null || value === undefined) {
|
|
24
|
+
inputText = "";
|
|
25
|
+
}
|
|
26
|
+
else if (typeof value === "object") {
|
|
27
|
+
try {
|
|
28
|
+
inputText = JSON.stringify(value);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
inputText = String(value);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
inputText = String(value);
|
|
36
|
+
}
|
|
37
|
+
if (isOneToMany) {
|
|
38
|
+
const existingEntry = args.stepsInputData.find((entry) => entry && entry.stepindex === baseStepIndex);
|
|
39
|
+
if (existingEntry) {
|
|
40
|
+
if (manualStep && existingEntry.step !== manualStep) {
|
|
41
|
+
existingEntry.step = manualStep;
|
|
42
|
+
}
|
|
43
|
+
if (!Array.isArray(existingEntry.subSteps)) {
|
|
44
|
+
existingEntry.subSteps = [];
|
|
45
|
+
}
|
|
46
|
+
const alreadyRecorded = existingEntry.subSteps.some((s) => s.stepindex === String(rawStepIndex) &&
|
|
47
|
+
s.step === currentStep &&
|
|
48
|
+
s.value !== undefined);
|
|
49
|
+
if (alreadyRecorded) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
existingEntry.subSteps.push({
|
|
53
|
+
stepindex: String(rawStepIndex),
|
|
54
|
+
step: currentStep,
|
|
55
|
+
inputText,
|
|
56
|
+
value,
|
|
57
|
+
...(args.returnTypeVariableName ? { variableName: args.returnTypeVariableName } : {}),
|
|
58
|
+
});
|
|
59
|
+
// Do NOT store inputText or value on the parent object for one-to-many steps
|
|
60
|
+
delete existingEntry.inputText;
|
|
61
|
+
delete existingEntry.value;
|
|
62
|
+
// try {
|
|
63
|
+
// logger?.info(
|
|
64
|
+
// `[saveStepInputData] Appended sub-step ${rawStepIndex} to step ${baseStepIndex}:`,
|
|
65
|
+
// existingEntry
|
|
66
|
+
// )?.catch(() => { });
|
|
67
|
+
// } catch { }
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
// First sub-step for this baseStepIndex
|
|
71
|
+
const record = {
|
|
72
|
+
stepindex: baseStepIndex,
|
|
73
|
+
step: manualStep,
|
|
74
|
+
subSteps: [
|
|
75
|
+
{
|
|
76
|
+
stepindex: String(rawStepIndex),
|
|
77
|
+
step: currentStep,
|
|
78
|
+
inputText,
|
|
79
|
+
value,
|
|
80
|
+
...(args.returnTypeVariableName ? { variableName: args.returnTypeVariableName } : {}),
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
};
|
|
84
|
+
args.stepsInputData.push(record);
|
|
85
|
+
// try {
|
|
86
|
+
// logger?.info(
|
|
87
|
+
// `[saveStepInputData] Stored sub-step ${rawStepIndex} in step ${baseStepIndex}:`,
|
|
88
|
+
// record
|
|
89
|
+
// )?.catch(() => { });
|
|
90
|
+
// } catch { }
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
// Normal 1-to-1 step
|
|
94
|
+
const isAlreadyRecorded = args.stepsInputData.some((entry) => entry &&
|
|
95
|
+
entry.stepindex === baseStepIndex &&
|
|
96
|
+
entry.step === manualStep &&
|
|
97
|
+
entry.value !== undefined);
|
|
98
|
+
if (isAlreadyRecorded) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
const record = {
|
|
102
|
+
stepindex: baseStepIndex,
|
|
103
|
+
step: manualStep,
|
|
104
|
+
inputText,
|
|
105
|
+
value,
|
|
106
|
+
...(args.returnTypeVariableName ? { variableName: args.returnTypeVariableName } : {}),
|
|
107
|
+
};
|
|
108
|
+
args.stepsInputData.push(record);
|
|
109
|
+
// try {
|
|
110
|
+
// logger?.info(
|
|
111
|
+
// `[saveStepInputData] Stored step ${baseStepIndex}:`,
|
|
112
|
+
// record
|
|
113
|
+
// )?.catch(() => { });
|
|
114
|
+
// } catch { }
|
|
115
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function getPlatformSyntax(platform: string): "
|
|
1
|
+
export declare function getPlatformSyntax(platform: string): "Web" | "Android" | "iOS";
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
export declare let downloadDir: string;
|
|
1
2
|
export declare function initLogger(basePath: string): void;
|
|
3
|
+
export declare function ensureDirs(): Promise<void>;
|
|
2
4
|
export declare const logger: {
|
|
3
5
|
info: (...args: any[]) => Promise<void>;
|
|
4
6
|
error: (...args: any[]) => Promise<void>;
|
|
@@ -3,8 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.logger = void 0;
|
|
6
|
+
exports.logger = exports.downloadDir = void 0;
|
|
7
7
|
exports.initLogger = initLogger;
|
|
8
|
+
exports.ensureDirs = ensureDirs;
|
|
8
9
|
const promises_1 = __importDefault(require("fs/promises"));
|
|
9
10
|
const path_1 = __importDefault(require("path"));
|
|
10
11
|
const js_beautify_1 = __importDefault(require("js-beautify"));
|
|
@@ -17,6 +18,7 @@ function initLogger(basePath) {
|
|
|
17
18
|
sessionPath = basePath;
|
|
18
19
|
logsDir = path_1.default.resolve(sessionPath, "logs");
|
|
19
20
|
domDir = path_1.default.resolve(sessionPath, "dom");
|
|
21
|
+
exports.downloadDir = path_1.default.resolve(sessionPath, "tempFile");
|
|
20
22
|
screenshotsDir = path_1.default.resolve(sessionPath, "screenshots");
|
|
21
23
|
logFilePath = path_1.default.join(logsDir, "ai-execution-logs.txt");
|
|
22
24
|
}
|
|
@@ -26,6 +28,7 @@ async function ensureDirs() {
|
|
|
26
28
|
await promises_1.default.mkdir(logsDir, { recursive: true });
|
|
27
29
|
await promises_1.default.mkdir(domDir, { recursive: true });
|
|
28
30
|
await promises_1.default.mkdir(screenshotsDir, { recursive: true });
|
|
31
|
+
await promises_1.default.mkdir(exports.downloadDir, { recursive: true });
|
|
29
32
|
}
|
|
30
33
|
function getISTDate() {
|
|
31
34
|
return new Intl.DateTimeFormat("sv-SE", {
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeText = normalizeText;
|
|
4
|
+
exports.extractTextFromPdf = extractTextFromPdf;
|
|
5
|
+
const logData_js_1 = require("../logger/logData.js");
|
|
6
|
+
function normalizeText(text) {
|
|
7
|
+
return text.replace(/\s+/g, " ").trim();
|
|
8
|
+
}
|
|
9
|
+
async function extractTextFromPdf(buffer) {
|
|
10
|
+
try {
|
|
11
|
+
const dynamicImport = new Function("modulePath", "return import(modulePath)");
|
|
12
|
+
const pdfjs = await dynamicImport("pdfjs-dist/legacy/build/pdf.mjs").catch(() => dynamicImport("pdfjs-dist"));
|
|
13
|
+
const data = new Uint8Array(buffer);
|
|
14
|
+
const loadingTask = pdfjs.getDocument({
|
|
15
|
+
data,
|
|
16
|
+
useSystemFonts: true,
|
|
17
|
+
disableFontFace: true,
|
|
18
|
+
});
|
|
19
|
+
const pdfDoc = await loadingTask.promise;
|
|
20
|
+
const pageTexts = [];
|
|
21
|
+
for (let i = 1; i <= pdfDoc.numPages; i++) {
|
|
22
|
+
const page = await pdfDoc.getPage(i);
|
|
23
|
+
const textContent = await page.getTextContent();
|
|
24
|
+
const pageString = textContent.items
|
|
25
|
+
.map((item) => ("str" in item ? item.str : ""))
|
|
26
|
+
.join(" ");
|
|
27
|
+
pageTexts.push(pageString);
|
|
28
|
+
}
|
|
29
|
+
return pageTexts.join("\n");
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
logData_js_1.logger.error("pdfjs-dist extraction failed, falling back to raw buffer string scan", err);
|
|
33
|
+
return buffer.toString("latin1");
|
|
34
|
+
}
|
|
35
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ff-automationv2",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.32-beta.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"description": "This lib is used to automate the manual testcase",
|
|
@@ -82,6 +82,7 @@
|
|
|
82
82
|
"jsonrepair": "^3.14.1",
|
|
83
83
|
"kafkajs": "^2.2.4",
|
|
84
84
|
"openai": "6.18.0",
|
|
85
|
+
"pdfjs-dist": "^6.3.289",
|
|
85
86
|
"plist": "^3.1.0",
|
|
86
87
|
"uuid": "13.0.0",
|
|
87
88
|
"webdriverio": "9.26.1",
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.combinedActionExtractorPrompt = combinedActionExtractorPrompt;
|
|
4
|
-
async function combinedActionExtractorPrompt({ extractedDomJson, priorAndNextSteps, }) {
|
|
5
|
-
const nlpList = `"dummy"`;
|
|
6
|
-
const elementType = ["link", "textfield", "icon", "button", "radiobutton", "checkbox", "tab", "action overflow button", "hamburger menu", "toggle button", "steppers", "sliders"];
|
|
7
|
-
const prompt = `
|
|
8
|
-
You are an intelligent assistant that extracts structured UI action data.
|
|
9
|
-
Given the step, the simplified DOM: ${extractedDomJson}, and the list of NLP names: ${nlpList}.
|
|
10
|
-
|
|
11
|
-
Select the perfect matching NLP name from the list that best fits the step's intent.
|
|
12
|
-
|
|
13
|
-
Return **only valid JSON** in the following format:
|
|
14
|
-
{
|
|
15
|
-
"attributeValue": "Fire-Flink-x",
|
|
16
|
-
"nlpName": "x",
|
|
17
|
-
"inputText":"x",
|
|
18
|
-
"keyword": "x",
|
|
19
|
-
"elementType": "x",
|
|
20
|
-
"keycode": "x"
|
|
21
|
-
}
|
|
22
|
-
Rules:
|
|
23
|
-
- nlpName must be exactly one from the provided list.
|
|
24
|
-
- Use context from the steps : ${priorAndNextSteps}, keyword and json to search for FF-inspecter.
|
|
25
|
-
- **Find the FF-inspecter attribute value of the element in the Simplified JSON whose text or attributes best match the step.**
|
|
26
|
-
- If step has mutipul inputs add all in inputText and all matched attributeValue also.
|
|
27
|
-
- Extract inputText from the step, if you can't find any input text in the step, return keyword as inputText.input can be number, app package, apk file path.dont include extra words.
|
|
28
|
-
- Extract keyword from the step, if the step contains any keyword.
|
|
29
|
-
- Extract keycode of keys if the step contains any key name like ENTER,SPACE,BACKSPACE etc and give keycode of the given key.
|
|
30
|
-
- Use the closest semantic match for the step; return attributeValue as Fire-Flink-0, only if nothing is found.
|
|
31
|
-
- Based on step give most relevant type of element. use this list to choose element_type: ${elementType} and Never change syntax of element_type, follow the syntax of element_type in list.if element_type is not there in list return 'link'.
|
|
32
|
-
- Return ONLY a valid JSON object; the response must start with '{' and end with '}', with no markdown, code fences, explanations, or extra text.
|
|
33
|
-
- Respond with valid JSON only.
|
|
34
|
-
`;
|
|
35
|
-
return prompt;
|
|
36
|
-
}
|