Skip to content

Commit b64b821

Browse files
committed
Auto-merge upstream openclaw/openclaw
2 parents 757eb17 + 37e667c commit b64b821

115 files changed

Lines changed: 1694 additions & 1503 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/plugins/sdk-migration.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,7 @@ Current bundled provider examples:
262262
| `plugin-sdk/request-url` | Request URL helpers | Extract string URLs from request-like inputs |
263263
| `plugin-sdk/run-command` | Timed command helpers | Timed command runner with normalized stdout/stderr |
264264
| `plugin-sdk/param-readers` | Param readers | Common tool/CLI param readers |
265+
| `plugin-sdk/tool-payload` | Tool payload extraction | Extract normalized payloads from tool result objects |
265266
| `plugin-sdk/tool-send` | Tool send extraction | Extract canonical send target fields from tool args |
266267
| `plugin-sdk/temp-path` | Temp path helpers | Shared temp-download path helpers |
267268
| `plugin-sdk/logging-core` | Logging helpers | Subsystem logger and redaction helpers |
@@ -279,7 +280,8 @@ Current bundled provider examples:
279280
| `plugin-sdk/provider-onboard` | Provider onboarding patches | Onboarding config helpers |
280281
| `plugin-sdk/provider-http` | Provider HTTP helpers | Generic provider HTTP/endpoint capability helpers |
281282
| `plugin-sdk/provider-web-fetch` | Provider web-fetch helpers | Web-fetch provider registration/cache helpers |
282-
| `plugin-sdk/provider-web-search-contract` | Provider web-search contract helpers | Narrow web-search config/credential contract helpers such as `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, and scoped credential setters/getters |
283+
| `plugin-sdk/provider-web-search-config-contract` | Provider web-search config helpers | Narrow web-search config/credential helpers for providers that do not need plugin-enable wiring |
284+
| `plugin-sdk/provider-web-search-contract` | Provider web-search contract helpers | Narrow web-search config/credential contract helpers such as `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, and scoped credential setters/getters |
283285
| `plugin-sdk/provider-web-search` | Provider web-search helpers | Web-search provider registration/cache/runtime helpers |
284286
| `plugin-sdk/provider-tools` | Provider tool/schema compat helpers | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, Gemini schema cleanup + diagnostics, and xAI compat helpers such as `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
285287
| `plugin-sdk/provider-usage` | Provider usage helpers | `fetchClaudeUsage`, `fetchGeminiUsage`, `fetchGithubCopilotUsage`, and other provider usage helpers |

docs/plugins/sdk-overview.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,8 @@ explicitly promotes one as public.
135135
| `plugin-sdk/provider-http` | Generic provider HTTP/endpoint capability helpers |
136136
| `plugin-sdk/provider-web-fetch-contract` | Narrow web-fetch config/selection contract helpers such as `enablePluginInConfig` and `WebFetchProviderPlugin` |
137137
| `plugin-sdk/provider-web-fetch` | Web-fetch provider registration/cache helpers |
138-
| `plugin-sdk/provider-web-search-contract` | Narrow web-search config/credential contract helpers such as `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, and scoped credential setters/getters |
138+
| `plugin-sdk/provider-web-search-config-contract` | Narrow web-search config/credential helpers for providers that do not need plugin-enable wiring |
139+
| `plugin-sdk/provider-web-search-contract` | Narrow web-search config/credential contract helpers such as `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, and scoped credential setters/getters |
139140
| `plugin-sdk/provider-web-search` | Web-search provider registration/cache/runtime helpers |
140141
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, Gemini schema cleanup + diagnostics, and xAI compat helpers such as `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
141142
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` and similar |
@@ -200,6 +201,7 @@ explicitly promotes one as public.
200201
| `plugin-sdk/request-url` | Extract string URLs from fetch/request-like inputs |
201202
| `plugin-sdk/run-command` | Timed command runner with normalized stdout/stderr results |
202203
| `plugin-sdk/param-readers` | Common tool/CLI param readers |
204+
| `plugin-sdk/tool-payload` | Extract normalized payloads from tool result objects |
203205
| `plugin-sdk/tool-send` | Extract canonical send target fields from tool args |
204206
| `plugin-sdk/temp-path` | Shared temp-download path helpers |
205207
| `plugin-sdk/logging-core` | Subsystem logger and redaction helpers |

extensions/bluebubbles/src/accounts.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
resolveMergedAccountConfig,
55
} from "openclaw/plugin-sdk/account-resolution";
66
import { resolveChannelStreamingChunkMode } from "openclaw/plugin-sdk/channel-streaming";
7-
import type { OpenClawConfig } from "openclaw/plugin-sdk/core";
7+
import type { OpenClawConfig } from "openclaw/plugin-sdk/config-runtime";
88
import { isBlockedHostnameOrIp } from "openclaw/plugin-sdk/ssrf-runtime";
99
import { normalizeOptionalString } from "openclaw/plugin-sdk/text-runtime";
1010
import { hasConfiguredSecretInput, normalizeSecretInputString } from "./secret-input.js";

extensions/bluebubbles/src/channel.setup.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { ChannelPlugin } from "openclaw/plugin-sdk/core";
1+
import type { ChannelPlugin } from "openclaw/plugin-sdk/channel-core";
22
import { type ResolvedBlueBubblesAccount } from "./accounts.js";
33
import {
44
bluebubblesCapabilities,

extensions/bluebubbles/src/config-apply.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/account-id";
2-
import type { OpenClawConfig } from "openclaw/plugin-sdk/core";
2+
import type { OpenClawConfig } from "openclaw/plugin-sdk/config-runtime";
33

44
type BlueBubblesConfigPatch = {
55
serverUrl?: string;

extensions/bluebubbles/src/config-ui-hints.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { ChannelConfigUiHint } from "openclaw/plugin-sdk/core";
1+
import type { ChannelConfigUiHint } from "openclaw/plugin-sdk/channel-core";
22

33
export const bluebubblesChannelConfigUiHints = {
44
"": {

extensions/bluebubbles/src/monitor-shared.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { OpenClawConfig } from "openclaw/plugin-sdk/core";
1+
import type { OpenClawConfig } from "openclaw/plugin-sdk/config-runtime";
22
import type { ResolvedBlueBubblesAccount } from "./accounts.js";
33
import { getBlueBubblesRuntime } from "./runtime.js";
44
export {
Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,11 @@
11
import {
2-
resolveProviderWebSearchPluginConfig,
3-
setProviderWebSearchPluginConfigValue,
2+
createWebSearchProviderContractFields,
43
type WebSearchProviderPlugin,
5-
} from "openclaw/plugin-sdk/provider-web-search-contract";
6-
7-
function getTopLevelCredentialValue(searchConfig?: Record<string, unknown>): unknown {
8-
return searchConfig?.apiKey;
9-
}
10-
11-
function setTopLevelCredentialValue(
12-
searchConfigTarget: Record<string, unknown>,
13-
value: unknown,
14-
): void {
15-
searchConfigTarget.apiKey = value;
16-
}
4+
} from "openclaw/plugin-sdk/provider-web-search-config-contract";
175

186
export function createBraveWebSearchProvider(): WebSearchProviderPlugin {
7+
const credentialPath = "plugins.entries.brave.config.webSearch.apiKey";
8+
199
return {
2010
id: "brave",
2111
label: "Brave Search",
@@ -27,15 +17,12 @@ export function createBraveWebSearchProvider(): WebSearchProviderPlugin {
2717
signupUrl: "https://brave.com/search/api/",
2818
docsUrl: "https://docs.openclaw.ai/brave-search",
2919
autoDetectOrder: 10,
30-
credentialPath: "plugins.entries.brave.config.webSearch.apiKey",
31-
inactiveSecretPaths: ["plugins.entries.brave.config.webSearch.apiKey"],
32-
getCredentialValue: getTopLevelCredentialValue,
33-
setCredentialValue: setTopLevelCredentialValue,
34-
getConfiguredCredentialValue: (config) =>
35-
resolveProviderWebSearchPluginConfig(config, "brave")?.apiKey,
36-
setConfiguredCredentialValue: (configTarget, value) => {
37-
setProviderWebSearchPluginConfigValue(configTarget, "brave", "apiKey", value);
38-
},
20+
credentialPath,
21+
...createWebSearchProviderContractFields({
22+
credentialPath,
23+
searchCredential: { type: "top-level" },
24+
configuredCredential: { pluginId: "brave" },
25+
}),
3926
createTool: () => null,
4027
};
4128
}

extensions/browser/cli-metadata.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { definePluginEntry } from "openclaw/plugin-sdk/core";
1+
import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
22

33
export default definePluginEntry({
44
id: "browser",

extensions/diffs/src/config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { buildPluginConfigSchema } from "openclaw/plugin-sdk/core";
1+
import { buildPluginConfigSchema } from "openclaw/plugin-sdk/plugin-entry";
22
import { z } from "openclaw/plugin-sdk/zod";
33
import type { OpenClawPluginConfigSchema } from "../api.js";
44
import {

0 commit comments

Comments
 (0)