Skip to content

Reference

cdp_run_action

Replay a learned action by id with end-to-end auto-repair. On iOS, the validated flow is partitioned before execution: exact-testID commands use the authority-bound React-tree prover, while native-only commands use XCTest. The RunRecord and result preserve the reported proof domain, and a react-tree pass never promotes an experimental action to Maestro-certified active status. Ordinary missing React testIDs remain TESTID_NOT_FOUND; native selector misses remain ordinary Maestro failures unless direct bounded evidence proves a NATIVE_SURFACE_BLIND environment. Pass autoRepair=false to opt out of selector repair. Successful runtime writes return their exact runtime sidecar path as writes.runtimeStatePath: fenced sessions use session-private state, while an unfenced compatibility process uses project-local .rn-agent/state. proofReplay=true is reserved for proof-capture rehearsal and writes no runtime state. When the canonical run ledger proves every authored mutating command completed and only trailing verification (extendedWaitUntil/assert) failed, the result stays failed but carries meta.trailingVerification (mutationEvidence proven, attempt lineage, termination provenance) — verify the live goal state instead of retrying or rebooting; auto-repair refuses so a merely-slow selector is never rewritten.

NameTypeRequiredDefaultConstraintsDescription
actionIdstringYesOwned action id; resolves one .yaml or .yml file.
projectRootstringNoOverride project root (default: process.cwd()).
platformenum: ios | androidNoForce a specific platform; otherwise auto-detected from the active device session.
appFilestringNoGH #705: path to the .app Maestro reinstalls from after a clearState uninstall. Normally omit it — an iOS clearState flow resolves the bundle from the session’s attested install receipt, and the receipt is re-issued after the reinstall so later device_*/maestro_run calls keep working.
autoRepairbooleanNoAuto-repair on SELECTOR_NOT_FOUND failures. Default true. Pass false to disable (e.g. when investigating a failure manually).
timeoutMsnumberNoMaestro execution timeout per attempt (ms). Default 120_000.
triggerenum: agent | ci | humanNoRunRecord trigger annotation. Default “agent”. CI calls should pass “ci”.
forceReloadbooleanNoGH #173: when true (default), acknowledge any human edit to the YAML as the new baseline before running so downstream repair does not abort with STALE_TARGET. Pass false for the strict Phase 129 “respect external edits” behavior (useful for CI replays of fixed baselines).
proofReplaybooleanNoRead-only proof rehearsal mode. Requires autoRepair=false and forceReload=false; never writes action YAML, runtime sidecar, or DB state.
paramsRecord<string, unknown>NoParameter bindings for the action’s ${VAR} placeholders, forwarded to maestro as -e KEY=VALUE on the first attempt AND the post-repair retry (GH #116). Keys must match /^[A-Z_][A-Z0-9_]*$/ (validated in maestro_run).
cdp_run_action(actionId: <string>)