Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions clients/agent-runtime/src/test_support.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
#![cfg(test)]

use crate::config::{Config, McpServerConfig};
use std::collections::BTreeMap;
use tempfile::TempDir;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
# Cargo Dependencies Diagram - Corvus Runtime
# Updated: 2026-03-09
---

flowchart TB
subgraph WORKSPACE["Cargo Workspace"]
CORVUS["corvus\nCLI + runtime crate"]:::crate
ROBOT["robot-kit\nworkspace helper crate"]:::crate
end

subgraph RUST_ECOSYSTEM["Rust Runtime Dependencies"]
TOKIO["tokio\nasync runtime"]:::dep
AXUM["axum\ngateway server"]:::dep
REQWEST["reqwest\nHTTP client"]:::dep
SQLITE["rusqlite\npersistent memory"]:::dep
SERDE["serde\nconfig + payloads"]:::dep
TRACE["tracing\nobservability"]:::dep
end

NOTE_WORKSPACE["corvus-robot-kit is a workspace member\nsee clients/agent-runtime/Cargo.toml"]:::note
ROBOT -. workspace member .- NOTE_WORKSPACE
CORVUS --> TOKIO
CORVUS --> AXUM
CORVUS --> REQWEST
CORVUS --> SQLITE
CORVUS --> SERDE
CORVUS --> TRACE

classDef crate fill:#818cf8,stroke:#5b67d8,stroke-width:2px,color:#fff
classDef dep fill:#38bdf8,stroke:#1d7ca8,stroke-width:2px,color:#001018
classDef note fill:#111827,stroke:#64748b,stroke-dasharray: 4 4,color:#e5eefc
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
# C4 Component Diagram - Corvus Runtime Core
# Updated: 2026-03-09
---

flowchart TB
CLI["CLI Commands\nagent, gateway, daemon, doctor"]:::entry
CHANNELS["Channel Adapters\nTelegram, Discord, Slack, WhatsApp, CLI"]:::component
PROVIDERS["Provider Registry\n22+ model providers"]:::component
MEMORY["Memory Layer\nSQLite, SurrealDB, Markdown"]:::component
TOOLS["Tool Runtime\nShell, file, memory, browser"]:::component
SECURITY["Security Policy\nPairing, allowlists, workspace scoping"]:::component
OBSERVE["Observability\nTracing, metrics, health"]:::component
CONFIG["Config + Identity\nTOML, OpenClaw, AIEOS"]:::component
LOOP["Agent Loop\nplanning, execution, supervision"]:::component

CLI --> CONFIG
CLI --> LOOP
LOOP --> PROVIDERS
LOOP --> MEMORY
LOOP --> TOOLS
LOOP --> CHANNELS
LOOP --> SECURITY
LOOP --> OBSERVE
TOOLS --> SECURITY
CHANNELS --> SECURITY
PROVIDERS --> OBSERVE
MEMORY --> OBSERVE

classDef entry fill:#818cf8,stroke:#5b67d8,stroke-width:2px,color:#fff
classDef component fill:#38bdf8,stroke:#1d7ca8,stroke-width:2px,color:#001018
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
# C4 Container Diagram - Corvus Runtime
# Updated: 2026-03-09
---

flowchart TB
DEV["Developer"]:::person
USER["Channel User"]:::person
LLM["LLM Providers"]:::external
MSG["Messaging APIs"]:::external
TUNNEL["Tunnel Providers"]:::external
FS["Workspace Filesystem"]:::external

subgraph CORVUS["Corvus Runtime"]
CLI["CLI Surface\nagent, onboard, doctor"]:::container
GATEWAY["Gateway\nwebhook and pairing server"]:::container
DAEMON["Daemon\nchannels, heartbeat, scheduler"]:::container
EXEC["Execution Runtime\nnative or Docker"]:::container
MEMORY["Memory Backends\nSQLite, SurrealDB, Markdown"]:::container
DASH["Operator Surfaces\ndocs, dashboard, marketing"]:::container
end

