@framers/agentos-ext-voice-plivo 0.1.0 → 0.1.2
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/LICENSE +98 -0
- package/dist/PlivoVoiceProvider.d.ts +86 -0
- package/dist/PlivoVoiceProvider.d.ts.map +1 -0
- package/dist/PlivoVoiceProvider.js +306 -0
- package/dist/PlivoVoiceProvider.js.map +1 -0
- package/dist/PlivoVoiceService.d.ts +118 -0
- package/dist/PlivoVoiceService.d.ts.map +1 -0
- package/dist/PlivoVoiceService.js +228 -0
- package/dist/PlivoVoiceService.js.map +1 -0
- package/dist/index.d.ts +56 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +151 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/voiceCall.d.ts +113 -0
- package/dist/tools/voiceCall.d.ts.map +1 -0
- package/dist/tools/voiceCall.js +205 -0
- package/dist/tools/voiceCall.js.map +1 -0
- package/manifest.json +1 -1
- package/package.json +37 -14
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview ITool implementation for Plivo voice calls.
|
|
5
|
+
*
|
|
6
|
+
* Provides the `plivoVoiceCall` tool that agents can invoke to make
|
|
7
|
+
* outbound phone calls, speak text into active calls, hang up calls,
|
|
8
|
+
* and query call status.
|
|
9
|
+
*
|
|
10
|
+
* Follows the same VoiceCallTool pattern used by Twilio/Telnyx extensions.
|
|
11
|
+
*
|
|
12
|
+
* @module @framers/agentos-ext-voice-plivo/tools/voiceCall
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.PlivoVoiceCallTool = void 0;
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// Tool Implementation
|
|
18
|
+
// ============================================================================
|
|
19
|
+
class PlivoVoiceCallTool {
|
|
20
|
+
constructor(handler) {
|
|
21
|
+
this.handler = handler;
|
|
22
|
+
this.id = 'plivoVoiceCall';
|
|
23
|
+
this.name = 'plivoVoiceCall';
|
|
24
|
+
this.displayName = 'Plivo Voice Call';
|
|
25
|
+
this.description = 'Make and manage phone calls via Plivo. ' +
|
|
26
|
+
'Actions: "call" (initiate outbound call), "speak" (play TTS into active call), ' +
|
|
27
|
+
'"hangup" (terminate call), "status" (get call info), "list" (get all active calls).';
|
|
28
|
+
this.category = 'telephony';
|
|
29
|
+
this.version = '0.1.0';
|
|
30
|
+
this.hasSideEffects = true;
|
|
31
|
+
this.inputSchema = {
|
|
32
|
+
type: 'object',
|
|
33
|
+
required: ['action'],
|
|
34
|
+
properties: {
|
|
35
|
+
action: {
|
|
36
|
+
type: 'string',
|
|
37
|
+
enum: ['call', 'speak', 'hangup', 'status', 'list'],
|
|
38
|
+
description: 'The voice call action to perform.',
|
|
39
|
+
},
|
|
40
|
+
toNumber: {
|
|
41
|
+
type: 'string',
|
|
42
|
+
description: 'E.164 phone number to call (required for "call" action).',
|
|
43
|
+
},
|
|
44
|
+
callId: {
|
|
45
|
+
type: 'string',
|
|
46
|
+
description: 'Call ID (required for "speak", "hangup", "status" actions).',
|
|
47
|
+
},
|
|
48
|
+
message: {
|
|
49
|
+
type: 'string',
|
|
50
|
+
description: 'Text to speak. For "call" in notify mode, this is the message. For "speak", this is played into the active call.',
|
|
51
|
+
},
|
|
52
|
+
mode: {
|
|
53
|
+
type: 'string',
|
|
54
|
+
enum: ['notify', 'conversation'],
|
|
55
|
+
description: 'Call mode (default: "conversation"). "notify" speaks a message and hangs up.',
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
this.outputSchema = {
|
|
60
|
+
type: 'object',
|
|
61
|
+
properties: {
|
|
62
|
+
callId: { type: 'string', description: 'The call ID' },
|
|
63
|
+
state: { type: 'string', description: 'Current call state' },
|
|
64
|
+
calls: {
|
|
65
|
+
type: 'array',
|
|
66
|
+
description: 'List of active calls (for "list" action)',
|
|
67
|
+
items: { type: 'object' },
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
async execute(args, _context) {
|
|
73
|
+
try {
|
|
74
|
+
switch (args.action) {
|
|
75
|
+
case 'call':
|
|
76
|
+
return await this.handleCall(args);
|
|
77
|
+
case 'speak':
|
|
78
|
+
return this.handleSpeak(args);
|
|
79
|
+
case 'hangup':
|
|
80
|
+
return await this.handleHangup(args);
|
|
81
|
+
case 'status':
|
|
82
|
+
return this.handleStatus(args);
|
|
83
|
+
case 'list':
|
|
84
|
+
return this.handleList();
|
|
85
|
+
default:
|
|
86
|
+
return {
|
|
87
|
+
success: false,
|
|
88
|
+
error: `Unknown action: "${args.action}". Valid actions: call, speak, hangup, status, list.`,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
return { success: false, error: error.message };
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
validateArgs(args) {
|
|
97
|
+
const errors = [];
|
|
98
|
+
if (!args.action) {
|
|
99
|
+
errors.push('action is required');
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
const validActions = ['call', 'speak', 'hangup', 'status', 'list'];
|
|
103
|
+
if (!validActions.includes(args.action)) {
|
|
104
|
+
errors.push(`Invalid action "${args.action}". Must be one of: ${validActions.join(', ')}`);
|
|
105
|
+
}
|
|
106
|
+
if (args.action === 'call' && !args.toNumber) {
|
|
107
|
+
errors.push('toNumber is required for "call" action');
|
|
108
|
+
}
|
|
109
|
+
if (['speak', 'hangup', 'status'].includes(args.action) && !args.callId) {
|
|
110
|
+
errors.push(`callId is required for "${args.action}" action`);
|
|
111
|
+
}
|
|
112
|
+
if (args.action === 'speak' && !args.message) {
|
|
113
|
+
errors.push('message is required for "speak" action');
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return { isValid: errors.length === 0, errors };
|
|
117
|
+
}
|
|
118
|
+
// ── Action Handlers ──
|
|
119
|
+
async handleCall(args) {
|
|
120
|
+
if (!args.toNumber) {
|
|
121
|
+
return { success: false, error: 'toNumber is required for "call" action' };
|
|
122
|
+
}
|
|
123
|
+
const call = await this.handler.initiateCall(args.toNumber, args.message, args.mode ?? 'conversation');
|
|
124
|
+
return {
|
|
125
|
+
success: true,
|
|
126
|
+
output: {
|
|
127
|
+
callId: call.callId,
|
|
128
|
+
providerCallId: call.providerCallId,
|
|
129
|
+
state: call.state,
|
|
130
|
+
direction: call.direction,
|
|
131
|
+
mode: call.mode,
|
|
132
|
+
fromNumber: call.fromNumber,
|
|
133
|
+
toNumber: call.toNumber,
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
handleSpeak(args) {
|
|
138
|
+
if (!args.callId) {
|
|
139
|
+
return { success: false, error: 'callId is required for "speak" action' };
|
|
140
|
+
}
|
|
141
|
+
if (!args.message) {
|
|
142
|
+
return { success: false, error: 'message is required for "speak" action' };
|
|
143
|
+
}
|
|
144
|
+
this.handler.speakText(args.callId, args.message);
|
|
145
|
+
return {
|
|
146
|
+
success: true,
|
|
147
|
+
output: { callId: args.callId, action: 'speak', text: args.message },
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
async handleHangup(args) {
|
|
151
|
+
if (!args.callId) {
|
|
152
|
+
return { success: false, error: 'callId is required for "hangup" action' };
|
|
153
|
+
}
|
|
154
|
+
await this.handler.hangupCall(args.callId);
|
|
155
|
+
return {
|
|
156
|
+
success: true,
|
|
157
|
+
output: { callId: args.callId, action: 'hangup' },
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
handleStatus(args) {
|
|
161
|
+
if (!args.callId) {
|
|
162
|
+
return { success: false, error: 'callId is required for "status" action' };
|
|
163
|
+
}
|
|
164
|
+
const call = this.handler.getCallStatus(args.callId);
|
|
165
|
+
if (!call) {
|
|
166
|
+
return { success: false, error: `No call found with ID: ${args.callId}` };
|
|
167
|
+
}
|
|
168
|
+
return {
|
|
169
|
+
success: true,
|
|
170
|
+
output: {
|
|
171
|
+
callId: call.callId,
|
|
172
|
+
providerCallId: call.providerCallId,
|
|
173
|
+
state: call.state,
|
|
174
|
+
direction: call.direction,
|
|
175
|
+
mode: call.mode,
|
|
176
|
+
fromNumber: call.fromNumber,
|
|
177
|
+
toNumber: call.toNumber,
|
|
178
|
+
transcript: call.transcript,
|
|
179
|
+
createdAt: call.createdAt,
|
|
180
|
+
endedAt: call.endedAt,
|
|
181
|
+
errorMessage: call.errorMessage,
|
|
182
|
+
},
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
handleList() {
|
|
186
|
+
const calls = this.handler.getActiveCalls();
|
|
187
|
+
return {
|
|
188
|
+
success: true,
|
|
189
|
+
output: {
|
|
190
|
+
count: calls.length,
|
|
191
|
+
calls: calls.map((c) => ({
|
|
192
|
+
callId: c.callId,
|
|
193
|
+
state: c.state,
|
|
194
|
+
direction: c.direction,
|
|
195
|
+
mode: c.mode,
|
|
196
|
+
fromNumber: c.fromNumber,
|
|
197
|
+
toNumber: c.toNumber,
|
|
198
|
+
createdAt: c.createdAt,
|
|
199
|
+
})),
|
|
200
|
+
},
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
exports.PlivoVoiceCallTool = PlivoVoiceCallTool;
|
|
205
|
+
//# sourceMappingURL=voiceCall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voiceCall.js","sourceRoot":"","sources":["../../src/tools/voiceCall.ts"],"names":[],"mappings":"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"}
|
package/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://agentos.sh/schemas/extension-manifest-v1.json",
|
|
3
3
|
"id": "com.framers.voice.plivo",
|
|
4
4
|
"name": "Plivo Voice Provider Extension",
|
|
5
|
-
"version": "0.1.
|
|
5
|
+
"version": "0.1.2",
|
|
6
6
|
"description": "Plivo telephony provider for voice calls — supports outbound/inbound calls, XML response generation, notify and conversation modes.",
|
|
7
7
|
"categories": ["voice", "telephony"],
|
|
8
8
|
"platforms": ["plivo"],
|
package/package.json
CHANGED
|
@@ -1,30 +1,53 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@framers/agentos-ext-voice-plivo",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Plivo voice call provider for AgentOS — outbound/inbound calls via Plivo Voice API",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
7
|
+
"keywords": [
|
|
8
|
+
"agentos",
|
|
9
|
+
"extension",
|
|
10
|
+
"voice",
|
|
11
|
+
"plivo",
|
|
12
|
+
"telephony"
|
|
13
|
+
],
|
|
14
|
+
"author": {
|
|
15
|
+
"name": "Framers AI",
|
|
16
|
+
"url": "https://frame.dev"
|
|
12
17
|
},
|
|
13
|
-
"keywords": ["agentos", "extension", "voice", "plivo", "telephony"],
|
|
14
|
-
"author": { "name": "Framers AI", "url": "https://frame.dev" },
|
|
15
18
|
"license": "MIT",
|
|
16
|
-
"files": [
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"manifest.json"
|
|
22
|
+
],
|
|
17
23
|
"peerDependencies": {
|
|
18
|
-
"@framers/agentos": "^0.
|
|
24
|
+
"@framers/agentos": "^0.10.34"
|
|
19
25
|
},
|
|
20
26
|
"dependencies": {
|
|
21
27
|
"plivo": "^4.0.0"
|
|
22
28
|
},
|
|
23
29
|
"devDependencies": {
|
|
24
|
-
"@framers/agentos": "workspace:*",
|
|
25
30
|
"@types/node": "^20.0.0",
|
|
26
31
|
"typescript": "^5.0.0",
|
|
27
|
-
"vitest": "^1.0.0"
|
|
32
|
+
"vitest": "^1.0.0",
|
|
33
|
+
"@framers/agentos": "^0.10.34"
|
|
34
|
+
},
|
|
35
|
+
"engines": {
|
|
36
|
+
"node": ">=22"
|
|
37
|
+
},
|
|
38
|
+
"repository": {
|
|
39
|
+
"type": "git",
|
|
40
|
+
"url": "git+https://github.com/framerslab/agentos-extensions.git",
|
|
41
|
+
"directory": "registry/curated/voice/plivo"
|
|
28
42
|
},
|
|
29
|
-
"
|
|
30
|
-
|
|
43
|
+
"homepage": "https://github.com/framerslab/agentos-extensions/tree/master/registry/curated/voice/plivo#readme",
|
|
44
|
+
"bugs": {
|
|
45
|
+
"url": "https://github.com/framerslab/agentos-extensions/issues"
|
|
46
|
+
},
|
|
47
|
+
"scripts": {
|
|
48
|
+
"build": "tsc",
|
|
49
|
+
"dev": "tsc --watch",
|
|
50
|
+
"test": "vitest run --passWithNoTests",
|
|
51
|
+
"clean": "rm -rf dist"
|
|
52
|
+
}
|
|
53
|
+
}
|