@alfe.ai/openclaw 0.0.45 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/dist/plugin2.cjs +40 -3
- package/dist/plugin2.js +40 -3
- package/package.json +13 -3
package/README.md
CHANGED
|
@@ -73,3 +73,8 @@ Register tools **before** this guard so they're available for CLI introspection.
|
|
|
73
73
|
Integration management (install, remove, configure, health) is handled by
|
|
74
74
|
the gateway service directly — this plugin does not process integration
|
|
75
75
|
commands.
|
|
76
|
+
|
|
77
|
+
## Links
|
|
78
|
+
|
|
79
|
+
- 🌐 Website: <https://alfe.ai>
|
|
80
|
+
- 📚 Docs: <https://docs.alfe.ai>
|
package/dist/plugin2.cjs
CHANGED
|
@@ -3181,6 +3181,42 @@ function buildIntegrationTools(client) {
|
|
|
3181
3181
|
})
|
|
3182
3182
|
];
|
|
3183
3183
|
}
|
|
3184
|
+
function buildVoiceTools(client) {
|
|
3185
|
+
return [defineTool({
|
|
3186
|
+
name: "list_voices",
|
|
3187
|
+
description: "List the available voices this agent can speak with (the ElevenLabs catalogue). Use this to pick or confirm a voice before calling set_voice with the chosen id.",
|
|
3188
|
+
parameters: Type.Object({}),
|
|
3189
|
+
handler: async () => {
|
|
3190
|
+
const { voices } = await client.listVoices();
|
|
3191
|
+
return { voices: voices.map((v) => ({
|
|
3192
|
+
id: v.id,
|
|
3193
|
+
name: v.name,
|
|
3194
|
+
description: v.description,
|
|
3195
|
+
labels: v.labels,
|
|
3196
|
+
category: v.category,
|
|
3197
|
+
previewUrl: v.previewUrl
|
|
3198
|
+
})) };
|
|
3199
|
+
}
|
|
3200
|
+
}), defineTool({
|
|
3201
|
+
name: "set_voice",
|
|
3202
|
+
description: "Change this agent's OWN voice. Pass a `voiceId` from list_voices. Optionally set `enabled` to turn voice on/off. Returns the updated voice config.",
|
|
3203
|
+
parameters: Type.Object({
|
|
3204
|
+
voiceId: Type.String({ description: "The ElevenLabs voice id to use, from list_voices (e.g. the `id` field)." }),
|
|
3205
|
+
enabled: Type.Optional(Type.Boolean({ description: "Enable or disable voice. Omit to leave the current on/off state unchanged." }))
|
|
3206
|
+
}),
|
|
3207
|
+
handler: async (params) => {
|
|
3208
|
+
const voiceId = params.voiceId;
|
|
3209
|
+
const enabled = params.enabled;
|
|
3210
|
+
return {
|
|
3211
|
+
updated: true,
|
|
3212
|
+
voiceConfig: (await client.updateSelf({ voiceConfig: {
|
|
3213
|
+
voiceId,
|
|
3214
|
+
...enabled === void 0 ? {} : { enabled }
|
|
3215
|
+
} })).voiceConfig
|
|
3216
|
+
};
|
|
3217
|
+
}
|
|
3218
|
+
})];
|
|
3219
|
+
}
|
|
3184
3220
|
const plugin = {
|
|
3185
3221
|
id: "@alfe.ai/openclaw",
|
|
3186
3222
|
name: "Alfe OpenClaw Plugin",
|
|
@@ -3195,12 +3231,13 @@ const plugin = {
|
|
|
3195
3231
|
log.warn(`Integration tools not registered — config not available: ${err.message}`);
|
|
3196
3232
|
}
|
|
3197
3233
|
if (cfg) {
|
|
3198
|
-
const
|
|
3234
|
+
const client = new _alfe_ai_agent_api_client.AgentApiClient({
|
|
3199
3235
|
apiKey: cfg.apiKey,
|
|
3200
3236
|
apiUrl: cfg.apiUrl
|
|
3201
|
-
})
|
|
3237
|
+
});
|
|
3238
|
+
const tools = [...buildIntegrationTools(client), ...buildVoiceTools(client)];
|
|
3202
3239
|
for (const tool of tools) api.registerTool(tool);
|
|
3203
|
-
log.info(`Registered ${String(tools.length)}
|
|
3240
|
+
log.info(`Registered ${String(tools.length)} agent tools: ${tools.map((t) => t.name).join(", ")}`);
|
|
3204
3241
|
}
|
|
3205
3242
|
const startDaemonIpc = () => {
|
|
3206
3243
|
if (globalThis.__alfeOpenclawPluginActivated === true) {
|
package/dist/plugin2.js
CHANGED
|
@@ -3182,6 +3182,42 @@ function buildIntegrationTools(client) {
|
|
|
3182
3182
|
})
|
|
3183
3183
|
];
|
|
3184
3184
|
}
|
|
3185
|
+
function buildVoiceTools(client) {
|
|
3186
|
+
return [defineTool({
|
|
3187
|
+
name: "list_voices",
|
|
3188
|
+
description: "List the available voices this agent can speak with (the ElevenLabs catalogue). Use this to pick or confirm a voice before calling set_voice with the chosen id.",
|
|
3189
|
+
parameters: Type.Object({}),
|
|
3190
|
+
handler: async () => {
|
|
3191
|
+
const { voices } = await client.listVoices();
|
|
3192
|
+
return { voices: voices.map((v) => ({
|
|
3193
|
+
id: v.id,
|
|
3194
|
+
name: v.name,
|
|
3195
|
+
description: v.description,
|
|
3196
|
+
labels: v.labels,
|
|
3197
|
+
category: v.category,
|
|
3198
|
+
previewUrl: v.previewUrl
|
|
3199
|
+
})) };
|
|
3200
|
+
}
|
|
3201
|
+
}), defineTool({
|
|
3202
|
+
name: "set_voice",
|
|
3203
|
+
description: "Change this agent's OWN voice. Pass a `voiceId` from list_voices. Optionally set `enabled` to turn voice on/off. Returns the updated voice config.",
|
|
3204
|
+
parameters: Type.Object({
|
|
3205
|
+
voiceId: Type.String({ description: "The ElevenLabs voice id to use, from list_voices (e.g. the `id` field)." }),
|
|
3206
|
+
enabled: Type.Optional(Type.Boolean({ description: "Enable or disable voice. Omit to leave the current on/off state unchanged." }))
|
|
3207
|
+
}),
|
|
3208
|
+
handler: async (params) => {
|
|
3209
|
+
const voiceId = params.voiceId;
|
|
3210
|
+
const enabled = params.enabled;
|
|
3211
|
+
return {
|
|
3212
|
+
updated: true,
|
|
3213
|
+
voiceConfig: (await client.updateSelf({ voiceConfig: {
|
|
3214
|
+
voiceId,
|
|
3215
|
+
...enabled === void 0 ? {} : { enabled }
|
|
3216
|
+
} })).voiceConfig
|
|
3217
|
+
};
|
|
3218
|
+
}
|
|
3219
|
+
})];
|
|
3220
|
+
}
|
|
3185
3221
|
const plugin = {
|
|
3186
3222
|
id: "@alfe.ai/openclaw",
|
|
3187
3223
|
name: "Alfe OpenClaw Plugin",
|
|
@@ -3196,12 +3232,13 @@ const plugin = {
|
|
|
3196
3232
|
log.warn(`Integration tools not registered — config not available: ${err.message}`);
|
|
3197
3233
|
}
|
|
3198
3234
|
if (cfg) {
|
|
3199
|
-
const
|
|
3235
|
+
const client = new AgentApiClient({
|
|
3200
3236
|
apiKey: cfg.apiKey,
|
|
3201
3237
|
apiUrl: cfg.apiUrl
|
|
3202
|
-
})
|
|
3238
|
+
});
|
|
3239
|
+
const tools = [...buildIntegrationTools(client), ...buildVoiceTools(client)];
|
|
3203
3240
|
for (const tool of tools) api.registerTool(tool);
|
|
3204
|
-
log.info(`Registered ${String(tools.length)}
|
|
3241
|
+
log.info(`Registered ${String(tools.length)} agent tools: ${tools.map((t) => t.name).join(", ")}`);
|
|
3205
3242
|
}
|
|
3206
3243
|
const startDaemonIpc = () => {
|
|
3207
3244
|
if (globalThis.__alfeOpenclawPluginActivated === true) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alfe.ai/openclaw",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "OpenClaw plugin for Alfe — connects to local gateway daemon via IPC for integration management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"@auriclabs/logger": "^0.1.1",
|
|
27
27
|
"@sinclair/typebox": "^0.34.48",
|
|
28
28
|
"zod": "^4.1.5",
|
|
29
|
-
"@alfe.ai/agent-api-client": "^0.
|
|
30
|
-
"@alfe.ai/config": "^0.
|
|
29
|
+
"@alfe.ai/agent-api-client": "^0.4.0",
|
|
30
|
+
"@alfe.ai/config": "^0.2.0"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"openclaw": ">=2026.3.0"
|
|
@@ -42,6 +42,16 @@
|
|
|
42
42
|
"openclaw.plugin.json"
|
|
43
43
|
],
|
|
44
44
|
"license": "UNLICENSED",
|
|
45
|
+
"homepage": "https://alfe.ai",
|
|
46
|
+
"author": "Alfe (https://alfe.ai)",
|
|
47
|
+
"keywords": [
|
|
48
|
+
"alfe",
|
|
49
|
+
"ai-agents",
|
|
50
|
+
"agent",
|
|
51
|
+
"llm",
|
|
52
|
+
"openclaw",
|
|
53
|
+
"plugin"
|
|
54
|
+
],
|
|
45
55
|
"scripts": {
|
|
46
56
|
"build": "tsdown",
|
|
47
57
|
"dev": "tsdown --watch",
|