Skip to content

Commit 662031a

Browse files
committed
feat(plugins): add speech provider registration
1 parent ad05cd9 commit 662031a

35 files changed

Lines changed: 658 additions & 286 deletions

extensions/elevenlabs/index.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { emptyPluginConfigSchema, type OpenClawPluginApi } from "openclaw/plugin-sdk/core";
2+
import { buildElevenLabsSpeechProvider } from "../../src/tts/providers/elevenlabs.js";
3+
4+
const elevenLabsPlugin = {
5+
id: "elevenlabs",
6+
name: "ElevenLabs Speech",
7+
description: "Bundled ElevenLabs speech provider",
8+
configSchema: emptyPluginConfigSchema(),
9+
register(api: OpenClawPluginApi) {
10+
api.registerSpeechProvider(buildElevenLabsSpeechProvider());
11+
},
12+
};
13+
14+
export default elevenLabsPlugin;
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"id": "elevenlabs",
3+
"configSchema": {
4+
"type": "object",
5+
"additionalProperties": false,
6+
"properties": {}
7+
}
8+
}

extensions/elevenlabs/package.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"name": "@openclaw/elevenlabs-speech",
3+
"version": "2026.3.14",
4+
"private": true,
5+
"description": "OpenClaw ElevenLabs speech plugin",
6+
"type": "module",
7+
"openclaw": {
8+
"extensions": [
9+
"./index.ts"
10+
]
11+
}
12+
}

extensions/lobster/src/lobster-tool.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ function fakeApi(overrides: Partial<OpenClawPluginApi> = {}): OpenClawPluginApi
4444
registerCli() {},
4545
registerService() {},
4646
registerProvider() {},
47+
registerSpeechProvider() {},
4748
registerWebSearchProvider() {},
4849
registerInteractiveHandler() {},
4950
registerHook() {},

extensions/microsoft/index.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { emptyPluginConfigSchema, type OpenClawPluginApi } from "openclaw/plugin-sdk/core";
2+
import { buildMicrosoftSpeechProvider } from "../../src/tts/providers/microsoft.js";
3+
4+
const microsoftPlugin = {
5+
id: "microsoft",
6+
name: "Microsoft Speech",
7+
description: "Bundled Microsoft speech provider",
8+
configSchema: emptyPluginConfigSchema(),
9+
register(api: OpenClawPluginApi) {
10+
api.registerSpeechProvider(buildMicrosoftSpeechProvider());
11+
},
12+
};
13+
14+
export default microsoftPlugin;
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"id": "microsoft",
3+
"configSchema": {
4+
"type": "object",
5+
"additionalProperties": false,
6+
"properties": {}
7+
}
8+
}

extensions/microsoft/package.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"name": "@openclaw/microsoft-speech",
3+
"version": "2026.3.14",
4+
"private": true,
5+
"description": "OpenClaw Microsoft speech plugin",
6+
"type": "module",
7+
"openclaw": {
8+
"extensions": [
9+
"./index.ts"
10+
]
11+
}
12+
}

extensions/openai/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { emptyPluginConfigSchema, type OpenClawPluginApi } from "openclaw/plugin-sdk/core";
2+
import { buildOpenAISpeechProvider } from "../../src/tts/providers/openai.js";
23
import { buildOpenAICodexProviderPlugin } from "./openai-codex-provider.js";
34
import { buildOpenAIProvider } from "./openai-provider.js";
45

@@ -10,6 +11,7 @@ const openAIPlugin = {
1011
register(api: OpenClawPluginApi) {
1112
api.registerProvider(buildOpenAIProvider());
1213
api.registerProvider(buildOpenAICodexProviderPlugin());
14+
api.registerSpeechProvider(buildOpenAISpeechProvider());
1315
},
1416
};
1517

extensions/test-utils/plugin-api.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export function createTestPluginApi(api: TestPluginApiInput): OpenClawPluginApi
1515
registerCli() {},
1616
registerService() {},
1717
registerProvider() {},
18+
registerSpeechProvider() {},
1819
registerWebSearchProvider() {},
1920
registerInteractiveHandler() {},
2021
registerCommand() {},

extensions/voice-call/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ const voiceCallConfigSchema = {
8080
"streaming.streamPath": { label: "Media Stream Path", advanced: true },
8181
"tts.provider": {
8282
label: "TTS Provider Override",
83-
help: "Deep-merges with messages.tts (Edge is ignored for calls).",
83+
help: "Deep-merges with messages.tts (Microsoft is ignored for calls).",
8484
advanced: true,
8585
},
8686
"tts.openai.model": { label: "OpenAI TTS Model", advanced: true },

0 commit comments

Comments
 (0)