@carbonvoice/cv-mcp-server 1.0.12 → 1.1.1
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/auth/auth-middleware.js +203 -0
- package/dist/auth/auth-middleware.js.map +1 -0
- package/dist/auth/index.js +3 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/interfaces/index.js +18 -0
- package/dist/auth/interfaces/index.js.map +1 -0
- package/dist/auth/interfaces/user.interface.js +3 -0
- package/dist/auth/interfaces/user.interface.js.map +1 -0
- package/dist/config/env.js +19 -1
- package/dist/config/env.js.map +1 -0
- package/dist/config/index.js +1 -0
- package/dist/config/index.js.map +1 -0
- package/dist/constants.js +6 -1
- package/dist/constants.js.map +1 -0
- package/dist/cv-api.js +25 -0
- package/dist/cv-api.js.map +1 -0
- package/dist/generated/carbon-voice-api/CarbonVoiceSimplifiedAPI.zod.js +4 -5
- package/dist/generated/carbon-voice-api/CarbonVoiceSimplifiedAPI.zod.js.map +1 -0
- package/dist/generated/carbon-voice-api.js +78 -134
- package/dist/generated/carbon-voice-api.js.map +1 -0
- package/dist/generated/index.js +1 -0
- package/dist/generated/index.js.map +1 -0
- package/dist/generated/models/AIPrompt.js +1 -0
- package/dist/generated/models/AIPrompt.js.map +1 -0
- package/dist/generated/models/AIPromptControllerGetPromptsOwnerType.js +1 -0
- package/dist/generated/models/AIPromptControllerGetPromptsOwnerType.js.map +1 -0
- package/dist/generated/models/AIPromptControllerGetPromptsParams.js +1 -0
- package/dist/generated/models/AIPromptControllerGetPromptsParams.js.map +1 -0
- package/dist/generated/models/AIPromptOwnerType.js +1 -0
- package/dist/generated/models/AIPromptOwnerType.js.map +1 -0
- package/dist/generated/models/AIPromptResponseFormat.js +1 -0
- package/dist/generated/models/AIPromptResponseFormat.js.map +1 -0
- package/dist/generated/models/AIPromptWithMessagesResponse.js +1 -0
- package/dist/generated/models/AIPromptWithMessagesResponse.js.map +1 -0
- package/dist/generated/models/AIPromptWithMessagesResult.js +1 -0
- package/dist/generated/models/AIPromptWithMessagesResult.js.map +1 -0
- package/dist/generated/models/AIResponse.js +1 -0
- package/dist/generated/models/AIResponse.js.map +1 -0
- package/dist/generated/models/AIResponseControllerGetAllResponsesDirection.js +1 -0
- package/dist/generated/models/AIResponseControllerGetAllResponsesDirection.js.map +1 -0
- package/dist/generated/models/AIResponseControllerGetAllResponsesParams.js +1 -0
- package/dist/generated/models/AIResponseControllerGetAllResponsesParams.js.map +1 -0
- package/dist/generated/models/AIShareLinkResponse.js +1 -0
- package/dist/generated/models/AIShareLinkResponse.js.map +1 -0
- package/dist/generated/models/AddAttachmentsResponse.js +1 -0
- package/dist/generated/models/AddAttachmentsResponse.js.map +1 -0
- package/dist/generated/models/AddLinkAttachmentPayload.js +1 -0
- package/dist/generated/models/AddLinkAttachmentPayload.js.map +1 -0
- package/dist/generated/models/AddMessageToFolderPayload.js +1 -0
- package/dist/generated/models/AddMessageToFolderPayload.js.map +1 -0
- package/dist/generated/models/AllConversationsResponse.js +1 -0
- package/dist/generated/models/AllConversationsResponse.js.map +1 -0
- package/dist/generated/models/App.js +1 -0
- package/dist/generated/models/App.js.map +1 -0
- package/dist/generated/models/AppWebhooksAuthenticationHeader.js +1 -0
- package/dist/generated/models/AppWebhooksAuthenticationHeader.js.map +1 -0
- package/dist/generated/models/AppWebhooksUrlMode.js +1 -0
- package/dist/generated/models/AppWebhooksUrlMode.js.map +1 -0
- package/dist/generated/models/AsyncConversationStats.js +1 -0
- package/dist/generated/models/AsyncConversationStats.js.map +1 -0
- package/dist/generated/models/Attachment.js +1 -0
- package/dist/generated/models/Attachment.js.map +1 -0
- package/dist/generated/models/AttachmentLocation.js +1 -0
- package/dist/generated/models/AttachmentLocation.js.map +1 -0
- package/dist/generated/models/AttachmentType.js +1 -0
- package/dist/generated/models/AttachmentType.js.map +1 -0
- package/dist/generated/models/AudioModelV2.js +1 -0
- package/dist/generated/models/AudioModelV2.js.map +1 -0
- package/dist/generated/models/Conversation.js +1 -0
- package/dist/generated/models/Conversation.js.map +1 -0
- package/dist/generated/models/ConversationResponse.js +1 -0
- package/dist/generated/models/ConversationResponse.js.map +1 -0
- package/dist/generated/models/ConversationResponseType.js +1 -0
- package/dist/generated/models/ConversationResponseType.js.map +1 -0
- package/dist/generated/models/ConversationType.js +1 -0
- package/dist/generated/models/ConversationType.js.map +1 -0
- package/dist/generated/models/ConversationVisibility.js +1 -0
- package/dist/generated/models/ConversationVisibility.js.map +1 -0
- package/dist/generated/models/CreateAIPrompt.js +1 -0
- package/dist/generated/models/CreateAIPrompt.js.map +1 -0
- package/dist/generated/models/CreateAIPromptOwnerType.js +1 -0
- package/dist/generated/models/CreateAIPromptOwnerType.js.map +1 -0
- package/dist/generated/models/CreateAIPromptResponseFormat.js +1 -0
- package/dist/generated/models/CreateAIPromptResponseFormat.js.map +1 -0
- package/dist/generated/models/CreateAIResponse.js +1 -0
- package/dist/generated/models/CreateAIResponse.js.map +1 -0
- package/dist/generated/models/CreateConversationMessage.js +1 -0
- package/dist/generated/models/CreateConversationMessage.js.map +1 -0
- package/dist/generated/models/CreateConversationMessageFromMessageType.js +1 -0
- package/dist/generated/models/CreateConversationMessageFromMessageType.js.map +1 -0
- package/dist/generated/models/CreateFolderPayload.js +1 -0
- package/dist/generated/models/CreateFolderPayload.js.map +1 -0
- package/dist/generated/models/CreateFolderPayloadType.js +1 -0
- package/dist/generated/models/CreateFolderPayloadType.js.map +1 -0
- package/dist/generated/models/CreateShareLinkAIResponse.js +1 -0
- package/dist/generated/models/CreateShareLinkAIResponse.js.map +1 -0
- package/dist/generated/models/CreateVoicememoMessage.js +1 -0
- package/dist/generated/models/CreateVoicememoMessage.js.map +1 -0
- package/dist/generated/models/Folder.js +1 -0
- package/dist/generated/models/Folder.js.map +1 -0
- package/dist/generated/models/FolderType.js +1 -0
- package/dist/generated/models/FolderType.js.map +1 -0
- package/dist/generated/models/FolderWithMessages.js +1 -0
- package/dist/generated/models/FolderWithMessages.js.map +1 -0
- package/dist/generated/models/GetAllRootFoldersParams.js +1 -0
- package/dist/generated/models/GetAllRootFoldersParams.js.map +1 -0
- package/dist/generated/models/GetAllRootFoldersSortBy.js +1 -0
- package/dist/generated/models/GetAllRootFoldersSortBy.js.map +1 -0
- package/dist/generated/models/GetAllRootFoldersSortDirection.js +1 -0
- package/dist/generated/models/GetAllRootFoldersSortDirection.js.map +1 -0
- package/dist/generated/models/GetAllRootFoldersType.js +1 -0
- package/dist/generated/models/GetAllRootFoldersType.js.map +1 -0
- package/dist/generated/models/GetCountsGroupedByWorkspaceParams.js +1 -0
- package/dist/generated/models/GetCountsGroupedByWorkspaceParams.js.map +1 -0
- package/dist/generated/models/GetCountsGroupedByWorkspaceType.js +1 -0
- package/dist/generated/models/GetCountsGroupedByWorkspaceType.js.map +1 -0
- package/dist/generated/models/GetFolderByIdDirection.js +1 -0
- package/dist/generated/models/GetFolderByIdDirection.js.map +1 -0
- package/dist/generated/models/GetFolderByIdParams.js +1 -0
- package/dist/generated/models/GetFolderByIdParams.js.map +1 -0
- package/dist/generated/models/GetMessageByIdParams.js +1 -0
- package/dist/generated/models/GetMessageByIdParams.js.map +1 -0
- package/dist/generated/models/GetMessageResponse.js +1 -0
- package/dist/generated/models/GetMessageResponse.js.map +1 -0
- package/dist/generated/models/GetTenRecentAIPromptResponse.js +1 -0
- package/dist/generated/models/GetTenRecentAIPromptResponse.js.map +1 -0
- package/dist/generated/models/GetTenRecentMessagesResponse.js +1 -0
- package/dist/generated/models/GetTenRecentMessagesResponse.js.map +1 -0
- package/dist/generated/models/GetTenRecentMessagesResponseParams.js +1 -0
- package/dist/generated/models/GetTenRecentMessagesResponseParams.js.map +1 -0
- package/dist/generated/models/Label.js +1 -0
- package/dist/generated/models/Label.js.map +1 -0
- package/dist/generated/models/LabelBehavior.js +1 -0
- package/dist/generated/models/LabelBehavior.js.map +1 -0
- package/dist/generated/models/LabelType.js +1 -0
- package/dist/generated/models/LabelType.js.map +1 -0
- package/dist/generated/models/Language.js +1 -0
- package/dist/generated/models/Language.js.map +1 -0
- package/dist/generated/models/ListCountFoldersGroupedByWorkspace.js +1 -0
- package/dist/generated/models/ListCountFoldersGroupedByWorkspace.js.map +1 -0
- package/dist/generated/models/ListFoldersResponse.js +1 -0
- package/dist/generated/models/ListFoldersResponse.js.map +1 -0
- package/dist/generated/models/ListFoldersResponseSortBy.js +1 -0
- package/dist/generated/models/ListFoldersResponseSortBy.js.map +1 -0
- package/dist/generated/models/ListFoldersResponseSortDirection.js +1 -0
- package/dist/generated/models/ListFoldersResponseSortDirection.js.map +1 -0
- package/dist/generated/models/ListFoldersResponseType.js +1 -0
- package/dist/generated/models/ListFoldersResponseType.js.map +1 -0
- package/dist/generated/models/ListMessagesFilter.js +1 -0
- package/dist/generated/models/ListMessagesFilter.js.map +1 -0
- package/dist/generated/models/ListMessagesFilterType.js +1 -0
- package/dist/generated/models/ListMessagesFilterType.js.map +1 -0
- package/dist/generated/models/ListMessagesParams.js +1 -0
- package/dist/generated/models/ListMessagesParams.js.map +1 -0
- package/dist/generated/models/ListMessagesResponse.js +1 -0
- package/dist/generated/models/ListMessagesResponse.js.map +1 -0
- package/dist/generated/models/ListMessagesResponseSortDirection.js +1 -0
- package/dist/generated/models/ListMessagesResponseSortDirection.js.map +1 -0
- package/dist/generated/models/ListMessagesSortDirection.js +1 -0
- package/dist/generated/models/ListMessagesSortDirection.js.map +1 -0
- package/dist/generated/models/ListMessagesType.js +1 -0
- package/dist/generated/models/ListMessagesType.js.map +1 -0
- package/dist/generated/models/Message.js +1 -0
- package/dist/generated/models/Message.js.map +1 -0
- package/dist/generated/models/MessageStatus.js +1 -0
- package/dist/generated/models/MessageStatus.js.map +1 -0
- package/dist/generated/models/MessageType.js +1 -0
- package/dist/generated/models/MessageType.js.map +1 -0
- package/dist/generated/models/MessageV2.js +1 -0
- package/dist/generated/models/MessageV2.js.map +1 -0
- package/dist/generated/models/MessageV2AudioDelivery.js +1 -0
- package/dist/generated/models/MessageV2AudioDelivery.js.map +1 -0
- package/dist/generated/models/MessageV2Status.js +1 -0
- package/dist/generated/models/MessageV2Status.js.map +1 -0
- package/dist/generated/models/MessageV2Type.js +1 -0
- package/dist/generated/models/MessageV2Type.js.map +1 -0
- package/dist/generated/models/MessageV2UsersCaughtUp.js +1 -0
- package/dist/generated/models/MessageV2UsersCaughtUp.js.map +1 -0
- package/dist/generated/models/MessageV2UtmData.js +1 -0
- package/dist/generated/models/MessageV2UtmData.js.map +1 -0
- package/dist/generated/models/MoveFolderPayload.js +1 -0
- package/dist/generated/models/MoveFolderPayload.js.map +1 -0
- package/dist/generated/models/PromptResponse.js +1 -0
- package/dist/generated/models/PromptResponse.js.map +1 -0
- package/dist/generated/models/ReactionSummary.js +1 -0
- package/dist/generated/models/ReactionSummary.js.map +1 -0
- package/dist/generated/models/ReactionSummaryReactionCounts.js +1 -0
- package/dist/generated/models/ReactionSummaryReactionCounts.js.map +1 -0
- package/dist/generated/models/ResponseByLanguage.js +1 -0
- package/dist/generated/models/ResponseByLanguage.js.map +1 -0
- package/dist/generated/models/ResponseByLanguageJson.js +1 -0
- package/dist/generated/models/ResponseByLanguageJson.js.map +1 -0
- package/dist/generated/models/SearchUserParams.js +1 -0
- package/dist/generated/models/SearchUserParams.js.map +1 -0
- package/dist/generated/models/SearchUsersBody.js +1 -0
- package/dist/generated/models/SearchUsersBody.js.map +1 -0
- package/dist/generated/models/SendDirectMessage.js +1 -0
- package/dist/generated/models/SendDirectMessage.js.map +1 -0
- package/dist/generated/models/SendDirectMessageFromMessageType.js +1 -0
- package/dist/generated/models/SendDirectMessageFromMessageType.js.map +1 -0
- package/dist/generated/models/SimplifiedAIPrompt.js +1 -0
- package/dist/generated/models/SimplifiedAIPrompt.js.map +1 -0
- package/dist/generated/models/Stats.js +1 -0
- package/dist/generated/models/Stats.js.map +1 -0
- package/dist/generated/models/SubFolder.js +1 -0
- package/dist/generated/models/SubFolder.js.map +1 -0
- package/dist/generated/models/SubFolderType.js +1 -0
- package/dist/generated/models/SubFolderType.js.map +1 -0
- package/dist/generated/models/SubscribeUserPayload.js +1 -0
- package/dist/generated/models/SubscribeUserPayload.js.map +1 -0
- package/dist/generated/models/SubscribeUserPayloadSubscriptionsItem.js +1 -0
- package/dist/generated/models/SubscribeUserPayloadSubscriptionsItem.js.map +1 -0
- package/dist/generated/models/SubscribedUser.js +1 -0
- package/dist/generated/models/SubscribedUser.js.map +1 -0
- package/dist/generated/models/SubscribedUserSubscriptionsItem.js +1 -0
- package/dist/generated/models/SubscribedUserSubscriptionsItem.js.map +1 -0
- package/dist/generated/models/SubscriptionAction.js +1 -0
- package/dist/generated/models/SubscriptionAction.js.map +1 -0
- package/dist/generated/models/SubscriptionActionActionId.js +1 -0
- package/dist/generated/models/SubscriptionActionActionId.js.map +1 -0
- package/dist/generated/models/SubscriptionActionEntityType.js +1 -0
- package/dist/generated/models/SubscriptionActionEntityType.js.map +1 -0
- package/dist/generated/models/SubscriptionFilter.js +1 -0
- package/dist/generated/models/SubscriptionFilter.js.map +1 -0
- package/dist/generated/models/SubscriptionFilterOperator.js +1 -0
- package/dist/generated/models/SubscriptionFilterOperator.js.map +1 -0
- package/dist/generated/models/SubscriptionFilterValue.js +1 -0
- package/dist/generated/models/SubscriptionFilterValue.js.map +1 -0
- package/dist/generated/models/TextModel.js +1 -0
- package/dist/generated/models/TextModel.js.map +1 -0
- package/dist/generated/models/TextModelType.js +1 -0
- package/dist/generated/models/TextModelType.js.map +1 -0
- package/dist/generated/models/TimedText.js +1 -0
- package/dist/generated/models/TimedText.js.map +1 -0
- package/dist/generated/models/ToRecipient.js +1 -0
- package/dist/generated/models/ToRecipient.js.map +1 -0
- package/dist/generated/models/UpdateFolderNamePayload.js +1 -0
- package/dist/generated/models/UpdateFolderNamePayload.js.map +1 -0
- package/dist/generated/models/User.js +1 -0
- package/dist/generated/models/User.js.map +1 -0
- package/dist/generated/models/UserReaction.js +1 -0
- package/dist/generated/models/UserReaction.js.map +1 -0
- package/dist/generated/models/UserStats.js +1 -0
- package/dist/generated/models/UserStats.js.map +1 -0
- package/dist/generated/models/UsersNotAllowedReceiveNotifications.js +1 -0
- package/dist/generated/models/UsersNotAllowedReceiveNotifications.js.map +1 -0
- package/dist/generated/models/UsersNotAllowedReceiveNotificationsV2.js +1 -0
- package/dist/generated/models/UsersNotAllowedReceiveNotificationsV2.js.map +1 -0
- package/dist/generated/models/UtmData.js +1 -0
- package/dist/generated/models/UtmData.js.map +1 -0
- package/dist/generated/models/Voice.js +1 -0
- package/dist/generated/models/Voice.js.map +1 -0
- package/dist/generated/models/VoiceGender.js +1 -0
- package/dist/generated/models/VoiceGender.js.map +1 -0
- package/dist/generated/models/VoiceQuality.js +1 -0
- package/dist/generated/models/VoiceQuality.js.map +1 -0
- package/dist/generated/models/VoiceType.js +1 -0
- package/dist/generated/models/VoiceType.js.map +1 -0
- package/dist/generated/models/WorkspaceBasicInfo.js +1 -0
- package/dist/generated/models/WorkspaceBasicInfo.js.map +1 -0
- package/dist/generated/models/index.js +1 -0
- package/dist/generated/models/index.js.map +1 -0
- package/dist/interfaces/conversation.interface.js +3 -0
- package/dist/interfaces/conversation.interface.js.map +1 -0
- package/dist/interfaces/folder.interface.js +1 -0
- package/dist/interfaces/folder.interface.js.map +1 -0
- package/dist/interfaces/get-by-id.interface.js +1 -0
- package/dist/interfaces/get-by-id.interface.js.map +1 -0
- package/dist/interfaces/index.js +1 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/interfaces/mcp-tool-response.interface.js +1 -0
- package/dist/interfaces/mcp-tool-response.interface.js.map +1 -0
- package/dist/interfaces/message.interface.js +1 -0
- package/dist/interfaces/message.interface.js.map +1 -0
- package/dist/schemas/conversation.js +18 -0
- package/dist/schemas/conversation.js.map +1 -0
- package/dist/schemas/index.js +2 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/message.js +1 -0
- package/dist/schemas/message.js.map +1 -0
- package/dist/server.js +156 -63
- package/dist/server.js.map +1 -0
- package/dist/transports/http/constants.js +5 -0
- package/dist/transports/http/constants.js.map +1 -0
- package/dist/transports/http/index.js +19 -0
- package/dist/transports/http/index.js.map +1 -0
- package/dist/transports/http/middleware/add-mcp-session-id.middleware.js +28 -0
- package/dist/transports/http/middleware/add-mcp-session-id.middleware.js.map +1 -0
- package/dist/transports/http/middleware/add-request-id.middlware.js +11 -0
- package/dist/transports/http/middleware/add-request-id.middlware.js.map +1 -0
- package/dist/transports/http/middleware/auth-error-logger.middleware.js +31 -0
- package/dist/transports/http/middleware/auth-error-logger.middleware.js.map +1 -0
- package/dist/transports/http/middleware/index.js +24 -0
- package/dist/transports/http/middleware/index.js.map +1 -0
- package/dist/transports/http/middleware/log-request.middlware.js +31 -0
- package/dist/transports/http/middleware/log-request.middlware.js.map +1 -0
- package/dist/transports/http/middleware/oauth-authorization-server.middleware.js +24 -0
- package/dist/transports/http/middleware/oauth-authorization-server.middleware.js.map +1 -0
- package/dist/transports/http/middleware/oauth-protected-resource.middleware.js +19 -0
- package/dist/transports/http/middleware/oauth-protected-resource.middleware.js.map +1 -0
- package/dist/transports/http/middleware/well-known-cors-headers.middleware.js +23 -0
- package/dist/transports/http/middleware/well-known-cors-headers.middleware.js.map +1 -0
- package/dist/transports/http/streamable.js +661 -0
- package/dist/transports/http/streamable.js.map +1 -0
- package/dist/transports/http/utils/get-or-create-session-id.js +19 -0
- package/dist/transports/http/utils/get-or-create-session-id.js.map +1 -0
- package/dist/transports/http/utils/index.js +18 -0
- package/dist/transports/http/utils/index.js.map +1 -0
- package/dist/transports/stdio/index.js +18 -0
- package/dist/transports/stdio/index.js.map +1 -0
- package/dist/transports/stdio/stdio.js +19 -0
- package/dist/transports/stdio/stdio.js.map +1 -0
- package/dist/utils/axios-instance.js +85 -32
- package/dist/utils/axios-instance.js.map +1 -0
- package/dist/utils/format-time-to-human.js +33 -0
- package/dist/utils/format-time-to-human.js.map +1 -0
- package/dist/utils/format-to-mcp-tool-response.js +1 -0
- package/dist/utils/format-to-mcp-tool-response.js.map +1 -0
- package/dist/utils/format-uptime.js +13 -0
- package/dist/utils/format-uptime.js.map +1 -0
- package/dist/utils/get-user-id-from-headers.js +11 -0
- package/dist/utils/get-user-id-from-headers.js.map +1 -0
- package/dist/utils/get-user-id-from-token.js +21 -0
- package/dist/utils/get-user-id-from-token.js.map +1 -0
- package/dist/utils/http-errors.js +34 -0
- package/dist/utils/http-errors.js.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.js +89 -45
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/obfuscate-auth-headers.js +18 -0
- package/dist/utils/obfuscate-auth-headers.js.map +1 -0
- package/dist/utils/zod-schema-transformer.js +1 -0
- package/dist/utils/zod-schema-transformer.js.map +1 -0
- package/dist/utils/zod-transformer.js +1 -0
- package/dist/utils/zod-transformer.js.map +1 -0
- package/package.json +34 -8
- package/dist/stdio.js +0 -39
- package/dist/utils/errors.js +0 -22
package/dist/utils/logger.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.createLogger = exports.stream = exports.logger = void 0;
|
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const winston_1 = __importDefault(require("winston"));
|
|
10
|
+
const winston_cloudwatch_1 = __importDefault(require("winston-cloudwatch"));
|
|
10
11
|
const config_1 = require("../config");
|
|
11
12
|
const constants_1 = require("../constants");
|
|
12
13
|
// Custom log levels
|
|
@@ -25,18 +26,6 @@ const colors = {
|
|
|
25
26
|
http: 'magenta',
|
|
26
27
|
debug: 'white',
|
|
27
28
|
};
|
|
28
|
-
// Add colors to winston
|
|
29
|
-
winston_1.default.addColors(colors);
|
|
30
|
-
// Console format with colors
|
|
31
|
-
const consoleFormat = winston_1.default.format.combine(winston_1.default.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss:SSS' }), winston_1.default.format.colorize({ all: true }), winston_1.default.format.printf(({ timestamp, level, message, ...metadata }) => {
|
|
32
|
-
let output = `${timestamp} ${level}: ${message}`;
|
|
33
|
-
if (Object.keys(metadata).length > 0) {
|
|
34
|
-
output += '\n' + JSON.stringify(metadata, null, 2);
|
|
35
|
-
}
|
|
36
|
-
return output;
|
|
37
|
-
}));
|
|
38
|
-
// File format (JSON)
|
|
39
|
-
const fileFormat = winston_1.default.format.combine(winston_1.default.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss:SSS' }), winston_1.default.format.json());
|
|
40
29
|
const getLogLevel = () => {
|
|
41
30
|
return config_1.env.LOG_LEVEL || 'info';
|
|
42
31
|
};
|
|
@@ -44,49 +33,103 @@ const getLogLevel = () => {
|
|
|
44
33
|
// const logDir = path.join(process.cwd(), 'logs');
|
|
45
34
|
// Prefer env var, fallback to project-relative folder
|
|
46
35
|
const logDir = process.env.LOG_DIR || constants_1.LOG_DIR;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
36
|
+
const createLogDir = (logDir) => {
|
|
37
|
+
if (!fs_1.default.existsSync(logDir)) {
|
|
38
|
+
try {
|
|
39
|
+
fs_1.default.mkdirSync(logDir, { recursive: true });
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
console.error('Error creating log directory', error);
|
|
43
|
+
}
|
|
53
44
|
}
|
|
54
|
-
|
|
55
|
-
|
|
45
|
+
console.error('logs_dir', logDir);
|
|
46
|
+
};
|
|
56
47
|
// Create log files
|
|
57
48
|
const errorLogFile = path_1.default.join(logDir, 'error.log');
|
|
58
49
|
const combinedLogFile = path_1.default.join(logDir, 'combined.log');
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
50
|
+
const transports = {
|
|
51
|
+
file: [
|
|
52
|
+
// Error log file
|
|
53
|
+
new winston_1.default.transports.File({
|
|
54
|
+
filename: errorLogFile,
|
|
55
|
+
level: 'error',
|
|
56
|
+
maxsize: 5 * 1024 * 1024, // 5MB
|
|
57
|
+
maxFiles: 5,
|
|
58
|
+
tailable: true,
|
|
59
|
+
}),
|
|
60
|
+
// Combined log file - set to same level as logger
|
|
61
|
+
new winston_1.default.transports.File({
|
|
62
|
+
filename: combinedLogFile,
|
|
63
|
+
level: getLogLevel(), // Use same level as logger
|
|
64
|
+
maxsize: 5 * 1024 * 1024, // 5MB
|
|
65
|
+
maxFiles: 5,
|
|
66
|
+
tailable: true,
|
|
67
|
+
}),
|
|
68
|
+
],
|
|
69
|
+
console: [
|
|
79
70
|
new winston_1.default.transports.Console({
|
|
80
|
-
format:
|
|
71
|
+
format: winston_1.default.format.combine(winston_1.default.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss:SSS' }), winston_1.default.format.colorize({ all: true }), winston_1.default.format.printf(({ timestamp, level, message, ...metadata }) => {
|
|
72
|
+
let output = `${timestamp} [${config_1.env.ENVIRONMENT}] ${level}: ${message}`;
|
|
73
|
+
if (Object.keys(metadata).length > 0) {
|
|
74
|
+
metadata.environment = config_1.env.ENVIRONMENT; // Add environment to metadata
|
|
75
|
+
metadata.version = constants_1.SERVICE_VERSION;
|
|
76
|
+
output += '\n' + JSON.stringify(metadata, null, 2);
|
|
77
|
+
}
|
|
78
|
+
return output;
|
|
79
|
+
})),
|
|
81
80
|
}),
|
|
82
|
-
]
|
|
83
|
-
: [
|
|
81
|
+
],
|
|
82
|
+
cloudwatch: [
|
|
83
|
+
new winston_cloudwatch_1.default({
|
|
84
|
+
logGroupName: 'CarbonVoice-MCP-Server',
|
|
85
|
+
logStreamName: `CarbonVoice-MCP-Server-${config_1.env.ENVIRONMENT}`,
|
|
86
|
+
awsRegion: 'us-east-2',
|
|
87
|
+
retentionInDays: 14,
|
|
88
|
+
// Credentials are injected by App Runner
|
|
89
|
+
level: getLogLevel(),
|
|
90
|
+
jsonMessage: false, // Set to false to use messageFormatter
|
|
91
|
+
messageFormatter: ({ level, message, ...rest }) => {
|
|
92
|
+
return JSON.stringify({
|
|
93
|
+
timestamp: new Date().toISOString(),
|
|
94
|
+
level,
|
|
95
|
+
message,
|
|
96
|
+
environment: config_1.env.ENVIRONMENT,
|
|
97
|
+
version: constants_1.SERVICE_VERSION,
|
|
98
|
+
...rest,
|
|
99
|
+
});
|
|
100
|
+
},
|
|
101
|
+
}),
|
|
102
|
+
],
|
|
103
|
+
};
|
|
104
|
+
// Note: Format is now defined inline in the logger creation
|
|
105
|
+
const getLogTransports = () => {
|
|
106
|
+
const transport = config_1.env.LOG_TRANSPORT || 'file';
|
|
107
|
+
if (transport === 'file') {
|
|
108
|
+
createLogDir(logDir);
|
|
109
|
+
return transports.file;
|
|
110
|
+
}
|
|
111
|
+
if (transport === 'cloudwatch') {
|
|
112
|
+
return transports.cloudwatch;
|
|
113
|
+
}
|
|
114
|
+
return transports.console;
|
|
115
|
+
};
|
|
116
|
+
// Add colors to winston
|
|
117
|
+
winston_1.default.addColors(colors);
|
|
84
118
|
// Create the logger
|
|
85
119
|
exports.logger = winston_1.default.createLogger({
|
|
86
120
|
level: getLogLevel(),
|
|
87
121
|
levels,
|
|
88
|
-
format:
|
|
89
|
-
|
|
122
|
+
format: winston_1.default.format.combine(winston_1.default.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss:SSS' }), winston_1.default.format.errors({ stack: true }), winston_1.default.format.json(), winston_1.default.format.printf(({ timestamp, level, message, ...metadata }) => {
|
|
123
|
+
return JSON.stringify({
|
|
124
|
+
timestamp,
|
|
125
|
+
level,
|
|
126
|
+
message,
|
|
127
|
+
environment: config_1.env.ENVIRONMENT,
|
|
128
|
+
version: constants_1.SERVICE_VERSION,
|
|
129
|
+
...metadata,
|
|
130
|
+
});
|
|
131
|
+
})),
|
|
132
|
+
transports: getLogTransports(),
|
|
90
133
|
});
|
|
91
134
|
// Add a startup log to verify the logger is working
|
|
92
135
|
// logger.debug('Logger initialized', {
|
|
@@ -112,3 +155,4 @@ const createLogger = (context) => {
|
|
|
112
155
|
return exports.logger.child({ context });
|
|
113
156
|
};
|
|
114
157
|
exports.createLogger = createLogger;
|
|
158
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.obfuscateAuthHeaders = exports.removeLastChars = void 0;
|
|
4
|
+
const AUTH_HEADERS = ['authorization', 'x-api-key'];
|
|
5
|
+
const removeLastChars = (str) => {
|
|
6
|
+
return (str === null || str === void 0 ? void 0 : str.substring(0, str.length - 5)) + '<omitted>';
|
|
7
|
+
};
|
|
8
|
+
exports.removeLastChars = removeLastChars;
|
|
9
|
+
const obfuscateAuthHeaders = (headers) => {
|
|
10
|
+
return Object.fromEntries(Object.entries(headers).map(([key, value]) => [
|
|
11
|
+
key,
|
|
12
|
+
AUTH_HEADERS.includes(key === null || key === void 0 ? void 0 : key.toLowerCase())
|
|
13
|
+
? (0, exports.removeLastChars)(`${value}`)
|
|
14
|
+
: value,
|
|
15
|
+
]));
|
|
16
|
+
};
|
|
17
|
+
exports.obfuscateAuthHeaders = obfuscateAuthHeaders;
|
|
18
|
+
//# sourceMappingURL=obfuscate-auth-headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"obfuscate-auth-headers.js","sourceRoot":"","sources":["../../src/utils/obfuscate-auth-headers.ts"],"names":[],"mappings":";;;AAEA,MAAM,YAAY,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;AAE7C,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,EAAE;IAC7C,OAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAG,WAAW,CAAC;AACzD,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEK,MAAM,oBAAoB,GAAG,CAClC,OAA4B,EACP,EAAE;IACvB,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QAC5C,GAAG;QACH,YAAY,CAAC,QAAQ,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,WAAW,EAAE,CAAC;YACvC,CAAC,CAAC,IAAA,uBAAe,EAAC,GAAG,KAAK,EAAE,CAAC;YAC7B,CAAC,CAAC,KAAK;KACV,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,oBAAoB,wBAW/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-schema-transformer.js","sourceRoot":"","sources":["../../src/utils/zod-schema-transformer.ts"],"names":[],"mappings":";AAAA,6CAA6C;AAC7C,2BAA2B;;AAE3B,+EAA+E;AAC/E,mBAAmB;AACnB,sBAAsB;AACtB,MAAM;AAEN,2BAA2B;AAC3B,qBAAqB;AACrB,2BAA2B;AAC3B,yDAAyD;AACzD,wBAAwB;AACxB,qBAAqB;AACrB,sBAAsB;AACtB,2BAA2B;AAC3B,sBAAsB;AACtB,4BAA4B;AAC5B,oBAAoB;AACpB,mFAAmF;AACnF,qBAAqB;AACrB,iCAAiC;AACjC,+DAA+D;AAC/D,yEAAyE;AACzE,+DAA+D;AAC/D,oCAAoC;AACpC,kEAAkE;AAClE,8EAA8E;AAC9E,YAAY;AACZ,kCAAkC;AAClC,UAAU;AACV,kCAAkC;AAClC,eAAe;AACf,wBAAwB;AACxB,MAAM;AACN,IAAI;AAEJ,oDAAoD;AACpD,iCAAiC;AACjC,uBAAuB;AACvB,qEAAqE;AACrE,gCAAgC;AAChC,SAAS;AACT,MAAM;AAEN,2DAA2D;AAE3D,mDAAmD;AACnD,2CAA2C;AAC3C,mDAAmD;AACnD,wCAAwC;AACxC,WAAW;AACX,6EAA6E;AAC7E,QAAQ;AACR,MAAM;AAEN,wCAAwC;AACxC,6CAA6C;AAE7C,2BAA2B;AAC3B,4BAA4B;AAC5B,mFAAmF;AACnF,iBAAiB;AAEjB,kBAAkB;AAClB,4BAA4B;AAC5B,6EAA6E;AAC7E,iBAAiB;AACjB,KAAK;AAEL,mBAAmB;AACnB,KAAK;AAEL,8BAA8B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-transformer.js","sourceRoot":"","sources":["../../src/utils/zod-transformer.ts"],"names":[],"mappings":";AAAA,qEAAqE;;AAErE,6CAA6C;AAC7C,iCAAiC;AACjC,uBAAuB;AACvB,qEAAqE;AACrE,gCAAgC;AAChC,SAAS;AACT,MAAM;AACN,sBAAsB;AACtB,uBAAuB;AACvB,mEAAmE;AACnE,gCAAgC;AAChC,SAAS;AACT,MAAM;AACN,0CAA0C;AAC1C,+BAA+B;AAC/B,2BAA2B;AAC3B,QAAQ;AACR,KAAK;AAEL,yDAAyD;AACzD,gCAAgC;AAChC,8BAA8B"}
|
package/package.json
CHANGED
|
@@ -1,23 +1,36 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@carbonvoice/cv-mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Server implementation for integrating with Carbon Voice's API, providing tools and endpoints for voice messaging, conversations, and workspace management through MCP (Model Context Protocol)",
|
|
5
5
|
"author": "Carbon Voice",
|
|
6
6
|
"license": "ISC",
|
|
7
7
|
"private": false,
|
|
8
8
|
"homepage": "https://getcarbon.app",
|
|
9
9
|
"bugs": "https://github.com/PhononX/cv-mcp-server/issues",
|
|
10
|
-
"main": "./dist/stdio.js",
|
|
10
|
+
"main": "./dist/transports/stdio/stdio.js",
|
|
11
11
|
"bin": {
|
|
12
|
-
"cv-mcp-server": "dist/stdio.js"
|
|
12
|
+
"cv-mcp-server": "/dist/transports/stdio/stdio.js"
|
|
13
13
|
},
|
|
14
14
|
"scripts": {
|
|
15
15
|
"build": "shx rm -rf dist && tsc && shx chmod +x dist/*.js",
|
|
16
16
|
"prepare": "npm run build",
|
|
17
17
|
"lint:fix": "eslint src --fix",
|
|
18
|
-
"mcp:inspector": "env-cmd npx @modelcontextprotocol/inspector node dist/stdio.js",
|
|
18
|
+
"mcp:inspector:stdio": "env-cmd npx @modelcontextprotocol/inspector node ./dist/transports/stdio/stdio.js",
|
|
19
|
+
"mcp:inspector:http": "env-cmd npx @modelcontextprotocol/inspector http://localhost:3005",
|
|
20
|
+
"dev:http": "env-cmd nodemon --inspect dist/transports/http/streamable.js",
|
|
21
|
+
"start:http": "node dist/transports/http/streamable.js",
|
|
19
22
|
"auto:build": "env-cmd nodemon --watch src --ext ts --exec npm run build",
|
|
20
|
-
"generate:api": "env-cmd orval --config orval.config.ts"
|
|
23
|
+
"generate:api": "env-cmd orval --config orval.config.ts",
|
|
24
|
+
"test:oauth": "node test-oauth.js",
|
|
25
|
+
"test": "echo \"Need to implement tests...\"",
|
|
26
|
+
"version:check": "echo \"Current version: $(jq -r .version package.json)\"",
|
|
27
|
+
"version:patch": "npm version patch && git push origin develop",
|
|
28
|
+
"version:minor": "npm version minor && git push origin develop",
|
|
29
|
+
"version:major": "npm version major && git push origin develop",
|
|
30
|
+
"release:patch": "git checkout develop && git pull origin develop && npm run test && npm run build && npm version patch && git push origin develop && git checkout main && git merge develop && git push origin main && git checkout develop",
|
|
31
|
+
"release:minor": "git checkout develop && git pull origin develop && npm run test && npm run build && npm version minor && git push origin develop && git checkout main && git merge develop && git push origin main && git checkout develop",
|
|
32
|
+
"release:major": "git checkout develop && git pull origin develop && npm run test && npm run build && npm version major && git push origin develop && git checkout main && git merge develop && git push origin main && git checkout develop",
|
|
33
|
+
"deploy:release": "git checkout develop && git pull origin develop && npm run test && npm run build && git push origin develop && git checkout main && git merge develop && git push origin main && git checkout develop"
|
|
21
34
|
},
|
|
22
35
|
"files": [
|
|
23
36
|
"dist"
|
|
@@ -27,18 +40,31 @@
|
|
|
27
40
|
"mcp-server",
|
|
28
41
|
"mcp-server-carbonvoice",
|
|
29
42
|
"carbonvoice",
|
|
30
|
-
"carbonvoice-mcp-server"
|
|
43
|
+
"carbonvoice-mcp-server",
|
|
44
|
+
"stdio",
|
|
45
|
+
"http",
|
|
46
|
+
"streamable"
|
|
31
47
|
],
|
|
32
48
|
"dependencies": {
|
|
33
|
-
"@
|
|
49
|
+
"@aws-sdk/client-cloudwatch-logs": "^3.844.0",
|
|
50
|
+
"@modelcontextprotocol/sdk": "^1.15.1",
|
|
34
51
|
"axios": "^1.9.0",
|
|
52
|
+
"cors": "^2.8.5",
|
|
53
|
+
"express": "^5.1.0",
|
|
54
|
+
"helmet": "^8.1.0",
|
|
55
|
+
"http-errors": "^2.0.0",
|
|
56
|
+
"jsonwebtoken": "^9.0.2",
|
|
35
57
|
"openapi-zod-client": "^1.18.3",
|
|
36
|
-
"winston": "^3.17.0"
|
|
58
|
+
"winston": "^3.17.0",
|
|
59
|
+
"winston-cloudwatch": "^6.3.0"
|
|
37
60
|
},
|
|
38
61
|
"devDependencies": {
|
|
39
62
|
"@eslint/js": "^9.29.0",
|
|
40
63
|
"@orval/zod": "^7.9.0",
|
|
64
|
+
"@types/cors": "^2.8.19",
|
|
65
|
+
"@types/express": "^5.0.3",
|
|
41
66
|
"@types/handlebars": "^4.0.40",
|
|
67
|
+
"@types/jsonwebtoken": "^9.0.10",
|
|
42
68
|
"@types/node": "^22.15.29",
|
|
43
69
|
"@typescript-eslint/eslint-plugin": "^8.33.1",
|
|
44
70
|
"@typescript-eslint/parser": "^8.33.1",
|
package/dist/stdio.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
'use strict';
|
|
3
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
-
};
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
8
|
-
const constants_1 = require("./constants");
|
|
9
|
-
const server_1 = __importDefault(require("./server"));
|
|
10
|
-
const utils_1 = require("./utils");
|
|
11
|
-
// Set stdio mode for logger (Needed for the logger to work in stdio mode)
|
|
12
|
-
process.env.MCP_STDIO_MODE = 'true';
|
|
13
|
-
const logArgs = {
|
|
14
|
-
name: constants_1.SERVICE_NAME,
|
|
15
|
-
version: constants_1.SERVICE_VERSION,
|
|
16
|
-
};
|
|
17
|
-
async function runServer() {
|
|
18
|
-
const transport = new stdio_js_1.StdioServerTransport();
|
|
19
|
-
// Log startup information
|
|
20
|
-
utils_1.logger.debug('🚀 Starting stdio server...', logArgs);
|
|
21
|
-
try {
|
|
22
|
-
await server_1.default.connect(transport);
|
|
23
|
-
utils_1.logger.info('✅ MCP server connected to stdio transport', logArgs);
|
|
24
|
-
}
|
|
25
|
-
catch (error) {
|
|
26
|
-
utils_1.logger.error('❌ Failed to connect server to stdio transport', {
|
|
27
|
-
error,
|
|
28
|
-
...logArgs,
|
|
29
|
-
});
|
|
30
|
-
process.exit(1);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
runServer().catch((error) => {
|
|
34
|
-
utils_1.logger.error('❌ Fatal server error', {
|
|
35
|
-
error,
|
|
36
|
-
...logArgs,
|
|
37
|
-
});
|
|
38
|
-
process.exit(1);
|
|
39
|
-
});
|
package/dist/utils/errors.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// import { ErrorResponse } from '../interfaces';
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
// export const handleError = (error: any): ErrorResponse => {
|
|
5
|
-
// const status = error.status;
|
|
6
|
-
// // return {
|
|
7
|
-
// // isError: true,
|
|
8
|
-
// // content: [{ type: 'text', text: `Error: ${error.message}` }],
|
|
9
|
-
// // };
|
|
10
|
-
// const resource = 'user';
|
|
11
|
-
// const id = 'xxx-1234';
|
|
12
|
-
// return {
|
|
13
|
-
// statusCode: 404,
|
|
14
|
-
// body: {
|
|
15
|
-
// error: {
|
|
16
|
-
// code: 'RESOURCE_NOT_FOUND',
|
|
17
|
-
// message: `The requested ${resource} with ID ${id} was not found.`,
|
|
18
|
-
// details: { resource, id },
|
|
19
|
-
// },
|
|
20
|
-
// },
|
|
21
|
-
// } as any;
|
|
22
|
-
// };
|