DEV --> CLI
DEV --> DASH
USER --> GATEWAY
CLI --> DAEMON
CLI --> EXEC
DAEMON --> GATEWAY
DAEMON --> MEMORY
DAEMON --> EXEC
DAEMON --> LLM
DAEMON --> MSG
GATEWAY --> TUNNEL
EXEC --> FS

classDef person fill:#c084fc,stroke:#7c3aed,stroke-width:2px,color:#fff
classDef container fill:#38bdf8,stroke:#1d7ca8,stroke-width:2px,color:#001018
classDef external fill:#94a3b8,stroke:#475569,stroke-width:2px,color:#fff
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
@startuml
' C4 Container Diagram - Corvus Runtime
' Updated: 2026-03-09

!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/v2.13.0/C4_Container.puml

LAYOUT_WITH_LEGEND()

Person(developer, "Developer", "Configures and operates Corvus")
Person(channelUser, "Channel User", "Interacts through configured channels")

System_Ext(llmProviders, "LLM Providers", "OpenRouter, Anthropic, OpenAI, and others")
System_Ext(messagingApis, "Messaging APIs", "Telegram, Discord, Slack, WhatsApp, Matrix")
System_Ext(tunnelProviders, "Tunnel Providers", "Cloudflare, Tailscale, ngrok")
System_Ext(workspaceFs, "Workspace Filesystem", "Scoped files and command execution")

System_Boundary(corvus, "Corvus Runtime") {
Container(cli, "CLI Surface", "Rust + clap", "agent, onboard, doctor, status, and admin commands")
Container(gateway, "Gateway", "Rust + axum", "Pairing, webhooks, and authenticated runtime access")
Container(daemon, "Daemon", "Rust + tokio", "Channels, heartbeat, scheduling, and long-running orchestration")
Container(execution, "Execution Runtime", "Native or Docker", "Tool execution with security policy enforcement")
ContainerDb(memory, "Memory Backends", "SQLite / SurrealDB / Markdown", "Persistent runtime memory and recall")
Container(ops, "Operator Surfaces", "Astro web apps", "Documentation, dashboard, and marketing surfaces")
}

Rel(developer, cli, "Uses")
Rel(developer, ops, "Reads and operates through")
Rel(channelUser, gateway, "Interacts through")
Rel(cli, daemon, "Starts and inspects")
Rel(cli, execution, "Triggers commands and tools through")
Rel(daemon, gateway, "Exposes runtime functionality via")
Rel(daemon, memory, "Reads and writes runtime memory")
Rel(daemon, execution, "Delegates tool execution to")
Rel(daemon, llmProviders, "Queries models from")
Rel(daemon, messagingApis, "Connects to")
Rel(gateway, tunnelProviders, "Can be exposed through")
Rel(execution, workspaceFs, "Reads and writes within scoped workspace")

@enduml
Original file line number Diff line number Diff line change
Expand Up @@ -117,9 +117,9 @@ For a more detailed view of the architecture, see the following C4 diagrams:

| Level | Diagram | Description | Diagram ID |
|-----------------|----------------------------------------------------------------------------|---------------------------------------------------|-----------------------------------|
| C1 - Context | [System Context](./architecture/diagrams/context/system-context.mmd) | High-level view of the system and external actors | `context/system-context.mmd` |
| C2 - Containers | [Main Containers](./architecture/diagrams/container/system-containers.mmd) | Applications and services that compose Corvus | `container/system-containers.mmd` |
| C3 - Components | [Agent Core KMP](./architecture/diagrams/component/agent-core-kmp.mmd) | Internal components of the core module | `component/agent-core-kmp.mmd` |
| - | [Module Dependencies](./architecture/diagrams/module-dependencies.mmd) | Gradle dependency relationships | `module-dependencies.mmd` |
| C1 - Context | [System Context](./architecture/diagrams/context/system-context.mmd) | High-level view of the runtime and external actors | `context/system-context.mmd` |
| C2 - Containers | [Runtime Containers](./architecture/diagrams/container/runtime-containers.mmd) | Runtime services and operator surfaces | `container/runtime-containers.mmd` |
| C3 - Components | [Runtime Core](./architecture/diagrams/component/runtime-core.mmd) | Internal components of the runtime core | `component/runtime-core.mmd` |
| - | [Cargo Dependencies](./architecture/diagrams/cargo-dependencies.mmd) | Cargo workspace and runtime dependency flow | `cargo-dependencies.mmd` |

