callme-openclaw-plugin 1.0.4 → 1.0.6

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.
@@ -0,0 +1,46 @@
1
+ {
2
+ "id": "callme",
3
+ "name": "callme.ai Voice",
4
+ "version": "1.0.4",
5
+ "description": "Hands-free voice calls with your AI assistant via callme.ai",
6
+ "author": "callme.ai",
7
+ "license": "MIT",
8
+ "configSchema": {
9
+ "type": "object",
10
+ "properties": {
11
+ "apiKey": {
12
+ "type": "string",
13
+ "description": "Your callme.ai API key from the dashboard"
14
+ },
15
+ "defaultVoice": {
16
+ "type": "string",
17
+ "enum": ["alloy", "echo", "fable", "onyx", "nova", "shimmer"],
18
+ "default": "nova",
19
+ "description": "Default voice for TTS"
20
+ },
21
+ "language": {
22
+ "type": "string",
23
+ "enum": ["en", "de", "es", "fr"],
24
+ "default": "en",
25
+ "description": "Language code"
26
+ }
27
+ },
28
+ "required": ["apiKey"],
29
+ "additionalProperties": false
30
+ },
31
+ "uiHints": {
32
+ "apiKey": {
33
+ "label": "API Key",
34
+ "placeholder": "callme_xxx",
35
+ "sensitive": true
36
+ },
37
+ "defaultVoice": {
38
+ "label": "Default Voice",
39
+ "placeholder": "nova"
40
+ },
41
+ "language": {
42
+ "label": "Language",
43
+ "placeholder": "en"
44
+ }
45
+ }
46
+ }
package/package.json CHANGED
@@ -1,26 +1,20 @@
1
1
  {
2
2
  "name": "callme-openclaw-plugin",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "OpenClaw plugin for callme.ai - hands-free voice calls with your AI assistant",
5
5
  "main": "index.js",
6
6
  "bin": {
7
7
  "callme-setup": "./setup.js"
8
8
  },
9
- "keywords": [
10
- "openclaw",
11
- "plugin",
12
- "voice",
13
- "ai",
14
- "calls",
15
- "callme"
9
+ "files": [
10
+ "index.js",
11
+ "setup.js",
12
+ "install.sh",
13
+ "openclaw.plugin.json",
14
+ "README.md"
16
15
  ],
17
- "author": "callme.ai",
18
- "license": "MIT",
19
- "repository": {
20
- "type": "git",
21
- "url": "https://github.com/Benedict-VC/openclaw-voice.git"
22
- },
23
16
  "openclaw": {
17
+ "extensions": ["./index.js"],
24
18
  "displayName": "callme.ai Voice",
25
19
  "description": "Make hands-free voice calls to your AI assistant",
26
20
  "category": "communication",
@@ -55,6 +49,20 @@
55
49
  }
56
50
  }
57
51
  },
