[{"data":1,"prerenderedAt":1966},["ShallowReactive",2],{"navigation":3,"page:\u002Freference\u002Fdsl\u002Fsteps":1019,"surround:\u002Freference\u002Fdsl\u002Fsteps":1958},[4,21,82,133,154,1010],[5,6,7,8],"Getting started","\u002Fgetting-started","i-lucide-rocket",[9,12,15,18],[10,6,11,11],"What Kaabist is",0,[13,14,11,11],"API keys and modes","keys-and-modes",[16,17,11,11],"Your first job","first-job",[19,20,11,11],"Understanding the envelope","envelope",[22,23,24,25],"Concepts","\u002Fconcepts","i-lucide-book-open",[26,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79],[27,23,11,11],"Overview",[29,30,11,11],"Programs and versions","programs-and-versions",[32,33,11,11],"Tiers and escalation","tiers-and-escalation",[35,36,11,11],"The http tier","http-tier",[38,39,11,11],"The browser tier","browser-tier",[41,42,11,11],"Sessions","sessions",[44,45,11,11],"Human in the loop","human-in-the-loop",[47,48,11,11],"How healing works","self-healing",[50,51,11,11],"Obstacles and captchas","obstacles",[53,54,11,11],"Validation and warnings","validation-and-warnings",[56,57,11,11],"Credits and billing","credits-and-billing",[59,60,11,11],"Limits","limits",[62,63,11,11],"Locators","locators",[65,66,11,11],"Snapshots","snapshots",[68,69,11,11],"Egress and proxies","egress-and-proxies",[71,72,11,11],"Queueing and fairness","queueing",[74,75,11,11],"Accounts, organisations and roles","accounts-and-roles",[77,78,11,11],"Data retention","data-retention",[80,81,11,11],"Documents and PDFs","documents-and-pdfs",[83,84,85,86],"Guides","\u002Fguides","i-lucide-map",[87,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130],[27,84,11,11],[89,90,11,11],"Authenticated flows","authenticated-flows",[92,93,11,11],"Hosted resolve pages","hosted-resolve",[95,96,11,11],"Lists and pagination","lists-and-pagination",[98,99,11,11],"JSON and network locators","json-and-network-locators",[101,102,11,11],"Schedules and change detection","schedules-and-change-detection",[104,105,11,11],"Webhooks","webhooks",[107,108,11,11],"Bring your own providers","byo-providers",[110,111,11,11],"Testing: replay, dry-run and test mode","testing",[113,114,11,11],"Side-effect safety","side-effect-safety",[116,117,11,11],"Security & data handling","security-and-data",[119,120,11,11],"Migrating from other tools","migrating",[122,123,11,11],"Drift detection and canaries","drift-and-canaries",[125,126,11,11],"SDKs","sdks",[128,129,11,11],"The kaab CLI","cli",[131,132,11,11],"Coding agents (MCP)","mcp",[134,135,136,137],"Panel","\u002Fpanel","i-lucide-layout-dashboard",[138,139,142,145,148,151],[27,135,11,11],[140,141,11,11],"The program builder","builder",[143,144,11,11],"Picking and recording","picking-and-recording",[146,147,11,11],"Taking over a job","takeover",[149,150,11,11],"Getting help","support",[152,153,11,11],"Referrals","referrals",[155,156,157,158],"Reference","\u002Freference","i-lucide-library",[159,160,520,834,837,840,1006,1007],[27,156,11,11],[161,162,11,163],"API","api",[164,166,169,212,222,274,297,316,347,376,389,396,403,410,426,447,454],[27,165,11,11],"\u002Freference\u002Fapi",[167,168,11,11],"Interactive reference","explorer",[170,171,11,172],"Jobs","jobs",[173,176,179,182,185,188,191,194,197,200,203,206,209],[174,175,11,11],"Create job","create-job",[177,178,11,11],"List jobs","list-jobs",[180,181,11,11],"Create job batch","create-job-batch",[183,184,11,11],"Estimate job","estimate-job",[186,187,11,11],"Get job","get-job",[189,190,11,11],"List job steps","list-job-steps",[192,193,11,11],"Get job snapshot","get-job-snapshot",[195,196,11,11],"Get job screenshot","get-job-screenshot",[198,199,11,11],"Get job artifact","get-job-artifact",[201,202,11,11],"Submit job input","submit-job-input",[204,205,11,11],"Resume job","resume-job",[207,208,11,11],"Takeover job","takeover-job",[210,211,11,11],"Cancel job","cancel-job",[213,214,11,215],"Batches","batches",[216,219],[217,218,11,11],"Get batch","get-batch",[220,221,11,11],"List batch jobs","list-batch-jobs",[223,224,11,225],"Programs","programs",[226,229,232,235,238,241,244,247,250,253,256,259,262,265,268,271],[227,228,11,11],"Create program","create-program",[230,231,11,11],"List programs","list-programs",[233,234,11,11],"Lint program","lint-program",[236,237,11,11],"Get program","get-program",[239,240,11,11],"Update program","update-program",[242,243,11,11],"Delete program","delete-program",[245,246,11,11],"List program versions","list-program-versions",[248,249,11,11],"Create program version","create-program-version",[251,252,11,11],"Update program version","update-program-version",[254,255,11,11],"Delete program version","delete-program-version",[257,258,11,11],"Get program version","get-program-version",[260,261,11,11],"Publish program version","publish-program-version",[263,264,11,11],"Diff program version","diff-program-version",[266,267,11,11],"Replay program version","replay-program-version",[269,270,11,11],"Set program alias","set-program-alias",[272,273,11,11],"Delete program alias","delete-program-alias",[41,42,11,275],[276,279,282,285,288,291,294],[277,278,11,11],"Create session","create-session",[280,281,11,11],"List sessions","list-sessions",[283,284,11,11],"Get session","get-session",[286,287,11,11],"Update session","update-session",[289,290,11,11],"Delete session","delete-session",[292,293,11,11],"Verify session","verify-session",[295,296,11,11],"Refresh session","refresh-session",[298,299,11,300],"Proposals","proposals",[301,304,307,310,313],[302,303,11,11],"List proposals","list-proposals",[305,306,11,11],"Get proposal","get-proposal",[308,309,11,11],"Approve proposal","approve-proposal",[311,312,11,11],"Reject proposal","reject-proposal",[314,315,11,11],"Edit proposal","edit-proposal",[317,318,11,319],"Schedules","schedules",[320,323,326,329,332,335,338,341,344],[321,322,11,11],"Create schedule","create-schedule",[324,325,11,11],"List schedules","list-schedules",[327,328,11,11],"Get schedule","get-schedule",[330,331,11,11],"Update schedule","update-schedule",[333,334,11,11],"Delete schedule","delete-schedule",[336,337,11,11],"Pause schedule","pause-schedule",[339,340,11,11],"Resume schedule","resume-schedule",[342,343,11,11],"List schedule runs","list-schedule-runs",[345,346,11,11],"Get schedule run diff","get-schedule-run-diff",[104,105,11,348],[349,352,355,358,361,364,367,370,373],[350,351,11,11],"Create webhook","create-webhook",[353,354,11,11],"List webhooks","list-webhooks",[356,357,11,11],"Get webhook","get-webhook",[359,360,11,11],"Update webhook","update-webhook",[362,363,11,11],"Delete webhook","delete-webhook",[365,366,11,11],"Rotate webhook secret","rotate-webhook-secret",[368,369,11,11],"List webhook deliveries","list-webhook-deliveries",[371,372,11,11],"Resend webhook delivery","resend-webhook-delivery",[374,375,11,11],"Test webhook","test-webhook",[377,378,11,379],"Organisation","org",[380,383,386],[381,382,11,11],"Rotate org webhook secret","rotate-org-webhook-secret",[384,385,11,11],"Get org","get-org",[387,388,11,11],"Request data deletion","request-data-deletion",[390,391,11,392],"Credits","credits",[393],[394,395,11,11],"Get credits","get-credits",[397,398,11,399],"Ledger","ledger",[400],[401,402,11,11],"List ledger entries","list-ledger-entries",[404,405,11,406],"Usage","usage",[407],[408,409,11,11],"Get usage","get-usage",[411,412,11,413],"API keys","api-keys",[414,417,420,423],[415,416,11,11],"List API keys","list-api-keys",[418,419,11,11],"Create API key","create-api-key",[421,422,11,11],"Rotate API key","rotate-api-key",[424,425,11,11],"Revoke API key","revoke-api-key",[427,108,11,428],"BYO providers",[429,432,435,438,441,444],[430,431,11,11],"List BYO providers","list-byo-providers",[433,434,11,11],"Create BYO provider","create-byo-provider",[436,437,11,11],"Get BYO provider","get-byo-provider",[439,440,11,11],"Update BYO provider","update-byo-provider",[442,443,11,11],"Delete BYO provider","delete-byo-provider",[445,446,11,11],"Test BYO provider","test-byo-provider",[448,449,11,450],"Sites","sites",[451],[452,453,11,11],"Get site profile","get-site-profile",[455,456,11,457],"Objects","schemas",[458,460,463,466,469,470,473,476,479,482,485,487,490,493,496,499,502,505,508,511,514,517],[27,459,11,11],"\u002Freference\u002Fapi\u002Fschemas",[461,462,11,11],"ApiKey","api-key",[464,465,11,11],"Batch","batch",[467,468,11,11],"ByoProvider","byo-provider",[390,391,11,11],[471,472,11,11],"ErrorResponse","error-response",[474,475,11,11],"ExtractSchema","extract-schema",[477,478,11,11],"Job","job",[480,481,11,11],"LedgerEntry","ledger-entry",[483,484,11,11],"LintResult","lint-result",[486,378,11,11],"Org",[488,489,11,11],"Program","program",[491,492,11,11],"ProgramDefinition","program-definition",[494,495,11,11],"ProgramVersion","program-version",[497,498,11,11],"Proposal","proposal",[500,501,11,11],"Schedule","schedule",[503,504,11,11],"Session","session",[506,507,11,11],"SiteProfile","site-profile",[509,510,11,11],"StepRecord","step-record",[512,513,11,11],"Webhook","webhook",[515,516,11,11],"WebhookDelivery","webhook-delivery",[518,519,11,11],"WebhookEvent","webhook-event",[521,522,11,523],"DSL","dsl",[524,526,529,532,535,538,603,637,640,751,754,756],[27,525,11,11],"\u002Freference\u002Fdsl",[527,528,11,11],"Inputs","inputs",[530,531,11,11],"Options","options",[533,534,11,11],"Policies","policies",[536,537,11,11],"Steps","steps",[539,540,11,541],"Actions","actions",[542,544,546,548,550,552,554,556,558,560,562,565,568,570,573,575,577,579,582,585,587,589,591,594,596,598,600],[27,543,11,11],"\u002Freference\u002Fdsl\u002Factions",[545,545,11,11],"fill",[547,547,11,11],"click",[549,549,11,11],"press",[551,551,11,11],"hover",[553,553,11,11],"select",[555,555,11,11],"check",[557,557,11,11],"uncheck",[559,559,11,11],"upload",[561,561,11,11],"scroll",[563,564,11,11],"wait_for","wait-for",[566,567,11,11],"set_session","set-session",[569,569,11,11],"extract",[571,572,11,11],"capture_response","capture-response",[574,574,11,11],"evaluate",[576,576,11,11],"paginate",[578,578,11,11],"download",[580,581,11,11],"read_pdf","read-pdf",[583,584,11,11],"set_vars","set-vars",[586,586,11,11],"sleep",[588,588,11,11],"reload",[590,590,11,11],"goto",[592,593,11,11],"await_input","await-input",[595,595,11,11],"checkpoint",[597,597,11,11],"screenshot",[599,599,11,11],"when",[601,602,11,11],"loop_until","loop-until",[604,605,11,606],"Conditions","conditions",[607,609,611,613,615,617,619,621,623,625,627,629,631,633,635],[27,608,11,11],"\u002Freference\u002Fdsl\u002Fconditions",[610,610,11,11],"url",[612,612,11,11],"title",[614,614,11,11],"visible",[616,616,11,11],"hidden",[618,618,11,11],"exists",[620,620,11,11],"absent",[622,622,11,11],"text",[624,624,11,11],"count",[626,626,11,11],"network",[628,628,11,11],"var",[630,630,11,11],"landmark",[632,632,11,11],"all",[634,634,11,11],"any",[636,636,11,11],"not",[638,639,11,11],"Targets","targets",[641,642,11,643],"Fields","fields",[644,646,649,651,654,656,659,661,663,666,668,671,672,674,677,679,681,683,685,687,690,693,695,698,701,703,704,707,709,712,714,716,718,720,722,724,726,728,731,733,734,736,738,740,743,745,747,749],[27,645,11,11],"\u002Freference\u002Fdsl\u002Ffields",[647,648,11,11],"allow_suffix","allow-suffix",[650,650,11,11],"attr",[652,653,11,11],"base_url","base-url",[655,655,11,11],"candidates",[657,658,11,11],"case_insensitive","case-insensitive",[660,660,11,11],"country",[662,662,11,11],"currency",[664,665,11,11],"date_format","date-format",[667,667,11,11],"decimal",[669,670,11,11],"false_values","false-values",[642,642,11,11],[673,673,11,11],"flags",[675,676,11,11],"follow_redirects","follow-redirects",[678,678,11,11],"frame",[680,680,11,11],"json",[682,682,11,11],"locale",[684,684,11,11],"many",[686,686,11,11],"max",[688,689,11,11],"max_items","max-items",[691,692,11,11],"max_length","max-length",[694,694,11,11],"min",[696,697,11,11],"min_items","min-items",[699,700,11,11],"min_length","min-length",[702,702,11,11],"name",[626,626,11,11],[705,706,11,11],"null_markers","null-markers",[708,708,11,11],"nullable",[710,711,11,11],"on_invalid","on-invalid",[713,713,11,11],"pattern",[715,715,11,11],"presence",[717,717,11,11],"regex",[719,719,11,11],"required",[721,721,11,11],"role",[723,723,11,11],"sample",[725,725,11,11],"selector",[727,727,11,11],"source",[729,730,11,11],"strip_fragment","strip-fragment",[732,732,11,11],"testid",[622,622,11,11],[735,735,11,11],"thousands",[737,737,11,11],"timezone",[739,739,11,11],"transforms",[741,742,11,11],"true_values","true-values",[744,744,11,11],"type",[746,746,11,11],"unique",[748,748,11,11],"values",[750,750,11,11],"xpath",[752,753,11,11],"Assertions","assertions",[755,739,11,11],"Transforms",[757,758,11,759],"Lint codes","lint",[760,762,765,768,771,774,777,780,783,786,789,792,795,798,801,804,807,810,813,816,819,822,825,828,831],[27,761,11,11],"\u002Freference\u002Fdsl\u002Flint",[763,764,11,11],"E001","e001",[766,767,11,11],"E002","e002",[769,770,11,11],"E003","e003",[772,773,11,11],"E004","e004",[775,776,11,11],"E005","e005",[778,779,11,11],"E006","e006",[781,782,11,11],"E007","e007",[784,785,11,11],"E008","e008",[787,788,11,11],"E009","e009",[790,791,11,11],"E010","e010",[793,794,11,11],"E011","e011",[796,797,11,11],"E012","e012",[799,800,11,11],"E013","e013",[802,803,11,11],"E014","e014",[805,806,11,11],"W001","w001",[808,809,11,11],"W002","w002",[811,812,11,11],"W003","w003",[814,815,11,11],"W004","w004",[817,818,11,11],"W005","w005",[820,821,11,11],"W006","w006",[823,824,11,11],"W007","w007",[826,827,11,11],"W008","w008",[829,830,11,11],"W009","w009",[832,833,11,11],"W010","w010",[835,836,11,11],"Codes","codes",[838,839,11,11],"Events","events",[841,129,11,842],"CLI",[843,845,847,850,853,856,859,862,865,868,871,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,937,940,943,946,949,952,955,958,961,964,967,970,973,976,979,982,985,988,991,994,997,1000,1003],[27,844,11,11],"\u002Freference\u002Fcli",[846,846,11,11],"kaab",[848,849,11,11],"kaab auth","kaab-auth",[851,852,11,11],"kaab auth login","kaab-auth-login",[854,855,11,11],"kaab auth logout","kaab-auth-logout",[857,858,11,11],"kaab auth status","kaab-auth-status",[860,861,11,11],"kaab completion","kaab-completion",[863,864,11,11],"kaab completion bash","kaab-completion-bash",[866,867,11,11],"kaab completion fish","kaab-completion-fish",[869,870,11,11],"kaab completion powershell","kaab-completion-powershell",[872,873,11,11],"kaab completion zsh","kaab-completion-zsh",[875,876,11,11],"kaab credits","kaab-credits",[878,879,11,11],"kaab jobs","kaab-jobs",[881,882,11,11],"kaab jobs cancel","kaab-jobs-cancel",[884,885,11,11],"kaab jobs get","kaab-jobs-get",[887,888,11,11],"kaab jobs input","kaab-jobs-input",[890,891,11,11],"kaab jobs list","kaab-jobs-list",[893,894,11,11],"kaab jobs resume","kaab-jobs-resume",[896,897,11,11],"kaab jobs run","kaab-jobs-run",[899,900,11,11],"kaab jobs snapshot","kaab-jobs-snapshot",[902,903,11,11],"kaab jobs steps","kaab-jobs-steps",[905,906,11,11],"kaab jobs takeover","kaab-jobs-takeover",[908,909,11,11],"kaab open","kaab-open",[911,912,11,11],"kaab open job","kaab-open-job",[914,915,11,11],"kaab programs","kaab-programs",[917,918,11,11],"kaab programs alias","kaab-programs-alias",[920,921,11,11],"kaab programs alias set","kaab-programs-alias-set",[923,924,11,11],"kaab programs diff","kaab-programs-diff",[926,927,11,11],"kaab programs lint","kaab-programs-lint",[929,930,11,11],"kaab programs list","kaab-programs-list",[932,933,11,11],"kaab programs pull","kaab-programs-pull",[935,936,11,11],"kaab programs push","kaab-programs-push",[938,939,11,11],"kaab proposals","kaab-proposals",[941,942,11,11],"kaab proposals approve","kaab-proposals-approve",[944,945,11,11],"kaab proposals list","kaab-proposals-list",[947,948,11,11],"kaab proposals reject","kaab-proposals-reject",[950,951,11,11],"kaab proposals show","kaab-proposals-show",[953,954,11,11],"kaab schedules","kaab-schedules",[956,957,11,11],"kaab schedules create","kaab-schedules-create",[959,960,11,11],"kaab schedules list","kaab-schedules-list",[962,963,11,11],"kaab schedules pause","kaab-schedules-pause",[965,966,11,11],"kaab schedules resume","kaab-schedules-resume",[968,969,11,11],"kaab schedules runs","kaab-schedules-runs",[971,972,11,11],"kaab sessions","kaab-sessions",[974,975,11,11],"kaab sessions create","kaab-sessions-create",[977,978,11,11],"kaab sessions delete","kaab-sessions-delete",[980,981,11,11],"kaab sessions list","kaab-sessions-list",[983,984,11,11],"kaab sessions verify","kaab-sessions-verify",[986,987,11,11],"kaab usage","kaab-usage",[989,990,11,11],"kaab version","kaab-version",[992,993,11,11],"kaab webhooks","kaab-webhooks",[995,996,11,11],"kaab webhooks create","kaab-webhooks-create",[998,999,11,11],"kaab webhooks deliveries","kaab-webhooks-deliveries",[1001,1002,11,11],"kaab webhooks list","kaab-webhooks-list",[1004,1005,11,11],"kaab webhooks test","kaab-webhooks-test",[125,126,11,11],[1008,1009,11,11],"Plans and pricing","plans",[1011,1012,1013,1014],"Changelog","\u002Fchangelog","i-lucide-history",[1015,1016],[27,1012,11,11],[1017,1018,11,11],"Deprecations","deprecations",{"id":1020,"title":536,"body":1021,"breaking":1948,"date":1949,"description":1950,"extension":1951,"generated":1952,"meta":1953,"navigation":1952,"path":1954,"seo":1955,"stem":1956,"version":1949,"__hash__":1957},"docs\u002F5.reference\u002F02.dsl\u002F04.steps.md",{"type":1022,"value":1023,"toc":1941},"minimark",[1024,1035,1038,1655,1659],[1025,1026,1027,1028,1031,1032,1034],"p",{},"A step is an object with exactly one action key, plus any of the common keys below. ",[1029,1030,599],"code",{}," and ",[1029,1033,601],{}," are control steps that hold steps of their own.",[1036,1037,539],"h2",{"id":540},[1039,1040,1041,1057],"table",{},[1042,1043,1044],"thead",{},[1045,1046,1047,1051,1054],"tr",{},[1048,1049,1050],"th",{},"Action",[1048,1052,1053],{},"Type",[1048,1055,1056],{},"Description",[1058,1059,1060,1083,1099,1127,1143,1177,1193,1209,1225,1249,1270,1289,1309,1333,1352,1404,1425,1455,1475,1502,1521,1543,1567,1583,1603,1626],"tbody",{},[1045,1061,1062,1071,1076],{},[1063,1064,1065],"td",{},[1066,1067,1069],"a",{"href":1068},"\u002Freference\u002Fdsl\u002Factions\u002Ffill",[1029,1070,545],{},[1063,1072,1073],{},[1029,1074,1075],{},"target",[1063,1077,1078,1079,1082],{},"Types a value into a field. The target must be visible and editable; values typed into ",[1029,1080,1081],{},"type=password"," fields are redacted.",[1045,1084,1085,1092,1096],{},[1063,1086,1087],{},[1066,1088,1090],{"href":1089},"\u002Freference\u002Fdsl\u002Factions\u002Fclick",[1029,1091,547],{},[1063,1093,1094],{},[1029,1095,1075],{},[1063,1097,1098],{},"Clicks an element once it is visible, enabled and not covered; an obstacle in the way is handled by the obstacle layer first.",[1045,1100,1101,1108,1113],{},[1063,1102,1103],{},[1066,1104,1106],{"href":1105},"\u002Freference\u002Fdsl\u002Factions\u002Fpress",[1029,1107,549],{},[1063,1109,1110],{},[1029,1111,1112],{},"string",[1063,1114,1115,1116,1119,1120,1119,1123,1126],{},"Presses a key, named as Playwright names keys (",[1029,1117,1118],{},"Enter",", ",[1029,1121,1122],{},"Tab",[1029,1124,1125],{},"Control+A",").",[1045,1128,1129,1136,1140],{},[1063,1130,1131],{},[1066,1132,1134],{"href":1133},"\u002Freference\u002Fdsl\u002Factions\u002Fhover",[1029,1135,551],{},[1063,1137,1138],{},[1029,1139,1075],{},[1063,1141,1142],{},"Moves the mouse over an element, for menus and tooltips that open on hover.",[1045,1144,1145,1152,1156],{},[1063,1146,1147],{},[1066,1148,1150],{"href":1149},"\u002Freference\u002Fdsl\u002Factions\u002Fselect",[1029,1151,553],{},[1063,1153,1154],{},[1029,1155,1075],{},[1063,1157,1158,1159,1162,1163,1119,1166,1169,1170,1173,1174,1176],{},"Chooses an option of a native ",[1029,1160,1161],{},"\u003Cselect>"," element, by exactly one of ",[1029,1164,1165],{},"value",[1029,1167,1168],{},"label"," or ",[1029,1171,1172],{},"index"," (lint ",[1029,1175,763],{}," otherwise).",[1045,1178,1179,1186,1190],{},[1063,1180,1181],{},[1066,1182,1184],{"href":1183},"\u002Freference\u002Fdsl\u002Factions\u002Fcheck",[1029,1185,555],{},[1063,1187,1188],{},[1029,1189,1075],{},[1063,1191,1192],{},"Checks a checkbox or selects a radio button.",[1045,1194,1195,1202,1206],{},[1063,1196,1197],{},[1066,1198,1200],{"href":1199},"\u002Freference\u002Fdsl\u002Factions\u002Funcheck",[1029,1201,557],{},[1063,1203,1204],{},[1029,1205,1075],{},[1063,1207,1208],{},"Unchecks a checkbox.",[1045,1210,1211,1218,1222],{},[1063,1212,1213],{},[1066,1214,1216],{"href":1215},"\u002Freference\u002Fdsl\u002Factions\u002Fupload",[1029,1217,559],{},[1063,1219,1220],{},[1029,1221,1075],{},[1063,1223,1224],{},"Sets the files of a file input from your organisation's uploaded assets.",[1045,1226,1227,1234,1239],{},[1063,1228,1229],{},[1066,1230,1232],{"href":1231},"\u002Freference\u002Fdsl\u002Factions\u002Fscroll",[1029,1233,561],{},[1063,1235,1236],{},[1029,1237,1238],{},"target or object",[1063,1240,1241,1242,1169,1245,1248],{},"Scrolls an element into view when given a target, or scrolls the page with the object form, for infinite-scroll lists. The object form needs ",[1029,1243,1244],{},"to",[1029,1246,1247],{},"until",".",[1045,1250,1251,1258,1263],{},[1063,1252,1253],{},[1066,1254,1256],{"href":1255},"\u002Freference\u002Fdsl\u002Factions\u002Fwait-for",[1029,1257,563],{},[1063,1259,1260],{},[1029,1261,1262],{},"condition",[1063,1264,1265,1266,1269],{},"Waits until a condition holds, up to the step's ",[1029,1267,1268],{},"timeout_ms",", without doing anything else.",[1045,1271,1272,1279,1283],{},[1063,1273,1274],{},[1066,1275,1277],{"href":1276},"\u002Freference\u002Fdsl\u002Factions\u002Fset-session",[1029,1278,566],{},[1063,1280,1281],{},[1029,1282,1112],{},[1063,1284,1285,1286,1248],{},"Loads the named session's storage state at this point in the program. Rarely needed; prefer ",[1029,1287,1288],{},"options.session",[1045,1290,1291,1298,1302],{},[1063,1292,1293],{},[1066,1294,1296],{"href":1295},"\u002Freference\u002Fdsl\u002Factions\u002Fextract",[1029,1297,569],{},[1063,1299,1300],{},[1029,1301,569],{},[1063,1303,1304,1305,1308],{},"Reads data from the page with an extract schema. The last extract into ",[1029,1306,1307],{},"data"," produces the job's result; several merge shallowly, later keys winning.",[1045,1310,1311,1318,1323],{},[1063,1312,1313],{},[1066,1314,1316],{"href":1315},"\u002Freference\u002Fdsl\u002Factions\u002Fcapture-response",[1029,1317,571],{},[1063,1319,1320],{},[1029,1321,1322],{},"object",[1063,1324,1325,1326,1328,1329,1332],{},"Waits for a network response matching ",[1029,1327,610],{}," (and ",[1029,1330,1331],{},"method","), observed since the step started, and stores its parsed JSON body in a variable. Bodies are limited to 2 MB.",[1045,1334,1335,1342,1346],{},[1063,1336,1337],{},[1066,1338,1340],{"href":1339},"\u002Freference\u002Fdsl\u002Factions\u002Fevaluate",[1029,1341,574],{},[1063,1343,1344],{},[1029,1345,1322],{},[1063,1347,1348,1349,1351],{},"Runs your own JavaScript in the page. The healer cannot see inside it, so lint warns ",[1029,1350,820],{},", and it requires a paid organisation.",[1045,1353,1354,1361,1365],{},[1063,1355,1356],{},[1066,1357,1359],{"href":1358},"\u002Freference\u002Fdsl\u002Factions\u002Fpaginate",[1029,1360,576],{},[1063,1362,1363],{},[1029,1364,1322],{},[1063,1366,1367,1368,1370,1371,1374,1375,1378,1379,1382,1383,1386,1387,1389,1390,1393,1394,1396,1397,1399,1400,1403],{},"Runs ",[1029,1369,569],{}," on each page, then follows ",[1029,1372,1373],{},"next",". Top-level ",[1029,1376,1377],{},"many: true"," fields are concatenated across pages and other fields come from the first page; it stops at ",[1029,1380,1381],{},"max_pages",", when ",[1029,1384,1385],{},"stop_when"," holds, when ",[1029,1388,1373],{}," is not found, or when the step's ",[1029,1391,1392],{},"expect"," does not hold after ",[1029,1395,1373],{},". A page whose extraction fails fails the step on that page; a ",[1029,1398,1373],{}," that breaks after some pages keeps them, with a ",[1029,1401,1402],{},"pagination_incomplete"," warning.",[1045,1405,1406,1413,1417],{},[1063,1407,1408],{},[1066,1409,1411],{"href":1410},"\u002Freference\u002Fdsl\u002Factions\u002Fdownload",[1029,1412,578],{},[1063,1414,1415],{},[1029,1416,1322],{},[1063,1418,1419,1420,1424],{},"Clicks a trigger, captures the file it downloads and stores it as a job artifact with the response's content type. A PDF passes the ",[1066,1421,1423],{"href":1422},"\u002Fconcepts\u002Fdocuments-and-pdfs","PDF security gate"," first: a blocked one is never stored, and the step fails with its code.",[1045,1426,1427,1434,1438],{},[1063,1428,1429],{},[1066,1430,1432],{"href":1431},"\u002Freference\u002Fdsl\u002Factions\u002Fread-pdf",[1029,1433,580],{},[1063,1435,1436],{},[1029,1437,1322],{},[1063,1439,1440,1441,1443,1444,1446,1447,1449,1450,1169,1452,1454],{},"Reads the tables of a PDF the job has stored: the page the job is on when it is a PDF, or a named artifact such as a ",[1029,1442,578],{},"'s. Cells are returned exactly as printed, as strings; a table that continues over pages is one table. The file already passed the ",[1066,1445,1423],{"href":1422},"; nothing is fetched again. Lint warns ",[1029,1448,832],{}," when no earlier ",[1029,1451,590],{},[1029,1453,578],{}," could have produced the PDF.",[1045,1456,1457,1464,1469],{},[1063,1458,1459],{},[1066,1460,1462],{"href":1461},"\u002Freference\u002Fdsl\u002Factions\u002Fset-vars",[1029,1463,583],{},[1063,1465,1466],{},[1029,1467,1468],{},"map of string",[1063,1470,1471,1472,1248],{},"Sets variables from templates, as a map of variable name to template; each is readable later as ",[1029,1473,1474],{},"{{vars.\u003Cname>}}",[1045,1476,1477,1484,1489],{},[1063,1478,1479],{},[1066,1480,1482],{"href":1481},"\u002Freference\u002Fdsl\u002Factions\u002Fsleep",[1029,1483,586],{},[1063,1485,1486],{},[1029,1487,1488],{},"integer",[1063,1490,1491,1492,1495,1496,1498,1499,1501],{},"Pauses for a fixed number of milliseconds, at most ",[1029,1493,1494],{},"10000",". Lint warns ",[1029,1497,811],{},"; a ",[1029,1500,563],{}," condition is usually better.",[1045,1503,1504,1511,1516],{},[1063,1505,1506],{},[1066,1507,1509],{"href":1508},"\u002Freference\u002Fdsl\u002Factions\u002Freload",[1029,1510,588],{},[1063,1512,1513],{},[1029,1514,1515],{},"true",[1063,1517,1518,1519,1248],{},"Reloads the current page. The value is always ",[1029,1520,1515],{},[1045,1522,1523,1530,1535],{},[1063,1524,1525],{},[1066,1526,1528],{"href":1527},"\u002Freference\u002Fdsl\u002Factions\u002Fgoto",[1029,1529,590],{},[1063,1531,1532],{},[1029,1533,1534],{},"string or object",[1063,1536,1537,1538,1540,1541,1248],{},"Navigates the top frame to a URL, given as a template string or an object. It then waits for the page to settle (500 ms of network quiet, at most 10 s); lint warns ",[1029,1539,805],{}," without an ",[1029,1542,1392],{},[1045,1544,1545,1552,1556],{},[1063,1546,1547],{},[1066,1548,1550],{"href":1549},"\u002Freference\u002Fdsl\u002Factions\u002Fawait-input",[1029,1551,592],{},[1063,1553,1554],{},[1029,1555,1534],{},[1063,1557,1558,1559,1562,1563,1566],{},"Pauses the job as ",[1029,1560,1561],{},"awaiting_input"," until a value such as a one-time code is supplied, then stores it in ",[1029,1564,1565],{},"vars.\u003Cname>",". The string form names the input.",[1045,1568,1569,1576,1580],{},[1063,1570,1571],{},[1066,1572,1574],{"href":1573},"\u002Freference\u002Fdsl\u002Factions\u002Fcheckpoint",[1029,1575,595],{},[1063,1577,1578],{},[1029,1579,1534],{},[1063,1581,1582],{},"Saves the page URL, variables and browser state so a parked or resumed job can return here. The string form is the checkpoint's name.",[1045,1584,1585,1592,1596],{},[1063,1586,1587],{},[1066,1588,1590],{"href":1589},"\u002Freference\u002Fdsl\u002Factions\u002Fscreenshot",[1029,1591,597],{},[1063,1593,1594],{},[1029,1595,1534],{},[1063,1597,1598,1599,1602],{},"Takes a screenshot, stored as the artifact ",[1029,1600,1601],{},"artifacts.\u003Cname>",". The string form is the name.",[1045,1604,1605,1612,1616],{},[1063,1606,1607],{},[1066,1608,1610],{"href":1609},"\u002Freference\u002Fdsl\u002Factions\u002Fwhen",[1029,1611,599],{},[1063,1613,1614],{},[1029,1615,1262],{},[1063,1617,1367,1618,1621,1622,1625],{},[1029,1619,1620],{},"do"," when a condition holds and ",[1029,1623,1624],{},"else",", if given, when it does not.",[1045,1627,1628,1635,1639],{},[1063,1629,1630],{},[1066,1631,1633],{"href":1632},"\u002Freference\u002Fdsl\u002Factions\u002Floop-until",[1029,1634,601],{},[1063,1636,1637],{},[1029,1638,1262],{},[1063,1640,1641,1642,1644,1645,1647,1648,1651,1652,1248],{},"Repeats ",[1029,1643,1620],{}," until a condition holds. The condition is checked before each iteration; after ",[1029,1646,686],{}," iterations the job fails with ",[1029,1649,1650],{},"loop_exhausted"," unless the step is ",[1029,1653,1654],{},"optional",[1036,1656,1658],{"id":1657},"common-keys","Common keys",[1039,1660,1661,1672],{},[1042,1662,1663],{},[1045,1664,1665,1668,1670],{},[1048,1666,1667],{},"Key",[1048,1669,1053],{},[1048,1671,1056],{},[1058,1673,1674,1698,1723,1737,1750,1781,1812,1830,1855,1874,1893,1923],{},[1045,1675,1676,1680,1684],{},[1063,1677,1678],{},[1029,1679,1392],{},[1063,1681,1682],{},[1029,1683,1262],{},[1063,1685,1686,1687,1689,1690,1692,1693,1169,1695,1697],{},"A postcondition that must hold after the action, re-evaluated every 250 ms until ",[1029,1688,1268],{},". When it never holds, Kaabist diagnoses the failure; lint ",[1029,1691,805],{}," warns about a ",[1029,1694,590],{},[1029,1696,547],{}," without one.",[1045,1699,1700,1705,1709],{},[1063,1701,1702],{},[1029,1703,1704],{},"id",[1063,1706,1707],{},[1029,1708,1112],{},[1063,1710,1711,1712,1715,1716,1718,1719,1722],{},"The step's id, matching ",[1029,1713,1714],{},"^[a-z0-9][a-z0-9-]{0,31}$"," and unique within the program (lint ",[1029,1717,778],{},"). Assigned as ",[1029,1720,1721],{},"s\u003CN>"," when absent.",[1045,1724,1725,1730,1734],{},[1063,1726,1727],{},[1029,1728,1729],{},"if",[1063,1731,1732],{},[1029,1733,1262],{},[1063,1735,1736],{},"A guard condition evaluated before the step; when it is false the step is skipped without failing.",[1045,1738,1739,1743,1747],{},[1063,1740,1741],{},[1029,1742,702],{},[1063,1744,1745],{},[1029,1746,1112],{},[1063,1748,1749],{},"A human-readable label for the step.",[1045,1751,1752,1757,1762],{},[1063,1753,1754],{},[1029,1755,1756],{},"on_error",[1063,1758,1759],{},[1029,1760,1761],{},"\"fail\" | \"skip\" | \"park\"",[1063,1763,1764,1765,1768,1769,1772,1773,1776,1777,1780],{},"What happens when the step fails and nothing else recovered it: ",[1029,1766,1767],{},"fail"," (the default), ",[1029,1770,1771],{},"skip",", or ",[1029,1774,1775],{},"park",", which stops the job as ",[1029,1778,1779],{},"needs_attention"," with the step's evidence.",[1045,1782,1783,1787,1792],{},[1063,1784,1785],{},[1029,1786,1654],{},[1063,1788,1789],{},[1029,1790,1791],{},"boolean",[1063,1793,1794,1795,1797,1798,1801,1802,1805,1806,1809,1810,1126],{},"When ",[1029,1796,1515],{},", a failure of this step is recorded as the warning ",[1029,1799,1800],{},"step_skipped"," and the job continues. Defaults to ",[1029,1803,1804],{},"false","; not allowed on a ",[1029,1807,1808],{},"side_effect"," step (lint ",[1029,1811,793],{},[1045,1813,1814,1819,1823],{},[1063,1815,1816],{},[1029,1817,1818],{},"retry",[1063,1820,1821],{},[1029,1822,1322],{},[1063,1824,1825,1826,1809,1828,1126],{},"How many times a transient failure of this step is retried. Not allowed on a ",[1029,1827,1808],{},[1029,1829,793],{},[1045,1831,1832,1837,1841],{},[1063,1833,1834],{},[1029,1835,1836],{},"retry.backoff_ms",[1063,1838,1839],{},[1029,1840,1488],{},[1063,1842,1843,1844,1847,1848,1851,1852,1248],{},"The wait between retries in milliseconds, from ",[1029,1845,1846],{},"0"," to ",[1029,1849,1850],{},"60000",". Defaults to ",[1029,1853,1854],{},"1000",[1045,1856,1857,1862,1866],{},[1063,1858,1859],{},[1029,1860,1861],{},"retry.max",[1063,1863,1864],{},[1029,1865,1488],{},[1063,1867,1868,1869,1847,1871,1248],{},"The number of retries, from ",[1029,1870,1846],{},[1029,1872,1873],{},"5",[1045,1875,1876,1880,1884],{},[1063,1877,1878],{},[1029,1879,1808],{},[1063,1881,1882],{},[1029,1883,1791],{},[1063,1885,1886,1887,1890,1891,1248],{},"Marks a step that changes something outside the page, such as placing an order. It runs behind a fence: a side effect that was interrupted, or that failed after its action reached the page, parks the job as ",[1029,1888,1889],{},"side_effect_ambiguous"," instead of repeating it; it is never retried, healed or escalated. Defaults to ",[1029,1892,1804],{},[1045,1894,1895,1899,1903],{},[1063,1896,1897],{},[1029,1898,1268],{},[1063,1900,1901],{},[1029,1902,1488],{},[1063,1904,1905,1906,1851,1909,1119,1912,1914,1915,1917,1918,1914,1921,1248],{},"How long the step may take, in milliseconds, up to ",[1029,1907,1908],{},"900000",[1029,1910,1911],{},"30000",[1029,1913,1850],{}," for ",[1029,1916,590],{},", and the ",[1029,1919,1920],{},"ttl",[1029,1922,592],{},[1045,1924,1925,1930,1934],{},[1063,1926,1927],{},[1029,1928,1929],{},"x_kaab",[1063,1931,1932],{},[1029,1933,1322],{},[1063,1935,1936,1937,1940],{},"A free-form object written by tools such as the recorder, takeover and picker, for example ",[1029,1938,1939],{},"{ \"source\": \"takeover\" }",". Lint ignores it and the engine never reads it, but it is kept through normalization, diffs and versions.",{"title":1942,"searchDepth":1943,"depth":1943,"links":1944},"",3,[1945,1947],{"id":540,"depth":1946,"text":539},2,{"id":1657,"depth":1946,"text":1658},false,null,"The actions a step can take and the keys every step accepts.","md",true,{},"\u002Freference\u002Fdsl\u002Fsteps",{"title":536,"description":1950},"5.reference\u002F02.dsl\u002F04.steps","PfflATnoyDgMl5ElZHAFefJF_5ugkA7BCcbmvWygWzs",[1959,1963],{"title":533,"path":1960,"stem":1961,"description":1962,"children":-1},"\u002Freference\u002Fdsl\u002Fpolicies","5.reference\u002F02.dsl\u002F03.policies","Every key of a program's `policies`.",{"title":27,"path":543,"stem":1964,"description":1965,"children":-1},"5.reference\u002F02.dsl\u002F05.actions\u002Findex","One page per step action.",1793593439163]