中文
Node Documentation

Node Documentation

Find what each node does, inspect its real appearance, inputs, outputs and configuration, and try editing it on the page.

Showing 210 / 210 nodes

Automation

38 nodes
Activate target
Resolve the configured target, then foreground its window or start its Android package.

Activate the configured target before input, bringing a desktop window forward or starting the Android package.

window.activate
Capture window
Capture the configured target through its selected backend and commit a durable Image BlobRef.

Capture the configured target for template recognition or an AI node.

window.capture
Click pointer
Perform one click inside the configured target.

Connect a detected center point to click it with the left button in the configured target.

mouse.click
Click template
Check one supplied source image or capture fresh frames, then click the template match center.

Find a button template in the configured target and click the match center.

template.click
Close window
Resolve the configured target and send a close request to its window.

Request that the target window close after the task.

window.close
Drag pointer
Press, move with the selected motion, and release inside the configured target.

Provide start/end points and a duration to drag an object within the target window.

mouse.drag
Follow path
Visit the selected range in order. Timeout applies per point; end -1 means the last point. Keep the position-source string variable updated.

Continuously sample position into a string variable and follow a connected path from the chosen start to end.

navigation.follow-path
Follow Saved Path
Select a saved route and visit its points after one content read, without carrying the entire route on data wires. Keep its position-source string variable updated.

Select a saved route and visit its points using a continuously updated position variable.

navigation.follow-saved-path
Get pointer position
Read the current pointer position in a desktop target client area as a normalized point that can feed a move node.

Read the pointer position within the target client area for movement or coordinate calculations.

mouse.position
Hold keys
Press canonical keys and return a Run-owned lease. Connect a release node; terminal cleanup also releases it.

Hold a movement key during an operation and pass its lease to Release held input afterward.

keyboard.hold
Hold pointer button
Hold a pointer button at the target coordinate and return a Run-owned lease with fail-safe cleanup.

Hold the left button at a point, then release the output lease after other actions.

mouse.hold
Launch application
Launch the program path and arguments configured in the application slot.

Select an application target with a configured executable, launch it, then wait for its window.

app.launch
Make live position
Combine coordinates and heading into a standard position from any data source.

Combine sampled X/Y and heading into a standard position with sample time and validity.

position.make
Maximize window
Resolve the configured target and maximize its window.

Maximize the target window before recognition.

window.maximize
Minimize window
Resolve the configured target and minimize its window.

Minimize the target window when a background task finishes.

window.minimize
Move and resize window
Resolve the configured target and set its screen-pixel position and size.

Set the target window position and size in screen pixels for repeatable interactions.

window.move-resize
Move character to
Read a live position variable, hold forward at a distance and slow near the target along a clear straight path.

Read a position variable and approach target X/Y where a traversable straight path exists.

navigation.move-to
Move pointer
Move to a target coordinate instantly, along a constant-speed line, or on a Bézier curve.

Move the pointer smoothly to a detected location without clicking.

mouse.move
Move pointer relatively
Send a relative pointer movement to the configured target.

Send a small relative horizontal movement to a target that uses relative input.

mouse.move-relative
Parse live position
Parse JSON coordinates using field mappings; invalid or stale observations are marked unavailable.

Parse JSON position text from a plugin using field mappings for navigation.

position.parse
Play keyboard macro
Validate an atomic macro and preserve its true down, up, and sleep order in one exclusive exact-target session.

Replay a saved keyboard/mouse macro in the selected target.

macro.play
Press key chord
Atomically press and reverse-release a canonical set of keys.

Press Ctrl+C once in the configured target before continuing.

keyboard.press
Read window state
Read the configured target window state, foreground flag, position, and size.

Read foreground status and dimensions to decide whether to activate or resize the window.

window.state
Release held input
Consume a held-input lease and release every key or pointer button owned by it.

Connect the lease from Hold keys or Hold mouse button and release it when the operation ends.

input.release-held
Replay precise trajectory
Replay keys, clicks, continuous motion, dragging, scrolling, and relative pointer movement from an InputClip with original timing.