See [Architecture Index](./architecture/overview.md) for more details on how to visualize them.
Original file line number Diff line number Diff line change
Expand Up @@ -22,27 +22,27 @@ Shows the Corvus system as a black box and its interactions with actors and exte
Decomposes the system into main containers/applications and their interactions.

- **Files**:
- [`container/system-containers.mmd`](./diagrams/container/system-containers.mmd) (Mermaid)
- [`container/system-containers.puml`](./diagrams/container/system-containers.puml) (PlantUML)
- **Description**: Shows the main containers: Web Dashboard, Android App, iOS App, Agent Runtime,
Rust Sidecar, and Graph DB.
- [`container/runtime-containers.mmd`](./diagrams/container/runtime-containers.mmd) (Mermaid)
- [`container/runtime-containers.puml`](./diagrams/container/runtime-containers.puml) (PlantUML)
- **Description**: Shows the runtime containers: CLI, gateway, daemon services, tool execution,
memory backends, and operator surfaces around Corvus.

## Level 3: Components

Decomposes individual containers into their internal components.

### Agent Core KMP
### Runtime Core

- **File**: [`component/agent-core-kmp.mmd`](./diagrams/component/agent-core-kmp.mmd)
- **Description**: Internal components of the core module: Domain, Use Cases, Interfaces, and
Infrastructure.
- **File**: [`component/runtime-core.mmd`](./diagrams/component/runtime-core.mmd)
- **Description**: Internal components of the runtime core: config, agent loop, providers,
memory, tools, channels, security, and observability.

## Module Dependencies

Additional diagram showing Gradle dependencies between modules.
Additional diagram showing Cargo dependencies between workspace modules.

- **File**: [`module-dependencies.mmd`](./diagrams/module-dependencies.mmd)
- **Description**: Shows how clients depend on the shared core and external frameworks.
- **File**: [`cargo-dependencies.mmd`](./diagrams/cargo-dependencies.mmd)
- **Description**: Shows the Cargo workspace layout and the runtime's primary Rust dependency flow.
Comment thread
coderabbitai[bot] marked this conversation as resolved.

## How to Visualize

Expand Down Expand Up @@ -70,7 +70,7 @@ For `.puml` files:

```bash
# Use PlantUML online or locally
plantuml -tpng diagrams/container/system-containers.puml
plantuml -tpng diagrams/container/runtime-containers.puml
```

## Conventions
Expand Down
22 changes: 12 additions & 10 deletions clients/web/apps/docs/src/content/docs/en/index.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
title: Corvus
description: Reactive agent platform for always-on orchestration on the JVM.
description: Secure, pluggable Rust-native runtime for autonomous AI agents, with companion documentation.
template: splash
hero:
tagline: Build long-running, proactive agents with Kotlin, Spring Boot, Neo4j, Rust sidecars, and a transparent control panel.
tagline: Build autonomous AI agents with a secure, pluggable Rust-native runtime that stays small, fast, and portable.
actions:
- text: Get Started
link: guides/getting-started/
Expand All @@ -21,17 +21,17 @@ import {Card, CardGrid, LinkCard} from '@astrojs/starlight/components';
## Why Corvus?

<CardGrid stagger>
<Card title="Reactive Orchestrator" icon="setting">
Kotlin + Spring Boot + Coroutines/WebFlux for non-blocking, always-on workflows.
<Card title="Lean by default" icon="rocket">
A small Rust binary with fast startup and low memory usage, built for laptops, servers, SBCs, and constrained environments.
</Card>
<Card title="Graph Memory" icon="open-book">
Knowledge-first architecture using Neo4j for connected context and durable memory.
<Card title="Secure by design" icon="shield-check">
Pairing, sandboxing, workspace scoping, allowlists, and encrypted secrets are part of the default posture.
</Card>
<Card title="Rust Sidecars" icon="rocket">
High-performance binaries for scraping and secure sandbox operations.
<Card title="Pluggable architecture" icon="setting">
Swap providers, memory, tools, channels, tunnels, and runtime modes without rewriting your stack.
</Card>
<Card title="Transparent Operations" icon="approve-check">
Real-time observability through an Astro/Vue control surface and event streaming.
<Card title="Portable runtime" icon="open-book">
Run Corvus natively or in Docker with one runtime for chat, gateway, daemon, integrations, and automation.
</Card>
</CardGrid>

