swit-message-comment-create
Add a comment to a specific message in a Swit workspace. Provide the message ID and comment content.
Instructions
Create comment on message
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | ||
| content | Yes | ||
| body_type | No | plain | |
| assets | No | ||
| external_asset_type | No |
Implementation Reference
- src/handlers/core.handlers.ts:26-29 (handler)Handler function that validates args with MessageCommentCreateArgsSchema and delegates to switClient.createMessageComment()
export const handleMessageCommentCreate = async (switClient: SwitClient, args: any) => { const validatedArgs = MessageCommentCreateArgsSchema.parse(args); return await switClient.createMessageComment(validatedArgs); }; - src/schemas.ts:101-107 (schema)Zod schema defining input arguments: message_id (string), content (string), body_type (enum: plain/markdown, default plain), assets (optional record), external_asset_type (optional string)
export const MessageCommentCreateArgsSchema = z.object({ message_id: z.string(), content: z.string(), body_type: z.enum(['plain', 'markdown']).default('plain').optional(), assets: z.record(z.any()).optional(), external_asset_type: z.string().optional(), }); - src/schemas.ts:125-129 (schema)Zod schema defining the response shape: data.comment with fields comment_id, user_id, user_name, content, created, assets
export const MessageCommentCreateResponseSchema = z.object({ data: z.object({ comment: MessageCommentSchema, }), }); - src/tools/core.tools.ts:27-31 (registration)Tool registration with name 'swit-message-comment-create', description 'Create comment on message', and inputSchema derived from MessageCommentCreateArgsSchema
{ name: 'swit-message-comment-create', description: 'Create comment on message', inputSchema: zodToJsonSchema(MessageCommentCreateArgsSchema), }, - src/handlers/core.handlers.ts:41-48 (registration)Map registration linking tool name 'swit-message-comment-create' to a closure that calls handleMessageCommentCreate with the initialized SwitClient
export const coreHandlers = (switClient: SwitClient) => ({ 'swit-workspace-list': (args: any) => handleWorkspaceList(switClient, args), 'swit-channel-list': (args: any) => handleChannelList(switClient, args), 'swit-message-create': (args: any) => handleMessageCreate(switClient, args), 'swit-message-comment-create': (args: any) => handleMessageCommentCreate(switClient, args), 'swit-message-comment-list': (args: any) => handleMessageCommentList(switClient, args), 'swit-project-list': (args: any) => handleProjectList(switClient, args), }); - src/swit-client.ts:72-77 (helper)SwitClient method that sends a POST request to /api/message.comment.create with validated args and returns the response data
async createMessageComment( args: MessageCommentCreateArgs ): Promise<MessageCommentCreateResponse> { const response = await this.client.post('/api/message.comment.create', args); return response.data; } - src/index.ts:109-109 (registration)Main entry point: toolHandlers is populated with coreHandlers (which includes the swit-message-comment-create mapping) during initialization
toolHandlers = { ...oauthHandlers(oauthWebServer), ...coreHandlers(switClient) };