Replay a recorded input clip with its original timing for continuous drags or mouse movement.

input-clip.play
Restore window
Resolve the configured target and restore its window.

Restore a minimized or maximized target window.

window.restore
Scroll pointer
Scroll inside the configured target.

Scroll down a few notches in a target region, then capture the updated view.

mouse.scroll
Stop target app
Stop the configured Android package. Unsupported targets return a failure.

After Android automation, stop the package selected by the target. The target must support stopping applications.

app.stop-target
Terminate application
Terminate processes that belong to the configured path and return the count.

During cleanup, terminate processes matching the configured path and inspect the returned count.

app.terminate
Turn by angle
Turn toward an angle through the target heading adapter.

Turn 90 degrees using a calibrated target configuration.

navigation.turn
Turn to find image
Rotate in steps and match after settling. Stop when the image is found.

Turn the camera incrementally until a template is found or the search limits are reached.

navigation.search-template
Type text
Enter Unicode text into the configured target.

Click a text field, then type Unicode text into the same target.

keyboard.type-text
Wait for frame change
Capture the exact target until a region changes from its baseline by the requested threshold.

After turning a page, wait for the content region to differ sufficiently from its baseline.

observation.wait-change
Wait for stable frame
Capture the exact target until a region stays below the change threshold for the stable duration.

Wait for a region to settle after loading before capturing it for recognition.

observation.wait-stable
Wait for template
Capture fresh frames from an exact window until the template appears or time expires.

Wait for a "Loading complete" template before continuing automation.

template.wait
Wait for template to disappear
Capture fresh frames from an exact window until the template disappears or time expires.

Wait for a loading-overlay template to disappear before interacting with the page.

template.wait-gone
Wait for window
Wait up to the supplied timeout for the configured application path and window selector to match.

After launching an application, wait for a matching window before interacting with it.

window.wait
Wait for window to disappear
Wait up to the supplied timeout for every matching target window to disappear.

After requesting closure, wait until all matching windows disappear.

window.wait-gone

Flow

14 nodes
Branch
Continue through exactly one of the True or False routes.

Connect a boolean image-match result and provide separate true and false paths.

flow.branch
Delay
Wait up to 24 hours with cooperative Run cancellation, then emit Done.

Wait 2 seconds after a click before reading the interface state; enter 2000 milliseconds.

flow.delay
End branch
Explicitly finish this control-flow branch without emitting another signal.

Explicitly end a branch that has no further work.

flow.end-branch
Fail workflow
Terminate this branch with the stable control.thrown failure code and no success output.

Raise an explanatory error when required information is missing so the branch enters error handling.

flow.throw
For each
Run an isolated activation once per typed list item, up to 10,000 items, and expose the current Index and Item.

Feed in filenames and read each file in the loop body using the current item and index.

flow.for-each
Listen for signals
Handle signals in this run in order until main completion or stop.

Listen for refresh signals during the main task and process each notification in sequence.

signal.listen
Monitored task
Run a main task with periodic checks. Interrupt to pause it, handle the event, then resume its progress. Monitoring ends with the main task.

Monitor for an exceptional screen while the main task follows a path; handle an interruption, then resume the main task.

flow.monitor
Periodic task
Run checks at an interval. A count of 0 runs until stopped. Skip a tick while the previous check is running.

Read window state every 1000 milliseconds; a count of 0 continues until stopped.

flow.periodic
Repeat
Run an isolated activation 0–10,000 times. Body drains before the next iteration; Break and Continue target this exact region.

Set the count to 3 to execute the loop body three times in sequence.

flow.repeat
Retry region
Make 1–100 attempts and retry only failures explicitly routed back to this region. Completed and Exhausted are separate results.

Allow up to 3 attempts for a fallible recognition action and explicitly route retryable failure back to the retry region.

flow.retry
Run started
Emit Started once when this workflow run begins. Connect it to the nodes that should start, such as position sampling and path following.

Connect Started to a window action or Delay to begin the first step when the workflow starts.

event.run-started
Send signal
Send to all matching subscribers in this run. Signals without subscribers are not retained.

Send a refresh notification and value to branches already listening under the same name.

