Compare commits

...

10 Commits

Author SHA1 Message Date
Peter Steinberger
dc8790d3b4 test(config): use synthetic external channel schema fixture 2026-05-16 01:18:17 +01:00
Peter Steinberger
46aab166e5 fix(release): preserve external channel validation metadata 2026-05-16 01:07:33 +01:00
Peter Steinberger
4813db0e29 test(codex): avoid runtime normalization in option forwarding check 2026-05-16 00:27:39 +01:00
Peter Steinberger
0a67707271 test(codex): make tool-search filter check deterministic 2026-05-16 00:16:10 +01:00
Peter Steinberger
1bee5b82d4 test(release): stabilize beta validation gates 2026-05-16 00:06:02 +01:00
Peter Steinberger
476f58ee51 fix(codex): filter tool search controls from app-server tools 2026-05-15 23:56:14 +01:00
Peter Steinberger
aa53a29c1f fix(release): repair beta validation regressions 2026-05-15 23:35:08 +01:00
Peter Steinberger
cd63bcb056 test(cron): tighten model selection fixture types 2026-05-15 23:00:33 +01:00
Peter Steinberger
0a1d6d8c3b chore(release): refresh 2026.5.16 beta sdk baseline 2026-05-15 22:54:32 +01:00
Peter Steinberger
13e5261918 chore(release): prepare 2026.5.16 beta 1 2026-05-15 22:52:36 +01:00
141 changed files with 390 additions and 299 deletions

View File

