docs(plugin-sdk): refresh seam cleanup docs

This commit is contained in:
Peter Steinberger
2026-04-03 10:44:52 +01:00
parent f2d7a825b1
commit 2ca97a7d48
6 changed files with 310 additions and 119 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -196,6 +196,12 @@ We do not publish separate `plugin-sdk/*-action-runtime` subpaths, and bundled
plugins should import their own local runtime code directly from their
extension-owned modules.
The same boundary applies to provider-named SDK seams in general: core should
not import `openclaw/plugin-sdk/slack`, `.../discord`, `.../signal`,
`.../whatsapp`, or other channel-specific convenience barrels. If core needs a
behavior, either consume the bundled plugin's own `api.ts` / `runtime-api.ts`
barrel or promote the need into a narrow generic capability in the shared SDK.
For polls specifically, there are two execution paths:
- `outbound.sendPoll` is the shared baseline for channels that fit the common

View File

@@ -46,6 +46,14 @@ The old approach caused problems:
The modern plugin SDK fixes this: each import path (`openclaw/plugin-sdk/\<subpath\>`)
is a small, self-contained module with a clear purpose and documented contract.
Legacy provider convenience seams for bundled channels are also gone. Imports
such as `openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`,
`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`, and
`openclaw/plugin-sdk/telegram-core` were private mono-repo shortcuts, not
stable plugin contracts. Use narrow generic SDK subpaths instead. Inside the
bundled plugin workspace, keep provider-owned helpers in that plugin's own
`api.ts` or `runtime-api.ts`.
## How to migrate
<Steps>

View File

@@ -32,6 +32,13 @@ import { defineChannelPluginEntry } from "openclaw/plugin-sdk/core";
Each subpath is a small, self-contained module. This keeps startup fast and
prevents circular dependency issues.
Do not add or depend on provider-named convenience seams such as
`openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`,
`openclaw/plugin-sdk/signal`, or `openclaw/plugin-sdk/whatsapp`. Bundled plugins should compose generic SDK
subpaths inside their own `api.ts` or `runtime-api.ts` barrels, and core should
either use those plugin-local barrels or add a narrow generic SDK contract when
the need is truly cross-channel.
## Subpath reference
The most commonly used subpaths, grouped by purpose. The full list of 100+