signal.send
Typed switch
Compare a configurable number of same-typed cases in order and emit the first matching route or Default.

Handle ready, busy and done separately; configure the case count and values, with unmatched values going to Default.

flow.switch
Wait for signal
Wait for one signal from this point, then continue.

Begin waiting for ready and continue after another branch sends it.

signal.wait

Panel

33 nodes
Append panel log
Create the panel first. Stable component IDs update existing content; repeated control registration preserves user selection.

Append the current step to a legacy run-panel log.

panel.legacy.log
Append panel log
Uses an existing managed panel. Follows the workflow default unless a panel or reference is supplied.

Append processing progress to a managed panel log component.

panel.log
Create run panel
Creates an independent panel for this run. Results remain after the run ends and interaction stops.

In a legacy workflow, create a progress run panel before registering components with the same panel ID.

panel.legacy.create
End run panel
Keeps final results and stops this panel interaction without stopping the workflow.

End a legacy run panel after processing while preserving its final display.

panel.legacy.end
Get interactive component reference
Uses an existing managed panel. Follows the workflow default unless a panel or reference is supplied.

Obtain a typed event component reference and connect it to a compatible panel node.

panel.ref-event
Get log component reference
Uses an existing managed panel. Follows the workflow default unless a panel or reference is supplied.

Obtain a typed log component reference and connect it to a compatible panel node.

panel.ref-log
Get number component reference
Uses an existing managed panel. Follows the workflow default unless a panel or reference is supplied.

Obtain a typed number component reference and connect it to a compatible panel node.

panel.ref-number
Get text component reference
Uses an existing managed panel. Follows the workflow default unless a panel or reference is supplied.

Obtain a typed text component reference and connect it to a compatible panel node.

panel.ref-text
Get toggle component reference
Uses an existing managed panel. Follows the workflow default unless a panel or reference is supplied.

Obtain a typed toggle component reference and connect it to a compatible panel node.

panel.ref-toggle
Listen to panel signals
Receive panel interactions and handle them in order. Release on main completion or stop. Each subscribing run receives its own copy.

Listen to button interactions on a managed panel and process them sequentially.

panel.listen
Read component number
Uses an existing managed panel. Follows the workflow default unless a panel or reference is supplied.

Read a numeric value from a managed panel for the next node.

panel.read-number
Read component text
Uses an existing managed panel. Follows the workflow default unless a panel or reference is supplied.

Read a text value from a managed panel for the next node.

panel.read-text
Read component toggle
Uses an existing managed panel. Follows the workflow default unless a panel or reference is supplied.

Read a toggle value from a managed panel for the next node.

panel.read-toggle
Read panel number
Create the panel first. Stable component IDs update existing content; repeated control registration preserves user selection.

Read a numeric value from a registered legacy component using the same panel and component IDs.

panel.legacy.read-number
Read panel text
Create the panel first. Stable component IDs update existing content; repeated control registration preserves user selection.

Read a text value from a registered legacy component using the same panel and component IDs.

panel.legacy.read-text
Read panel toggle
Create the panel first. Stable component IDs update existing content; repeated control registration preserves user selection.

Read a toggle value from a registered legacy component using the same panel and component IDs.

panel.legacy.read-toggle
Register panel button
Create the panel first. Stable component IDs update existing content; repeated control registration preserves user selection.

Register a Continue button in an existing legacy run panel, then wait for its interaction.

panel.legacy.button
Register panel input
Create the panel first. Stable component IDs update existing content; repeated control registration preserves user selection.

Register a legacy filename input, then read the text entered by the user.

panel.legacy.input
Register panel select
Create the panel first. Stable component IDs update existing content; repeated control registration preserves user selection.

Register a legacy mode dropdown with choices for the user.

panel.legacy.select
Register panel toggle
Create the panel first. Stable component IDs update existing content; repeated control registration preserves user selection.

Register a legacy toggle to enable an optional step.

panel.legacy.toggle
Set existing number value
Only updates an existing component; it does not create one. Register or show the component first with the same panel and component IDs.

Update an existing legacy numeric component using its panel and component IDs; register it first.