@@ -1,2 +1,2 @@
eed14a427f34d1531d63e5f1065ef2325b46f77e5a16ce809e5e845cd6700769 plugin-sdk-api-baseline.json
d8d090e4858f8d619b2151d69b8dc992132bc8930e04b990e4a69a433fb19d41 plugin-sdk-api-baseline.jsonl
ce6bf8871dc2fa3a59811fb2ea3b3edbe3c90f9d603f8ab88d302974931c800a plugin-sdk-api-baseline.json
3dd56e9757d45f95b2a6df81b662ad14a592ba432ea5a46260101e72be5b87eb plugin-sdk-api-baseline.jsonl

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/acpx",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw ACP runtime backend",
"repository": {
"type": "git",
@@ -26,10 +26,10 @@
"minHostVersion": ">=2026.4.25"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16",
"openclawVersion": "2026.5.16-beta.1",
"staticAssets": [
{
"source": "./src/runtime-internals/mcp-proxy.mjs",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/admin-http-rpc",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw admin HTTP RPC endpoint",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/alibaba-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Alibaba Model Studio video provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/amazon-bedrock-mantle-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw Amazon Bedrock Mantle (OpenAI-compatible) provider plugin",
"repository": {
"type": "git",
@@ -25,10 +25,10 @@
"minHostVersion": ">=2026.5.12-beta.1"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16",
"openclawVersion": "2026.5.16-beta.1",
"bundledDist": false
},
"release": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/amazon-bedrock-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw Amazon Bedrock provider plugin",
"repository": {
"type": "git",
@@ -27,10 +27,10 @@
"minHostVersion": ">=2026.5.12-beta.1"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16",
"openclawVersion": "2026.5.16-beta.1",
"bundledDist": false
},
"release": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/anthropic-vertex-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw Anthropic Vertex provider plugin",
"repository": {
"type": "git",
@@ -25,10 +25,10 @@
"minHostVersion": ">=2026.5.12-beta.1"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16",
"openclawVersion": "2026.5.16-beta.1",
"bundledDist": false
},
"release": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/anthropic-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Anthropic provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/arcee-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Arcee provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/azure-speech",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Azure Speech plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/bonjour",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw Bonjour/mDNS gateway discovery",
"type": "module",
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/brave-plugin",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw Brave plugin",
"repository": {
"type": "git",
@@ -20,10 +20,10 @@
"minHostVersion": ">=2026.4.10"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16"
"openclawVersion": "2026.5.16-beta.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/browser-plugin",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw browser tool plugin",
"type": "module",

View File

@@ -356,7 +356,8 @@ describe("basic browser routes", () => {
expect(isTransportAvailable).toHaveBeenCalledTimes(1);
expect(isTransportAvailable).toHaveBeenCalledWith(5_000);
const [timeoutMs, reachabilityOptions] = readFirstReachabilityCall(isReachable);
expect(timeoutMs).toBe(7_000);
expect(timeoutMs).toBeGreaterThanOrEqual(6_900);
expect(timeoutMs).toBeLessThanOrEqual(7_000);
expect(reachabilityOptions?.ephemeral).toBe(true);
expect(reachabilityOptions?.signal).toBeInstanceOf(AbortSignal);
expect(isHttpReachable).not.toHaveBeenCalled();

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/byteplus-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw BytePlus provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/canvas-plugin",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Canvas plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/cerebras-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Cerebras provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/chutes-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Chutes.ai provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/clickclack",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw ClickClack channel plugin",
"type": "module",
@@ -18,7 +18,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/cloudflare-ai-gateway-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Cloudflare AI Gateway provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/codex",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw Codex harness and model provider plugin",
"repository": {
"type": "git",
@@ -27,10 +27,10 @@
"minHostVersion": ">=2026.5.1-beta.1"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16"
"openclawVersion": "2026.5.16-beta.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -8,6 +8,10 @@ export const CODEX_APP_SERVER_OWNED_DYNAMIC_TOOL_EXCLUDES = [
"exec",
"process",
"update_plan",
"tool_search_code",
"tool_search",
"tool_describe",
"tool_call",
] as const;
const DYNAMIC_TOOL_NAME_ALIASES: Record<string, string> = {

View File

@@ -786,32 +786,17 @@ describe("runCodexAppServerAttempt", () => {
expect((await readCodexAppServerBinding(sessionFile))?.mcpServersFingerprint).toBeUndefined();
});
it("does not expose OpenClaw Tool Search controls through Codex dynamic tools", async () => {
const sessionFile = path.join(tempDir, "session.jsonl");
const workspaceDir = path.join(tempDir, "workspace");
const params = createParams(sessionFile, workspaceDir);
params.disableTools = false;
params.config = {
tools: {
toolSearch: true,
},
};
const sandboxSessionKey = params.sessionKey;
if (!sandboxSessionKey) {
throw new Error("createParams must provide a sessionKey for Codex dynamic tool tests.");
}
const tools = await __testing.buildDynamicTools({
params,
resolvedWorkspace: workspaceDir,
effectiveWorkspace: workspaceDir,
sandboxSessionKey,
sandbox: null as never,
runAbortController: new AbortController(),
sessionAgentId: "main",
pluginConfig: {},
onYieldDetected: () => undefined,
});
it("does not expose OpenClaw Tool Search controls through Codex dynamic tools", () => {
const tools = __testing.filterCodexDynamicTools(
[
createRuntimeDynamicTool("message"),
createRuntimeDynamicTool("tool_search_code"),
createRuntimeDynamicTool("tool_search"),
createRuntimeDynamicTool("tool_describe"),
createRuntimeDynamicTool("tool_call"),
],
{},
);
const bridge = createCodexDynamicToolBridge({
tools,
signal: new AbortController().signal,
@@ -819,12 +804,13 @@ describe("runCodexAppServerAttempt", () => {
});
const dynamicToolNames = bridge.specs.map((tool) => tool.name);
expect(dynamicToolNames).toContain("message");
for (const toolName of ["tool_search_code", "tool_search", "tool_describe", "tool_call"]) {
expect(dynamicToolNames).not.toContain(toolName);
}
});
it("passes auth profiles into Codex dynamic tool construction", async () => {
it("passes auth profiles into Codex dynamic tool construction", () => {
const sessionFile = path.join(tempDir, "session.jsonl");
const workspaceDir = path.join(tempDir, "workspace");
const params = createParams(sessionFile, workspaceDir);
@@ -841,13 +827,7 @@ describe("runCodexAppServerAttempt", () => {
params.disableTools = false;
params.authProfileStore = authProfileStore;
const factoryOptions: unknown[] = [];
__testing.setOpenClawCodingToolsFactoryForTests((options) => {
factoryOptions.push(options);
return [];
});
await __testing.buildDynamicTools({
const toolOptions = __testing.buildOpenClawCodingToolsOptions({
params,
resolvedWorkspace: workspaceDir,
effectiveWorkspace: workspaceDir,
@@ -859,10 +839,7 @@ describe("runCodexAppServerAttempt", () => {
onYieldDetected: () => undefined,
});
expect(factoryOptions).toHaveLength(1);
expect((factoryOptions[0] as { authProfileStore?: unknown }).authProfileStore).toBe(
authProfileStore,
);
expect(toolOptions.authProfileStore).toBe(authProfileStore);
});
it("normalizes Codex dynamic toolsAllow entries before filtering", () => {

View File

@@ -2259,18 +2259,15 @@ function resolveOpenClawCodingToolsSessionKeys(
};
}
async function buildDynamicTools(input: DynamicToolBuildParams) {
function buildOpenClawCodingToolsOptions(
input: DynamicToolBuildParams,
): OpenClawCodingToolsOptions {
const { params } = input;
if (params.disableTools || !supportsModelTools(params.model)) {
return [];
}
const modelHasVision = params.model.input?.includes("image") ?? false;
const agentDir = params.agentDir ?? resolveAgentDir(params.config ?? {}, input.sessionAgentId);
const createOpenClawCodingTools =
openClawCodingToolsFactoryForTests ??
(await import("openclaw/plugin-sdk/agent-harness")).createOpenClawCodingTools;
const sessionKeys = resolveOpenClawCodingToolsSessionKeys(params, input.sandboxSessionKey);
const allTools = createOpenClawCodingTools({
return {
agentId: input.sessionAgentId,
...buildEmbeddedAttemptToolRunContext(params),
exec: {
@@ -2337,10 +2334,22 @@ async function buildDynamicTools(input: DynamicToolBuildParams) {
});
input.runAbortController.abort("sessions_yield");
},
});
};
}
async function buildDynamicTools(input: DynamicToolBuildParams) {
const { params } = input;
if (params.disableTools || !supportsModelTools(params.model)) {
return [];
}
const createOpenClawCodingTools =
openClawCodingToolsFactoryForTests ??
(await import("openclaw/plugin-sdk/agent-harness")).createOpenClawCodingTools;
const toolOptions = buildOpenClawCodingToolsOptions(input);
const allTools = createOpenClawCodingTools(toolOptions);
const codexFilteredTools = filterCodexDynamicTools(allTools, input.pluginConfig);
const visionFilteredTools = filterToolsForVisionInputs(codexFilteredTools, {
modelHasVision,
modelHasVision: toolOptions.modelHasVision ?? false,
hasInboundImages: (params.images?.length ?? 0) > 0,
});
const toolsAllow = includeForcedMessageToolAllow(params.toolsAllow, params);
@@ -3282,6 +3291,7 @@ export const __testing = {
createCodexSteeringQueue,
buildCodexNativeHookRelayId,
filterCodexDynamicTools,
buildOpenClawCodingToolsOptions,
buildDynamicTools,
filterCodexDynamicToolsForAllowlist,
filterToolsForVisionInputs,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/comfy-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw ComfyUI provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/copilot-proxy",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Copilot Proxy provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/deepgram-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Deepgram media-understanding provider",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/deepinfra-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw DeepInfra provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/deepseek-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw DeepSeek provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/diagnostics-otel",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw diagnostics OpenTelemetry exporter",
"repository": {
"type": "git",
@@ -34,10 +34,10 @@
"minHostVersion": ">=2026.4.25"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16"
"openclawVersion": "2026.5.16-beta.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/diagnostics-prometheus",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw diagnostics Prometheus exporter",
"repository": {
"type": "git",
@@ -21,10 +21,10 @@
"minHostVersion": ">=2026.4.25"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16"
"openclawVersion": "2026.5.16-beta.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/diffs",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw diff viewer plugin",
"repository": {
"type": "git",
@@ -31,10 +31,10 @@
"minHostVersion": ">=2026.4.30"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16",
"openclawVersion": "2026.5.16-beta.1",
"staticAssets": [
{
"source": "./assets/viewer-runtime.js",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/discord",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw Discord channel plugin",
"repository": {
"type": "git",
@@ -21,7 +21,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -65,10 +65,10 @@
"allowInvalidConfigRecovery": true
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16"
"openclawVersion": "2026.5.16-beta.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/document-extract-plugin",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw local document extraction plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/duckduckgo-plugin",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw DuckDuckGo plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/elevenlabs-speech",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw ElevenLabs speech plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/exa-plugin",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Exa plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/fal-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw fal provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/feishu",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw Feishu/Lark channel plugin (community maintained by @m1heng)",
"repository": {
"type": "git",
@@ -17,7 +17,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -48,10 +48,10 @@
"minHostVersion": ">=2026.4.25"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16"
"openclawVersion": "2026.5.16-beta.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/file-transfer",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw file transfer plugin (file_fetch, dir_list, dir_fetch, file_write)",
"type": "module",
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/firecrawl-plugin",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Firecrawl plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/fireworks-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Fireworks provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/github-copilot-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw GitHub Copilot provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/google-meet",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw Google Meet participant plugin",
"repository": {
"type": "git",
@@ -16,7 +16,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -33,10 +33,10 @@
"minHostVersion": ">=2026.4.20"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16"
"openclawVersion": "2026.5.16-beta.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/google-plugin",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Google plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/googlechat",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw Google Chat channel plugin",
"repository": {
"type": "git",
@@ -17,7 +17,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -75,10 +75,10 @@
"minHostVersion": ">=2026.4.10"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16"
"openclawVersion": "2026.5.16-beta.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/gradium-speech",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Gradium speech plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/groq-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Groq media-understanding provider",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/huggingface-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Hugging Face provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/image-generation-core",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw image generation runtime package",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/imessage",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw iMessage channel plugin using imsg on a signed-in Mac",
"type": "module",
@@ -40,10 +40,10 @@
]
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16"
"openclawVersion": "2026.5.16-beta.1"
}
},
"pluginInspector": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/inworld-speech",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Inworld speech plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/irc",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw IRC channel plugin",
"type": "module",
"devDependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/kilocode-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Kilo Gateway provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/kimi-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Kimi provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/line",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw LINE channel plugin",
"repository": {
"type": "git",
@@ -16,7 +16,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -46,10 +46,10 @@
"minHostVersion": ">=2026.4.10"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16"
"openclawVersion": "2026.5.16-beta.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/litellm-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw LiteLLM provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/llm-task",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw JSON-only LLM task plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/lmstudio-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw LM Studio provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/lobster",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "Lobster workflow tool plugin (typed pipelines + resumable approvals)",
"repository": {
"type": "git",
@@ -25,10 +25,10 @@
"minHostVersion": ">=2026.4.25"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16"
"openclawVersion": "2026.5.16-beta.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/matrix",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw Matrix channel plugin",
"repository": {
"type": "git",
@@ -22,7 +22,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -87,10 +87,10 @@
"allowInvalidConfigRecovery": true
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16"
"openclawVersion": "2026.5.16-beta.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/mattermost",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw Mattermost channel plugin",
"repository": {
"type": "git",
@@ -16,7 +16,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/media-understanding-core",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw media understanding runtime package",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/memory-core",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw core memory search plugin",
"type": "module",
@@ -14,7 +14,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/memory-lancedb",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw LanceDB-backed long-term memory plugin with auto-recall/capture",
"repository": {
"type": "git",
@@ -26,10 +26,10 @@
"minHostVersion": ">=2026.4.10"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16"
"openclawVersion": "2026.5.16-beta.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/memory-wiki",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw persistent wiki plugin",
"type": "module",
@@ -14,7 +14,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/microsoft-foundry",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Microsoft Foundry provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/microsoft-speech",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Microsoft speech plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/migrate-claude",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "Claude to OpenClaw migration provider",
"type": "module",
@@ -9,7 +9,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/migrate-hermes",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "Hermes to OpenClaw migration provider",
"type": "module",
@@ -12,7 +12,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/minimax-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw MiniMax provider and OAuth plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/mistral-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Mistral provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/moonshot-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Moonshot provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/msteams",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw Microsoft Teams channel plugin",
"repository": {
"type": "git",
@@ -22,7 +22,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -58,10 +58,10 @@
"minHostVersion": ">=2026.4.10"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16"
"openclawVersion": "2026.5.16-beta.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/nextcloud-talk",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw Nextcloud Talk channel plugin",
"repository": {
"type": "git",
@@ -12,7 +12,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -44,10 +44,10 @@
"minHostVersion": ">=2026.4.10"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16"
"openclawVersion": "2026.5.16-beta.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/nostr",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw Nostr channel plugin for NIP-04 encrypted DMs",
"repository": {
"type": "git",
@@ -16,7 +16,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -54,10 +54,10 @@
"minHostVersion": ">=2026.4.10"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16"
"openclawVersion": "2026.5.16-beta.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/nvidia-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw NVIDIA provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/oc-path",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw oc:// workspace path plugin",
"type": "module",
@@ -14,7 +14,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/ollama-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Ollama provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/open-prose",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenProse VM skill pack plugin (slash command + telemetry).",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/openai-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw OpenAI provider plugins",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/opencode-go-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw OpenCode Go provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/opencode-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw OpenCode Zen provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/openrouter-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw OpenRouter provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/openshell-sandbox",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw OpenShell sandbox backend",
"repository": {
"type": "git",
@@ -24,10 +24,10 @@
"minHostVersion": ">=2026.5.12-beta.1"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16",
"openclawVersion": "2026.5.16-beta.1",
"bundledDist": false
},
"release": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/perplexity-plugin",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Perplexity plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/qa-channel",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw QA synthetic channel plugin",
"type": "module",
@@ -19,7 +19,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/qa-lab",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw QA lab plugin with private debugger UI and scenario runner",
"type": "module",
@@ -19,7 +19,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -31,7 +31,7 @@
"./index.ts"
],
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
}
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/qa-matrix",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Matrix QA runner plugin",
"type": "module",
@@ -13,7 +13,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -25,7 +25,7 @@
"./index.ts"
],
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
}
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/qianfan-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Qianfan provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/qqbot",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": false,
"description": "OpenClaw QQ Bot channel plugin",
"repository": {
@@ -21,7 +21,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -50,10 +50,10 @@
"minHostVersion": ">=2026.4.10"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16"
"openclawVersion": "2026.5.16-beta.1"
},
"release": {
"publishToClawHub": true,

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/qwen-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Qwen Cloud provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/runway-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Runway video provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/searxng-plugin",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw SearXNG plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/senseaudio-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw SenseAudio media-understanding provider",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/sglang-provider",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw SGLang provider plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/signal",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw Signal channel plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/skill-workshop",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"private": true,
"description": "OpenClaw skill workshop plugin",
"type": "module",

View File

@@ -1,6 +1,6 @@
{
"name": "@openclaw/slack",
"version": "2026.5.16",
"version": "2026.5.16-beta.1",
"description": "OpenClaw Slack channel plugin",
"repository": {
"type": "git",
@@ -20,7 +20,7 @@
"openclaw": "workspace:*"
},
"peerDependencies": {
"openclaw": ">=2026.5.16"
"openclaw": ">=2026.5.16-beta.1"
},
"peerDependenciesMeta": {
"openclaw": {
@@ -64,10 +64,10 @@
"minHostVersion": ">=2026.5.12-beta.1"
},
"compat": {
"pluginApi": ">=2026.5.16"
"pluginApi": ">=2026.5.16-beta.1"
},
"build": {
"openclawVersion": "2026.5.16",
"openclawVersion": "2026.5.16-beta.1",
"bundledDist": false
},
"release": {

View File

@@ -80,12 +80,14 @@ describe("sendMessageSlack customize-scope fallback", () => {
expect(firstCall).toEqual({
channel: "C123",
text: "hello",
unfurl_links: false,
username: "Bot",
icon_url: "https://example.com/bot.png",
});
expect(secondCall).toEqual({
channel: "C123",
text: "hello",
unfurl_links: false,
});
expect(vi.mocked(logVerbose)).toHaveBeenCalledWith(
"slack send: missing chat:write.customize, retrying without custom identity",

Some files were not shown because too many files have changed in this diff Show More