52
+ "keywords": [
53
+ "openclaw",
54
+ "plugin",
55
+ "voice",
56
+ "ai",
57
+ "calls",
58
+ "callme"
59
+ ],
60
+ "author": "callme.ai",
61
+ "license": "MIT",
62
+ "repository": {
63
+ "type": "git",
64
+ "url": "https://github.com/Benedict-VC/openclaw-voice.git"
65
+ },
58
66
  "dependencies": {
59
67
  "ws": "^8.16.0",
60
68
  "node-fetch": "^2.7.0"
package/setup.js CHANGED
@@ -47,33 +47,18 @@ async function main() {
47
47
  process.exit(1);
48
48
  }
49
49
 
50
- // Step 3: Copy plugin files
51
- console.log('\nšŸ“¦ Setting up plugin...');
52
- fs.mkdirSync(PLUGIN_DIR, { recursive: true });
50
+ // Step 3: Install plugin via OpenClaw CLI
51
+ console.log('\nšŸ“¦ Installing plugin...');
53
52
 
54
- // Copy plugin from the npx cache to the OpenClaw plugins directory
55
53
  try {
56
- const thisDir = __dirname; // Where this script is running from
57
-
58
- // Copy main files
59
- const filesToCopy = ['index.js', 'package.json'];
60
- for (const file of filesToCopy) {
61
- const src = path.join(thisDir, file);
62
- const dest = path.join(PLUGIN_DIR, file);
63
- if (fs.existsSync(src)) {
64
- fs.copyFileSync(src, dest);
65
- }
66
- }
67
-
68
- // Install dependencies
69
- process.chdir(PLUGIN_DIR);
70
- await execAsync('npm install --production --no-package-lock');
54
+ // Use OpenClaw's plugin installer (official method)
55
+ await execAsync('openclaw plugins install callme-openclaw-plugin');
71
56
  console.log('āœ… Plugin installed');
72
57
  } catch (error) {
73
58
  console.error('āŒ Failed to install plugin:', error.message);
74
- console.log('\nšŸ“‹ Manual installation:');
75
- console.log(' 1. Run: curl -fsSL http://91.99.132.236/install.sh | bash');
76
- console.log(' 2. Edit ~/.openclaw/config.yaml and add your API key');
59
+ console.log('\nšŸ“‹ Manual fallback:');
60
+ console.log(' 1. Run: openclaw plugins install callme-openclaw-plugin');
61
+ console.log(' 2. Then re-run this setup');
77
62
  process.exit(1);
78
63
  }
79
64
 
@@ -111,15 +96,32 @@ plugins:
111
96
 
112
97
  // Done!
113
98
  console.log('\n✨ \x1b[1;32mSetup complete!\x1b[0m\n');
114
- console.log('šŸ“‹ \x1b[1mNext Steps:\x1b[0m\n');
115
- console.log('1ļøāƒ£ Restart your OpenClaw session (or restart the gateway)');
116
- console.log('2ļøāƒ£ Type \x1b[36m/call\x1b[0m to start your first voice call!\n');
117
- console.log('šŸ“š \x1b[1mAvailable Commands:\x1b[0m\n');
118
- console.log(' /call Start a voice call');
119
- console.log(' /voice-usage Check your usage stats');
120
- console.log(' /voice-keys Manage your API keys\n');
121
- console.log('šŸ’” \x1b[1mTip:\x1b[0m If you\'re in an active OpenClaw session, just restart it');
122
- console.log(' (Ctrl+C and start again) for the plugin to load.\n');
99
+
100
+ // Step 5: Offer to restart gateway
101
+ const shouldRestart = await question('šŸ”„ Restart OpenClaw Gateway now? (y/n): ');
102
+
103
+ if (shouldRestart.toLowerCase() === 'y' || shouldRestart.toLowerCase() === 'yes') {
104
+ console.log('\nšŸ”„ Restarting Gateway...');
105
+ try {
106
+ await execAsync('openclaw gateway restart');
107
+ console.log('āœ… Gateway restarted!\n');
108
+ console.log('šŸŽ‰ \x1b[1;32mYou\'re all set!\x1b[0m\n');
109
+ console.log('šŸ“ž Start your first call: \x1b[36m/call\x1b[0m\n');
110
+ console.log('šŸ“š Other commands:');
111
+ console.log(' /voice-usage Check your usage stats');
112
+ console.log(' /voice-keys Manage your API keys\n');
113
+ } catch (error) {
114
+ console.log('āš ļø Could not restart automatically.');
115
+ console.log('\nšŸ“‹ Please restart manually:');
116
+ console.log(' \x1b[36mopenclaw gateway restart\x1b[0m\n');
117
+ console.log('Then type: \x1b[36m/call\x1b[0m\n');
118
+ }
119
+ } else {
120
+ console.log('\nšŸ“‹ \x1b[1mRemember to restart the Gateway:\x1b[0m');
121
+ console.log(' \x1b[36mopenclaw gateway restart\x1b[0m\n');
122
+ console.log('šŸ“ž Then type: \x1b[36m/call\x1b[0m to start your first voice call!\n');
123
+ }
124
+
123
125
  console.log('šŸ“– Need help? https://docs.callme.ai/openclaw\n');
124
126
 
125
127
  rl.close();