machine:extension:recall
Resolves the fragment held for one site and intent, so a run nobody is watching starts from what the last run worked out. An agent-driven repair carries the fragment in and takes the rewrite back out, and that caller keeps storage. A scheduled run has no such caller, so without this it authors the page from nothing every time and throws the result away at the end. Nothing stored is a miss rather than an error. The first run for an intent has nothing to find by definition, and a step that failed there would refuse the one run whose whole job is to work the page out.
Options
| Name | Type | Description |
|---|---|---|
site | string | The page the fragment reads, either an address or the host itself |
intent | string | What the fragment is for on that site, which with the site is the identity a later run finds it by |
workflow | Workflow | The fragment the caller already holds, which wins over anything stored and leaves storage to that caller |
↳ id | string | Uniquely names the workflow. Sequences reference library fragments by it. |
↳ name | string | Is the human-readable title shown in the extension UI. |
↳ target | TargetConfig | Locates the page the workflow runs against and controls tab reuse. |
↳ url | string | Is the address to open when no existing tab matches. |
↳ match_url | string | Is a substring an existing tab's URL must contain for the run to reuse that tab instead of opening URL. |
↳ reuse_tab | bool | Reuses a matching open tab instead of opening a new one. Nil means the extension default (true). |
↳ activate | bool | Brings the target tab to the foreground. Nil means the extension default (true). |
↳ reload | bool | Forces a page reload on a reused tab before the first step runs. |
↳ steps | []Step | Are the actions to perform, in order. |
↳ id | string | Uniquely names the step within its workflow, echoed on its StepResult. |
↳ type | string | Is the action to perform (click, fill, select, captureUrl, ...). |
↳ label | string | Is a human-readable description shown in run progress UIs. |
↳ selector | Selector | Picks the DOM node(s) the step acts on. |
↳ css | string | Is a CSS selector. |
↳ path | string | Is an explicit DOM path, used when CSS cannot express the target. |
↳ indexes | []int | Narrows a multi-match selector to these positions. |
↳ enter | []string | Names the subtrees CSS has to resolve inside, outermost first. Each entry selects a shadow host or an iframe, resolved in the tree the previous entry opened, so a control inside a web component inside a same-origin frame is reachable by one Selector. Empty runs CSS against the top document. |
↳ index | int | Narrows a multi-match selector to a single position. |
↳ all | bool | Expands the step to act on every match instead of the first. |
↳ value | string | Is the input for value-taking steps such as fill and select. It may contain {{ variable }} placeholders. |
↳ format | string | Names the shape extraction steps return their data in. |
↳ attribute | string | Names the DOM attribute an extraction step reads. |
↳ fields | ExtractField | Are the named columns an extractList step reads out of each item its selector matched. Key order is the column order, and every returned item carries every key. |
↳ limit | int | Caps how many items an extractList step returns. The extension applies its own bound when this is zero, so a listing that lazily grew to ten thousand rows truncates and says so. |
↳ url | string | Is the address for navigation steps. |
↳ fn | string | Names the page function an eval step invokes. |
↳ args | []any | Are the arguments passed to Fn. |
↳ body_params | map[string]string | Overrides or adds form fields on the request a captureDownload re-issues, and carries the parameters a captureUrl sends, in the query for a GET and form-encoded otherwise. |
↳ method | string | Is the HTTP method a captureUrl step fetches its URL with, defaulting to GET. |
↳ filename | string | Renames a captured file (captureDownload, captureUrl and capturePageFile). It may contain {{ variable }} placeholders. |
↳ output | string | Chooses where a captured file goes, and the controlling client is its only destination. |
↳ wait | WaitConfig | Blocks the step until a page condition holds. |
↳ selector | string | Waits for a matching element to appear (or disappear, see Absent). |
↳ text | string | Waits for this text to be present on the page. |
↳ url_includes | string | Waits for the page URL to contain this substring. |
↳ absent | bool | Flips the wait to expect the selector to disappear rather than appear. |
↳ delay_ms | int | Is a fixed pause in milliseconds, applied on top of any condition. |
↳ timeout_ms | int | Bounds the wait, in milliseconds. |
↳ prompt | string | Is the text shown at a user gate asking for manual input. |
↳ continue_on | ContinueCondition | Holds the step until a user gate is cleared or a page condition is met. |
↳ manual | bool | Pauses the run for an explicit user continue. |
↳ selector | string | Resumes when a matching element appears. |
↳ text | string | Resumes when this text is present on the page. |
↳ url_includes | string | Resumes when the page URL contains this substring. |
↳ timeout_ms | int | Bounds the hold, in milliseconds. |
↳ timeout_ms | int | Overrides the workflow's default step timeout, in milliseconds. |
↳ optional | bool | Lets the run continue when this step fails. |
↳ condition | Condition | Condition, when set, gates the step. If it does not hold, the step is skipped rather than failed. |
↳ selector | string | Holds when a matching element exists on the page. |
↳ text | string | Holds when the page (or the selected element) contains this text. |
↳ url_includes | string | Holds when the page URL contains this substring. |
↳ match | string | Decides how the set predicates combine, "any" or "all". |
↳ negate | bool | Inverts the combined result. |
↳ store | string | Names a slot the step's data is saved under, readable by later steps and returned on the WorkflowResult. |
↳ resume | ResumePoint | Resume, when set, marks this step as a point a re-run may start at, and carries the predicate recognizing a browser already standing there. |
↳ id | string | Names this point so a later point's Rewind can reach it. It is unique within one workflow. |
↳ when | Condition | Recognizes the browser standing at this point. |
↳ selector | string | Holds when a matching element exists on the page. |
↳ text | string | Holds when the page (or the selected element) contains this text. |
↳ url_includes | string | Holds when the page URL contains this substring. |
↳ match | string | Decides how the set predicates combine, "any" or "all". |
↳ negate | bool | Inverts the combined result. |
↳ rewind | Rewind | Rewind, when set, is how the browser leaves this point for an earlier one. |
↳ to | string | Names the resume point this reaches, which must sit earlier in the step list than the point declaring it. |
↳ url | string | Navigates the tab back to the earlier point. |
↳ selector | string | Clicks a control on the current page that leads back, for a flow whose way back is a button rather than an address. |
↳ wait | WaitConfig | Holds until the page has settled after the rewind, before the target point's own predicate is checked again. |
↳ selector | string | Waits for a matching element to appear (or disappear, see Absent). |
↳ text | string | Waits for this text to be present on the page. |
↳ url_includes | string | Waits for the page URL to contain this substring. |
↳ absent | bool | Flips the wait to expect the selector to disappear rather than appear. |
↳ delay_ms | int | Is a fixed pause in milliseconds, applied on top of any condition. |
↳ timeout_ms | int | Bounds the wait, in milliseconds. |
↳ always | bool | Runs the step even when re-entry starts the run past it, for work the page cannot report as already done. |
↳ options | WorkflowOptions | Carries run-wide defaults such as the step timeout and the tab contention policy. |
↳ default_timeout_ms | int | Is the per-step timeout in milliseconds for steps that do not set their own. |
↳ continue_on_error | bool | Keeps the run going past a failed step instead of stopping at the first failure. |
↳ concurrency | string | Is the contention policy when another run already holds the target tab, one of "queue" (default), "parallel", or "reject". |
↳ reentry | bool | Lets a run start at a resume point the live page matches instead of replaying from the first step. Nil means the extension default (true), and an explicit false forces a clean run of a fragment that declares points. |
↳ condition | Condition | Condition, when set, gates the whole workflow. If it does not hold, the run is skipped rather than failed. |
↳ selector | string | Holds when a matching element exists on the page. |
↳ text | string | Holds when the page (or the selected element) contains this text. |
↳ url_includes | string | Holds when the page URL contains this substring. |
↳ match | string | Decides how the set predicates combine, "any" or "all". |
↳ negate | bool | Inverts the combined result. |
contract | ExtContract | What the caller's own fragment promised to return |
↳ store | string | Names the slot the rows land in, which is the store of the fragment's own extractList step. |
↳ fields | []string | Are the columns every healthy row carries. A column no row answers is a selector that stopped matching, whatever the run reported. |
↳ min_rows | int | Is the fewest rows a healthy run returns, one by default. A listing that answers with nothing is the case this is here for. |
↳ file | bool | Says the fragment's read is a captured file rather than a listing, so a healthy run is one that came back with bytes under a name. It is the same silence in a different shape, since a capture whose form moved answers with nothing and reports success. |
Outputs
| Name | Type | Description |
|---|---|---|
workflow | Workflow | The fragment to replay, absent when nothing is held for this intent |
↳ id | string | Uniquely names the workflow. Sequences reference library fragments by it. |
↳ name | string | Is the human-readable title shown in the extension UI. |
↳ target | TargetConfig | Locates the page the workflow runs against and controls tab reuse. |
↳ url | string | Is the address to open when no existing tab matches. |
↳ match_url | string | Is a substring an existing tab's URL must contain for the run to reuse that tab instead of opening URL. |
↳ reuse_tab | bool | Reuses a matching open tab instead of opening a new one. Nil means the extension default (true). |
↳ activate | bool | Brings the target tab to the foreground. Nil means the extension default (true). |
↳ reload | bool | Forces a page reload on a reused tab before the first step runs. |
↳ steps | []Step | Are the actions to perform, in order. |
↳ id | string | Uniquely names the step within its workflow, echoed on its StepResult. |
↳ type | string | Is the action to perform (click, fill, select, captureUrl, ...). |
↳ label | string | Is a human-readable description shown in run progress UIs. |
↳ selector | Selector | Picks the DOM node(s) the step acts on. |
↳ css | string | Is a CSS selector. |
↳ path | string | Is an explicit DOM path, used when CSS cannot express the target. |
↳ indexes | []int | Narrows a multi-match selector to these positions. |
↳ enter | []string | Names the subtrees CSS has to resolve inside, outermost first. Each entry selects a shadow host or an iframe, resolved in the tree the previous entry opened, so a control inside a web component inside a same-origin frame is reachable by one Selector. Empty runs CSS against the top document. |
↳ index | int | Narrows a multi-match selector to a single position. |
↳ all | bool | Expands the step to act on every match instead of the first. |
↳ value | string | Is the input for value-taking steps such as fill and select. It may contain {{ variable }} placeholders. |
↳ format | string | Names the shape extraction steps return their data in. |
↳ attribute | string | Names the DOM attribute an extraction step reads. |
↳ fields | ExtractField | Are the named columns an extractList step reads out of each item its selector matched. Key order is the column order, and every returned item carries every key. |
↳ limit | int | Caps how many items an extractList step returns. The extension applies its own bound when this is zero, so a listing that lazily grew to ten thousand rows truncates and says so. |
↳ url | string | Is the address for navigation steps. |
↳ fn | string | Names the page function an eval step invokes. |
↳ args | []any | Are the arguments passed to Fn. |
↳ body_params | map[string]string | Overrides or adds form fields on the request a captureDownload re-issues, and carries the parameters a captureUrl sends, in the query for a GET and form-encoded otherwise. |
↳ method | string | Is the HTTP method a captureUrl step fetches its URL with, defaulting to GET. |
↳ filename | string | Renames a captured file (captureDownload, captureUrl and capturePageFile). It may contain {{ variable }} placeholders. |
↳ output | string | Chooses where a captured file goes, and the controlling client is its only destination. |
↳ wait | WaitConfig | Blocks the step until a page condition holds. |
↳ selector | string | Waits for a matching element to appear (or disappear, see Absent). |
↳ text | string | Waits for this text to be present on the page. |
↳ url_includes | string | Waits for the page URL to contain this substring. |
↳ absent | bool | Flips the wait to expect the selector to disappear rather than appear. |
↳ delay_ms | int | Is a fixed pause in milliseconds, applied on top of any condition. |
↳ timeout_ms | int | Bounds the wait, in milliseconds. |
↳ prompt | string | Is the text shown at a user gate asking for manual input. |
↳ continue_on | ContinueCondition | Holds the step until a user gate is cleared or a page condition is met. |
↳ manual | bool | Pauses the run for an explicit user continue. |
↳ selector | string | Resumes when a matching element appears. |
↳ text | string | Resumes when this text is present on the page. |
↳ url_includes | string | Resumes when the page URL contains this substring. |
↳ timeout_ms | int | Bounds the hold, in milliseconds. |
↳ timeout_ms | int | Overrides the workflow's default step timeout, in milliseconds. |
↳ optional | bool | Lets the run continue when this step fails. |
↳ condition | Condition | Condition, when set, gates the step. If it does not hold, the step is skipped rather than failed. |
↳ selector | string | Holds when a matching element exists on the page. |
↳ text | string | Holds when the page (or the selected element) contains this text. |
↳ url_includes | string | Holds when the page URL contains this substring. |
↳ match | string | Decides how the set predicates combine, "any" or "all". |
↳ negate | bool | Inverts the combined result. |
↳ store | string | Names a slot the step's data is saved under, readable by later steps and returned on the WorkflowResult. |
↳ resume | ResumePoint | Resume, when set, marks this step as a point a re-run may start at, and carries the predicate recognizing a browser already standing there. |
↳ id | string | Names this point so a later point's Rewind can reach it. It is unique within one workflow. |
↳ when | Condition | Recognizes the browser standing at this point. |
↳ selector | string | Holds when a matching element exists on the page. |
↳ text | string | Holds when the page (or the selected element) contains this text. |
↳ url_includes | string | Holds when the page URL contains this substring. |
↳ match | string | Decides how the set predicates combine, "any" or "all". |
↳ negate | bool | Inverts the combined result. |
↳ rewind | Rewind | Rewind, when set, is how the browser leaves this point for an earlier one. |
↳ to | string | Names the resume point this reaches, which must sit earlier in the step list than the point declaring it. |
↳ url | string | Navigates the tab back to the earlier point. |
↳ selector | string | Clicks a control on the current page that leads back, for a flow whose way back is a button rather than an address. |
↳ wait | WaitConfig | Holds until the page has settled after the rewind, before the target point's own predicate is checked again. |
↳ selector | string | Waits for a matching element to appear (or disappear, see Absent). |
↳ text | string | Waits for this text to be present on the page. |
↳ url_includes | string | Waits for the page URL to contain this substring. |
↳ absent | bool | Flips the wait to expect the selector to disappear rather than appear. |
↳ delay_ms | int | Is a fixed pause in milliseconds, applied on top of any condition. |
↳ timeout_ms | int | Bounds the wait, in milliseconds. |
↳ always | bool | Runs the step even when re-entry starts the run past it, for work the page cannot report as already done. |
↳ options | WorkflowOptions | Carries run-wide defaults such as the step timeout and the tab contention policy. |
↳ default_timeout_ms | int | Is the per-step timeout in milliseconds for steps that do not set their own. |
↳ continue_on_error | bool | Keeps the run going past a failed step instead of stopping at the first failure. |
↳ concurrency | string | Is the contention policy when another run already holds the target tab, one of "queue" (default), "parallel", or "reject". |
↳ reentry | bool | Lets a run start at a resume point the live page matches instead of replaying from the first step. Nil means the extension default (true), and an explicit false forces a clean run of a fragment that declares points. |
↳ condition | Condition | Condition, when set, gates the whole workflow. If it does not hold, the run is skipped rather than failed. |
↳ selector | string | Holds when a matching element exists on the page. |
↳ text | string | Holds when the page (or the selected element) contains this text. |
↳ url_includes | string | Holds when the page URL contains this substring. |
↳ match | string | Decides how the set predicates combine, "any" or "all". |
↳ negate | bool | Inverts the combined result. |
contract | ExtContract | What that fragment promises to return |
↳ store | string | Names the slot the rows land in, which is the store of the fragment's own extractList step. |
↳ fields | []string | Are the columns every healthy row carries. A column no row answers is a selector that stopped matching, whatever the run reported. |
↳ min_rows | int | Is the fewest rows a healthy run returns, one by default. A listing that answers with nothing is the case this is here for. |
↳ file | bool | Says the fragment's read is a captured file rather than a listing, so a healthy run is one that came back with bytes under a name. It is the same silence in a different shape, since a capture whose form moved answers with nothing and reports success. |
missing | bool | Whether there is nothing to replay, which is a first run rather than a failure |
owned | bool | Whether this run stores what it works out, false where the caller handed its own fragment in and therefore keeps the repair |
fragment_id | string | The head a replay outcome is recorded against, empty for a miss and for a caller's own fragment |
revision_id | string | The body being replayed |
site | string | The host the fragment is held under, which is what the run stores a repair against |
last_status | string | How the most recent replay of this fragment went, empty for one nothing has replayed |
proven | bool | Whether this fragment has ever replayed green, which separates an authored body nothing has tried from one that worked until today |