Synchronous Execution
Quick actions run inline and return results immediately — ideal for simple queries, file reads, and short tool calls.
If the protocol layer solves “how to reliably issue commands,” the runtime solves “how to actually finish the job.” It handles dispatch, scheduling, state tracking, recovery, and result feedback.
Model Output ↓ Protocol extracts action ↓ Runtime selects execution path ├─ Browser execution ├─ Local execution ├─ Server-side execution └─ MCP tools ↓ Result returned ↓ Continue current task
The real challenge is never “can it run once” — it’s “can it run continuously, reliably, and recoverably until the job is done.”
Quick actions run inline and return results immediately — ideal for simple queries, file reads, and short tool calls.
When a task needs polling, page state changes, or external responses, the runtime hands it off to an async tracker that follows up automatically.
Long-running commands, batch jobs, and continuous processes run in background slots without blocking the conversation.
Every task has tracked state — it can be inspected, resumed, or continued after interruption instead of being lost between turns.
After each tool execution, results flow back into the conversation context, informing the next decision and action — forming a true closed loop.
Browser, local environment, server-side capabilities, and external tool ecosystems aren't isolated modules — they're orchestrated together in a single runtime.