feat: plugin system + voice-call
This commit is contained in:
@@ -1,10 +1,23 @@
|
||||
# Voice Call Plugin
|
||||
# @clawdbot/voice-call
|
||||
|
||||
Twilio-backed outbound voice calls (with a log-only fallback for dev).
|
||||
Official Voice Call plugin for **Clawdbot**.
|
||||
|
||||
- Provider: **Twilio** (real outbound calls)
|
||||
- Dev fallback: `log` (no network)
|
||||
|
||||
Docs: `https://docs.clawd.bot/plugins/voice-call`
|
||||
|
||||
## Install (local dev)
|
||||
|
||||
Option 1: copy into your global extensions folder:
|
||||
### Option A: install via Clawdbot (recommended)
|
||||
|
||||
```bash
|
||||
clawdbot plugins install @clawdbot/voice-call
|
||||
```
|
||||
|
||||
Restart the Gateway afterwards.
|
||||
|
||||
### Option B: copy into your global extensions folder (dev)
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.clawdbot/extensions
|
||||
@@ -12,13 +25,13 @@ cp -R extensions/voice-call ~/.clawdbot/extensions/voice-call
|
||||
cd ~/.clawdbot/extensions/voice-call && pnpm install
|
||||
```
|
||||
|
||||
Option 2: add via config:
|
||||
### Option C: add via config (custom path)
|
||||
|
||||
```json5
|
||||
{
|
||||
plugins: {
|
||||
load: { paths: ["/absolute/path/to/extensions/voice-call"] },
|
||||
entries: { "voice-call": { enabled: true } }
|
||||
load: { paths: ["/absolute/path/to/voice-call/index.ts"] },
|
||||
entries: { "voice-call": { enabled: true, config: { provider: "log" } } }
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -67,6 +67,35 @@ const voiceCallConfigSchema = {
|
||||
}
|
||||
return { provider: "log" };
|
||||
},
|
||||
uiHints: {
|
||||
provider: {
|
||||
label: "Provider",
|
||||
help: 'Use "twilio" for real calls or "log" for dev/no-network.',
|
||||
},
|
||||
"twilio.accountSid": {
|
||||
label: "Twilio Account SID",
|
||||
placeholder: "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
||||
},
|
||||
"twilio.authToken": {
|
||||
label: "Twilio Auth Token",
|
||||
sensitive: true,
|
||||
placeholder: "••••••••••••••••",
|
||||
},
|
||||
"twilio.from": {
|
||||
label: "Twilio From (E.164)",
|
||||
placeholder: "+15551234567",
|
||||
},
|
||||
"twilio.statusCallbackUrl": {
|
||||
label: "Status Callback URL",
|
||||
placeholder: "https://example.com/twilio-status",
|
||||
advanced: true,
|
||||
},
|
||||
"twilio.twimlUrl": {
|
||||
label: "TwiML URL",
|
||||
placeholder: "https://example.com/twiml",
|
||||
advanced: true,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const escapeXml = (input: string): string =>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"name": "voice-call",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"name": "@clawdbot/voice-call",
|
||||
"version": "0.0.1",
|
||||
"type": "module",
|
||||
"description": "Clawdbot voice-call plugin (example)",
|
||||
"dependencies": {
|
||||
|
||||
Reference in New Issue
Block a user