Reference
device_fill
Type text into an input field by its @ref or testID from device_snapshot, binding exactly one direct native TextInput or one $\{name\}-pressable wrapper uniquely mapped to its inner $\{name\} input before mutation. Exact raw control can operate without a managed Metro target and always labels meta.originAuthority as proven or not-proven. The tool skips the focus tap only when that exact input is already focused and returns filled:true ONLY after a stable exact native post-settle read-back (meta.verify is always “exact” on success). One operation token owns one native mutation and its read-back; mismatch or uncertainty refuses without resend, rebinding, React Fiber evidence, or Maestro. Unverifiable outcomes hard-fail: NO_TEXT_INPUT_TARGET means nothing was typed (rebind after a fresh snapshot); TEXT_ENTRY_UNVERIFIED means an attempt ran but the exact value could not be proven — check meta.mutation: “none” = safe to retry after a fresh snapshot; “observed” = the field holds a wrong value, take a fresh snapshot and re-read before a corrective fill; “possible” = do NOT retry the same ref — take a fresh device_snapshot, rebind the input by identity, and read its state first (a blind retry can double-type). Secure masked native values are never proof; empty text is a verified clear. Requires an open session.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Constraints | Description |
|---|---|---|---|---|---|
ref | string | Yes | Input ref from device_snapshot (for example “@e5”), or a testID | ||
text | string | Yes | Text to type into the field (empty string = verified clear) | ||
waitForKeyboardMs | number | No | min: 0, max: 5000, integer | Bounded wait for the exact input to gain focus after the in-operation focus tap (default 1500). Bump to 3000-5000ms for slow keyboard animations on Pressable-wrapped TextInputs. | |
testID | string | No | Explicit exact target identity. Otherwise device_fill uses the fresh snapshot ref’s nonblank testID. | ||
settleTimeoutMs | number | No | min: 500, max: 30000, integer | Deprecated compatibility option. Exact owner-local read-back supplies the bounded stability check. |
device_fill(ref: <string>, text: <string>)