panel.legacy.write-number
Set existing text value
Only updates an existing component; it does not create one. Register or show the component first with the same panel and component IDs.

Update an existing legacy text component using its panel and component IDs; register it first.

panel.legacy.write-text
Set existing toggle value
Only updates an existing component; it does not create one. Register or show the component first with the same panel and component IDs.

Update an existing legacy toggle component using its panel and component IDs; register it first.

panel.legacy.write-toggle
Show panel
Uses an existing managed panel. Follows the workflow default unless a panel or reference is supplied.

Show the panel selected in workflow settings when the workflow starts.

panel.show
Show panel number
Create the panel first. Stable component IDs update existing content; repeated control registration preserves user selection.

Display the processed count in a legacy run panel.

panel.legacy.number
Show panel status
Create the panel first. Stable component IDs update existing content; repeated control registration preserves user selection.

Display a status such as "Reading" in a legacy run panel.

panel.legacy.status
Show panel text
Create the panel first. Stable component IDs update existing content; repeated control registration preserves user selection.

Display recognized text in a legacy run panel.

panel.legacy.text
Update component number
Uses an existing managed panel. Follows the workflow default unless a panel or reference is supplied.

Write a result to a managed panel's numeric component to update its display.

panel.write-number
Update component text
Uses an existing managed panel. Follows the workflow default unless a panel or reference is supplied.

Write a result to a managed panel's text component to update its display.

panel.write-text
Update component toggle
Uses an existing managed panel. Follows the workflow default unless a panel or reference is supplied.

Write a result to a managed panel's toggle component to update its display.

panel.write-toggle
Use panel
Uses an existing managed panel. Follows the workflow default unless a panel or reference is supplied.

Select a managed panel and obtain its reference for subsequent panel nodes.

panel.use
Wait for panel interaction
Consumes the next queued interaction, including clicks before this node. Filter by component; timeout follows the failed route.

Wait for the registered Continue button, including an interaction already queued.

panel.legacy.wait
Wait for panel interaction
Waits for an interaction from this point onward. Timeout follows the failed route; ending the run releases only this subscription.

After showing a confirmation button, wait for one interaction; continue when received or take the failure path on timeout.

panel.wait

Data

106 nodes
Abs
Absolute value of X (negatives become positive).

For example, take the absolute value of -3 to get 3, then connect the result to a numeric input.

math.absolute
Add
Adds two numbers and gives the sum.

For example, add 2 and 3 to get 5, then connect the result to a numeric input.

math.add
Align local path
Transform a local path using an explicit world reference, origin and rotation.

Place a locally recorded path in a world reference using an explicit origin and rotation.

path.align
Blob to stream
Open durable binary content as a leased stream that is valid only for the current run.

Open a persistent Blob as a stream when the next node needs to consume it in chunks during this run.

conversion.blob-to-stream
Break color blob
Exposes area, center, and bounds from a color blob.

Connect an upstream result, inspect a color blob’s area, center and bounds, and pass the required fields to later nodes.

structure.break-color-blob
Break file metadata
Exposes path, name, extension, media type, size, modified time, and directory flag.

Connect an upstream result, inspect file size, extension and modification time from metadata, and pass the required fields to later nodes.

structure.break-file-metadata
Break live position
Read coordinates, heading and observation metadata.

Connect an upstream result, inspect coordinates, heading, validity and sampling information from a position, and pass the required fields to later nodes.

position.break
Break Path
Ordered points sharing a coordinate reference.

Connect an upstream result, inspect the coordinate reference and ordered points of a path, and pass the required fields to later nodes.

path.break
Break Path point
A stable point identity, coordinates and optional altitude.

Connect an upstream result, inspect a path point’s ID, coordinates and height, and pass the required fields to later nodes.

path-point.break
Break Path reference
Coordinate frame, units and axes; local references require explicit alignment.

Connect an upstream result, inspect the frame, unit and axes of a path coordinate reference, and pass the required fields to later nodes.

path-reference.break
Break point
Exposes typed X, Y, and unit outputs from a point.

