docs: deep audit documentation against source

This commit is contained in:
Peter Steinberger
2026-04-23 07:32:58 +01:00
parent 9f19e5be52
commit 938af16289
13 changed files with 31 additions and 22 deletions

View File

@@ -1,2 +1,2 @@
69428c5bb07b7477bfa804b0dc3c60aee88485e8e89c1192b4f64e4be030077c plugin-sdk-api-baseline.json
7775f57fe6f855e0c8f3af1e20563bb4ba36ca8d97732e2fbaa2edcdb35c8995 plugin-sdk-api-baseline.jsonl
2787bd6f7127d09c23323c193084d9f6ceaae61d13b74f694ae12674e6152ad4 plugin-sdk-api-baseline.json
5352814e95ee2bd9668ee7a2276432d2c09a4651c648ea1b52a34a69490b27cd plugin-sdk-api-baseline.jsonl

View File

@@ -13,7 +13,7 @@ host configuration.
## Key terms
- **Channel**: `telegram`, `whatsapp`, `discord`, `irc`, `googlechat`, `slack`, `signal`, `imessage`, `line`, plus extension channels. `webchat` is the internal WebChat UI channel and is not a configurable outbound channel.
- **Channel**: `telegram`, `whatsapp`, `discord`, `irc`, `googlechat`, `slack`, `signal`, `imessage`, `line`, plus plugin channels. `webchat` is the internal WebChat UI channel and is not a configurable outbound channel.
- **AccountId**: perchannel account instance (when supported).
- Optional channel default account: `channels.<channel>.defaultAccount` chooses
which account is used when an outbound path does not specify `accountId`.

View File

@@ -351,7 +351,7 @@ Config:
External scripts and webhooks can post buttons directly via the Mattermost REST API
instead of going through the agent's `message` tool. Use `buildButtonAttachments()` from
the extension when possible; if posting raw JSON, follow these rules:
the plugin when possible; if posting raw JSON, follow these rules:
**Payload structure:**

View File

@@ -107,7 +107,7 @@ High-level:
6. Installs deps with the repo package manager. For pnpm checkouts, the updater bootstraps `pnpm` on demand (via `corepack` first, then a temporary `npm install pnpm@10` fallback) instead of running `npm run build` inside a pnpm workspace.
7. Builds + builds the Control UI.
8. Runs `openclaw doctor` as the final “safe update” check.
9. Syncs plugins to the active channel (dev uses bundled extensions; stable/beta uses npm) and updates npm-installed plugins.
9. Syncs plugins to the active channel (dev uses bundled plugins; stable/beta uses npm) and updates npm-installed plugins.
If an exact pinned npm plugin update resolves to an artifact whose integrity
differs from the stored install record, `openclaw update` aborts that plugin

View File

@@ -364,7 +364,7 @@ Think of the suites as “increasing realism” (and increasing flakiness/cost):
- Command: `pnpm test:e2e`
- Config: `vitest.e2e.config.ts`
- Files: `src/**/*.e2e.test.ts`, `test/**/*.e2e.test.ts`
- Files: `src/**/*.e2e.test.ts`, `test/**/*.e2e.test.ts`, and bundled-plugin E2E tests under `extensions/`
- Runtime defaults:
- Uses Vitest `threads` with `isolate: false`, matching the rest of the repo.
- Uses adaptive workers (CI: up to 2, local: 1 by default).
@@ -383,7 +383,7 @@ Think of the suites as “increasing realism” (and increasing flakiness/cost):
### E2E: OpenShell backend smoke
- Command: `pnpm test:e2e:openshell`
- File: `test/openshell-sandbox.e2e.test.ts`
- File: `extensions/openshell/src/backend.e2e.test.ts`
- Scope:
- Starts an isolated OpenShell gateway on the host via Docker
- Creates a sandbox from a temporary local Dockerfile
@@ -401,7 +401,7 @@ Think of the suites as “increasing realism” (and increasing flakiness/cost):
- Command: `pnpm test:live`
- Config: `vitest.live.config.ts`
- Files: `src/**/*.live.test.ts`
- Files: `src/**/*.live.test.ts`, `test/**/*.live.test.ts`, and bundled-plugin live tests under `extensions/`
- Default: **enabled** by `pnpm test:live` (sets `OPENCLAW_LIVE_TEST=1`)
- Scope:
- “Does this provider/model actually work _today_ with real creds?”
@@ -784,13 +784,13 @@ If you want to rely on env keys (e.g. exported in your `~/.profile`), run local
## Deepgram live (audio transcription)
- Test: `src/media-understanding/providers/deepgram/audio.live.test.ts`
- Enable: `DEEPGRAM_API_KEY=... DEEPGRAM_LIVE_TEST=1 pnpm test:live src/media-understanding/providers/deepgram/audio.live.test.ts`
- Test: `extensions/deepgram/audio.live.test.ts`
- Enable: `DEEPGRAM_API_KEY=... DEEPGRAM_LIVE_TEST=1 pnpm test:live extensions/deepgram/audio.live.test.ts`
## BytePlus coding plan live
- Test: `src/agents/byteplus.live.test.ts`
- Enable: `BYTEPLUS_API_KEY=... BYTEPLUS_LIVE_TEST=1 pnpm test:live src/agents/byteplus.live.test.ts`
- Test: `extensions/byteplus/live.test.ts`
- Enable: `BYTEPLUS_API_KEY=... BYTEPLUS_LIVE_TEST=1 pnpm test:live extensions/byteplus/live.test.ts`
- Optional model override: `BYTEPLUS_CODING_MODEL=ark-code-latest`
## ComfyUI workflow media live
@@ -804,8 +804,8 @@ If you want to rely on env keys (e.g. exported in your `~/.profile`), run local
## Image generation live
- Test: `src/image-generation/runtime.live.test.ts`
- Command: `pnpm test:live src/image-generation/runtime.live.test.ts`
- Test: `test/image-generation.runtime.live.test.ts`
- Command: `pnpm test:live test/image-generation.runtime.live.test.ts`
- Harness: `pnpm test:live:media image`
- Scope:
- Enumerates every registered image-generation provider plugin
@@ -818,8 +818,11 @@ If you want to rely on env keys (e.g. exported in your `~/.profile`), run local
- `google:pro-edit`
- `openai:default-generate`
- Current bundled providers covered:
- `openai`
- `fal`
- `google`
- `minimax`
- `openai`
- `vydra`
- `xai`
- Optional narrowing:
- `OPENCLAW_LIVE_IMAGE_GENERATION_PROVIDERS="openai,google,xai"`

