# youyo/rovo

- Branch: main
- Commit: 05e3d61

## Infrastructure

```mermaid
flowchart LR
  n0["workers-ai<br/>Workers AI"]
  n1["rovo-gateway<br/>Static assets"]
  n2["BROWSER<br/>Browser Run"]
  n3["rovo-agent.AgentDO<br/>Durable Object"]
  n4["rovo-agent.DepsCacheDO<br/>Durable Object"]
  n5["rovo-agent.SandboxDO<br/>Durable Object"]
  n6["rovo-gateway.DirectoryDO<br/>Durable Object"]
  n7["rovo-gateway.TaskDO<br/>Durable Object"]
  n8["rovo-gateway.UserDO<br/>Durable Object"]
  n9["OAUTH_KV<br/>KV namespace"]
  n10["oauth<br/>KV namespace"]
  n11["archive<br/>R2 bucket"]
  n12["audit<br/>R2 bucket"]
  n13["rovo-agent<br/>Worker"]
  n14["rovo-gateway<br/>Worker"]
  n15["rovo-web<br/>Worker"]
  n13 -->|"AI"| n0
  n13 -->|"AGENT_DO"| n3
  n13 -->|"DEPS_CACHE_DO"| n4
  n13 -->|"SANDBOX_DO"| n5
  n13 -->|"WEB"| n15
  n14 -->|"AI"| n0
  n14 -->|"AGENT_DO"| n3
  n14 -->|"DIRECTORY_DO"| n6
  n14 -->|"TASK_DO"| n7
  n14 -->|"USER_DO"| n8
  n14 -->|"OAUTH_KV"| n9
  n14 -->|"WEB"| n15
  n14 --- n1
  n15 -->|"AI"| n0
  n15 -->|"BROWSER"| n2
```

## Application

```mermaid
flowchart LR
  n0["@rovo/dashboard<br/>Frontend"]
  n1["rovo-gateway<br/>MCP server"]
  n2["budget_status<br/>MCP tool"]
  n3["consult<br/>MCP tool"]
  n4["consult_result<br/>MCP tool"]
  n5["models_list<br/>MCP tool"]
  n6["sandbox_instances_list<br/>MCP tool"]
  n7["task_answer<br/>MCP tool"]
  n8["task_cancel<br/>MCP tool"]
  n9["task_console<br/>MCP tool"]
  n10["task_list<br/>MCP tool"]
  n11["task_pr_merge<br/>MCP tool"]
  n12["task_pr_ready<br/>MCP tool"]
  n13["task_result<br/>MCP tool"]
  n14["task_review<br/>MCP tool"]
  n15["task_start<br/>MCP tool"]
  n16["task_status<br/>MCP tool"]
  n17["task_steer<br/>MCP tool"]
  n18["task_wait<br/>MCP tool"]
  n19["web_browse<br/>MCP tool"]
  n20["web_fetch<br/>MCP tool"]
  n21["web_search<br/>MCP tool"]
  n22["ALL /mcp<br/>Route"]
  n23["ALL /oauth/token<br/>Route"]
  n24["apps/agent/src/index.ts#35;default<br/>Service"]
  n25["apps/gateway/src/index.ts#35;default<br/>Service"]
  n26["apps/gateway/test/support/fake-agent-worker/index.ts#35;default<br/>Service"]
  n27["apps/web/src/index.ts#35;default<br/>Service"]
  users(("Users"))
  users --> n0
  n1 --- n2
  n1 --- n3
  n1 --- n4
  n1 --- n5
  n1 --- n6
  n1 --- n7
  n1 --- n8
  n1 --- n9
  n1 --- n10
  n1 --- n11
  n1 --- n12
  n1 --- n13
  n1 --- n14
  n1 --- n15
  n1 --- n16
  n1 --- n17
  n1 --- n18
  n1 --- n19
  n1 --- n20
  n1 --- n21
  n22 --- n1
  n25 --- n22
  n25 --- n23
```

## Deployment