Connect an upstream result, inspect X, Y and unit from a point, and pass the required fields to later nodes.

structure.break-point
Break region
Exposes typed position, size, and unit outputs from a region.

Connect an upstream result, inspect position, dimensions and unit from a region, and pass the required fields to later nodes.

structure.break-region
Break template match
Exposes score, center, and bounds from a template match.

Connect an upstream result, inspect score, center and bounds from a template match, and pass the required fields to later nodes.

structure.break-template-match
Build path
Operate on ordered points while preserving their reference and the input path.

Assemble a coordinate reference and an ordered point list into a path.

path.make
Ceil
Round X up: 3.2 gives 4, -3.7 gives -3.

For example, round 3.2 upward to 4, then connect the result to a numeric input.

math.ceiling
Ceil to integer
Rounds toward positive infinity and checks the safe integer range.

Convert 2.2 to integer 3 when calculating how many batches are needed.

conversion.ceiling-to-integer
Clamp
Limit X to the Min~Max range: below Min gives Min, above Max gives Max, otherwise X. Min/Max swap automatically if reversed.

For example, clamp 120 to 0–100 to get 100, then connect the result to a numeric input.

math.clamp
Clamp integer
Clamps an integer between minimum and maximum while preserving its type.

For example, clamp 120 to 0–100 to get 100; inputs and result remain integers for counts or indexes.

math.integer-clamp
Concatenate
Combine two strings into one value. This is a data function and has no control-flow output.

Join "File: " and a filename for logging.

text.concat
Contains
Tells whether one text value contains the requested substring. Both inputs must be text, and matching is case-sensitive.

Check whether returned text contains success, then branch on the result.

text.contains
Divide
Divides A by B. A zero divisor or a non-finite result fails explicitly.

For example, divide 10 by 2 to get 5, then connect the result to a numeric input.

math.divide
Ends With
Whether the text ends with Suffix. Empty Suffix is always true.

Check whether a filename ends in .png.

text.ends-with
Equals
Compares the canonical values of one exact type. It never silently turns different types into text.

Compare two values of the same type and branch on whether they are equal.

comparison.equal
Floor
Round X down: 3.7 gives 3, -3.2 gives -4.

For example, round 3.7 downward to 3, then connect the result to a numeric input.

math.floor
Floor to integer
Rounds toward negative infinity and checks the safe integer range.

Convert 3.8 to integer 3 for a list index.

conversion.floor-to-integer
Get path point
Operate on ordered points while preserving their reference and the input path.

Read a path point by index, then inspect its coordinates and ID.

path.point
Greater or equal
Tells whether A ≥ B, giving true/false.

Check whether the processed count has reached the target and end the branch when it has.

comparison.greater-or-equal
Greater than
Tells whether A > B, giving true/false.

Compare a recognition score with a threshold and continue when it is higher.

comparison.greater-than
Increment state
Atomically add to an Integer or Number while holding the Run State slot lock.

Increment a numeric state after each task without a read-modify-write race between branches.

state.increment
Index Of
Position of the first occurrence of Sub in the text (counting from 0, a CJK character counts as 1). -1 when not found. To just test "contains", use the Contains node.

Find the first colon and handle a result of -1 when none exists.

text.index-of
Inspect interactive component reference
A stable typed reference supplied by the panel manager.

Connect an upstream result, inspect identity and panel information from an event component reference, and pass the required fields to later nodes.

panel.ref.break-event
Inspect log component reference
A stable typed reference supplied by the panel manager.

Connect an upstream result, inspect identity and panel information from a log component reference, and pass the required fields to later nodes.

panel.ref.break-log
Inspect number component reference
A stable typed reference supplied by the panel manager.

Connect an upstream result, inspect identity and panel information from a numeric component reference, and pass the required fields to later nodes.

panel.ref.break-number
Inspect panel reference
A stable typed reference supplied by the panel manager.

Connect an upstream result, inspect identity, name and generation information from a panel reference, and pass the required fields to later nodes.

panel.ref.break-panel
Inspect text component reference
A stable typed reference supplied by the panel manager.

