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
24 changes: 12 additions & 12 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,40 @@
# Changelog

## Control Plane initial build
## Control Plane - initial build

Adds the `clawforge-controlplane` crate: the enterprise/government control plane
for governing, securing, observing, auditing, and operating AI agents and MCP
servers. Built in ten phases, each merged via its own pull request.

### Added

- **Foundation** `ControlPlaneConfig`, shared vocabularies (`RiskLevel`,
- **Foundation** - `ControlPlaneConfig`, shared vocabularies (`RiskLevel`,
`DataAccessLevel`, `LifecycleStatus`), unified `ControlPlaneError`, structured
logging macros.
- **Agent Registry** CRUD, validation, and an enforced lifecycle state
- **Agent Registry** - CRUD, validation, and an enforced lifecycle state
machine (no `Draft → Active` without approval).
- **Governance Engine** approval workflow with human gate, mandatory decision
- **Governance Engine** - approval workflow with human gate, mandatory decision
reasons, and append-only change history.
- **Observability** append-only execution events with on-demand per-agent and
- **Observability** - append-only execution events with on-demand per-agent and
fleet-wide metric summaries.
- **Security Gateway** pre-execution checks (agent state, tool, MCP, model,
- **Security Gateway** - pre-execution checks (agent state, tool, MCP, model,
data access, capabilities, budget, human approval), risk scoring, and a
blocked-execution log.
- **MCP Governance** registry with approval, health, and usage tracking.
- **Agent Marketplace** verified, reusable templates with verification and
- **MCP Governance** - registry with approval, health, and usage tracking.
- **Agent Marketplace** - verified, reusable templates with verification and
compliance badges; install into the registry.
- **Enterprise Integrations** governed connectors (DBs, SSO, GIS, ITSM, …)
- **Enterprise Integrations** - governed connectors (DBs, SSO, GIS, ITSM, …)
with credential *references* (never secrets) and risk classification.
- **Government Compliance Pack** PII classification, retention, approval
- **Government Compliance Pack** - PII classification, retention, approval
chains, audit evidence, investigation holds, and compliance reporting
(UAE PDPL-aware).
- **Docs & demo** per-domain docs, Mermaid diagrams, government and enterprise
- **Docs & demo** - per-domain docs, Mermaid diagrams, government and enterprise
use cases, installation and developer guides, roadmap, limitations, security
disclaimer, and a runnable end-to-end example.

### Tests

`cargo test -p clawforge-controlplane` **82 passing, 0 failing**.
`cargo test -p clawforge-controlplane` - **82 passing, 0 failing**.

### Notes

Expand Down
10 changes: 5 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ workspace.

## Repository layout

- `backend/*` Rust workspace crates (the agent runtime).
- `backend/controlplane` the **control plane** crate (registry, governance,
- `backend/*` - Rust workspace crates (the agent runtime).
- `backend/controlplane` - the **control plane** crate (registry, governance,
observability, security gateway, MCP governance, marketplace, integrations,
compliance).
- `frontend/` React dashboard.
- `docs/` architecture and per-domain documentation.
- `frontend/` - React dashboard.
- `docs/` - architecture and per-domain documentation.

## Building & testing

Expand Down Expand Up @@ -45,7 +45,7 @@ Run tests **before** opening a pull request.

## Commit & PR workflow

- Keep commits **atomic** one logical change per commit, with a clear message.
- Keep commits **atomic** - one logical change per commit, with a clear message.
- Do not combine unrelated changes.
- Branch per unit of work; never commit directly to `main`. Open a pull request
and merge through GitHub.
Expand Down
32 changes: 16 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<p align="center">
<img src="docs/assets/banner.png" alt="ClawForge Enterprise & Government AI Agent Control Plane" width="100%">
<img src="docs/assets/banner.png" alt="ClawForge - Enterprise & Government AI Agent Control Plane" width="100%">
</p>

<h1 align="center">ClawForge</h1>
Expand All @@ -16,7 +16,7 @@
</p>

<p align="center">
<em>Kubernetes&nbsp;·&nbsp;ServiceNow&nbsp;·&nbsp;Splunk&nbsp;&nbsp;for AI Agents.</em>
<em>Kubernetes&nbsp;·&nbsp;ServiceNow&nbsp;·&nbsp;Splunk&nbsp;-&nbsp;for AI Agents.</em>
</p>

---
Expand All @@ -25,7 +25,7 @@

**ClawForge is not another agent framework.** It is the **control plane** for
managing, governing, securing, observing, auditing, and operating AI agents, MCP
servers, workflows, tools, models, and enterprise integrations built for
servers, workflows, tools, models, and enterprise integrations - built for
government entities, municipalities, and enterprise IT, security, and AI platform
teams.

Expand All @@ -37,7 +37,7 @@ teams.
| **ClawForge** | **Enterprise / Government Agent Control Plane** |

Beneath the control plane sits a high-performance, local-first **agent runtime**
written entirely in Rust a Rust implementation of the
written entirely in Rust - a Rust implementation of the
[OpenClaw](https://openclaw.ai) topology that orchestrates autonomous agents over
a central WebSocket gateway, across channels (WhatsApp, Telegram, Discord, Slack),
with tools, sandboxing, and memory. The `clawforge-controlplane` crate wraps that
Expand Down Expand Up @@ -73,7 +73,7 @@ domain module:
| **Security Gateway** | Pre-execution checks on every action (tool / MCP / model / data / budget / approval) + risk score | [security-gateway.md](docs/security-gateway.md) |
| **MCP Governance** | Registry, approval, health, and usage tracking for MCP servers | [mcp-governance.md](docs/mcp-governance.md) |
| **Agent Marketplace** | Verified, reusable internal agent templates with compliance badges | [marketplace.md](docs/marketplace.md) |
| **Enterprise Integrations** | Governed connectors (DBs, SSO, GIS, ITSM) credentials referenced, never stored | [enterprise-integrations.md](docs/enterprise-integrations.md) |
| **Enterprise Integrations** | Governed connectors (DBs, SSO, GIS, ITSM) - credentials referenced, never stored | [enterprise-integrations.md](docs/enterprise-integrations.md) |
| **Government Compliance** | PII classification, retention, approval chains, audit evidence, reporting (UAE PDPL-aware) | [government-compliance.md](docs/government-compliance.md) |

## Quick start
Expand All @@ -92,9 +92,9 @@ cargo test -p clawforge-controlplane # 82 tests
cargo run -p clawforge-controlplane --example demo
```

The demo walks a single agent through the whole control plane marketplace
The demo walks a single agent through the whole control plane - marketplace
install → MCP approval → governance → security gateway → observability →
compliance report in memory. See [docs/demo.md](docs/demo.md).
compliance report - in memory. See [docs/demo.md](docs/demo.md).

### Running the full runtime (optional)

Expand Down Expand Up @@ -128,27 +128,27 @@ Full index: [docs/README.md](docs/README.md).

ClawForge's control plane governs a complete, local-first agent runtime (Rust workspace):

- **`clawforge-core`** central schemas (`AgentSpec`, `Message`, `Event`).
- **`clawforge-gateway` / `clawforge-daemon`** Tokio WebSocket control plane for sessions, tools, and events.
- **`clawforge-planner` / `clawforge-executor`** LLM provider integrations (OpenRouter, Ollama) and sandboxed action execution.
- **`clawforge-channels`** deep adapters for Telegram, Discord, Slack, LINE, iMessage, and WhatsApp.
- **`clawforge-plugins` / `clawforge-browser` / `clawforge-understanding`** WASM plugins, CDP browser automation, and OCR/STT/PDF media pipelines.
- **`clawforge-memory` / `clawforge-supervisor`** vector memory for RAG and SQLite run-state persistence.
- **`clawforge-core`** - central schemas (`AgentSpec`, `Message`, `Event`).
- **`clawforge-gateway` / `clawforge-daemon`** - Tokio WebSocket control plane for sessions, tools, and events.
- **`clawforge-planner` / `clawforge-executor`** - LLM provider integrations (OpenRouter, Ollama) and sandboxed action execution.
- **`clawforge-channels`** - deep adapters for Telegram, Discord, Slack, LINE, iMessage, and WhatsApp.
- **`clawforge-plugins` / `clawforge-browser` / `clawforge-understanding`** - WASM plugins, CDP browser automation, and OCR/STT/PDF media pipelines.
- **`clawforge-memory` / `clawforge-supervisor`** - vector memory for RAG and SQLite run-state persistence.

## Security

ClawForge connects to real messaging surfaces treat inbound messages, tool
ClawForge connects to real messaging surfaces - treat inbound messages, tool
output, and MCP responses as **untrusted input**. The Security Gateway gates
*capabilities* (which tool / MCP / model / data an action may use); keep
untrusted execution sandboxed (the runtime supports Docker isolation). Secrets
are never stored integrations hold credential *references* only. Read the full
are never stored - integrations hold credential *references* only. Read the full
[security disclaimer](docs/security-disclaimer.md) and [limitations](docs/limitations.md)
before relying on ClawForge.

## Contributing

Contributions are welcome. Please read the [developer guide](docs/developer-guide.md)
and [CONTRIBUTING.md](CONTRIBUTING.md) work in atomic, well-described commits,
and [CONTRIBUTING.md](CONTRIBUTING.md) - work in atomic, well-described commits,
run `cargo test -p clawforge-controlplane` before opening a pull request, and keep
documentation in step with code.

Expand Down
2 changes: 1 addition & 1 deletion assets/skills/coding-agent/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@ bash pty:true workdir:~/project background:true command:"codex --yolo exec 'Buil
When completely finished, run: openclaw system event --text \"Done: Built todos REST API with CRUD endpoints\" --mode now'"
```

This triggers an immediate wake event Skippy gets pinged in seconds, not 10 minutes.
This triggers an immediate wake event - Skippy gets pinged in seconds, not 10 minutes.

---

Expand Down
2 changes: 1 addition & 1 deletion assets/skills/notion/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,6 @@ Common property formats for database items:
## Notes

- Page/database IDs are UUIDs (with or without dashes)
- The API cannot set database view filters that's UI-only
- The API cannot set database view filters - that's UI-only
- Rate limit: ~3 requests/second average
- Use `is_inline: true` when creating data sources to embed them in pages
12 changes: 6 additions & 6 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ Index of the control-plane documentation.

## Start here

- [Product positioning](product-positioning.md) what ClawForge is (and isn't).
- [Architecture](architecture.md) the two layers and how they relate.
- [Diagrams](diagrams.md) architecture, lifecycle, governance, and MCP flows.
- [Installation guide](installation.md) prerequisites, config, build & test.
- [Model providers](model-providers.md) every supported provider and how to enable it.
- [Demo](demo.md) runnable end-to-end walkthrough.
- [Product positioning](product-positioning.md) - what ClawForge is (and isn't).
- [Architecture](architecture.md) - the two layers and how they relate.
- [Diagrams](diagrams.md) - architecture, lifecycle, governance, and MCP flows.
- [Installation guide](installation.md) - prerequisites, config, build & test.
- [Model providers](model-providers.md) - every supported provider and how to enable it.
- [Demo](demo.md) - runnable end-to-end walkthrough.

## Capabilities

Expand Down
20 changes: 10 additions & 10 deletions docs/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@

ClawForge has two layers:

1. **Agent runtime** the existing Rust workspace that *runs* agents (gateway,
1. **Agent runtime** - the existing Rust workspace that *runs* agents (gateway,
planner, executor, channels, tools, memory, …).
2. **Control plane** the `clawforge-controlplane` crate that *governs* agents
2. **Control plane** - the `clawforge-controlplane` crate that *governs* agents
(registry, governance, observability, security gateway, MCP governance,
marketplace, integrations, compliance).

Expand Down Expand Up @@ -60,14 +60,14 @@ backend/controlplane/
├── constants.rs # RiskLevel, DataAccessLevel, LifecycleStatus, product consts
├── error.rs # ControlPlaneError + Result alias
├── logging.rs # cp_info! / cp_warn! / cp_blocked! macros
├── registry/ # Phase 2 Agent Registry
├── governance.rs # Phase 3 Governance Engine
├── observability/ # Phase 4 metrics & execution events
├── gateway.rs # Phase 5 Security Gateway
├── mcp/ # Phase 6 MCP registry & governance
├── marketplace.rs # Phase 7 verified agent templates
├── integrations/ # Phase 8 enterprise integration registry
└── compliance/ # Phase 9 government compliance pack
├── registry/ # Phase 2 - Agent Registry
├── governance.rs # Phase 3 - Governance Engine
├── observability/ # Phase 4 - metrics & execution events
├── gateway.rs # Phase 5 - Security Gateway
├── mcp/ # Phase 6 - MCP registry & governance
├── marketplace.rs # Phase 7 - verified agent templates
├── integrations/ # Phase 8 - enterprise integration registry
└── compliance/ # Phase 9 - government compliance pack
```

(Modules land phase by phase; the table reflects the target shape.)
Expand Down
14 changes: 7 additions & 7 deletions docs/demo.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ cargo run -p clawforge-controlplane --example demo

Everything runs in-memory, exercising every module in one agent's journey:

1. **Marketplace** seeds verified listings and installs one into the Registry.
2. **MCP Governance** registers and approves the `records-mcp` server.
3. **Governance** submits and approves the agent, moving it `Draft →
1. **Marketplace** - seeds verified listings and installs one into the Registry.
2. **MCP Governance** - registers and approves the `records-mcp` server.
3. **Governance** - submits and approves the agent, moving it `Draft →
PendingApproval → Active`.
4. **Security Gateway** evaluates a real action (tool + MCP + data access +
4. **Security Gateway** - evaluates a real action (tool + MCP + data access +
budget) and prints an allow/deny verdict with a risk score.
5. **Observability** records the execution and prints the task success rate.
6. **Compliance** classifies the agent (UAE PDPL, PII, retention, approval
5. **Observability** - records the execution and prints the task success rate.
6. **Compliance** - classifies the agent (UAE PDPL, PII, retention, approval
chain) and prints a compliance report with findings.

## Expected output
Expand All @@ -43,4 +43,4 @@ Everything runs in-memory, exercising every module in one agent's journey:

The compliance findings are intentional: they show the report correctly
flagging an agent that handles PII without collected evidence or a completed
approval chain exactly the kind of gap the control plane surfaces.
approval chain - exactly the kind of gap the control plane surfaces.
2 changes: 1 addition & 1 deletion docs/diagrams.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ flowchart TB
## Agent lifecycle

The registry state machine. An agent can only become operational by passing
through approval a direct `Draft → Active` jump is rejected.
through approval - a direct `Draft → Active` jump is rejected.

```mermaid
stateDiagram-v2
Expand Down
6 changes: 3 additions & 3 deletions docs/enterprise-integrations.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
ClawForge governs *connections* to enterprise and government systems. The
integration registry (`clawforge_controlplane::integrations`) tracks every
connector, who owns it, what it is allowed to do, where its credentials live,
and whether it is approved **without ever storing a secret**.
and whether it is approved - **without ever storing a secret**.

## Categories (`IntegrationKind`)

Expand All @@ -15,7 +15,7 @@ Active Directory, SSO, API Gateway, Email, Webhook.
## Credentials are referenced, never stored

`CredentialRef` records *where* a secret lives (`vault` / `env` / `sso` /
`keychain` / `none`) and the lookup `key` never the secret material itself.
`keychain` / `none`) and the lookup `key` - never the secret material itself.
This keeps the control plane out of scope for secret storage while still giving
governance a complete picture of what an integration can reach.

Expand All @@ -32,7 +32,7 @@ Granting `write`, `delete`, or `admin` is *elevated*. `classify_risk(kind,
permissions)` computes effective risk: the higher of the category baseline
(identity stores and SSO are `critical`; primary databases are `high`) and a
`high` floor implied by any elevated permission. Registration escalates an
integration's risk to this baseline it never silently downgrades an explicit
integration's risk to this baseline - it never silently downgrades an explicit
level.

## API
Expand Down
11 changes: 5 additions & 6 deletions docs/enterprise.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Use Case Enterprise IT
# Use Case - Enterprise IT

**Scenario:** An enterprise IT operations team wants an agent that executes
approved remediation runbooks (restart services, run diagnostics) against
Expand All @@ -22,7 +22,7 @@ governance.submit(/* kind: Tool, shell */)?;
```

The `servicenow-mcp` server is registered in **MCP Governance**, reviewed
(`requires_governance_review()` is true it has a `write` tool), approved, and
(`requires_governance_review()` is true - it has a `write` tool), approved, and
health-checked.

## 3. Policy & budget
Expand All @@ -35,19 +35,18 @@ caps daily spend.
## 4. Guarded execution

Before each remediation step the Security Gateway verifies the tool and MCP
server are allow-listed, the model matches, the action is within budget, and —
because the agent is critical-risk under a mandated gate — flags it for human
server are allow-listed, the model matches, the action is within budget, and - because the agent is critical-risk under a mandated gate - flags it for human
approval. Allowed steps proceed; everything is scored and logged.

## 5. Observe the fleet

Every run emits Observability events. The IT dashboard shows task success rate,
tool failure rate, average latency, total cost, MCP call volume, and any blocked
executions for this agent and across the whole fleet (`summary(None)`).
executions - for this agent and across the whole fleet (`summary(None)`).

## Why a control plane

Without ClawForge this agent would run with ad-hoc credentials, no central
approval, no per-action checks, and no unified audit trail. With it, IT gets
**Kubernetes-style lifecycle, ServiceNow-style approvals, and Splunk-style
observability** over their agent fleet in one place.
observability** over their agent fleet - in one place.
2 changes: 1 addition & 1 deletion docs/governance.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ let history = gov.history(&req.id)?;

## How it ties together

The engine deliberately does not mutate the Agent Registry itself it records
The engine deliberately does not mutate the Agent Registry itself - it records
*decisions*. The intended flow is: register an agent (`Draft`), submit it for
approval, and on `Approved` move it through `PendingApproval → Active` in the
registry. This keeps the source-of-truth (registry) and the decision log
Expand Down
4 changes: 2 additions & 2 deletions docs/government-compliance.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ PDPL by default) without hard-coding any single jurisdiction. See
| `framework` | e.g. `UAE-PDPL` |
| `pii_classification` | `non_pii` / `pii` / `sensitive_pii` |
| `data_retention_days` | retention window; `0` = indefinite |
| `investigation_mode` | legal hold suspends deletion, mandates evidence |
| `investigation_mode` | legal hold - suspends deletion, mandates evidence |
| `export_control` | `unrestricted` / `restricted` / `prohibited` |

`is_past_retention(age_days)` honours both indefinite retention and an active
Expand Down Expand Up @@ -68,4 +68,4 @@ incomplete approval chains, and export-prohibited data lacking signed evidence.
Reports are **pure functions** of data assembled from the other control-plane
stores (registry, governance, gateway, integrations). Nothing is recomputed
from a separate source of truth, so a report is always reproducible from the
evidence on file exactly what an auditor or investigator needs.
evidence on file - exactly what an auditor or investigator needs.
Loading
Loading