@app-connect/core 1.7.25 → 1.7.26
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/.env.test +5 -5
- package/README.md +441 -441
- package/connector/developerPortal.js +31 -31
- package/connector/mock.js +84 -77
- package/connector/proxy/engine.js +164 -164
- package/connector/proxy/index.js +500 -500
- package/connector/registry.js +252 -252
- package/docs/README.md +50 -50
- package/docs/architecture.md +93 -93
- package/docs/connectors.md +116 -116
- package/docs/handlers.md +125 -125
- package/docs/libraries.md +101 -101
- package/docs/models.md +144 -144
- package/docs/routes.md +115 -115
- package/docs/tests.md +73 -73
- package/handlers/admin.js +523 -523
- package/handlers/appointment.js +193 -0
- package/handlers/auth.js +296 -296
- package/handlers/calldown.js +99 -99
- package/handlers/contact.js +280 -280
- package/handlers/disposition.js +82 -80
- package/handlers/log.js +984 -973
- package/handlers/managedAuth.js +446 -446
- package/handlers/plugin.js +208 -208
- package/handlers/user.js +142 -142
- package/index.js +3140 -2652
- package/jest.config.js +56 -56
- package/lib/analytics.js +54 -54
- package/lib/authSession.js +109 -109
- package/lib/cacheCleanup.js +21 -0
- package/lib/callLogComposer.js +898 -898
- package/lib/callLogLookup.js +34 -0
- package/lib/constants.js +8 -8
- package/lib/debugTracer.js +177 -177
- package/lib/encode.js +30 -30
- package/lib/errorHandler.js +218 -206
- package/lib/generalErrorMessage.js +41 -41
- package/lib/jwt.js +18 -18
- package/lib/logger.js +190 -190
- package/lib/migrateCallLogsSchema.js +116 -0
- package/lib/ringcentral.js +266 -266
- package/lib/s3ErrorLogReport.js +65 -65
- package/lib/sharedSMSComposer.js +471 -471
- package/lib/util.js +67 -67
- package/mcp/README.md +412 -395
- package/mcp/lib/validator.js +91 -91
- package/mcp/mcpHandler.js +425 -425
- package/mcp/tools/cancelAppointment.js +101 -0
- package/mcp/tools/checkAuthStatus.js +105 -105
- package/mcp/tools/confirmAppointment.js +101 -0
- package/mcp/tools/createAppointment.js +157 -0
- package/mcp/tools/createCallLog.js +327 -316
- package/mcp/tools/createContact.js +117 -117
- package/mcp/tools/createMessageLog.js +287 -287
- package/mcp/tools/doAuth.js +60 -60
- package/mcp/tools/findContactByName.js +93 -93
- package/mcp/tools/findContactByPhone.js +101 -101
- package/mcp/tools/getCallLog.js +111 -102
- package/mcp/tools/getGoogleFilePicker.js +99 -99
- package/mcp/tools/getHelp.js +43 -43
- package/mcp/tools/getPublicConnectors.js +94 -94
- package/mcp/tools/getSessionInfo.js +90 -90
- package/mcp/tools/index.js +51 -41
- package/mcp/tools/listAppointments.js +163 -0
- package/mcp/tools/logout.js +96 -96
- package/mcp/tools/rcGetCallLogs.js +65 -65
- package/mcp/tools/updateAppointment.js +154 -0
- package/mcp/tools/updateCallLog.js +130 -126
- package/mcp/ui/App/App.tsx +358 -358
- package/mcp/ui/App/components/AuthInfoForm.tsx +113 -113
- package/mcp/ui/App/components/AuthSuccess.tsx +22 -22
- package/mcp/ui/App/components/ConnectorList.tsx +82 -82
- package/mcp/ui/App/components/DebugPanel.tsx +43 -43
- package/mcp/ui/App/components/OAuthConnect.tsx +270 -270
- package/mcp/ui/App/lib/callTool.ts +130 -130
- package/mcp/ui/App/lib/debugLog.ts +41 -41
- package/mcp/ui/App/lib/developerPortal.ts +111 -111
- package/mcp/ui/App/main.css +5 -5
- package/mcp/ui/App/root.tsx +13 -13
- package/mcp/ui/index.html +13 -13
- package/mcp/ui/package-lock.json +6356 -6356
- package/mcp/ui/package.json +25 -25
- package/mcp/ui/tsconfig.json +26 -26
- package/mcp/ui/vite.config.ts +16 -16
- package/models/accountDataModel.js +33 -33
- package/models/adminConfigModel.js +35 -35
- package/models/cacheModel.js +30 -26
- package/models/callDownListModel.js +34 -34
- package/models/callLogModel.js +33 -27
- package/models/dynamo/connectorSchema.js +146 -146
- package/models/dynamo/lockSchema.js +24 -24
- package/models/dynamo/noteCacheSchema.js +29 -29
- package/models/llmSessionModel.js +17 -17
- package/models/messageLogModel.js +25 -25
- package/models/sequelize.js +16 -16
- package/models/userModel.js +45 -45
- package/package.json +1 -1
- package/releaseNotes.json +1093 -1081
- package/test/connector/proxy/engine.test.js +126 -126
- package/test/connector/proxy/index.test.js +279 -279
- package/test/connector/proxy/sample.json +161 -161
- package/test/connector/registry.test.js +415 -415
- package/test/handlers/admin.test.js +616 -616
- package/test/handlers/auth.test.js +1018 -1018
- package/test/handlers/contact.test.js +1014 -1014
- package/test/handlers/log.test.js +1298 -1160
- package/test/handlers/managedAuth.test.js +457 -457
- package/test/handlers/plugin.test.js +380 -380
- package/test/index.test.js +105 -105
- package/test/lib/cacheCleanup.test.js +42 -0
- package/test/lib/callLogComposer.test.js +1231 -1231
- package/test/lib/debugTracer.test.js +328 -328
- package/test/lib/jwt.test.js +176 -176
- package/test/lib/logger.test.js +206 -206
- package/test/lib/oauth.test.js +359 -359
- package/test/lib/ringcentral.test.js +467 -467
- package/test/lib/sharedSMSComposer.test.js +1084 -1084
- package/test/lib/util.test.js +329 -329
- package/test/mcp/tools/checkAuthStatus.test.js +83 -83
- package/test/mcp/tools/createCallLog.test.js +436 -436
- package/test/mcp/tools/createContact.test.js +58 -58
- package/test/mcp/tools/createMessageLog.test.js +595 -595
- package/test/mcp/tools/doAuth.test.js +113 -113
- package/test/mcp/tools/findContactByName.test.js +275 -275
- package/test/mcp/tools/findContactByPhone.test.js +296 -296
- package/test/mcp/tools/getCallLog.test.js +298 -298
- package/test/mcp/tools/getGoogleFilePicker.test.js +281 -281
- package/test/mcp/tools/getPublicConnectors.test.js +107 -107
- package/test/mcp/tools/getSessionInfo.test.js +127 -127
- package/test/mcp/tools/logout.test.js +233 -233
- package/test/mcp/tools/rcGetCallLogs.test.js +56 -56
- package/test/mcp/tools/updateCallLog.test.js +360 -360
- package/test/models/accountDataModel.test.js +98 -98
- package/test/models/dynamo/connectorSchema.test.js +189 -189
- package/test/models/models.test.js +568 -539
- package/test/routes/managedAuthRoutes.test.js +104 -104
- package/test/setup.js +178 -178
|
@@ -1,126 +1,130 @@
|
|
|
1
|
-
const jwt = require('../../lib/jwt');
|
|
2
|
-
const connectorRegistry = require('../../connector/registry');
|
|
3
|
-
const logCore = require('../../handlers/log');
|
|
4
|
-
const util = require('../../lib/util');
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* MCP Tool: Update Call Log
|
|
8
|
-
*
|
|
9
|
-
* This tool updates an existing call log in the CRM platform.
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
const toolDefinition = {
|
|
13
|
-
name: 'updateCallLog',
|
|
14
|
-
description: '⚠️ REQUIRES AUTHENTICATION: User must first authenticate using the "auth" tool to obtain a JWT token before using this tool. | Update an existing call log in the CRM platform. Returns the updated log ID if successful.',
|
|
15
|
-
inputSchema: {
|
|
16
|
-
type: 'object',
|
|
17
|
-
properties: {
|
|
18
|
-
jwtToken: {
|
|
19
|
-
type: 'string',
|
|
20
|
-
description: 'JWT token containing userId and platform information. If user does not have this, direct them to use the "auth" tool first.'
|
|
21
|
-
},
|
|
22
|
-
incomingData: {
|
|
23
|
-
type: 'object',
|
|
24
|
-
description: 'Call log update data including sessionId, note, additionalSubmission, etc.',
|
|
25
|
-
properties: {
|
|
26
|
-
sessionId: {
|
|
27
|
-
type: 'string',
|
|
28
|
-
description: 'Session ID of the call log to update'
|
|
29
|
-
},
|
|
30
|
-
|
|
31
|
-
type: 'string',
|
|
32
|
-
description: '
|
|
33
|
-
},
|
|
34
|
-
|
|
35
|
-
type: '
|
|
36
|
-
description: '
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
type: '
|
|
40
|
-
description: '
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
*
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
1
|
+
const jwt = require('../../lib/jwt');
|
|
2
|
+
const connectorRegistry = require('../../connector/registry');
|
|
3
|
+
const logCore = require('../../handlers/log');
|
|
4
|
+
const util = require('../../lib/util');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* MCP Tool: Update Call Log
|
|
8
|
+
*
|
|
9
|
+
* This tool updates an existing call log in the CRM platform.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
const toolDefinition = {
|
|
13
|
+
name: 'updateCallLog',
|
|
14
|
+
description: '⚠️ REQUIRES AUTHENTICATION: User must first authenticate using the "auth" tool to obtain a JWT token before using this tool. | Update an existing call log in the CRM platform. Returns the updated log ID if successful.',
|
|
15
|
+
inputSchema: {
|
|
16
|
+
type: 'object',
|
|
17
|
+
properties: {
|
|
18
|
+
jwtToken: {
|
|
19
|
+
type: 'string',
|
|
20
|
+
description: 'JWT token containing userId and platform information. If user does not have this, direct them to use the "auth" tool first.'
|
|
21
|
+
},
|
|
22
|
+
incomingData: {
|
|
23
|
+
type: 'object',
|
|
24
|
+
description: 'Call log update data including sessionId, note, additionalSubmission, etc.',
|
|
25
|
+
properties: {
|
|
26
|
+
sessionId: {
|
|
27
|
+
type: 'string',
|
|
28
|
+
description: 'Session ID of the call log to update'
|
|
29
|
+
},
|
|
30
|
+
extensionNumber: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
description: 'RingCentral extension number for the call log to update'
|
|
33
|
+
},
|
|
34
|
+
note: {
|
|
35
|
+
type: 'string',
|
|
36
|
+
description: 'Updated call note/description'
|
|
37
|
+
},
|
|
38
|
+
additionalSubmission: {
|
|
39
|
+
type: 'object',
|
|
40
|
+
description: 'Additional platform-specific fields to update'
|
|
41
|
+
},
|
|
42
|
+
accountId: {
|
|
43
|
+
type: 'string',
|
|
44
|
+
description: 'RingCentral account ID'
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
required: ['sessionId']
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
required: ['jwtToken', 'incomingData']
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Execute the updateCallLog tool
|
|
56
|
+
* @param {Object} args - The tool arguments
|
|
57
|
+
* @param {string} args.jwtToken - JWT token with user and platform info
|
|
58
|
+
* @param {Object} args.incomingData - Call log update data
|
|
59
|
+
* @returns {Object} Result object with updated log ID
|
|
60
|
+
*/
|
|
61
|
+
async function execute(args) {
|
|
62
|
+
try {
|
|
63
|
+
const { jwtToken, incomingData } = args;
|
|
64
|
+
|
|
65
|
+
// Decode JWT to get userId and platform
|
|
66
|
+
const decodedToken = jwt.decodeJwt(jwtToken);
|
|
67
|
+
if (!decodedToken) {
|
|
68
|
+
throw new Error('Invalid JWT token');
|
|
69
|
+
}
|
|
70
|
+
const { id: userId, platform } = decodedToken;
|
|
71
|
+
|
|
72
|
+
if (!userId) {
|
|
73
|
+
throw new Error('Invalid JWT token: userId not found');
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Get the platform connector module
|
|
77
|
+
const platformModule = connectorRegistry.getConnector(platform);
|
|
78
|
+
|
|
79
|
+
if (!platformModule) {
|
|
80
|
+
throw new Error(`Platform connector not found for: ${platform}`);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Check if updateCallLog is implemented
|
|
84
|
+
if (!platformModule.updateCallLog) {
|
|
85
|
+
throw new Error(`updateCallLog is not implemented for platform: ${platform}`);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// Calculate hashed account ID
|
|
89
|
+
const hashedAccountId = incomingData.accountId
|
|
90
|
+
? util.getHashValue(incomingData.accountId, process.env.HASH_KEY)
|
|
91
|
+
: undefined;
|
|
92
|
+
|
|
93
|
+
// Call the updateCallLog method
|
|
94
|
+
const { successful, logId, updatedNote, returnMessage } = await logCore.updateCallLog({
|
|
95
|
+
platform,
|
|
96
|
+
userId,
|
|
97
|
+
incomingData,
|
|
98
|
+
hashedAccountId,
|
|
99
|
+
isFromSSCL: false
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
if (successful) {
|
|
103
|
+
return {
|
|
104
|
+
success: true,
|
|
105
|
+
data: {
|
|
106
|
+
logId,
|
|
107
|
+
updatedNote,
|
|
108
|
+
message: returnMessage?.message || 'Call log updated successfully'
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
return {
|
|
114
|
+
success: false,
|
|
115
|
+
error: returnMessage?.message || 'Failed to update call log',
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
return {
|
|
121
|
+
success: false,
|
|
122
|
+
error: error.message || 'Unknown error occurred',
|
|
123
|
+
errorDetails: error.stack
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
exports.definition = toolDefinition;
|
|
129
|
+
exports.execute = execute;
|
|
130
|
+
|