@opencx/mcp 1.8.4 → 1.9.0-alpha.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/dist/api-client.d.ts +1 -0
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +5 -0
- package/dist/api-client.js.map +1 -1
- package/dist/bundle.cjs +24658 -0
- package/dist/index.js +62 -8
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +10 -0
- package/dist/server.js.map +1 -1
- package/dist/tools/actions.js +5 -5
- package/dist/tools/actions.js.map +1 -1
- package/dist/tools/ask-questions.d.ts +4 -0
- package/dist/tools/ask-questions.d.ts.map +1 -0
- package/dist/tools/ask-questions.js +39 -0
- package/dist/tools/ask-questions.js.map +1 -0
- package/dist/tools/audit-logs.d.ts +4 -0
- package/dist/tools/audit-logs.d.ts.map +1 -0
- package/dist/tools/audit-logs.js +61 -0
- package/dist/tools/audit-logs.js.map +1 -0
- package/dist/tools/autopilot.js +4 -4
- package/dist/tools/autopilot.js.map +1 -1
- package/dist/tools/blocklist.d.ts.map +1 -1
- package/dist/tools/blocklist.js +29 -9
- package/dist/tools/blocklist.js.map +1 -1
- package/dist/tools/contacts.js +3 -3
- package/dist/tools/contacts.js.map +1 -1
- package/dist/tools/coworker.d.ts +4 -0
- package/dist/tools/coworker.d.ts.map +1 -0
- package/dist/tools/coworker.js +105 -0
- package/dist/tools/coworker.js.map +1 -0
- package/dist/tools/crawl.js +6 -6
- package/dist/tools/crawl.js.map +1 -1
- package/dist/tools/csat.js +3 -3
- package/dist/tools/csat.js.map +1 -1
- package/dist/tools/email.js +4 -4
- package/dist/tools/email.js.map +1 -1
- package/dist/tools/handoff-analytics.d.ts.map +1 -1
- package/dist/tools/handoff-analytics.js +12 -4
- package/dist/tools/handoff-analytics.js.map +1 -1
- package/dist/tools/help-center.js +6 -6
- package/dist/tools/help-center.js.map +1 -1
- package/dist/tools/impact-report.d.ts +4 -0
- package/dist/tools/impact-report.d.ts.map +1 -0
- package/dist/tools/impact-report.js +17 -0
- package/dist/tools/impact-report.js.map +1 -0
- package/dist/tools/insights.js +5 -5
- package/dist/tools/insights.js.map +1 -1
- package/dist/tools/media.js +1 -1
- package/dist/tools/media.js.map +1 -1
- package/dist/tools/office-hours.js +3 -3
- package/dist/tools/office-hours.js.map +1 -1
- package/dist/tools/org.js +2 -2
- package/dist/tools/org.js.map +1 -1
- package/dist/tools/phone.d.ts +6 -0
- package/dist/tools/phone.d.ts.map +1 -1
- package/dist/tools/phone.js +126 -21
- package/dist/tools/phone.js.map +1 -1
- package/dist/tools/redaction.js +6 -6
- package/dist/tools/redaction.js.map +1 -1
- package/dist/tools/search.js +1 -1
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/sequences.d.ts.map +1 -1
- package/dist/tools/sequences.js +12 -7
- package/dist/tools/sequences.js.map +1 -1
- package/dist/tools/sessions.d.ts.map +1 -1
- package/dist/tools/sessions.js +281 -22
- package/dist/tools/sessions.js.map +1 -1
- package/dist/tools/sla-analytics.js +4 -4
- package/dist/tools/sla-analytics.js.map +1 -1
- package/dist/tools/sla.js +4 -4
- package/dist/tools/sla.js.map +1 -1
- package/dist/tools/tags.js +4 -4
- package/dist/tools/tags.js.map +1 -1
- package/dist/tools/teams.d.ts.map +1 -1
- package/dist/tools/teams.js +17 -10
- package/dist/tools/teams.js.map +1 -1
- package/dist/tools/training.d.ts.map +1 -1
- package/dist/tools/training.js +201 -52
- package/dist/tools/training.js.map +1 -1
- package/dist/tools/users.d.ts +4 -0
- package/dist/tools/users.d.ts.map +1 -0
- package/dist/tools/users.js +20 -0
- package/dist/tools/users.js.map +1 -0
- package/dist/tools/whatsapp.js +1 -1
- package/dist/tools/whatsapp.js.map +1 -1
- package/dist/tools/widget.js +3 -3
- package/dist/tools/widget.js.map +1 -1
- package/dist/tools/workflows.d.ts.map +1 -1
- package/dist/tools/workflows.js +27 -16
- package/dist/tools/workflows.js.map +1 -1
- package/dist/workflow-editor-state.d.ts +0 -5
- package/dist/workflow-editor-state.d.ts.map +1 -1
- package/dist/workflow-editor-state.js +14 -14
- package/dist/workflow-editor-state.js.map +1 -1
- package/package.json +2 -1
package/dist/index.js
CHANGED
|
@@ -1,8 +1,53 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { createServer as createHttpServer } from 'node:http';
|
|
2
3
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
|
+
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
3
5
|
import { createServer } from './server.js';
|
|
4
6
|
const DEFAULT_BASE_URL = 'https://api.open.cx';
|
|
5
|
-
function
|
|
7
|
+
function isHttpMode() {
|
|
8
|
+
return process.argv.includes('--http') || process.env.MCP_TRANSPORT === 'http';
|
|
9
|
+
}
|
|
10
|
+
function extractBearer(req) {
|
|
11
|
+
const auth = req.headers['authorization'];
|
|
12
|
+
if (typeof auth !== 'string')
|
|
13
|
+
return undefined;
|
|
14
|
+
const match = auth.match(/^Bearer\s+(.+)$/i);
|
|
15
|
+
return match?.[1];
|
|
16
|
+
}
|
|
17
|
+
function startHttpMode() {
|
|
18
|
+
const baseUrl = resolveBaseUrl();
|
|
19
|
+
const port = Number(process.env.MCP_HTTP_PORT) || 3100;
|
|
20
|
+
const httpServer = createHttpServer(async (req, res) => {
|
|
21
|
+
// Health check
|
|
22
|
+
if (req.method === 'GET' && req.url === '/health') {
|
|
23
|
+
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
24
|
+
res.end(JSON.stringify({ ok: true }));
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
// Only handle /mcp
|
|
28
|
+
if (req.url !== '/mcp') {
|
|
29
|
+
res.writeHead(404);
|
|
30
|
+
res.end('Not found');
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const bearer = extractBearer(req);
|
|
34
|
+
if (!bearer) {
|
|
35
|
+
res.writeHead(401, { 'Content-Type': 'application/json' });
|
|
36
|
+
res.end(JSON.stringify({ error: 'Missing Authorization: Bearer <token>' }));
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const mcpServer = createServer(bearer, baseUrl);
|
|
40
|
+
const transport = new StreamableHTTPServerTransport({
|
|
41
|
+
sessionIdGenerator: undefined,
|
|
42
|
+
});
|
|
43
|
+
await mcpServer.connect(transport);
|
|
44
|
+
await transport.handleRequest(req, res);
|
|
45
|
+
});
|
|
46
|
+
httpServer.listen(port, '0.0.0.0', () => {
|
|
47
|
+
console.log(`OpenCX MCP HTTP server listening on http://0.0.0.0:${port}/mcp`);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function startStdioMode() {
|
|
6
51
|
const apiKey = process.env.OPENCX_API_KEY;
|
|
7
52
|
if (!apiKey) {
|
|
8
53
|
console.error('Error: OPENCX_API_KEY environment variable is required.\n\n' +
|
|
@@ -20,6 +65,15 @@ function main() {
|
|
|
20
65
|
' }');
|
|
21
66
|
process.exit(1);
|
|
22
67
|
}
|
|
68
|
+
const baseUrl = resolveBaseUrl();
|
|
69
|
+
const server = createServer(apiKey, baseUrl);
|
|
70
|
+
const transport = new StdioServerTransport();
|
|
71
|
+
server.connect(transport).catch((err) => {
|
|
72
|
+
console.error('Failed to start OpenCX MCP server:', err);
|
|
73
|
+
process.exit(1);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
function resolveBaseUrl() {
|
|
23
77
|
const baseUrl = process.env.OPENCX_BASE_URL || DEFAULT_BASE_URL;
|
|
24
78
|
try {
|
|
25
79
|
const parsed = new URL(baseUrl);
|
|
@@ -33,12 +87,12 @@ function main() {
|
|
|
33
87
|
console.error(`Error: OPENCX_BASE_URL is not a valid URL: "${baseUrl}"`);
|
|
34
88
|
process.exit(1);
|
|
35
89
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
90
|
+
return baseUrl;
|
|
91
|
+
}
|
|
92
|
+
if (isHttpMode()) {
|
|
93
|
+
startHttpMode();
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
startStdioMode();
|
|
42
97
|
}
|
|
43
|
-
main();
|
|
44
98
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;AAE/C,SAAS,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAkCpE,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAyCvE"}
|
package/dist/server.js
CHANGED
|
@@ -6,6 +6,7 @@ import { registerBlocklistTools } from './tools/blocklist.js';
|
|
|
6
6
|
import { registerContactTools } from './tools/contacts.js';
|
|
7
7
|
import { registerSessionTools } from './tools/sessions.js';
|
|
8
8
|
import { registerTrainingTools } from './tools/training.js';
|
|
9
|
+
import { registerUserTools } from './tools/users.js';
|
|
9
10
|
import { registerCrawlTools } from './tools/crawl.js';
|
|
10
11
|
import { registerInsightTools } from './tools/insights.js';
|
|
11
12
|
import { registerMediaTools } from './tools/media.js';
|
|
@@ -20,12 +21,16 @@ import { registerOfficeHoursTools } from './tools/office-hours.js';
|
|
|
20
21
|
import { registerTagTools } from './tools/tags.js';
|
|
21
22
|
import { registerCsatTools } from './tools/csat.js';
|
|
22
23
|
import { registerWhatsAppTools } from './tools/whatsapp.js';
|
|
24
|
+
import { registerAuditLogTools } from './tools/audit-logs.js';
|
|
23
25
|
import { registerHandoffAnalyticsTools } from './tools/handoff-analytics.js';
|
|
26
|
+
import { registerImpactReportTools } from './tools/impact-report.js';
|
|
24
27
|
import { registerSlaAnalyticsTools } from './tools/sla-analytics.js';
|
|
28
|
+
import { registerCoworkerTools } from './tools/coworker.js';
|
|
25
29
|
import { registerWorkflowTools } from './tools/workflows.js';
|
|
26
30
|
import { registerHelpCenterTools } from './tools/help-center.js';
|
|
27
31
|
import { registerRedactionTools } from './tools/redaction.js';
|
|
28
32
|
import { registerWidgetTools } from './tools/widget.js';
|
|
33
|
+
import { registerAskQuestionsTools } from './tools/ask-questions.js';
|
|
29
34
|
export function createServer(apiKey, baseUrl) {
|
|
30
35
|
const server = new McpServer({
|
|
31
36
|
name: 'OpenCX',
|
|
@@ -38,6 +43,7 @@ export function createServer(apiKey, baseUrl) {
|
|
|
38
43
|
registerContactTools(server, client);
|
|
39
44
|
registerSessionTools(server, client);
|
|
40
45
|
registerTrainingTools(server, client);
|
|
46
|
+
registerUserTools(server, client);
|
|
41
47
|
registerCrawlTools(server, client);
|
|
42
48
|
registerInsightTools(server, client);
|
|
43
49
|
registerMediaTools(server, client);
|
|
@@ -52,12 +58,16 @@ export function createServer(apiKey, baseUrl) {
|
|
|
52
58
|
registerTagTools(server, client);
|
|
53
59
|
registerCsatTools(server, client);
|
|
54
60
|
registerWhatsAppTools(server, client);
|
|
61
|
+
registerAuditLogTools(server, client);
|
|
55
62
|
registerHandoffAnalyticsTools(server, client);
|
|
63
|
+
registerImpactReportTools(server, client);
|
|
56
64
|
registerSlaAnalyticsTools(server, client);
|
|
57
65
|
registerWorkflowTools(server, client);
|
|
66
|
+
registerCoworkerTools(server, client);
|
|
58
67
|
registerHelpCenterTools(server, client);
|
|
59
68
|
registerRedactionTools(server, client);
|
|
60
69
|
registerWidgetTools(server, client);
|
|
70
|
+
registerAskQuestionsTools(server, client);
|
|
61
71
|
return server;
|
|
62
72
|
}
|
|
63
73
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAErE,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,OAAe;IAC1D,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjD,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,6BAA6B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1C,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/tools/actions.js
CHANGED
|
@@ -5,14 +5,14 @@ export function registerActionTools(server, client) {
|
|
|
5
5
|
description: 'List all actions (HTTP API calls) the AI agent can make during conversations. Actions define what APIs the AI can call to take real-world actions on behalf of users.',
|
|
6
6
|
}, async () => {
|
|
7
7
|
const data = await client.get('/actions/');
|
|
8
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
8
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
9
9
|
});
|
|
10
10
|
server.registerTool('get_action', {
|
|
11
11
|
description: 'Get a single action by ID, including its full OpenAPI-style payload specification (parameters, request body, responses).',
|
|
12
12
|
inputSchema: { action_id: z.string().describe('The action ID') },
|
|
13
13
|
}, async ({ action_id }) => {
|
|
14
14
|
const data = await client.get(`/actions/${safePath(action_id)}`);
|
|
15
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
15
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
16
16
|
});
|
|
17
17
|
server.registerTool('create_action', {
|
|
18
18
|
description: 'Create a new action the AI agent can call. The payload field uses OpenAPI-style specs to define parameters, request body, and responses. The AI uses this to construct API calls during conversations.',
|
|
@@ -43,7 +43,7 @@ export function registerActionTools(server, client) {
|
|
|
43
43
|
},
|
|
44
44
|
}, async (params) => {
|
|
45
45
|
const data = await client.post('/actions/', params);
|
|
46
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
46
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
47
47
|
});
|
|
48
48
|
server.registerTool('update_action', {
|
|
49
49
|
description: 'Update an existing action. Only the fields you provide will be changed; omitted fields keep their current values.',
|
|
@@ -73,7 +73,7 @@ export function registerActionTools(server, client) {
|
|
|
73
73
|
},
|
|
74
74
|
}, async ({ action_id, ...body }) => {
|
|
75
75
|
const data = await client.patch(`/actions/${safePath(action_id)}`, body);
|
|
76
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
76
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
77
77
|
});
|
|
78
78
|
server.registerTool('delete_action', {
|
|
79
79
|
description: 'Permanently delete a single action by ID.',
|
|
@@ -86,7 +86,7 @@ export function registerActionTools(server, client) {
|
|
|
86
86
|
description: 'Get all unique tags used across actions in your organization.',
|
|
87
87
|
}, async () => {
|
|
88
88
|
const data = await client.get('/actions/tags');
|
|
89
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
89
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
92
|
//# sourceMappingURL=actions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/tools/actions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAgB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAoB;IACzE,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EACT,uKAAuK;KAC1K,EACD,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/tools/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ask-questions.d.ts","sourceRoot":"","sources":["../../src/tools/ask-questions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAUrD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,QAkCjF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
const DESCRIPTION = `Request structured clarification from the user via the dashboard UI (chips + optional free text). Use ONLY when you are blocked and cannot proceed without user input.
|
|
4
|
+
|
|
5
|
+
Rules:
|
|
6
|
+
- Put ALL questions you need in ONE call (multiple entries in \`questions\`). Do NOT call this tool multiple times in a row.
|
|
7
|
+
- Each question must have \`prompt\`, \`selection\` (\`single\` or \`multiple\`), and \`options\` (2–12 short labels). The UI always offers a separate "describe manually" path — you do not add that yourself.
|
|
8
|
+
- This tool must be the LAST action in your turn. After calling it, STOP — do not write assistant text that repeats the same questions.
|
|
9
|
+
- Do NOT use the built-in AskUserQuestion (ask_user_question) tool for OpenCX coworker clarification; use this coworker tool instead.`;
|
|
10
|
+
export function registerAskQuestionsTools(server, _client) {
|
|
11
|
+
server.registerTool('ask_questions', {
|
|
12
|
+
description: DESCRIPTION,
|
|
13
|
+
inputSchema: {
|
|
14
|
+
questions: z
|
|
15
|
+
.array(z.object({
|
|
16
|
+
prompt: z.string().min(1).max(2000),
|
|
17
|
+
selection: z.enum(['single', 'multiple']),
|
|
18
|
+
options: z.array(z.string().min(1).max(500)).min(1).max(12),
|
|
19
|
+
}))
|
|
20
|
+
.min(1)
|
|
21
|
+
.max(10),
|
|
22
|
+
},
|
|
23
|
+
}, async ({ questions }) => {
|
|
24
|
+
const result = {
|
|
25
|
+
request_id: randomUUID(),
|
|
26
|
+
questions: questions.map((q) => ({
|
|
27
|
+
id: randomUUID(),
|
|
28
|
+
prompt: q.prompt,
|
|
29
|
+
selection: q.selection,
|
|
30
|
+
options: q.options.map((label) => ({
|
|
31
|
+
id: randomUUID(),
|
|
32
|
+
label,
|
|
33
|
+
})),
|
|
34
|
+
})),
|
|
35
|
+
};
|
|
36
|
+
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=ask-questions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ask-questions.js","sourceRoot":"","sources":["../../src/tools/ask-questions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,WAAW,GAAG;;;;;;sIAMkH,CAAC;AAEvI,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,OAAqB;IAChF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EAAE,WAAW;QACxB,WAAW,EAAE;YACX,SAAS,EAAE,CAAC;iBACT,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;gBACnC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBACzC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;aAC5D,CAAC,CACH;iBACA,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,EAAE,CAAC;SACX;KACF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QACtB,MAAM,MAAM,GAAG;YACb,UAAU,EAAE,UAAU,EAAE;YACxB,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/B,EAAE,EAAE,UAAU,EAAE;gBAChB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACjC,EAAE,EAAE,UAAU,EAAE;oBAChB,KAAK;iBACN,CAAC,CAAC;aACJ,CAAC,CAAC;SACJ,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;IACvE,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-logs.d.ts","sourceRoot":"","sources":["../../src/tools/audit-logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA+D5E"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export function registerAuditLogTools(server, client) {
|
|
3
|
+
server.tool('get_audit_logs', `Query the audit log to see who changed what and when. Returns a paginated list of change events with before/after diffs, the actor who made the change, and timestamps.
|
|
4
|
+
|
|
5
|
+
Use this tool to investigate config changes that may have caused AI behavior shifts — for example, "what changed on March 23?" or "who edited the refund instruction yesterday?".
|
|
6
|
+
|
|
7
|
+
Common entity_type values:
|
|
8
|
+
- "ai_instruction" — work instruction created, updated, or deleted
|
|
9
|
+
- "action" — API action created, updated, or deleted
|
|
10
|
+
- "org_api_key" — API key created or revoked
|
|
11
|
+
- "ai_profile" — AI profile / system prompt changes
|
|
12
|
+
|
|
13
|
+
Each result includes:
|
|
14
|
+
- changes.before / changes.after — exact field-level diff of what changed
|
|
15
|
+
- actor_email — who made the change
|
|
16
|
+
- event_type — "created", "updated", or "deleted"
|
|
17
|
+
- created_at — when it happened`, {
|
|
18
|
+
start_date: z
|
|
19
|
+
.string()
|
|
20
|
+
.datetime({ offset: true })
|
|
21
|
+
.optional()
|
|
22
|
+
.describe('ISO 8601 start datetime (e.g. "2026-03-23T00:00:00Z"). Defaults to 24 hours ago.'),
|
|
23
|
+
end_date: z
|
|
24
|
+
.string()
|
|
25
|
+
.datetime({ offset: true })
|
|
26
|
+
.optional()
|
|
27
|
+
.describe('ISO 8601 end datetime (e.g. "2026-03-23T23:59:59Z"). Defaults to now.'),
|
|
28
|
+
entity_type: z
|
|
29
|
+
.string()
|
|
30
|
+
.optional()
|
|
31
|
+
.describe('Filter by entity type (e.g. "ai_instruction", "action", "ai_profile")'),
|
|
32
|
+
event_type: z
|
|
33
|
+
.string()
|
|
34
|
+
.optional()
|
|
35
|
+
.describe('Filter by event type (e.g. "created", "updated", "deleted")'),
|
|
36
|
+
limit: z.coerce
|
|
37
|
+
.number()
|
|
38
|
+
.int()
|
|
39
|
+
.min(1)
|
|
40
|
+
.max(100)
|
|
41
|
+
.optional()
|
|
42
|
+
.describe('Max items to return (1–100, default 20). String or number.'),
|
|
43
|
+
page: z.coerce
|
|
44
|
+
.number()
|
|
45
|
+
.int()
|
|
46
|
+
.min(1)
|
|
47
|
+
.optional()
|
|
48
|
+
.describe('Page number (default 1). String or number.'),
|
|
49
|
+
}, async ({ start_date, end_date, entity_type, event_type, limit, page }) => {
|
|
50
|
+
const data = await client.get('/audit-logs', {
|
|
51
|
+
startDate: start_date,
|
|
52
|
+
endDate: end_date,
|
|
53
|
+
entityType: entity_type,
|
|
54
|
+
eventType: event_type,
|
|
55
|
+
limit: limit?.toString(),
|
|
56
|
+
page: page?.toString(),
|
|
57
|
+
});
|
|
58
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=audit-logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-logs.js","sourceRoot":"","sources":["../../src/tools/audit-logs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,MAAoB;IAC3E,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB;;;;;;;;;;;;;;gCAc4B,EAC5B;QACE,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;aAC1B,QAAQ,EAAE;aACV,QAAQ,CAAC,kFAAkF,CAAC;QAC/F,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;aAC1B,QAAQ,EAAE;aACV,QAAQ,CAAC,uEAAuE,CAAC;QACpF,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,uEAAuE,CAAC;QACpF,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,6DAA6D,CAAC;QAC1E,KAAK,EAAE,CAAC,CAAC,MAAM;aACZ,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,4DAA4D,CAAC;QACzE,IAAI,EAAE,CAAC,CAAC,MAAM;aACX,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CAAC,4CAA4C,CAAC;KAC1D,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;QACvE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE;YAC3C,SAAS,EAAE,UAAU;YACrB,OAAO,EAAE,QAAQ;YACjB,UAAU,EAAE,WAAW;YACvB,SAAS,EAAE,UAAU;YACrB,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;YACxB,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;SACvB,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/autopilot.js
CHANGED
|
@@ -4,10 +4,10 @@ export function registerAutopilotTools(server, client) {
|
|
|
4
4
|
description: 'Get the autopilot enabled/disabled status for each channel (web, email, phone, whatsapp, slack, sms, etc.). When autopilot is enabled, the AI automatically responds to customers on that channel.',
|
|
5
5
|
}, async () => {
|
|
6
6
|
const data = await client.get('/autopilot/');
|
|
7
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
7
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
8
8
|
});
|
|
9
9
|
server.registerTool('set_autopilot', {
|
|
10
|
-
description: 'Enable or disable AI autopilot for a specific channel, and optionally set the AI agent version. When disabled, conversations
|
|
10
|
+
description: 'Enable or disable AI autopilot for a specific channel, and optionally set the AI agent version. When disabled, conversations go directly to human agents.',
|
|
11
11
|
inputSchema: {
|
|
12
12
|
channel: z
|
|
13
13
|
.enum([
|
|
@@ -27,11 +27,11 @@ export function registerAutopilotTools(server, client) {
|
|
|
27
27
|
ai_agent_version: z
|
|
28
28
|
.enum(['v1', 'v2'])
|
|
29
29
|
.optional()
|
|
30
|
-
.describe('AI agent version
|
|
30
|
+
.describe('AI agent version (v1 or v2)'),
|
|
31
31
|
},
|
|
32
32
|
}, async (params) => {
|
|
33
33
|
const data = await client.put('/autopilot/', params);
|
|
34
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
34
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
//# sourceMappingURL=autopilot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autopilot.js","sourceRoot":"","sources":["../../src/tools/autopilot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,MAAoB;IAC5E,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EACT,oMAAoM;KACvM,EACD,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"autopilot.js","sourceRoot":"","sources":["../../src/tools/autopilot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,MAAoB;IAC5E,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EACT,oMAAoM;KACvM,EACD,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EACT,2JAA2J;QAC7J,WAAW,EAAE;YACX,OAAO,EAAE,CAAC;iBACP,IAAI,CAAC;gBACJ,KAAK;gBACL,OAAO;gBACP,OAAO;gBACP,UAAU;gBACV,OAAO;gBACP,KAAK;gBACL,WAAW;gBACX,WAAW;gBACX,KAAK;gBACL,WAAW;aACZ,CAAC;iBACD,QAAQ,CAAC,uBAAuB,CAAC;YACpC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;YACzF,gBAAgB,EAAE,CAAC;iBAChB,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;iBAClB,QAAQ,EAAE;iBACV,QAAQ,CACP,6BAA6B,CAC9B;SACJ;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACrD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocklist.d.ts","sourceRoot":"","sources":["../../src/tools/blocklist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAY,MAAM,kBAAkB,CAAC;AAE1D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"blocklist.d.ts","sourceRoot":"","sources":["../../src/tools/blocklist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAY,MAAM,kBAAkB,CAAC;AAE1D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QA+I7E"}
|
package/dist/tools/blocklist.js
CHANGED
|
@@ -5,15 +5,25 @@ export function registerBlocklistTools(server, client) {
|
|
|
5
5
|
server.registerTool('list_blocked_contacts', {
|
|
6
6
|
description: 'List all blocked contacts. Blocked contacts are ignored by the AI — their messages get no automated response.',
|
|
7
7
|
inputSchema: {
|
|
8
|
-
page: z.
|
|
9
|
-
|
|
8
|
+
page: z.coerce
|
|
9
|
+
.number()
|
|
10
|
+
.int()
|
|
11
|
+
.min(1)
|
|
12
|
+
.optional()
|
|
13
|
+
.describe('Page number (default: 1). String or number.'),
|
|
14
|
+
limit: z.coerce
|
|
15
|
+
.number()
|
|
16
|
+
.int()
|
|
17
|
+
.min(1)
|
|
18
|
+
.optional()
|
|
19
|
+
.describe('Results per page (default: 20). String or number.'),
|
|
10
20
|
},
|
|
11
21
|
}, async ({ page, limit }) => {
|
|
12
22
|
const data = await client.get('/blocklist/contacts', {
|
|
13
23
|
page: page?.toString(),
|
|
14
24
|
limit: limit?.toString(),
|
|
15
25
|
});
|
|
16
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
26
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
17
27
|
});
|
|
18
28
|
server.registerTool('block_contact', {
|
|
19
29
|
description: 'Block a contact by email. The AI will stop responding to messages from this contact.',
|
|
@@ -30,7 +40,7 @@ export function registerBlocklistTools(server, client) {
|
|
|
30
40
|
inputSchema: { contact_id: z.string().describe('The contact ID to check') },
|
|
31
41
|
}, async ({ contact_id }) => {
|
|
32
42
|
const data = await client.get(`/blocklist/contacts/check/${safePath(contact_id)}`);
|
|
33
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
43
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
34
44
|
});
|
|
35
45
|
server.registerTool('unblock_contact', {
|
|
36
46
|
description: 'Remove a contact from the blocklist. The AI will resume responding to them.',
|
|
@@ -43,15 +53,25 @@ export function registerBlocklistTools(server, client) {
|
|
|
43
53
|
server.registerTool('list_blocked_domains', {
|
|
44
54
|
description: 'List all blocked email domains. Messages from contacts on blocked domains are ignored by the AI.',
|
|
45
55
|
inputSchema: {
|
|
46
|
-
page: z.
|
|
47
|
-
|
|
56
|
+
page: z.coerce
|
|
57
|
+
.number()
|
|
58
|
+
.int()
|
|
59
|
+
.min(1)
|
|
60
|
+
.optional()
|
|
61
|
+
.describe('Page number (default: 1). String or number.'),
|
|
62
|
+
limit: z.coerce
|
|
63
|
+
.number()
|
|
64
|
+
.int()
|
|
65
|
+
.min(1)
|
|
66
|
+
.optional()
|
|
67
|
+
.describe('Results per page (default: 20). String or number.'),
|
|
48
68
|
},
|
|
49
69
|
}, async ({ page, limit }) => {
|
|
50
70
|
const data = await client.get('/blocklist/domains', {
|
|
51
71
|
page: page?.toString(),
|
|
52
72
|
limit: limit?.toString(),
|
|
53
73
|
});
|
|
54
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
74
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
55
75
|
});
|
|
56
76
|
server.registerTool('block_domains', {
|
|
57
77
|
description: 'Block one or more email domains. Pass comma-separated for multiple (e.g. "spam.com, junk.org"). Messages from these domains will be ignored by the AI.',
|
|
@@ -61,14 +81,14 @@ export function registerBlocklistTools(server, client) {
|
|
|
61
81
|
},
|
|
62
82
|
}, async (params) => {
|
|
63
83
|
const data = await client.post('/blocklist/domains', params);
|
|
64
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
84
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
65
85
|
});
|
|
66
86
|
server.registerTool('check_domain_blocked', {
|
|
67
87
|
description: 'Check if a domain or email is blocked. Pass either a domain (e.g. "spam.com") or full email (e.g. "user@spam.com").',
|
|
68
88
|
inputSchema: { value: z.string().describe('A domain or email to check') },
|
|
69
89
|
}, async ({ value }) => {
|
|
70
90
|
const data = await client.get('/blocklist/domains/check', { value });
|
|
71
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
91
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
72
92
|
});
|
|
73
93
|
server.registerTool('unblock_domain', {
|
|
74
94
|
description: 'Remove a domain from the blocklist.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocklist.js","sourceRoot":"","sources":["../../src/tools/blocklist.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAgB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,MAAoB;IAC5E,yBAAyB;IAEzB,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EACT,+GAA+G;QACjH,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"blocklist.js","sourceRoot":"","sources":["../../src/tools/blocklist.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/contacts.js
CHANGED
|
@@ -8,7 +8,7 @@ export function registerContactTools(server, client) {
|
|
|
8
8
|
},
|
|
9
9
|
}, async ({ cursor }) => {
|
|
10
10
|
const data = await client.get('/contacts/', { cursor });
|
|
11
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
11
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
12
12
|
});
|
|
13
13
|
server.registerTool('create_contact', {
|
|
14
14
|
description: 'Create a new contact in your organization. At least one of email or phone is recommended for identification. Custom data can store arbitrary key-value pairs.',
|
|
@@ -30,7 +30,7 @@ export function registerContactTools(server, client) {
|
|
|
30
30
|
custom_data: params.custom_data,
|
|
31
31
|
},
|
|
32
32
|
});
|
|
33
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
33
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
34
34
|
});
|
|
35
35
|
server.registerTool('update_contact', {
|
|
36
36
|
description: 'Update an existing contact. Only the provided fields will be changed; omitted fields remain unchanged.',
|
|
@@ -46,7 +46,7 @@ export function registerContactTools(server, client) {
|
|
|
46
46
|
},
|
|
47
47
|
}, async ({ contact_id, ...fields }) => {
|
|
48
48
|
const data = await client.patch(`/contacts/${safePath(contact_id)}`, { contact: fields });
|
|
49
|
-
return { content: [{ type: 'text', text: JSON.stringify(data
|
|
49
|
+
return { content: [{ type: 'text', text: JSON.stringify(data) }] };
|
|
50
50
|
});
|
|
51
51
|
server.registerTool('delete_contact', {
|
|
52
52
|
description: 'Permanently delete a contact by ID. This action cannot be undone.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/tools/contacts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAgB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAoB;IAC1E,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EACT,mLAAmL;QACrL,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;SACrF;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACnB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/tools/contacts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAgB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAoB;IAC1E,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,WAAW,EACT,mLAAmL;QACrL,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;SACrF;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACnB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,+JAA+J;QACjK,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YACtE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAC7D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAC5D,WAAW,EAAE,CAAC;iBACX,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;iBAC/B,QAAQ,EAAE;iBACV,QAAQ,CAAC,mDAAmD,CAAC;SACjE;KACF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE;YAC3C,OAAO,EAAE;gBACP,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC;SACF,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EACT,wGAAwG;QAC1G,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YAClE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAClE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACzD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACxD,WAAW,EAAE,CAAC;iBACX,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;iBAC/B,QAAQ,EAAE;iBACV,QAAQ,CAAC,oDAAoD,CAAC;SAClE;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,aAAa,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACrE,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EAAE,mEAAmE;QAChF,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;SACnE;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACvB,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACzD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,UAAU,wBAAwB,EAAE,CAAC,EAAE,CAAC;IAC9F,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coworker.d.ts","sourceRoot":"","sources":["../../src/tools/coworker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,EAAE,KAAK,YAAY,EAAY,MAAM,kBAAkB,CAAC;AA0B/D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,QAwG5E"}
|