From 21798c9fd0841e0eddc58a78ec9ccf4ef5781b5f Mon Sep 17 00:00:00 2001 From: "openclaw-docs-sync[bot]" Date: Wed, 22 Apr 2026 00:13:06 +0000 Subject: [PATCH] chore(sync): mirror docs from openclaw/openclaw@819d15481d83494ebf8519c1f1e299d0fffd4750 --- .openclaw-sync/source.json | 4 ++-- docs/plugins/manifest.md | 30 ++++++++++++++++++------------ docs/plugins/sdk-entrypoints.md | 4 ++++ 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index 4184c22f7..abe7f8a65 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "08bc16853ef47fe4793f5f5c2a2a781643e0ce40", - "syncedAt": "2026-04-21T23:41:19.162Z" + "sha": "819d15481d83494ebf8519c1f1e299d0fffd4750", + "syncedAt": "2026-04-22T00:13:06.253Z" } diff --git a/docs/plugins/manifest.md b/docs/plugins/manifest.md index 46f268f80..7421cdbdd 100644 --- a/docs/plugins/manifest.md +++ b/docs/plugins/manifest.md @@ -507,18 +507,20 @@ Some pre-runtime plugin metadata intentionally lives in `package.json` under the Important examples: -| Field | What it means | -| ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -| `openclaw.extensions` | Declares native plugin entrypoints. | -| `openclaw.setupEntry` | Lightweight setup-only entrypoint used during onboarding, deferred channel startup, and read-only channel status/SecretRef discovery. | -| `openclaw.channel` | Cheap channel catalog metadata like labels, docs paths, aliases, and selection copy. | -| `openclaw.channel.configuredState` | Lightweight configured-state checker metadata that can answer "does env-only setup already exist?" without loading the full channel runtime. | -| `openclaw.channel.persistedAuthState` | Lightweight persisted-auth checker metadata that can answer "is anything already signed in?" without loading the full channel runtime. | -| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Install/update hints for bundled and externally published plugins. | -| `openclaw.install.defaultChoice` | Preferred install path when multiple install sources are available. | -| `openclaw.install.minHostVersion` | Minimum supported OpenClaw host version, using a semver floor like `>=2026.3.22`. | -| `openclaw.install.allowInvalidConfigRecovery` | Allows a narrow bundled-plugin reinstall recovery path when config is invalid. | -| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Lets setup-only channel surfaces load before the full channel plugin during startup. | +| Field | What it means | +| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `openclaw.extensions` | Declares native plugin entrypoints. Must stay inside the plugin package directory. | +| `openclaw.runtimeExtensions` | Declares built JavaScript runtime entrypoints for installed packages. Must stay inside the plugin package directory. | +| `openclaw.setupEntry` | Lightweight setup-only entrypoint used during onboarding, deferred channel startup, and read-only channel status/SecretRef discovery. Must stay inside the plugin package directory. | +| `openclaw.runtimeSetupEntry` | Declares the built JavaScript setup entrypoint for installed packages. Must stay inside the plugin package directory. | +| `openclaw.channel` | Cheap channel catalog metadata like labels, docs paths, aliases, and selection copy. | +| `openclaw.channel.configuredState` | Lightweight configured-state checker metadata that can answer "does env-only setup already exist?" without loading the full channel runtime. | +| `openclaw.channel.persistedAuthState` | Lightweight persisted-auth checker metadata that can answer "is anything already signed in?" without loading the full channel runtime. | +| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Install/update hints for bundled and externally published plugins. | +| `openclaw.install.defaultChoice` | Preferred install path when multiple install sources are available. | +| `openclaw.install.minHostVersion` | Minimum supported OpenClaw host version, using a semver floor like `>=2026.3.22`. | +| `openclaw.install.allowInvalidConfigRecovery` | Allows a narrow bundled-plugin reinstall recovery path when config is invalid. | +| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Lets setup-only channel surfaces load before the full channel plugin during startup. | `openclaw.install.minHostVersion` is enforced during install and manifest registry loading. Invalid values are rejected; newer-but-valid values skip the @@ -530,6 +532,10 @@ runtime. The setup entry should expose channel metadata plus setup-safe config, status, and secrets adapters; keep network clients, gateway listeners, and transport runtimes in the main extension entrypoint. +Runtime entrypoint fields do not override package-boundary checks for source +entrypoint fields. For example, `openclaw.runtimeExtensions` cannot make an +escaping `openclaw.extensions` path loadable. + `openclaw.install.allowInvalidConfigRecovery` is intentionally narrow. It does not make arbitrary broken configs installable. Today it only allows install flows to recover from specific stale bundled-plugin upgrade failures, such as a diff --git a/docs/plugins/sdk-entrypoints.md b/docs/plugins/sdk-entrypoints.md index 1797245ec..b8ff2d6b0 100644 --- a/docs/plugins/sdk-entrypoints.md +++ b/docs/plugins/sdk-entrypoints.md @@ -34,6 +34,10 @@ TypeScript compilation. If an installed package only declares a TypeScript source entry, OpenClaw will use a matching built `dist/*.js` peer when one exists, then fall back to the TypeScript source. +All entry paths must stay inside the plugin package directory. Runtime entries +and inferred built JavaScript peers do not make an escaping `extensions` or +`setupEntry` source path valid. + **Looking for a walkthrough?** See [Channel Plugins](/plugins/sdk-channel-plugins) or [Provider Plugins](/plugins/sdk-provider-plugins) for step-by-step guides.