Expand All @@ -45,6 +45,8 @@ import {Card, CardGrid, LinkCard} from '@astrojs/starlight/components';
href="guides/features/"/>
<LinkCard title="Architecture" description="See core design decisions and runtime model."
href="guides/architecture/"/>
<LinkCard title="CLI Reference" description="Learn the commands for onboarding, agents, gateway, daemon, and operations."
href="guides/cli-reference/"/>
<LinkCard title="Development Workflow" description="Build, test, lint, and release procedures."
href="guides/development/"/>
</CardGrid>
Original file line number Diff line number Diff line change
Expand Up @@ -118,10 +118,10 @@ Para una vista más detallada de la arquitectura, consulta los siguientes diagra

| Nivel | Diagrama | Descripción | ID del Diagrama |
|-------------------|-------------------------------------------------------------------------------------|----------------------------------------------------|-----------------------------------|
| C1 - Contexto | [Sistema Completo](./architecture/diagrams/context/system-context.mmd) | Vista de alto nivel del sistema y actores externos | `context/system-context.mmd` |
| C2 - Contenedores | [Contenedores Principales](./architecture/diagrams/container/system-containers.mmd) | Aplicaciones y servicios que componen Corvus | `container/system-containers.mmd` |
| C3 - Componentes | [Agent Core KMP](./architecture/diagrams/component/agent-core-kmp.mmd) | Componentes internos del módulo core | `component/agent-core-kmp.mmd` |
| - | [Dependencias entre Módulos](./architecture/diagrams/module-dependencies.mmd) | Relaciones de dependencia de Gradle | `module-dependencies.mmd` |
| C1 - Contexto | [Sistema Completo](./architecture/diagrams/context/system-context.mmd) | Vista de alto nivel del runtime y actores externos | `context/system-context.mmd` |
| C2 - Contenedores | [Contenedores del Runtime](./architecture/diagrams/container/runtime-containers.mmd) | Servicios del runtime y superficies operativas | `container/runtime-containers.mmd` |
| C3 - Componentes | [Núcleo del Runtime](./architecture/diagrams/component/runtime-core.mmd) | Componentes internos del núcleo del runtime | `component/runtime-core.mmd` |
| - | [Dependencias de Cargo](./architecture/diagrams/cargo-dependencies.mmd) | Flujo de dependencias del workspace Rust/Cargo | `cargo-dependencies.mmd` |

Ver [Visión General de la Arquitectura](./architecture/overview.md) para más detalles sobre cómo
visualizarlos.
Original file line number Diff line number Diff line change
Expand Up @@ -22,27 +22,27 @@ Muestra el sistema Corvus como una caja negra y sus interacciones con actores y
Descompone el sistema en contenedores/aplicaciones principales y sus interacciones.

- **Archivos**:
- [`container/system-containers.mmd`](./diagrams/container/system-containers.mmd) (Mermaid)
- [`container/system-containers.puml`](./diagrams/container/system-containers.puml) (PlantUML)
- **Descripción**: Muestra los contenedores principales: Web Dashboard, Android App, iOS App, Agent
Runtime, Rust Sidecar, y Graph DB.
- [`container/runtime-containers.mmd`](./diagrams/container/runtime-containers.mmd) (Mermaid)
- [`container/runtime-containers.puml`](./diagrams/container/runtime-containers.puml) (PlantUML)
- **Descripción**: Muestra los contenedores del runtime: CLI, gateway, servicios daemon,
ejecución de tools, backends de memoria y superficies operativas alrededor de Corvus.

## Nivel 3: Componentes

Descompone contenedores individuales en sus componentes internos.

### Agent Core KMP
### Núcleo del Runtime