```mermaid
flowchart LR
  n0["apps/agent/src/index.ts#35;default<br/>Service"]
  n1["apps/gateway/src/index.ts#35;default<br/>Service"]
  n2["apps/gateway/test/support/fake-agent-worker/index.ts#35;default<br/>Service"]
  n3["apps/web/src/index.ts#35;default<br/>Service"]
  n4["rovo-agent<br/>Worker"]
  n5["rovo-gateway<br/>Worker"]
  n6["rovo-web<br/>Worker"]
  n0 --- n4
  n1 --- n5
  n2 --- n4
  n3 --- n6
```

## Overview

```mermaid
flowchart LR
  n0["@rovo/dashboard<br/>Frontend"]
  n1["rovo-gateway<br/>MCP server"]
  n2["budget_status<br/>MCP tool"]
  n3["consult<br/>MCP tool"]
  n4["consult_result<br/>MCP tool"]
  n5["models_list<br/>MCP tool"]
  n6["sandbox_instances_list<br/>MCP tool"]
  n7["task_answer<br/>MCP tool"]
  n8["task_cancel<br/>MCP tool"]
  n9["task_console<br/>MCP tool"]
  n10["task_list<br/>MCP tool"]
  n11["task_pr_merge<br/>MCP tool"]
  n12["task_pr_ready<br/>MCP tool"]
  n13["task_result<br/>MCP tool"]
  n14["task_review<br/>MCP tool"]
  n15["task_start<br/>MCP tool"]
  n16["task_status<br/>MCP tool"]
  n17["task_steer<br/>MCP tool"]
  n18["task_wait<br/>MCP tool"]
  n19["web_browse<br/>MCP tool"]
  n20["web_fetch<br/>MCP tool"]
  n21["web_search<br/>MCP tool"]
  n22["ALL /mcp<br/>Route"]
  n23["ALL /oauth/token<br/>Route"]
  n24["apps/agent/src/index.ts#35;default<br/>Service"]
  n25["apps/gateway/src/index.ts#35;default<br/>Service"]
  n26["apps/gateway/test/support/fake-agent-worker/index.ts#35;default<br/>Service"]
  n27["apps/web/src/index.ts#35;default<br/>Service"]
  n28["workers-ai<br/>Workers AI"]
  n29["rovo-gateway<br/>Static assets"]
  n30["BROWSER<br/>Browser Run"]
  n31["rovo-agent.AgentDO<br/>Durable Object"]
  n32["rovo-agent.DepsCacheDO<br/>Durable Object"]
  n33["rovo-agent.SandboxDO<br/>Durable Object"]
  n34["rovo-gateway.DirectoryDO<br/>Durable Object"]
  n35["rovo-gateway.TaskDO<br/>Durable Object"]
  n36["rovo-gateway.UserDO<br/>Durable Object"]
  n37["OAUTH_KV<br/>KV namespace"]
  n38["oauth<br/>KV namespace"]
  n39["archive<br/>R2 bucket"]
  n40["audit<br/>R2 bucket"]
  n41["rovo-agent<br/>Worker"]
  n42["rovo-gateway<br/>Worker"]
  n43["rovo-web<br/>Worker"]
  users(("Users"))
  users --> n0
  n1 --- n2
  n1 --- n3
  n1 --- n4
  n1 --- n5
  n1 --- n6
  n1 --- n7
  n1 --- n8
  n1 --- n9
  n1 --- n10
  n1 --- n11
  n1 --- n12
  n1 --- n13
  n1 --- n14
  n1 --- n15
  n1 --- n16
  n1 --- n17
  n1 --- n18
  n1 --- n19
  n1 --- n20
  n1 --- n21
  n22 --- n1
  n24 --- n41
  n25 --- n42
  n25 --- n22
  n25 --- n23
  n26 --- n41
  n27 --- n43
  n41 -->|"AI"| n28
  n41 -->|"AGENT_DO"| n31
  n41 -->|"DEPS_CACHE_DO"| n32
  n41 -->|"SANDBOX_DO"| n33
  n41 -->|"WEB"| n43
  n42 -->|"AI"| n28
  n42 -->|"AGENT_DO"| n31
  n42 -->|"DIRECTORY_DO"| n34
  n42 -->|"TASK_DO"| n35
  n42 -->|"USER_DO"| n36
  n42 -->|"OAUTH_KV"| n37
  n42 -->|"WEB"| n43
  n42 --- n29
  n43 -->|"AI"| n28
  n43 -->|"BROWSER"| n30
```

Made with Sketio Arch
