Files
overlord/plugins/PLUGINS.md
T

54 lines
3.0 KiB
Markdown
Raw Normal View History

2026-03-05 00:04:26 -06:00
# Overlord Plugins
2026-06-22 13:04:33 -05:00
This is the short entry point for plugin authors. The detailed docs are split by topic so server-only build extensions, WASM agent plugins, legacy native plugins, signing, and examples can evolve independently.
2026-06-22 13:04:33 -05:00
## Quick Start
2026-03-05 00:04:26 -06:00
2026-06-22 13:04:33 -05:00
A Plugin 2.0 bundle is a zip with a root `config.json`, browser assets, and optional server or agent code:
2026-06-22 10:52:27 -05:00
2026-06-22 13:04:33 -05:00
```text
2026-03-05 00:04:26 -06:00
<pluginId>.zip
2026-06-22 13:04:33 -05:00
config.json
<pluginId>.html
<pluginId>.css
<pluginId>.js optional when src/ui.ts exists
<pluginId>.wasm optional agent-side WASM module
server.js optional server-side runtime
src/ optional TypeScript source
2026-03-05 00:04:26 -06:00
```
2026-06-22 13:04:33 -05:00
Upload the zip from the Plugins page, or place it under `Overlord-Server/plugins`.
2026-03-05 00:04:26 -06:00
2026-06-22 13:04:33 -05:00
## Read The Focused Docs
2026-06-22 13:04:33 -05:00
| Topic | Read this |
|-------|-----------|
| Bundle layout, `config.json`, TypeScript UI/server entries | [docs/bundle-format.md](docs/bundle-format.md) |
| Server-only plugins, plugin data, RPC/SSE, build hooks, build settings/buttons | [docs/server-side-plugins.md](docs/server-side-plugins.md) |
| WASM Plugin 2.0 agent modules and permissioned file bridges | [docs/wasm-plugins.md](docs/wasm-plugins.md) |
| Install/upload flow, Plugin Manager behavior, auto-load rules | [docs/install-and-manage.md](docs/install-and-manage.md) |
| Sample plugin directory guide | [docs/samples.md](docs/samples.md) |
| Legacy native plugins: OS APIs, native ABI, build scripts, Linux static-agent shim | [docs/legacy-native-plugins.md](docs/legacy-native-plugins.md) |
| Plugin signing and trusted keys | [docs/signing.md](docs/signing.md) |
2026-03-05 00:04:26 -06:00
2026-06-22 13:04:33 -05:00
## Runtime Choices
2026-03-05 00:04:26 -06:00
2026-06-22 13:04:33 -05:00
Use `runtime: "server"` for server-side extensions. These can add server UI, store files, expose RPCs, subscribe to plugin events, and hook the build pipeline. Server-only plugins are shown as server extensions in the Plugin Manager, are not sent to clients, and do not use auto-load.
2026-03-05 00:04:26 -06:00
2026-06-22 13:04:33 -05:00
Use `runtime: "wasm"` for Plugin 2.0 agent code. WASM plugins are sandboxed on the agent and access host features only through declared needs and Overlord bridge APIs.
2026-04-14 09:56:20 -05:00
2026-06-22 13:04:33 -05:00
Use legacy native plugins when you need direct OS APIs, native libraries, platform-specific behavior, or other privileged agent-side functionality that the WASM sandbox does not expose. Native plugins run with the agent's privileges and require one binary per OS/architecture.
2026-04-14 09:56:20 -05:00
2026-06-22 13:04:33 -05:00
## Current Samples
2026-04-14 09:56:20 -05:00
2026-06-22 13:04:33 -05:00
| Directory | Purpose |
|-----------|---------|
| `sample-build-hooks` | Server-only build plugin with its own Build page button and artifact replacement example. |
| `sample-ts-fullstack` | TypeScript UI plus TypeScript server runtime. |
| `sample-wasm` | C/WASI Plugin 2.0 WASM example. |
| `sample-wasm-hostinfo` | TinyGo WASM HostInfo example. |
| `sample-wasm-platform-note` | Rust WASM platform-aware example. |
| `sample-c`, `sample-cpp`, `sample-go`, `sample-rust` | Legacy native v1 examples. |
2026-03-05 00:04:26 -06:00
2026-06-22 13:04:33 -05:00
Start with [docs/server-side-plugins.md](docs/server-side-plugins.md) if you are building uploaders, custom build buttons, artifact post-processing, or internal release hooks.