- **Archivo**: [`component/agent-core-kmp.mmd`](./diagrams/component/agent-core-kmp.mmd)
- **Descripción**: Componentes internos del módulo core: Dominio, Casos de Uso, Interfaces e
Infraestructura.
- **Archivo**: [`component/runtime-core.mmd`](./diagrams/component/runtime-core.mmd)
- **Descripción**: Componentes internos del núcleo del runtime: configuración, agent loop,
providers, memoria, tools, canales, seguridad y observabilidad.

## Dependencias entre Módulos

Diagrama adicional mostrando las dependencias de Gradle entre módulos.
Diagrama adicional mostrando las dependencias de Cargo entre módulos del workspace.

- **Archivo**: [`module-dependencies.mmd`](./diagrams/module-dependencies.mmd)
- **Descripción**: Muestra cómo los clientes dependen del core compartido y de frameworks externos.
- **Archivo**: [`cargo-dependencies.mmd`](./diagrams/cargo-dependencies.mmd)
- **Descripción**: Muestra la estructura del workspace Cargo y el flujo principal de dependencias Rust del runtime.
Comment thread
coderabbitai[bot] marked this conversation as resolved.

## Cómo Visualizar

Expand Down Expand Up @@ -70,7 +70,7 @@ Para los archivos `.puml`:

```bash
# Usar PlantUML online o local
plantuml -tpng diagrams/container/system-containers.puml
plantuml -tpng diagrams/container/runtime-containers.puml
```

## Convenciones
Expand Down
22 changes: 12 additions & 10 deletions clients/web/apps/docs/src/content/docs/es/index.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
title: Corvus
description: Plataforma reactiva de agentes siempre activos sobre JVM.
description: Documentación complementaria del runtime Rust-native, seguro y pluggable para agentes autónomos.
template: splash
hero:
tagline: Construye agentes proactivos y de larga duración con Kotlin, Spring Boot, Neo4j, sidecars en Rust y un panel transparente.
tagline: Construye agentes autónomos con un runtime Rust-native, seguro, pluggable, rápido y portable.
actions:
- text: Primeros Pasos
link: guides/getting-started/
Expand All @@ -21,17 +21,17 @@ import {Card, CardGrid, LinkCard} from '@astrojs/starlight/components';
## ¿Por qué Corvus?

<CardGrid stagger>
<Card title="Orquestador Reactivo" icon="setting">
Kotlin + Spring Boot + Coroutines/WebFlux para flujos no bloqueantes y siempre activos.
<Card title="Ligero por defecto" icon="rocket">
Un binario pequeño en Rust con arranque rápido y bajo consumo de memoria para laptops, servidores, SBCs y entornos limitados.
</Card>
<Card title="Memoria de Grafo" icon="open-book">
Arquitectura orientada a conocimiento con Neo4j para contexto conectado y memoria durable.
<Card title="Seguro por diseño" icon="shield-check">
Pairing, sandboxing, aislamiento del workspace, allowlists y secretos cifrados forman parte de la postura por defecto.
</Card>
<Card title="Sidecars en Rust" icon="rocket">
Binarios de alto rendimiento para scraping y operaciones seguras de sandbox.
<Card title="Arquitectura pluggable" icon="setting">
Cambia providers, memoria, tools, canales, tunnels y runtime modes sin reescribir tu stack.
</Card>
<Card title="Operación Transparente" icon="approve-check">
Observabilidad en tiempo real con Astro/Vue y streaming de eventos.
<Card title="Runtime portable" icon="open-book">
Ejecuta Corvus en nativo o Docker con un solo runtime para chat, gateway, daemon, integraciones y automatización.
</Card>
</CardGrid>

Expand All @@ -46,6 +46,8 @@ import {Card, CardGrid, LinkCard} from '@astrojs/starlight/components';
href="guides/features/"/>
<LinkCard title="Arquitectura" description="Consulta decisiones de diseño y modelo de ejecución."
href="guides/architecture/"/>
<LinkCard title="Referencia de la CLI" description="Aprende los comandos para la configuración inicial, agentes, gateway, daemon y operaciones."
href="guides/cli-reference/"/>
<LinkCard title="Flujo de Desarrollo"
description="Procedimientos para build, test, lint y release."
href="guides/development/"/>
Expand Down
Loading
Loading