Connect an upstream result, inspect identity and panel information from a text component reference, and pass the required fields to later nodes.

panel.ref.break-string
Inspect toggle component reference
A stable typed reference supplied by the panel manager.

Connect an upstream result, inspect identity and panel information from a toggle component reference, and pass the required fields to later nodes.

panel.ref.break-boolean
Integer absolute
Returns an integer absolute value while preserving its type.

For example, take the absolute value of -3 to get 3; inputs and result remain integers for counts or indexes.

math.integer-absolute
Integer add
Adds two integers and preserves the integer type; overflow fails.

For example, add 2 and 3 to get 5; inputs and result remain integers for counts or indexes.

math.integer-add
Integer modulo
Computes an integer remainder; a zero divisor fails.

For example, take the remainder of 7 divided by 3 to get 1; inputs and result remain integers for counts or indexes.

math.integer-modulo
Integer multiply
Multiplies two integers and preserves the integer type; overflow fails.

For example, multiply 3 by 4 to get 12; inputs and result remain integers for counts or indexes.

math.integer-multiply
Integer negate
Flips an integer sign while preserving its type.

For example, negate 3 to get -3; inputs and result remain integers for counts or indexes.

math.integer-negate
Integer subtract
Subtracts integer B from A and preserves the integer type; overflow fails.

For example, subtract 2 from 7 to get 5; inputs and result remain integers for counts or indexes.

math.integer-subtract
Join
Join a list of text values with a separator. Non-text lists are not accepted.

Join ["red", "green", "blue"] with commas for display.

collection.join
Join paths
Operate on ordered points while preserving their reference and the input path.

Join two paths in the same coordinate reference into one ordered route.

path.join
JSON path
Extracts fields or array items using $, .field, [index], and [*]. A missing result is null; wildcard results preserve missing positions with null.

Use $.user.name to read the name from {"user":{"name":"Ada"}}.

json.path
Less or equal
Tells whether A ≤ B, giving true/false.

Check whether a distance is within the allowed tolerance.

comparison.less-or-equal
Less than
Tells whether A < B, giving true/false.

Check whether fewer than one attempt remains and stop further attempts.

comparison.less-than
List Append
Add one same-typed item and return a new list; the input list is never mutated.

Append a filename to a work list and use the returned new list.

collection.append
List Contains
Test whether a same-typed equatable value occurs in the list using canonical equality; no text coercion is performed.

Check whether a filename list already contains report.txt and branch to avoid processing it twice.

collection.contains
List Get
Return the item at a zero-based index. A negative or out-of-range index fails explicitly; use List Length when the index is uncertain.

Read the first recognition result at index 0; check the list length first to avoid an out-of-range access.

collection.get
List Length
Return the number of items in a strongly typed list.

Count a work list and send the total to a log or numeric panel.

collection.length
List Slice
Return a new list from Start for Count items. Negative Start clamps to 0; a negative Count takes the remainder; zero or an out-of-range Start returns an empty list.

Take 10 items starting at index 0 and pass the batch to For each.

collection.slice
Logical AND
Gives true only when both conditions are true, otherwise false. An unconnected input defaults to true so it does not affect the result.

Require both "window exists" and "text matches" before continuing.

logic.and
Logical NOT
Flips true/false: true becomes false and false becomes true.

Negate "already complete" to continue while work remains.

logic.not
Logical OR
Gives true when at least one condition is true, and false only when both are false.

Continue when either of two recognition methods succeeds.

logic.or
Make Point
Build a typed coordinate from X, Y, and either ratio or px units. Ratio coordinates use the 0–1 frame space.

Use X=0.5, Y=0.5 and unit ratio for the center of the target image.

geometry.make-point
Max
The larger of two numbers.

For example, take the maximum of 3 and 7 to get 7, then connect the result to a numeric input.

math.maximum
Maximum integer
Returns the larger integer and preserves the integer type.

For example, take the maximum of 3 and 7 to get 7; inputs and result remain integers for counts or indexes.

math.integer-maximum
Min
The smaller of two numbers.

For example, take the minimum of 3 and 7 to get 3, then connect the result to a numeric input.

