class OpenUI::Rails::Actions::Dispatcher

The single authorization and execution path for every write-ish call, whether it originated from a component ‘onAction` or a browser `toolProvider` `Query()`/`Mutation()`. It fails closed: with no authorizer configured, an action is denied.

Order of checks (all before any side effect):

1. resolve + validate the submission
2. action is registered (allowlist)
3. args match the schema
4. confirmation when the action is destructive
5. surface revision is current (stale protection)
6. authorizer allows it
7. idempotency claim (duplicates never execute twice)

Constants

Result

Outcome returned after an action executes or replays.