View File

@@ -6,6 +6,8 @@ read_when:
title: "Northflank"
---
# Northflank
Deploy OpenClaw on Northflank with a one-click template and access it through the web Control UI.
This is the easiest "no terminal on the server" path: Northflank runs the Gateway for you.

View File

@@ -6,6 +6,8 @@ read_when:
title: "Railway"
---
# Railway
Deploy OpenClaw on Railway with a one-click template and access it through the web Control UI.
This is the easiest "no terminal on the server" path: Railway runs the Gateway for you.

View File

@@ -6,6 +6,8 @@ read_when:
title: "Render"
---
# Render
Deploy OpenClaw on Render using Infrastructure as Code. The included `render.yaml` Blueprint defines your entire stack declaratively, service, disk, environment variables, so you can deploy with a single click and version your infrastructure alongside your code.
## Prerequisites

View File

@@ -122,7 +122,7 @@ OpenClaw's plugin system has four layers:
1. **Manifest + discovery**
OpenClaw finds candidate plugins from configured paths, workspace roots,
global extension roots, and bundled extensions. Discovery reads native
global plugin roots, and bundled plugins. Discovery reads native
`openclaw.plugin.json` manifests plus supported bundle manifests first.
2. **Enablement + validation**
Core decides whether a discovered plugin is enabled, disabled, blocked, or

View File

@@ -173,7 +173,7 @@ present in the bundled catalog.
## Multimodal add-ons
The `qwen` extension also exposes multimodal capabilities on the **Standard**
The `qwen` plugin also exposes multimodal capabilities on the **Standard**
DashScope endpoints (not the Coding Plan endpoints):
- **Video understanding** via `qwen-vl-max-latest`
@@ -227,7 +227,7 @@ See [Video Generation](/tools/video-generation) for shared tool parameters, prov
</Accordion>
<Accordion title="Capability plan">
The `qwen` extension is being positioned as the vendor home for the full Qwen
The `qwen` plugin is being positioned as the vendor home for the full Qwen
Cloud surface, not just coding/text models.
- **Text/chat models:** bundled now

View File

@@ -37,7 +37,7 @@ If you need transcript storage details, see:
All transcript hygiene is centralized in the embedded runner:
- Policy selection: `src/agents/transcript-policy.ts`
- Sanitization/repair application: `sanitizeSessionHistory` in `src/agents/pi-embedded-runner/google.ts`
- Sanitization/repair application: `sanitizeSessionHistory` in `src/agents/pi-embedded-runner/replay-history.ts`
The policy uses `provider`, `modelApi`, and `modelId` to decide what to apply.
@@ -73,7 +73,7 @@ persisted tool calls (for example, after a rate limit failure).
Implementation:
- `sanitizeToolCallInputs` in `src/agents/session-transcript-repair.ts`
- Applied in `sanitizeSessionHistory` in `src/agents/pi-embedded-runner/google.ts`
- Applied in `sanitizeSessionHistory` in `src/agents/pi-embedded-runner/replay-history.ts`
---

View File

@@ -162,7 +162,7 @@ Use these hubs to discover every page, including deep dives and reference docs t
- [macOS skills](/platforms/mac/skills)
- [macOS Peekaboo](/platforms/mac/peekaboo)
## Extensions + plugins
## Plugins
- [Plugins overview](/tools/plugin)
- [Building plugins](/plugins/building-plugins)

View File

@@ -50,7 +50,7 @@ auth/API key. Typical examples: `GEMINI_API_KEY` or `GOOGLE_API_KEY` for
Examples:
- Native Nano Banana-style setup: `agents.defaults.imageGenerationModel.primary: "google/gemini-3.1-flash-image-preview"`
- Native Nano Banana Pro-style setup: `agents.defaults.imageGenerationModel.primary: "google/gemini-3-pro-image-preview"`
- Native fal setup: `agents.defaults.imageGenerationModel.primary: "fal/fal-ai/flux/dev"`
## Agent skill allowlists