math.minimum
Minimum integer
Returns the smaller integer and preserves the integer type.

For example, take the minimum of 3 and 7 to get 3; inputs and result remain integers for counts or indexes.

math.integer-minimum
Modulo
Gives the remainder of A divided by B; decimals are supported and a zero divisor fails.

For example, take the remainder of 7 divided by 3 to get 1, then connect the result to a numeric input.

math.modulo
Multiply
Multiplies two numbers and gives the product.

For example, multiply 3 by 4 to get 12, then connect the result to a numeric input.

math.multiply
Negate
Flips the sign of a number: positive becomes negative and vice versa.

For example, negate 3 to get -3, then connect the result to a numeric input.

math.negate
Not equal
Reports whether the canonical values of one exact type differ, without cross-type text coercion.

Compare newly recognized text with the previous value and update only when they differ.

comparison.not-equal
Observe time
Capture the host-provided invocation time as Unix milliseconds and persist it in the Run record.

Record the current Unix-millisecond time at a key step for duration calculations.

time.observe
Offset Point
Add horizontal and vertical offsets to a coordinate. Ratio points are clamped inside the screen; pixel points keep their pixel unit.

Offset a template-match center horizontally to click an adjacent control.

geometry.offset-point
Parse JSON
Parses and canonicalizes one JSON document. Trailing values, negative zero, and numbers outside the interoperable profile are rejected.

Parse JSON text from an HTTP response before reading its fields.

json.parse
Point Distance
Calculate straight-line distance between two points with the same unit; the result uses that unit and mixed units fail.

Measure the distance from the current position to a target point using matching units.

geometry.point-distance
Pow
Raises Base to Exp. Fractional powers of a negative base report a domain error, non-finite results fail, and 0^0 is 1.

For example, raise 2 to the third power to get 8, then connect the result to a numeric input.

math.power
Random boolean
Observe a true/false sample using an explicit probability from zero to one.

Generate a boolean sample with probability 0.5 to choose between two test paths.

random.boolean
Random choice
Observe one unbiased item from a non-empty typed list and persist the result.

Choose one item randomly from a nonempty list of candidate strings.

random.choice
Random integer
Observe a cryptographically seeded integer sample and persist it in the Run record.

Sample an integer within configured bounds for a test-data identifier.

random.integer
Random number
Observe a finite number sample and persist it in the Run record.

Sample a number within configured bounds for test data or an offset.

random.number
Read path
Load pinned path content as a typed path value.

Read a selected saved path version and pass its path data onward.

path.read
Read state
Read the current value of a typed Run-local state slot. This is a recorded data effect with no control-flow output.

Select a workflow state variable and connect its current value to a data input.

state.read
Read stopwatch
Read elapsed milliseconds from an explicit start instant without ambient process timers.

Read elapsed milliseconds from a stopwatch start time while the task continues.

time.stopwatch-read
Regex Extract
Extract the first regular-expression match; with capture groups, group 1 is taken. No match gives an empty string, while an invalid pattern fails the run.

Use a regular expression to extract digits from "Order: 12345".

text.regex-extract
Regex Match
Whether any part of the text matches the regular expression (search semantics: b matches abc). For a full match wrap the pattern in ^ and $. An invalid pattern fails the run.

Use ^[0-9]+$ to check whether an entire string consists of digits.

text.regex-match
Replace
Replace Old with New in the text. With "Replace all" on it replaces every occurrence, off only the first. Empty Old returns the text unchanged.

Replace an old separator with commas, optionally replacing every occurrence.

text.replace
Reverse path
Operate on ordered points while preserving their reference and the input path.

Reverse a route for travel in the opposite direction.

path.reverse
ROI Around Point
Create a centered ROI in the center point’s unit. Ratio regions are clamped inside the frame; px regions preserve pixel dimensions.

Create a small region around a detected center to narrow the next recognition search.

geometry.region-around-point
Round
Round X. Digits=0 rounds to integer; 2 keeps two decimals; -2 rounds to hundreds (12345 gives 12300). Digits is capped at +/-15 (beyond float precision).

