diff --git a/extensions/deepgram/openclaw.plugin.json b/extensions/deepgram/openclaw.plugin.json index 53abbf0d36a..7d148b7c720 100644 --- a/extensions/deepgram/openclaw.plugin.json +++ b/extensions/deepgram/openclaw.plugin.json @@ -1,3 +1,8 @@ { - "id": "deepgram" + "id": "deepgram", + "configSchema": { + "type": "object", + "additionalProperties": false, + "properties": {} + } } diff --git a/extensions/groq/openclaw.plugin.json b/extensions/groq/openclaw.plugin.json index 51fe2b4e7ed..5ab0133764b 100644 --- a/extensions/groq/openclaw.plugin.json +++ b/extensions/groq/openclaw.plugin.json @@ -1,3 +1,8 @@ { - "id": "groq" + "id": "groq", + "configSchema": { + "type": "object", + "additionalProperties": false, + "properties": {} + } } diff --git a/extensions/line/src/accounts.ts b/extensions/line/src/accounts.ts index 19ea02b9a64..02c424c3159 100644 --- a/extensions/line/src/accounts.ts +++ b/extensions/line/src/accounts.ts @@ -5,7 +5,7 @@ import { } from "openclaw/plugin-sdk/account-id"; import type { OpenClawConfig } from "openclaw/plugin-sdk/account-resolution"; import { resolveAccountEntry } from "openclaw/plugin-sdk/account-resolution"; -import { tryReadSecretFileSync } from "../../../src/infra/secret-file.js"; +import { tryReadSecretFileSync } from "openclaw/plugin-sdk/infra-runtime"; import type { LineAccountConfig, LineConfig, diff --git a/extensions/voice-call/src/providers/twilio/api.test.ts b/extensions/voice-call/src/providers/twilio/api.test.ts index 5fb761a3257..9ab950a6576 100644 --- a/extensions/voice-call/src/providers/twilio/api.test.ts +++ b/extensions/voice-call/src/providers/twilio/api.test.ts @@ -37,7 +37,9 @@ describe("twilioApiRequest", () => { }, }), ); - expect(String(init?.body)).toBe("To=%2B14155550123&StatusCallbackEvent=initiated&StatusCallbackEvent=completed"); + expect(String(init?.body)).toBe( + "To=%2B14155550123&StatusCallbackEvent=initiated&StatusCallbackEvent=completed", + ); }); it("passes through URLSearchParams, allows 404s, and returns undefined for empty bodies", async () => { @@ -70,7 +72,9 @@ describe("twilioApiRequest", () => { }); it("throws twilio api errors for non-ok responses", async () => { - globalThis.fetch = vi.fn(async () => new Response("bad request", { status: 400 })) as typeof fetch; + globalThis.fetch = vi.fn( + async () => new Response("bad request", { status: 400 }), + ) as typeof fetch; await expect( twilioApiRequest({ diff --git a/extensions/voice-call/src/webhook/stale-call-reaper.test.ts b/extensions/voice-call/src/webhook/stale-call-reaper.test.ts index a7f2528513b..1918af8856a 100644 --- a/extensions/voice-call/src/webhook/stale-call-reaper.test.ts +++ b/extensions/voice-call/src/webhook/stale-call-reaper.test.ts @@ -19,7 +19,9 @@ describe("startStaleCallReaper", () => { }; expect(startStaleCallReaper({ manager: manager as never })).toBeNull(); - expect(startStaleCallReaper({ manager: manager as never, staleCallReaperSeconds: 0 })).toBeNull(); + expect( + startStaleCallReaper({ manager: manager as never, staleCallReaperSeconds: 0 }), + ).toBeNull(); }); it("reaps stale calls and ignores fresh ones", async () => { @@ -76,7 +78,10 @@ describe("startStaleCallReaper", () => { await vi.advanceTimersByTimeAsync(30_000); await Promise.resolve(); - expect(warn).toHaveBeenCalledWith("[voice-call] Reaper failed to end call call-stale:", expect.any(Error)); + expect(warn).toHaveBeenCalledWith( + "[voice-call] Reaper failed to end call call-stale:", + expect.any(Error), + ); stop?.(); }); diff --git a/src/plugin-sdk/temp-path.test.ts b/src/plugin-sdk/temp-path.test.ts index 62e05415ecd..17f56bfd1ea 100644 --- a/src/plugin-sdk/temp-path.test.ts +++ b/src/plugin-sdk/temp-path.test.ts @@ -27,7 +27,7 @@ describe("buildRandomTempFilePath", () => { const resolved = path.resolve(result); const rel = path.relative(tmpRoot, resolved); expect(rel === ".." || rel.startsWith(`..${path.sep}`)).toBe(false); - expect(path.basename(result)).toBe("line-media-123-abc.jpg"); + expect(path.basename(result)).toBe("channels-media-123-abc.jpg"); expect(result).not.toContain(".."); }); }); diff --git a/src/plugins/bundled-plugin-metadata.generated.ts b/src/plugins/bundled-plugin-metadata.generated.ts index 66aad6f98df..40d3bd5c5bc 100644 --- a/src/plugins/bundled-plugin-metadata.generated.ts +++ b/src/plugins/bundled-plugin-metadata.generated.ts @@ -468,6 +468,28 @@ export const GENERATED_BUNDLED_PLUGIN_METADATA = [ ], }, }, + { + dirName: "deepgram", + idHint: "deepgram", + source: { + source: "./index.ts", + built: "index.js", + }, + packageName: "@openclaw/deepgram-provider", + packageVersion: "2026.3.14", + packageDescription: "OpenClaw Deepgram media-understanding provider", + packageManifest: { + extensions: ["./index.ts"], + }, + manifest: { + id: "deepgram", + configSchema: { + type: "object", + additionalProperties: false, + properties: {}, + }, + }, + }, { dirName: "diagnostics-otel", idHint: "diagnostics-otel", @@ -1049,6 +1071,28 @@ export const GENERATED_BUNDLED_PLUGIN_METADATA = [ channels: ["googlechat"], }, }, + { + dirName: "groq", + idHint: "groq", + source: { + source: "./index.ts", + built: "index.js", + }, + packageName: "@openclaw/groq-provider", + packageVersion: "2026.3.14", + packageDescription: "OpenClaw Groq media-understanding provider", + packageManifest: { + extensions: ["./index.ts"], + }, + manifest: { + id: "groq", + configSchema: { + type: "object", + additionalProperties: false, + properties: {}, + }, + }, + }, { dirName: "huggingface", idHint: "huggingface",