Skip to content

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.

NameTypeRequiredDefaultConstraintsDescription
refstringYesInput ref from device_snapshot (for example “@e5”), or a testID
textstringYesText to type into the field (empty string = verified clear)
waitForKeyboardMsnumberNomin: 0, max: 5000, integerBounded 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.
testIDstringNoExplicit exact target identity. Otherwise device_fill uses the fresh snapshot ref’s nonblank testID.
settleTimeoutMsnumberNomin: 500, max: 30000, integerDeprecated compatibility option. Exact owner-local read-back supplies the bounded stability check.
device_fill(ref: <string>, text: <string>)