For example, round 3.14159 to two decimal places to get 3.14, then connect the result to a numeric input.

math.round
Round to integer
Rounds to the nearest integer, ties away from zero, and checks the safe range.

Convert 2.6 to the nearest integer, 3, for an integer input.

conversion.round-to-integer
Select (ternary)
Outputs When True or When False according to the condition. Both branches must use the same observable inline JSON type.

Choose between the strings "Success" and "Failure" according to a boolean condition.

logic.select
Slice path
Operate on ordered points while preserving their reference and the input path.

Select a section of a route using start and end indexes.

path.slice
Split
Split text into a list by a separator. Empty text gives an empty list; an empty separator splits into individual characters (CJK-safe).

Split newline-separated filenames into a string list for item-by-item processing.

collection.split
Sqrt
Square root of X. Negative values report a domain error (wire an Abs node first if needed).

For example, take the square root of 9 to get 3, then connect the result to a numeric input.

math.square-root
Start stopwatch
Record this invocation as an explicit typed start instant.

Record a start time before an operation and pass it to Read or Stop stopwatch.

time.stopwatch-start
Starts With
Whether the text starts with Prefix. Empty Prefix is always true.

Check whether a line starts with ERROR.

text.starts-with
State last change
Read the Unix-millisecond instant of the state slot’s last successful update.

Read when a state was last changed to determine how long it has gone without an update.

state.last-change
State metadata
Read a state slot revision and last-change time without exposing an untyped value.

Read a state revision and modification time to detect changes during observation.

state.metadata
Stop stopwatch
Record final elapsed milliseconds from an explicit start instant, then continue.

Record the final elapsed duration from the original start time and continue through Done.

time.stopwatch-stop
Stream to blob
Consume a leased stream from the current run and commit it as durable binary content.

Collect a stream into a persistent Blob and specify its media type.

conversion.stream-to-blob
String length
Counts how long a piece of text is and gives the character count. A CJK character counts as 1, matching the position semantics of Substring and Index Of.

Count characters to check whether text was supplied.

text.length
Substring
Take Length characters starting at Start (a CJK character counts as 1). Length -1 (default) takes to the end, 0 gives an empty string. Out-of-range Start gives an empty string.

Take 4 characters from index 0; use length -1 to read to the end.

text.substring
Subtract
Subtracts B from A and gives the difference.

For example, subtract 2 from 7 to get 5, then connect the result to a numeric input.

math.subtract
Text to integer
Strictly parses a safe integer. Decimals, whitespace, and out-of-range values fail.

Convert the string "12" to an integer for a repeat count.

conversion.string-to-integer
To bool
Strictly parses lowercase true or false; every other value fails.

Convert the lowercase string true from a text setting into a boolean condition.

conversion.string-to-boolean
To JSON text
Canonically serializes an observable inline JSON value. Blobs, images, and runtime streams are not accepted directly.

Serialize a structured result as JSON text for a log or text display.

json.stringify
To Lower
Convert letters to lowercase.

Lowercase a file extension before comparing it.

text.lowercase
To number
Strictly parses a finite JSON decimal number. Whitespace, non-numeric text, and out-of-range values fail.

Convert "12.5" to a number for an amount or distance calculation.

conversion.string-to-number
To string
Turns an observable inline JSON value into text. Strings keep their contents; other values use canonical JSON. Blobs, images, and runtime streams are not accepted.

Convert a numeric count to text and prepend "Processed: " for display.

conversion.to-string
To Upper
Convert letters to uppercase.

Uppercase an identifier for display.

text.uppercase
Trim
Remove spaces, newlines and tabs from both ends of the text.

Trim surrounding whitespace before comparing user input.

text.trim
Truncate to integer
Drops the fractional part and checks the safe integer range; -1.9 becomes -1.

Discard the fractional part of -1.9 to get integer -1.

conversion.truncate-to-integer
Write state
Write one exactly typed value to a Run-local state slot, then continue through Done.

Write a recognition result to a state variable of the same type for other branches to read.

state.write

Files

7 nodes

Vision

5 nodes

AI

2 nodes

Other

5 nodes