From 6afcff3c75cb9daba55f2888d08081e59d3eef50 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-sync[bot]" Date: Mon, 27 Apr 2026 23:17:28 +0000 Subject: [PATCH] chore(sync): mirror docs from openclaw/openclaw@d462d1faf2aa0722683062c0ff522cfa7d130360 --- .openclaw-sync/source.json | 4 +- .../.generated/plugin-sdk-api-baseline.sha256 | 4 +- docs/plugins/sdk-subpaths.md | 1 + docs/plugins/sdk-testing.md | 57 +++++++++++-------- 4 files changed, 39 insertions(+), 27 deletions(-) diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index 5b011d08d..0b0fb7644 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "2fbbc6e2faa038ddc38c3cd53329b2a2c567c6ed", - "syncedAt": "2026-04-27T23:08:00.522Z" + "sha": "d462d1faf2aa0722683062c0ff522cfa7d130360", + "syncedAt": "2026-04-27T23:16:05.646Z" } diff --git a/docs/.generated/plugin-sdk-api-baseline.sha256 b/docs/.generated/plugin-sdk-api-baseline.sha256 index 4a41cbe41..e7ce9fedc 100644 --- a/docs/.generated/plugin-sdk-api-baseline.sha256 +++ b/docs/.generated/plugin-sdk-api-baseline.sha256 @@ -1,2 +1,2 @@ -af72813b59c6f35912bb5eacb01365d7686e3b2ca4c8813f7582de10c5da3c81 plugin-sdk-api-baseline.json -71603527acce8f5e1112a035dad6def83c0b02afd831b288fb655f83f8cb3bd1 plugin-sdk-api-baseline.jsonl +7a2039df8cfdcfea0fbc82bbe425c96631ab27b2210c932c6e3f17d380aff350 plugin-sdk-api-baseline.json +ea9f134bc2a1aa17e8abf8f1335daaa927b2272c972523b9d0bd05bf4ac8e149 plugin-sdk-api-baseline.jsonl diff --git a/docs/plugins/sdk-subpaths.md b/docs/plugins/sdk-subpaths.md index fa5949ba7..c8edeb628 100644 --- a/docs/plugins/sdk-subpaths.md +++ b/docs/plugins/sdk-subpaths.md @@ -22,6 +22,7 @@ For the plugin authoring guide, see [Plugin SDK overview](/plugins/sdk-overview) | `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` | | `plugin-sdk/config-schema` | `OpenClawSchema` | | `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` | +| `plugin-sdk/testing` | Public plugin test fixtures, provider registration/catalog helpers, wizard contract hooks, and bundled-plugin contract maintenance helpers | | `plugin-sdk/migration` | Migration provider item helpers such as `createMigrationItem`, reason constants, item status markers, redaction helpers, and `summarizeMigrationItems` | | `plugin-sdk/migration-runtime` | Runtime migration helpers such as `copyMigrationFileItem` and `writeMigrationReport` | diff --git a/docs/plugins/sdk-testing.md b/docs/plugins/sdk-testing.md index 6058aa972..e79c958cc 100644 --- a/docs/plugins/sdk-testing.md +++ b/docs/plugins/sdk-testing.md @@ -33,29 +33,40 @@ import { ### Available exports -| Export | Purpose | -| -------------------------------------- | ------------------------------------------------------ | -| `installCommonResolveTargetErrorCases` | Shared test cases for target resolution error handling | -| `shouldAckReaction` | Check whether a channel should add an ack reaction | -| `removeAckReactionAfterReply` | Remove ack reaction after reply delivery | -| `createTestRegistry` | Build a channel plugin registry fixture | -| `createEmptyPluginRegistry` | Build an empty plugin registry fixture | -| `setActivePluginRegistry` | Install a registry fixture for plugin runtime tests | -| `createRequestCaptureJsonFetch` | Capture JSON fetch requests in media helper tests | -| `withFetchPreconnect` | Run fetch tests with preconnect hooks installed | -| `withEnv` / `withEnvAsync` | Temporarily patch environment variables | -| `createTempHomeEnv` / `withTempDir` | Create isolated filesystem test fixtures | -| `createMockServerResponse` | Create a minimal HTTP server response mock | -| `registerSingleProviderPlugin` | Register one provider plugin in loader smoke tests | -| `registerProviderPlugin` | Capture all provider kinds from one plugin | -| `requireRegisteredProvider` | Assert that a provider collection contains an id | -| `createProviderUsageFetch` | Build provider usage fetch fixtures | -| `useFrozenTime` / `useRealTime` | Freeze and restore timers for time-sensitive tests | -| `createRuntimeEnv` | Build a mocked CLI/plugin runtime environment | -| `createTestWizardPrompter` | Build a mocked setup wizard prompter | -| `createPluginSetupWizardStatus` | Build setup status helpers for channel plugins | -| `createRuntimeTaskFlow` | Create isolated runtime task-flow state | -| `typedCases` | Preserve literal types for table-driven tests | +| Export | Purpose | +| ------------------------------------------- | ------------------------------------------------------- | +| `installCommonResolveTargetErrorCases` | Shared test cases for target resolution error handling | +| `shouldAckReaction` | Check whether a channel should add an ack reaction | +| `removeAckReactionAfterReply` | Remove ack reaction after reply delivery | +| `createTestRegistry` | Build a channel plugin registry fixture | +| `createEmptyPluginRegistry` | Build an empty plugin registry fixture | +| `setActivePluginRegistry` | Install a registry fixture for plugin runtime tests | +| `createRequestCaptureJsonFetch` | Capture JSON fetch requests in media helper tests | +| `withFetchPreconnect` | Run fetch tests with preconnect hooks installed | +| `withEnv` / `withEnvAsync` | Temporarily patch environment variables | +| `createTempHomeEnv` / `withTempDir` | Create isolated filesystem test fixtures | +| `createMockServerResponse` | Create a minimal HTTP server response mock | +| `registerSingleProviderPlugin` | Register one provider plugin in loader smoke tests | +| `registerProviderPlugin` | Capture all provider kinds from one plugin | +| `registerProviderPlugins` | Capture provider registrations across multiple plugins | +| `requireRegisteredProvider` | Assert that a provider collection contains an id | +| `runProviderCatalog` | Execute a provider catalog hook with test dependencies | +| `resolveProviderWizardOptions` | Resolve provider setup wizard choices in contract tests | +| `resolveProviderModelPickerEntries` | Resolve provider model-picker entries in contract tests | +| `buildProviderPluginMethodChoice` | Build provider wizard choice ids for assertions | +| `setProviderWizardProvidersResolverForTest` | Inject provider wizard providers for isolated tests | +| `createProviderUsageFetch` | Build provider usage fetch fixtures | +| `useFrozenTime` / `useRealTime` | Freeze and restore timers for time-sensitive tests | +| `createRuntimeEnv` | Build a mocked CLI/plugin runtime environment | +| `createTestWizardPrompter` | Build a mocked setup wizard prompter | +| `createPluginSetupWizardStatus` | Build setup status helpers for channel plugins | +| `createRuntimeTaskFlow` | Create isolated runtime task-flow state | +| `typedCases` | Preserve literal types for table-driven tests | + +Bundled-plugin contract suites also use this subpath for test-only registry, +manifest, public-artifact, and runtime fixture helpers. Keep new extension tests +on `openclaw/plugin-sdk/testing` or a narrower documented SDK subpath rather +than importing repo `src/**` files directly. ### Types