@todoist/comms-mcp 0.0.0-stage → 11.0.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.
Files changed (93) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +208 -2
  3. package/dist/comms-tool.d.ts +14 -0
  4. package/dist/comms-tool.js +1 -0
  5. package/dist/index.d.ts +1324 -0
  6. package/dist/index.js +55 -0
  7. package/dist/main.d.ts +2 -0
  8. package/dist/main.js +24 -0
  9. package/dist/mcp-helpers.d.ts +17 -0
  10. package/dist/mcp-helpers.js +40 -0
  11. package/dist/mcp-server.d.ts +10 -0
  12. package/dist/mcp-server.js +78 -0
  13. package/dist/tool-registry.d.ts +3 -0
  14. package/dist/tool-registry.js +49 -0
  15. package/dist/tools/build-link.d.ts +63 -0
  16. package/dist/tools/build-link.js +93 -0
  17. package/dist/tools/channel-output.d.ts +19 -0
  18. package/dist/tools/channel-output.js +47 -0
  19. package/dist/tools/create-channel.d.ts +55 -0
  20. package/dist/tools/create-channel.js +44 -0
  21. package/dist/tools/create-conversation.d.ts +49 -0
  22. package/dist/tools/create-conversation.js +75 -0
  23. package/dist/tools/create-thread.d.ts +67 -0
  24. package/dist/tools/create-thread.js +126 -0
  25. package/dist/tools/delete-object.d.ts +44 -0
  26. package/dist/tools/delete-object.js +84 -0
  27. package/dist/tools/fetch-inbox.d.ts +91 -0
  28. package/dist/tools/fetch-inbox.js +227 -0
  29. package/dist/tools/get-groups.d.ts +62 -0
  30. package/dist/tools/get-groups.js +116 -0
  31. package/dist/tools/get-mentions.d.ts +97 -0
  32. package/dist/tools/get-mentions.js +126 -0
  33. package/dist/tools/get-users.d.ts +58 -0
  34. package/dist/tools/get-users.js +107 -0
  35. package/dist/tools/get-workspaces.d.ts +61 -0
  36. package/dist/tools/get-workspaces.js +120 -0
  37. package/dist/tools/list-channels.d.ts +47 -0
  38. package/dist/tools/list-channels.js +89 -0
  39. package/dist/tools/list-conversations.d.ts +66 -0
  40. package/dist/tools/list-conversations.js +212 -0
  41. package/dist/tools/load-conversation.d.ts +92 -0
  42. package/dist/tools/load-conversation.js +128 -0
  43. package/dist/tools/load-thread.d.ts +127 -0
  44. package/dist/tools/load-thread.js +175 -0
  45. package/dist/tools/mark-done.d.ts +111 -0
  46. package/dist/tools/mark-done.js +275 -0
  47. package/dist/tools/mark-read.d.ts +73 -0
  48. package/dist/tools/mark-read.js +214 -0
  49. package/dist/tools/react.d.ts +59 -0
  50. package/dist/tools/react.js +97 -0
  51. package/dist/tools/reply.d.ts +69 -0
  52. package/dist/tools/reply.js +122 -0
  53. package/dist/tools/search-content.d.ts +103 -0
  54. package/dist/tools/search-content.js +138 -0
  55. package/dist/tools/update-channel.d.ts +53 -0
  56. package/dist/tools/update-channel.js +45 -0
  57. package/dist/tools/update-object.d.ts +52 -0
  58. package/dist/tools/update-object.js +161 -0
  59. package/dist/tools/update-user-info.d.ts +55 -0
  60. package/dist/tools/update-user-info.js +270 -0
  61. package/dist/tools/user-info.d.ts +32 -0
  62. package/dist/tools/user-info.js +16 -0
  63. package/dist/tools/user-output.d.ts +9 -0
  64. package/dist/tools/user-output.js +28 -0
  65. package/dist/usage-tracking.d.ts +23 -0
  66. package/dist/usage-tracking.js +41 -0
  67. package/dist/utils/attachments.d.ts +24 -0
  68. package/dist/utils/attachments.js +57 -0
  69. package/dist/utils/concurrency.d.ts +20 -0
  70. package/dist/utils/concurrency.js +24 -0
  71. package/dist/utils/constants.d.ts +5 -0
  72. package/dist/utils/constants.js +5 -0
  73. package/dist/utils/degrade.d.ts +81 -0
  74. package/dist/utils/degrade.js +149 -0
  75. package/dist/utils/output-schemas.d.ts +1283 -0
  76. package/dist/utils/output-schemas.js +657 -0
  77. package/dist/utils/read-position.d.ts +21 -0
  78. package/dist/utils/read-position.js +37 -0
  79. package/dist/utils/search-results.d.ts +36 -0
  80. package/dist/utils/search-results.js +82 -0
  81. package/dist/utils/target-types.d.ts +114 -0
  82. package/dist/utils/target-types.js +58 -0
  83. package/dist/utils/test-helpers.d.ts +95 -0
  84. package/dist/utils/test-helpers.js +231 -0
  85. package/dist/utils/tool-names.d.ts +25 -0
  86. package/dist/utils/tool-names.js +25 -0
  87. package/dist/utils/url-helpers.d.ts +3 -0
  88. package/dist/utils/url-helpers.js +10 -0
  89. package/dist/utils/user-status.d.ts +8 -0
  90. package/dist/utils/user-status.js +33 -0
  91. package/dist/utils/validate-comms-token.d.ts +13 -0
  92. package/dist/utils/validate-comms-token.js +22 -0
  93. package/package.json +86 -5
@@ -0,0 +1,1283 @@
1
+ import { ChannelSchema, CommentSchema, ConversationMessageSchema, ConversationSchema, InboxThreadSchema, SearchResultSchema, ThreadSchema, UnreadConversationSchema, UnreadThreadSchema, UserSchema, WorkspaceSchema, WorkspaceUserSchema } from '@doist/comms-sdk';
2
+ import { z } from 'zod';
3
+ export { ChannelSchema, CommentSchema, ConversationMessageSchema, ConversationSchema, InboxThreadSchema, SearchResultSchema, ThreadSchema, UnreadConversationSchema, UnreadThreadSchema, UserSchema, WorkspaceSchema, WorkspaceUserSchema, };
4
+ /**
5
+ * Schema for a Comms attachment as returned by the API, mirroring the SDK's
6
+ * `AttachmentSchema` field-for-field.
7
+ *
8
+ * The SDK ships its own bundled copy of zod, so composing the SDK's
9
+ * `AttachmentSchema` directly into the output schemas below trips TypeScript's
10
+ * portable-type-name check (TS2883). To keep the real field types in structured
11
+ * output we model the same shape here in the project's zod, and bind it to the
12
+ * SDK's `Attachment` type so the two can't silently drift. `looseObject`
13
+ * preserves the SDK's `$loose` behaviour: fields the API adds forward-pass
14
+ * untouched without an MCP release.
15
+ *
16
+ * Note: an attachment's `url` points at the Comms file store and currently
17
+ * requires a browser session cookie to download — there is no OAuth-authenticated
18
+ * attachment download endpoint on the public Comms REST API today.
19
+ */
20
+ declare const AttachmentSchema: z.ZodObject<{
21
+ attachmentId: z.ZodString;
22
+ urlType: z.ZodString;
23
+ title: z.ZodOptional<z.ZodString>;
24
+ url: z.ZodOptional<z.ZodString>;
25
+ fileName: z.ZodOptional<z.ZodString>;
26
+ fileSize: z.ZodOptional<z.ZodNumber>;
27
+ underlyingType: z.ZodOptional<z.ZodString>;
28
+ description: z.ZodOptional<z.ZodString>;
29
+ image: z.ZodOptional<z.ZodString>;
30
+ imageWidth: z.ZodOptional<z.ZodNumber>;
31
+ imageHeight: z.ZodOptional<z.ZodNumber>;
32
+ duration: z.ZodOptional<z.ZodString>;
33
+ uploadState: z.ZodOptional<z.ZodString>;
34
+ video: z.ZodOptional<z.ZodString>;
35
+ videoType: z.ZodOptional<z.ZodString>;
36
+ videoAutoPlay: z.ZodOptional<z.ZodBoolean>;
37
+ }, z.core.$loose>;
38
+ /**
39
+ * Schema for load-thread tool output
40
+ */
41
+ export declare const LoadThreadOutputSchema: z.ZodObject<{
42
+ type: z.ZodLiteral<"thread_data">;
43
+ thread: z.ZodObject<{
44
+ id: z.ZodString;
45
+ title: z.ZodString;
46
+ content: z.ZodString;
47
+ channelId: z.ZodString;
48
+ channelName: z.ZodOptional<z.ZodString>;
49
+ workspaceId: z.ZodNumber;
50
+ creator: z.ZodNumber;
51
+ creatorName: z.ZodOptional<z.ZodString>;
52
+ posted: z.ZodString;
53
+ commentCount: z.ZodNumber;
54
+ isArchived: z.ZodBoolean;
55
+ inInbox: z.ZodBoolean;
56
+ participants: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
57
+ participantNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
58
+ threadUrl: z.ZodString;
59
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
60
+ attachmentId: z.ZodString;
61
+ urlType: z.ZodString;
62
+ title: z.ZodOptional<z.ZodString>;
63
+ url: z.ZodOptional<z.ZodString>;
64
+ fileName: z.ZodOptional<z.ZodString>;
65
+ fileSize: z.ZodOptional<z.ZodNumber>;
66
+ underlyingType: z.ZodOptional<z.ZodString>;
67
+ description: z.ZodOptional<z.ZodString>;
68
+ image: z.ZodOptional<z.ZodString>;
69
+ imageWidth: z.ZodOptional<z.ZodNumber>;
70
+ imageHeight: z.ZodOptional<z.ZodNumber>;
71
+ duration: z.ZodOptional<z.ZodString>;
72
+ uploadState: z.ZodOptional<z.ZodString>;
73
+ video: z.ZodOptional<z.ZodString>;
74
+ videoType: z.ZodOptional<z.ZodString>;
75
+ videoAutoPlay: z.ZodOptional<z.ZodBoolean>;
76
+ }, z.core.$loose>>>;
77
+ }, z.core.$strip>;
78
+ comments: z.ZodArray<z.ZodObject<{
79
+ id: z.ZodString;
80
+ content: z.ZodString;
81
+ creator: z.ZodNumber;
82
+ creatorName: z.ZodOptional<z.ZodString>;
83
+ threadId: z.ZodString;
84
+ posted: z.ZodString;
85
+ commentUrl: z.ZodString;
86
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
87
+ attachmentId: z.ZodString;
88
+ urlType: z.ZodString;
89
+ title: z.ZodOptional<z.ZodString>;
90
+ url: z.ZodOptional<z.ZodString>;
91
+ fileName: z.ZodOptional<z.ZodString>;
92
+ fileSize: z.ZodOptional<z.ZodNumber>;
93
+ underlyingType: z.ZodOptional<z.ZodString>;
94
+ description: z.ZodOptional<z.ZodString>;
95
+ image: z.ZodOptional<z.ZodString>;
96
+ imageWidth: z.ZodOptional<z.ZodNumber>;
97
+ imageHeight: z.ZodOptional<z.ZodNumber>;
98
+ duration: z.ZodOptional<z.ZodString>;
99
+ uploadState: z.ZodOptional<z.ZodString>;
100
+ video: z.ZodOptional<z.ZodString>;
101
+ videoType: z.ZodOptional<z.ZodString>;
102
+ videoAutoPlay: z.ZodOptional<z.ZodBoolean>;
103
+ }, z.core.$loose>>>;
104
+ }, z.core.$strip>>;
105
+ totalComments: z.ZodNumber;
106
+ }, z.core.$strip>;
107
+ /**
108
+ * Schema for load-conversation tool output
109
+ */
110
+ export declare const LoadConversationOutputSchema: z.ZodObject<{
111
+ type: z.ZodLiteral<"conversation_data">;
112
+ conversation: z.ZodObject<{
113
+ id: z.ZodString;
114
+ workspaceId: z.ZodNumber;
115
+ userIds: z.ZodArray<z.ZodNumber>;
116
+ archived: z.ZodBoolean;
117
+ lastActive: z.ZodString;
118
+ title: z.ZodOptional<z.ZodString>;
119
+ conversationUrl: z.ZodString;
120
+ }, z.core.$strip>;
121
+ messages: z.ZodArray<z.ZodObject<{
122
+ id: z.ZodString;
123
+ content: z.ZodString;
124
+ creatorId: z.ZodNumber;
125
+ creatorName: z.ZodOptional<z.ZodString>;
126
+ conversationId: z.ZodString;
127
+ posted: z.ZodString;
128
+ messageUrl: z.ZodString;
129
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
130
+ attachmentId: z.ZodString;
131
+ urlType: z.ZodString;
132
+ title: z.ZodOptional<z.ZodString>;
133
+ url: z.ZodOptional<z.ZodString>;
134
+ fileName: z.ZodOptional<z.ZodString>;
135
+ fileSize: z.ZodOptional<z.ZodNumber>;
136
+ underlyingType: z.ZodOptional<z.ZodString>;
137
+ description: z.ZodOptional<z.ZodString>;
138
+ image: z.ZodOptional<z.ZodString>;
139
+ imageWidth: z.ZodOptional<z.ZodNumber>;
140
+ imageHeight: z.ZodOptional<z.ZodNumber>;
141
+ duration: z.ZodOptional<z.ZodString>;
142
+ uploadState: z.ZodOptional<z.ZodString>;
143
+ video: z.ZodOptional<z.ZodString>;
144
+ videoType: z.ZodOptional<z.ZodString>;
145
+ videoAutoPlay: z.ZodOptional<z.ZodBoolean>;
146
+ }, z.core.$loose>>>;
147
+ }, z.core.$strip>>;
148
+ totalMessages: z.ZodNumber;
149
+ }, z.core.$strip>;
150
+ /**
151
+ * Schema for fetch-inbox tool output
152
+ */
153
+ export declare const FetchInboxOutputSchema: z.ZodObject<{
154
+ type: z.ZodLiteral<"inbox_data">;
155
+ workspaceId: z.ZodNumber;
156
+ threads: z.ZodArray<z.ZodObject<{
157
+ id: z.ZodString;
158
+ title: z.ZodString;
159
+ channelId: z.ZodString;
160
+ channelName: z.ZodOptional<z.ZodString>;
161
+ creator: z.ZodNumber;
162
+ isUnread: z.ZodBoolean;
163
+ isArchived: z.ZodBoolean;
164
+ isStarred: z.ZodBoolean;
165
+ threadUrl: z.ZodString;
166
+ }, z.core.$strip>>;
167
+ conversations: z.ZodArray<z.ZodObject<{
168
+ id: z.ZodString;
169
+ title: z.ZodString;
170
+ userIds: z.ZodArray<z.ZodNumber>;
171
+ participantNames: z.ZodArray<z.ZodString>;
172
+ isUnread: z.ZodBoolean;
173
+ conversationUrl: z.ZodString;
174
+ }, z.core.$strip>>;
175
+ unreadCount: z.ZodNumber;
176
+ unreadThreads: z.ZodArray<z.ZodAny>;
177
+ unreadConversations: z.ZodArray<z.ZodAny>;
178
+ totalThreads: z.ZodNumber;
179
+ totalConversations: z.ZodNumber;
180
+ }, z.core.$strip>;
181
+ export declare const SearchResultItemSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
182
+ type: z.ZodLiteral<"thread">;
183
+ threadId: z.ZodString;
184
+ commentId: z.ZodOptional<z.ZodString>;
185
+ channelId: z.ZodOptional<z.ZodString>;
186
+ channelName: z.ZodOptional<z.ZodString>;
187
+ id: z.ZodString;
188
+ content: z.ZodString;
189
+ creatorId: z.ZodNumber;
190
+ creatorName: z.ZodOptional<z.ZodString>;
191
+ created: z.ZodString;
192
+ workspaceId: z.ZodNumber;
193
+ url: z.ZodString;
194
+ }, z.core.$strip>, z.ZodObject<{
195
+ type: z.ZodLiteral<"conversation">;
196
+ conversationId: z.ZodString;
197
+ messageId: z.ZodString;
198
+ id: z.ZodString;
199
+ content: z.ZodString;
200
+ creatorId: z.ZodNumber;
201
+ creatorName: z.ZodOptional<z.ZodString>;
202
+ created: z.ZodString;
203
+ workspaceId: z.ZodNumber;
204
+ url: z.ZodString;
205
+ }, z.core.$strip>], "type">;
206
+ /**
207
+ * Schema for search-content tool output
208
+ */
209
+ export declare const SearchContentOutputSchema: z.ZodObject<{
210
+ type: z.ZodLiteral<"search_results">;
211
+ query: z.ZodString;
212
+ workspaceId: z.ZodNumber;
213
+ results: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
214
+ type: z.ZodLiteral<"thread">;
215
+ threadId: z.ZodString;
216
+ commentId: z.ZodOptional<z.ZodString>;
217
+ channelId: z.ZodOptional<z.ZodString>;
218
+ channelName: z.ZodOptional<z.ZodString>;
219
+ id: z.ZodString;
220
+ content: z.ZodString;
221
+ creatorId: z.ZodNumber;
222
+ creatorName: z.ZodOptional<z.ZodString>;
223
+ created: z.ZodString;
224
+ workspaceId: z.ZodNumber;
225
+ url: z.ZodString;
226
+ }, z.core.$strip>, z.ZodObject<{
227
+ type: z.ZodLiteral<"conversation">;
228
+ conversationId: z.ZodString;
229
+ messageId: z.ZodString;
230
+ id: z.ZodString;
231
+ content: z.ZodString;
232
+ creatorId: z.ZodNumber;
233
+ creatorName: z.ZodOptional<z.ZodString>;
234
+ created: z.ZodString;
235
+ workspaceId: z.ZodNumber;
236
+ url: z.ZodString;
237
+ }, z.core.$strip>], "type">>;
238
+ totalResults: z.ZodNumber;
239
+ hasMore: z.ZodBoolean;
240
+ cursor: z.ZodOptional<z.ZodString>;
241
+ }, z.core.$strip>;
242
+ /**
243
+ * Schema for get-mentions tool output
244
+ */
245
+ export declare const GetMentionsOutputSchema: z.ZodObject<{
246
+ type: z.ZodLiteral<"mentions_results">;
247
+ workspaceId: z.ZodNumber;
248
+ results: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
249
+ type: z.ZodLiteral<"thread">;
250
+ threadId: z.ZodString;
251
+ commentId: z.ZodOptional<z.ZodString>;
252
+ channelId: z.ZodOptional<z.ZodString>;
253
+ channelName: z.ZodOptional<z.ZodString>;
254
+ id: z.ZodString;
255
+ content: z.ZodString;
256
+ creatorId: z.ZodNumber;
257
+ creatorName: z.ZodOptional<z.ZodString>;
258
+ created: z.ZodString;
259
+ workspaceId: z.ZodNumber;
260
+ url: z.ZodString;
261
+ }, z.core.$strip>, z.ZodObject<{
262
+ type: z.ZodLiteral<"conversation">;
263
+ conversationId: z.ZodString;
264
+ messageId: z.ZodString;
265
+ id: z.ZodString;
266
+ content: z.ZodString;
267
+ creatorId: z.ZodNumber;
268
+ creatorName: z.ZodOptional<z.ZodString>;
269
+ created: z.ZodString;
270
+ workspaceId: z.ZodNumber;
271
+ url: z.ZodString;
272
+ }, z.core.$strip>], "type">>;
273
+ totalResults: z.ZodNumber;
274
+ hasMore: z.ZodBoolean;
275
+ cursor: z.ZodOptional<z.ZodString>;
276
+ }, z.core.$strip>;
277
+ /**
278
+ * Schema for get-workspaces tool output
279
+ */
280
+ export declare const GetWorkspacesOutputSchema: z.ZodObject<{
281
+ type: z.ZodLiteral<"get_workspaces">;
282
+ workspaces: z.ZodArray<z.ZodObject<{
283
+ id: z.ZodNumber;
284
+ name: z.ZodString;
285
+ creator: z.ZodNumber;
286
+ creatorName: z.ZodOptional<z.ZodString>;
287
+ created: z.ZodString;
288
+ url: z.ZodURL;
289
+ defaultConversation: z.ZodOptional<z.ZodString>;
290
+ defaultConversationTitle: z.ZodOptional<z.ZodString>;
291
+ defaultConversationUrl: z.ZodOptional<z.ZodURL>;
292
+ plan: z.ZodOptional<z.ZodString>;
293
+ avatarId: z.ZodOptional<z.ZodString>;
294
+ avatarUrls: z.ZodOptional<z.ZodObject<{
295
+ s35: z.ZodString;
296
+ s60: z.ZodString;
297
+ s195: z.ZodString;
298
+ s640: z.ZodString;
299
+ }, z.core.$strip>>;
300
+ }, z.core.$strip>>;
301
+ }, z.core.$strip>;
302
+ /**
303
+ * Schema for get-users tool output
304
+ */
305
+ export declare const GetUsersOutputSchema: z.ZodObject<{
306
+ type: z.ZodLiteral<"get_users">;
307
+ workspaceId: z.ZodNumber;
308
+ users: z.ZodArray<z.ZodObject<{
309
+ id: z.ZodNumber;
310
+ name: z.ZodString;
311
+ shortName: z.ZodString;
312
+ email: z.ZodOptional<z.ZodString>;
313
+ userType: z.ZodOptional<z.ZodString>;
314
+ removed: z.ZodBoolean;
315
+ timezone: z.ZodOptional<z.ZodString>;
316
+ restricted: z.ZodOptional<z.ZodBoolean>;
317
+ }, z.core.$strip>>;
318
+ totalUsers: z.ZodNumber;
319
+ filteredUsers: z.ZodNumber;
320
+ }, z.core.$strip>;
321
+ /**
322
+ * A group member. `name`/`email` are omitted when the user ID cannot be resolved
323
+ * against the workspace directory (e.g. the member has since been removed).
324
+ */
325
+ export declare const GroupMemberSchema: z.ZodObject<{
326
+ id: z.ZodNumber;
327
+ name: z.ZodOptional<z.ZodString>;
328
+ email: z.ZodOptional<z.ZodString>;
329
+ }, z.core.$strip>;
330
+ /**
331
+ * Schema for get-groups tool output
332
+ */
333
+ export declare const GetGroupsOutputSchema: z.ZodObject<{
334
+ type: z.ZodLiteral<"get_groups">;
335
+ workspaceId: z.ZodNumber;
336
+ groups: z.ZodArray<z.ZodObject<{
337
+ id: z.ZodString;
338
+ name: z.ZodString;
339
+ workspaceId: z.ZodNumber;
340
+ memberCount: z.ZodNumber;
341
+ members: z.ZodOptional<z.ZodArray<z.ZodObject<{
342
+ id: z.ZodNumber;
343
+ name: z.ZodOptional<z.ZodString>;
344
+ email: z.ZodOptional<z.ZodString>;
345
+ }, z.core.$strip>>>;
346
+ }, z.core.$strip>>;
347
+ totalGroups: z.ZodNumber;
348
+ filteredGroups: z.ZodNumber;
349
+ }, z.core.$strip>;
350
+ /**
351
+ * Schema for user-info and update-user-info tool output. `name` mirrors `User.fullName`.
352
+ */
353
+ export declare const UserInfoOutputSchema: z.ZodObject<{
354
+ type: z.ZodLiteral<"user_info">;
355
+ userId: z.ZodNumber;
356
+ name: z.ZodString;
357
+ shortName: z.ZodString;
358
+ email: z.ZodString;
359
+ timezone: z.ZodString;
360
+ lang: z.ZodString;
361
+ status: z.ZodOptional<z.ZodObject<{
362
+ message: z.ZodString;
363
+ emoji: z.ZodOptional<z.ZodString>;
364
+ activeUntil: z.ZodOptional<z.ZodString>;
365
+ pauseNotifications: z.ZodBoolean;
366
+ pauseActivity: z.ZodBoolean;
367
+ }, z.core.$strip>>;
368
+ }, z.core.$strip>;
369
+ /**
370
+ * Schema for build-link tool output
371
+ */
372
+ export declare const BuildLinkOutputSchema: z.ZodObject<{
373
+ type: z.ZodLiteral<"link_data">;
374
+ url: z.ZodString;
375
+ linkType: z.ZodEnum<{
376
+ thread: "thread";
377
+ comment: "comment";
378
+ message: "message";
379
+ conversation: "conversation";
380
+ }>;
381
+ params: z.ZodObject<{
382
+ workspaceId: z.ZodNumber;
383
+ conversationId: z.ZodOptional<z.ZodString>;
384
+ messageId: z.ZodOptional<z.ZodString>;
385
+ channelId: z.ZodOptional<z.ZodString>;
386
+ threadId: z.ZodOptional<z.ZodString>;
387
+ commentId: z.ZodOptional<z.ZodString>;
388
+ }, z.core.$strip>;
389
+ }, z.core.$strip>;
390
+ /**
391
+ * Schema for create-channel tool output
392
+ */
393
+ export declare const ChannelOutputFieldsSchema: z.ZodObject<{
394
+ name: z.ZodString;
395
+ description: z.ZodOptional<z.ZodString>;
396
+ public: z.ZodBoolean;
397
+ archived: z.ZodBoolean;
398
+ created: z.ZodString;
399
+ channelUrl: z.ZodString;
400
+ }, z.core.$strip>;
401
+ export declare const CreateChannelOutputSchema: z.ZodObject<{
402
+ name: z.ZodString;
403
+ description: z.ZodOptional<z.ZodString>;
404
+ public: z.ZodBoolean;
405
+ archived: z.ZodBoolean;
406
+ created: z.ZodString;
407
+ channelUrl: z.ZodString;
408
+ type: z.ZodLiteral<"create_channel_result">;
409
+ success: z.ZodBoolean;
410
+ channelId: z.ZodString;
411
+ workspaceId: z.ZodNumber;
412
+ creator: z.ZodNumber;
413
+ userIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
414
+ }, z.core.$strip>;
415
+ /**
416
+ * Schema for update-channel tool output
417
+ */
418
+ export declare const UpdateChannelOutputSchema: z.ZodObject<{
419
+ name: z.ZodString;
420
+ description: z.ZodOptional<z.ZodString>;
421
+ public: z.ZodBoolean;
422
+ archived: z.ZodBoolean;
423
+ created: z.ZodString;
424
+ channelUrl: z.ZodString;
425
+ type: z.ZodLiteral<"update_channel_result">;
426
+ success: z.ZodBoolean;
427
+ channelId: z.ZodString;
428
+ workspaceId: z.ZodNumber;
429
+ creator: z.ZodNumber;
430
+ userIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
431
+ }, z.core.$strip>;
432
+ /**
433
+ * Schema for create-thread tool output
434
+ */
435
+ export declare const CreateThreadOutputSchema: z.ZodObject<{
436
+ type: z.ZodLiteral<"create_thread_result">;
437
+ success: z.ZodBoolean;
438
+ threadId: z.ZodString;
439
+ title: z.ZodString;
440
+ channelId: z.ZodString;
441
+ workspaceId: z.ZodNumber;
442
+ content: z.ZodString;
443
+ creator: z.ZodNumber;
444
+ created: z.ZodString;
445
+ threadUrl: z.ZodString;
446
+ recipients: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
447
+ groups: z.ZodOptional<z.ZodArray<z.ZodString>>;
448
+ notifyAudience: z.ZodOptional<z.ZodEnum<{
449
+ thread: "thread";
450
+ channel: "channel";
451
+ }>>;
452
+ }, z.core.$strip>;
453
+ /**
454
+ * Schema for create-conversation tool output
455
+ */
456
+ export declare const CreateConversationOutputSchema: z.ZodObject<{
457
+ type: z.ZodLiteral<"create_conversation_result">;
458
+ success: z.ZodBoolean;
459
+ conversationId: z.ZodString;
460
+ messageId: z.ZodString;
461
+ workspaceId: z.ZodNumber;
462
+ content: z.ZodString;
463
+ recipients: z.ZodArray<z.ZodNumber>;
464
+ participants: z.ZodArray<z.ZodNumber>;
465
+ created: z.ZodString;
466
+ conversationUrl: z.ZodString;
467
+ messageUrl: z.ZodString;
468
+ }, z.core.$strip>;
469
+ /**
470
+ * Schema for update-thread tool output
471
+ */
472
+ export declare const UpdateThreadOutputSchema: z.ZodObject<{
473
+ type: z.ZodLiteral<"update_thread_result">;
474
+ success: z.ZodBoolean;
475
+ threadId: z.ZodString;
476
+ title: z.ZodString;
477
+ channelId: z.ZodString;
478
+ workspaceId: z.ZodNumber;
479
+ content: z.ZodString;
480
+ threadUrl: z.ZodString;
481
+ lastEdited: z.ZodOptional<z.ZodString>;
482
+ }, z.core.$strip>;
483
+ /**
484
+ * Schema for update-comment tool output
485
+ */
486
+ export declare const UpdateCommentOutputSchema: z.ZodObject<{
487
+ type: z.ZodLiteral<"update_comment_result">;
488
+ success: z.ZodBoolean;
489
+ commentId: z.ZodString;
490
+ threadId: z.ZodString;
491
+ channelId: z.ZodString;
492
+ workspaceId: z.ZodNumber;
493
+ content: z.ZodString;
494
+ commentUrl: z.ZodString;
495
+ lastEdited: z.ZodOptional<z.ZodString>;
496
+ }, z.core.$strip>;
497
+ /**
498
+ * Schema for update-message tool output
499
+ */
500
+ export declare const UpdateMessageOutputSchema: z.ZodObject<{
501
+ type: z.ZodLiteral<"update_message_result">;
502
+ success: z.ZodBoolean;
503
+ messageId: z.ZodString;
504
+ conversationId: z.ZodString;
505
+ workspaceId: z.ZodNumber;
506
+ content: z.ZodString;
507
+ messageUrl: z.ZodString;
508
+ lastEdited: z.ZodOptional<z.ZodString>;
509
+ }, z.core.$strip>;
510
+ /**
511
+ * Schema for update-object tool output.
512
+ *
513
+ * The MCP `outputSchema` field requires a flat `z.ZodRawShape`, so we expose a single
514
+ * object schema whose `type` discriminator selects which optional fields are populated:
515
+ * - `update_thread_result` → threadId, title, channelId, threadUrl
516
+ * - `update_comment_result` → commentId, threadId, channelId, commentUrl
517
+ * - `update_message_result` → messageId, conversationId, messageUrl
518
+ * Consumers should narrow on `type`. The per-variant schemas above remain authoritative
519
+ * for typed construction inside the tool.
520
+ */
521
+ export declare const UpdateObjectOutputSchema: z.ZodObject<{
522
+ type: z.ZodEnum<{
523
+ update_thread_result: "update_thread_result";
524
+ update_comment_result: "update_comment_result";
525
+ update_message_result: "update_message_result";
526
+ }>;
527
+ success: z.ZodBoolean;
528
+ content: z.ZodString;
529
+ workspaceId: z.ZodNumber;
530
+ lastEdited: z.ZodOptional<z.ZodString>;
531
+ threadId: z.ZodOptional<z.ZodString>;
532
+ title: z.ZodOptional<z.ZodString>;
533
+ channelId: z.ZodOptional<z.ZodString>;
534
+ threadUrl: z.ZodOptional<z.ZodString>;
535
+ commentId: z.ZodOptional<z.ZodString>;
536
+ commentUrl: z.ZodOptional<z.ZodString>;
537
+ messageId: z.ZodOptional<z.ZodString>;
538
+ conversationId: z.ZodOptional<z.ZodString>;
539
+ messageUrl: z.ZodOptional<z.ZodString>;
540
+ }, z.core.$strip>;
541
+ /**
542
+ * Schema for delete-thread branch of delete-object output
543
+ */
544
+ export declare const DeleteThreadOutputSchema: z.ZodObject<{
545
+ type: z.ZodLiteral<"delete_thread_result">;
546
+ success: z.ZodBoolean;
547
+ targetType: z.ZodLiteral<"thread">;
548
+ threadId: z.ZodString;
549
+ }, z.core.$strip>;
550
+ /**
551
+ * Schema for delete-comment branch of delete-object output
552
+ */
553
+ export declare const DeleteCommentOutputSchema: z.ZodObject<{
554
+ type: z.ZodLiteral<"delete_comment_result">;
555
+ success: z.ZodBoolean;
556
+ targetType: z.ZodLiteral<"comment">;
557
+ commentId: z.ZodString;
558
+ }, z.core.$strip>;
559
+ /**
560
+ * Schema for delete-message branch of delete-object output
561
+ */
562
+ export declare const DeleteMessageOutputSchema: z.ZodObject<{
563
+ type: z.ZodLiteral<"delete_message_result">;
564
+ success: z.ZodBoolean;
565
+ targetType: z.ZodLiteral<"message">;
566
+ messageId: z.ZodString;
567
+ }, z.core.$strip>;
568
+ /**
569
+ * Schema for delete-object tool output.
570
+ *
571
+ * The Comms SDK delete endpoints return no body, so the structured payload simply
572
+ * confirms which object was deleted. The `type` discriminator selects which
573
+ * id field is populated:
574
+ * - `delete_thread_result` → threadId
575
+ * - `delete_comment_result` → commentId
576
+ * - `delete_message_result` → messageId
577
+ */
578
+ export declare const DeleteObjectOutputSchema: z.ZodObject<{
579
+ type: z.ZodEnum<{
580
+ delete_thread_result: "delete_thread_result";
581
+ delete_comment_result: "delete_comment_result";
582
+ delete_message_result: "delete_message_result";
583
+ }>;
584
+ success: z.ZodBoolean;
585
+ targetType: z.ZodEnum<{
586
+ thread: "thread";
587
+ comment: "comment";
588
+ message: "message";
589
+ }>;
590
+ threadId: z.ZodOptional<z.ZodString>;
591
+ commentId: z.ZodOptional<z.ZodString>;
592
+ messageId: z.ZodOptional<z.ZodString>;
593
+ }, z.core.$strip>;
594
+ /**
595
+ * Schema for reply tool output
596
+ */
597
+ export declare const ReplyOutputSchema: z.ZodObject<{
598
+ type: z.ZodLiteral<"reply_result">;
599
+ success: z.ZodBoolean;
600
+ targetType: z.ZodEnum<{
601
+ thread: "thread";
602
+ conversation: "conversation";
603
+ }>;
604
+ targetId: z.ZodString;
605
+ replyId: z.ZodString;
606
+ content: z.ZodString;
607
+ created: z.ZodString;
608
+ replyUrl: z.ZodString;
609
+ recipients: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
610
+ notifyAudience: z.ZodOptional<z.ZodEnum<{
611
+ thread: "thread";
612
+ channel: "channel";
613
+ }>>;
614
+ groups: z.ZodOptional<z.ZodArray<z.ZodString>>;
615
+ }, z.core.$strip>;
616
+ /**
617
+ * Schema for react tool output
618
+ */
619
+ export declare const ReactOutputSchema: z.ZodObject<{
620
+ type: z.ZodLiteral<"reaction_result">;
621
+ success: z.ZodBoolean;
622
+ operation: z.ZodEnum<{
623
+ add: "add";
624
+ remove: "remove";
625
+ }>;
626
+ targetType: z.ZodEnum<{
627
+ thread: "thread";
628
+ comment: "comment";
629
+ message: "message";
630
+ }>;
631
+ targetId: z.ZodString;
632
+ emoji: z.ZodString;
633
+ targetUrl: z.ZodString;
634
+ }, z.core.$strip>;
635
+ /**
636
+ * Schema for mark-done tool output
637
+ */
638
+ export declare const MARK_DONE_OPS: readonly ["markRead", "archive"];
639
+ export declare const MarkDoneOpSchema: z.ZodEnum<{
640
+ markRead: "markRead";
641
+ archive: "archive";
642
+ }>;
643
+ /** An attachment as it appears in structured output: the API's fields, minus its nulls. */
644
+ export type OutputAttachment = z.infer<typeof AttachmentSchema>;
645
+ export type MarkDoneOp = (typeof MARK_DONE_OPS)[number];
646
+ export declare const MarkDoneOutputSchema: z.ZodObject<{
647
+ type: z.ZodLiteral<"mark_done_result">;
648
+ itemType: z.ZodEnum<{
649
+ thread: "thread";
650
+ conversation: "conversation";
651
+ }>;
652
+ mode: z.ZodEnum<{
653
+ individual: "individual";
654
+ bulk: "bulk";
655
+ }>;
656
+ completed: z.ZodArray<z.ZodString>;
657
+ failed: z.ZodArray<z.ZodObject<{
658
+ item: z.ZodString;
659
+ error: z.ZodString;
660
+ opErrors: z.ZodArray<z.ZodObject<{
661
+ op: z.ZodEnum<{
662
+ markRead: "markRead";
663
+ archive: "archive";
664
+ }>;
665
+ error: z.ZodString;
666
+ }, z.core.$strip>>;
667
+ }, z.core.$strip>>;
668
+ warnings: z.ZodArray<z.ZodObject<{
669
+ item: z.ZodString;
670
+ op: z.ZodEnum<{
671
+ markRead: "markRead";
672
+ archive: "archive";
673
+ }>;
674
+ error: z.ZodString;
675
+ }, z.core.$strip>>;
676
+ totalRequested: z.ZodNumber;
677
+ successCount: z.ZodNumber;
678
+ failureCount: z.ZodNumber;
679
+ operations: z.ZodObject<{
680
+ markRead: z.ZodBoolean;
681
+ archive: z.ZodBoolean;
682
+ clearUnread: z.ZodBoolean;
683
+ }, z.core.$strip>;
684
+ selectors: z.ZodOptional<z.ZodObject<{
685
+ workspaceId: z.ZodOptional<z.ZodNumber>;
686
+ channelId: z.ZodOptional<z.ZodString>;
687
+ }, z.core.$strip>>;
688
+ }, z.core.$strip>;
689
+ export declare const MarkReadOutputSchema: z.ZodObject<{
690
+ type: z.ZodLiteral<"mark_read_result">;
691
+ workspaceId: z.ZodNumber;
692
+ mode: z.ZodEnum<{
693
+ individual: "individual";
694
+ all: "all";
695
+ }>;
696
+ threads: z.ZodObject<{
697
+ marked: z.ZodArray<z.ZodString>;
698
+ alreadyRead: z.ZodArray<z.ZodString>;
699
+ }, z.core.$strip>;
700
+ conversations: z.ZodObject<{
701
+ marked: z.ZodArray<z.ZodString>;
702
+ alreadyRead: z.ZodArray<z.ZodString>;
703
+ }, z.core.$strip>;
704
+ failed: z.ZodArray<z.ZodObject<{
705
+ item: z.ZodString;
706
+ itemType: z.ZodEnum<{
707
+ thread: "thread";
708
+ conversation: "conversation";
709
+ }>;
710
+ error: z.ZodString;
711
+ }, z.core.$strip>>;
712
+ markedCount: z.ZodNumber;
713
+ failureCount: z.ZodNumber;
714
+ }, z.core.$strip>;
715
+ /**
716
+ * Schema for list-channels tool output
717
+ */
718
+ export declare const ListChannelsOutputSchema: z.ZodObject<{
719
+ type: z.ZodLiteral<"list_channels">;
720
+ workspaceId: z.ZodNumber;
721
+ channels: z.ZodArray<z.ZodObject<{
722
+ name: z.ZodString;
723
+ description: z.ZodOptional<z.ZodString>;
724
+ public: z.ZodBoolean;
725
+ archived: z.ZodBoolean;
726
+ created: z.ZodString;
727
+ channelUrl: z.ZodString;
728
+ id: z.ZodString;
729
+ creatorId: z.ZodNumber;
730
+ creatorName: z.ZodOptional<z.ZodString>;
731
+ color: z.ZodOptional<z.ZodNumber>;
732
+ }, z.core.$strip>>;
733
+ totalChannels: z.ZodNumber;
734
+ }, z.core.$strip>;
735
+ /**
736
+ * Schema for list-conversations tool output
737
+ */
738
+ export declare const ListConversationsOutputSchema: z.ZodObject<{
739
+ type: z.ZodLiteral<"list_conversations">;
740
+ workspaceId: z.ZodNumber;
741
+ conversations: z.ZodArray<z.ZodObject<{
742
+ id: z.ZodString;
743
+ workspaceId: z.ZodNumber;
744
+ title: z.ZodOptional<z.ZodString>;
745
+ userIds: z.ZodArray<z.ZodNumber>;
746
+ participantNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
747
+ archived: z.ZodBoolean;
748
+ lastActive: z.ZodString;
749
+ snippet: z.ZodOptional<z.ZodString>;
750
+ conversationUrl: z.ZodString;
751
+ }, z.core.$strip>>;
752
+ totalConversations: z.ZodNumber;
753
+ hasMore: z.ZodOptional<z.ZodBoolean>;
754
+ cursor: z.ZodOptional<z.ZodString>;
755
+ }, z.core.$strip>;
756
+ /**
757
+ * Union of all possible structured outputs for type safety
758
+ */
759
+ export declare const StructuredOutputSchema: z.ZodUnion<readonly [z.ZodObject<{
760
+ type: z.ZodLiteral<"thread_data">;
761
+ thread: z.ZodObject<{
762
+ id: z.ZodString;
763
+ title: z.ZodString;
764
+ content: z.ZodString;
765
+ channelId: z.ZodString;
766
+ channelName: z.ZodOptional<z.ZodString>;
767
+ workspaceId: z.ZodNumber;
768
+ creator: z.ZodNumber;
769
+ creatorName: z.ZodOptional<z.ZodString>;
770
+ posted: z.ZodString;
771
+ commentCount: z.ZodNumber;
772
+ isArchived: z.ZodBoolean;
773
+ inInbox: z.ZodBoolean;
774
+ participants: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
775
+ participantNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
776
+ threadUrl: z.ZodString;
777
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
778
+ attachmentId: z.ZodString;
779
+ urlType: z.ZodString;
780
+ title: z.ZodOptional<z.ZodString>;
781
+ url: z.ZodOptional<z.ZodString>;
782
+ fileName: z.ZodOptional<z.ZodString>;
783
+ fileSize: z.ZodOptional<z.ZodNumber>;
784
+ underlyingType: z.ZodOptional<z.ZodString>;
785
+ description: z.ZodOptional<z.ZodString>;
786
+ image: z.ZodOptional<z.ZodString>;
787
+ imageWidth: z.ZodOptional<z.ZodNumber>;
788
+ imageHeight: z.ZodOptional<z.ZodNumber>;
789
+ duration: z.ZodOptional<z.ZodString>;
790
+ uploadState: z.ZodOptional<z.ZodString>;
791
+ video: z.ZodOptional<z.ZodString>;
792
+ videoType: z.ZodOptional<z.ZodString>;
793
+ videoAutoPlay: z.ZodOptional<z.ZodBoolean>;
794
+ }, z.core.$loose>>>;
795
+ }, z.core.$strip>;
796
+ comments: z.ZodArray<z.ZodObject<{
797
+ id: z.ZodString;
798
+ content: z.ZodString;
799
+ creator: z.ZodNumber;
800
+ creatorName: z.ZodOptional<z.ZodString>;
801
+ threadId: z.ZodString;
802
+ posted: z.ZodString;
803
+ commentUrl: z.ZodString;
804
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
805
+ attachmentId: z.ZodString;
806
+ urlType: z.ZodString;
807
+ title: z.ZodOptional<z.ZodString>;
808
+ url: z.ZodOptional<z.ZodString>;
809
+ fileName: z.ZodOptional<z.ZodString>;
810
+ fileSize: z.ZodOptional<z.ZodNumber>;
811
+ underlyingType: z.ZodOptional<z.ZodString>;
812
+ description: z.ZodOptional<z.ZodString>;
813
+ image: z.ZodOptional<z.ZodString>;
814
+ imageWidth: z.ZodOptional<z.ZodNumber>;
815
+ imageHeight: z.ZodOptional<z.ZodNumber>;
816
+ duration: z.ZodOptional<z.ZodString>;
817
+ uploadState: z.ZodOptional<z.ZodString>;
818
+ video: z.ZodOptional<z.ZodString>;
819
+ videoType: z.ZodOptional<z.ZodString>;
820
+ videoAutoPlay: z.ZodOptional<z.ZodBoolean>;
821
+ }, z.core.$loose>>>;
822
+ }, z.core.$strip>>;
823
+ totalComments: z.ZodNumber;
824
+ }, z.core.$strip>, z.ZodObject<{
825
+ type: z.ZodLiteral<"conversation_data">;
826
+ conversation: z.ZodObject<{
827
+ id: z.ZodString;
828
+ workspaceId: z.ZodNumber;
829
+ userIds: z.ZodArray<z.ZodNumber>;
830
+ archived: z.ZodBoolean;
831
+ lastActive: z.ZodString;
832
+ title: z.ZodOptional<z.ZodString>;
833
+ conversationUrl: z.ZodString;
834
+ }, z.core.$strip>;
835
+ messages: z.ZodArray<z.ZodObject<{
836
+ id: z.ZodString;
837
+ content: z.ZodString;
838
+ creatorId: z.ZodNumber;
839
+ creatorName: z.ZodOptional<z.ZodString>;
840
+ conversationId: z.ZodString;
841
+ posted: z.ZodString;
842
+ messageUrl: z.ZodString;
843
+ attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
844
+ attachmentId: z.ZodString;
845
+ urlType: z.ZodString;
846
+ title: z.ZodOptional<z.ZodString>;
847
+ url: z.ZodOptional<z.ZodString>;
848
+ fileName: z.ZodOptional<z.ZodString>;
849
+ fileSize: z.ZodOptional<z.ZodNumber>;
850
+ underlyingType: z.ZodOptional<z.ZodString>;
851
+ description: z.ZodOptional<z.ZodString>;
852
+ image: z.ZodOptional<z.ZodString>;
853
+ imageWidth: z.ZodOptional<z.ZodNumber>;
854
+ imageHeight: z.ZodOptional<z.ZodNumber>;
855
+ duration: z.ZodOptional<z.ZodString>;
856
+ uploadState: z.ZodOptional<z.ZodString>;
857
+ video: z.ZodOptional<z.ZodString>;
858
+ videoType: z.ZodOptional<z.ZodString>;
859
+ videoAutoPlay: z.ZodOptional<z.ZodBoolean>;
860
+ }, z.core.$loose>>>;
861
+ }, z.core.$strip>>;
862
+ totalMessages: z.ZodNumber;
863
+ }, z.core.$strip>, z.ZodObject<{
864
+ type: z.ZodLiteral<"inbox_data">;
865
+ workspaceId: z.ZodNumber;
866
+ threads: z.ZodArray<z.ZodObject<{
867
+ id: z.ZodString;
868
+ title: z.ZodString;
869
+ channelId: z.ZodString;
870
+ channelName: z.ZodOptional<z.ZodString>;
871
+ creator: z.ZodNumber;
872
+ isUnread: z.ZodBoolean;
873
+ isArchived: z.ZodBoolean;
874
+ isStarred: z.ZodBoolean;
875
+ threadUrl: z.ZodString;
876
+ }, z.core.$strip>>;
877
+ conversations: z.ZodArray<z.ZodObject<{
878
+ id: z.ZodString;
879
+ title: z.ZodString;
880
+ userIds: z.ZodArray<z.ZodNumber>;
881
+ participantNames: z.ZodArray<z.ZodString>;
882
+ isUnread: z.ZodBoolean;
883
+ conversationUrl: z.ZodString;
884
+ }, z.core.$strip>>;
885
+ unreadCount: z.ZodNumber;
886
+ unreadThreads: z.ZodArray<z.ZodAny>;
887
+ unreadConversations: z.ZodArray<z.ZodAny>;
888
+ totalThreads: z.ZodNumber;
889
+ totalConversations: z.ZodNumber;
890
+ }, z.core.$strip>, z.ZodObject<{
891
+ type: z.ZodLiteral<"search_results">;
892
+ query: z.ZodString;
893
+ workspaceId: z.ZodNumber;
894
+ results: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
895
+ type: z.ZodLiteral<"thread">;
896
+ threadId: z.ZodString;
897
+ commentId: z.ZodOptional<z.ZodString>;
898
+ channelId: z.ZodOptional<z.ZodString>;
899
+ channelName: z.ZodOptional<z.ZodString>;
900
+ id: z.ZodString;
901
+ content: z.ZodString;
902
+ creatorId: z.ZodNumber;
903
+ creatorName: z.ZodOptional<z.ZodString>;
904
+ created: z.ZodString;
905
+ workspaceId: z.ZodNumber;
906
+ url: z.ZodString;
907
+ }, z.core.$strip>, z.ZodObject<{
908
+ type: z.ZodLiteral<"conversation">;
909
+ conversationId: z.ZodString;
910
+ messageId: z.ZodString;
911
+ id: z.ZodString;
912
+ content: z.ZodString;
913
+ creatorId: z.ZodNumber;
914
+ creatorName: z.ZodOptional<z.ZodString>;
915
+ created: z.ZodString;
916
+ workspaceId: z.ZodNumber;
917
+ url: z.ZodString;
918
+ }, z.core.$strip>], "type">>;
919
+ totalResults: z.ZodNumber;
920
+ hasMore: z.ZodBoolean;
921
+ cursor: z.ZodOptional<z.ZodString>;
922
+ }, z.core.$strip>, z.ZodObject<{
923
+ type: z.ZodLiteral<"get_workspaces">;
924
+ workspaces: z.ZodArray<z.ZodObject<{
925
+ id: z.ZodNumber;
926
+ name: z.ZodString;
927
+ creator: z.ZodNumber;
928
+ creatorName: z.ZodOptional<z.ZodString>;
929
+ created: z.ZodString;
930
+ url: z.ZodURL;
931
+ defaultConversation: z.ZodOptional<z.ZodString>;
932
+ defaultConversationTitle: z.ZodOptional<z.ZodString>;
933
+ defaultConversationUrl: z.ZodOptional<z.ZodURL>;
934
+ plan: z.ZodOptional<z.ZodString>;
935
+ avatarId: z.ZodOptional<z.ZodString>;
936
+ avatarUrls: z.ZodOptional<z.ZodObject<{
937
+ s35: z.ZodString;
938
+ s60: z.ZodString;
939
+ s195: z.ZodString;
940
+ s640: z.ZodString;
941
+ }, z.core.$strip>>;
942
+ }, z.core.$strip>>;
943
+ }, z.core.$strip>, z.ZodObject<{
944
+ type: z.ZodLiteral<"get_users">;
945
+ workspaceId: z.ZodNumber;
946
+ users: z.ZodArray<z.ZodObject<{
947
+ id: z.ZodNumber;
948
+ name: z.ZodString;
949
+ shortName: z.ZodString;
950
+ email: z.ZodOptional<z.ZodString>;
951
+ userType: z.ZodOptional<z.ZodString>;
952
+ removed: z.ZodBoolean;
953
+ timezone: z.ZodOptional<z.ZodString>;
954
+ restricted: z.ZodOptional<z.ZodBoolean>;
955
+ }, z.core.$strip>>;
956
+ totalUsers: z.ZodNumber;
957
+ filteredUsers: z.ZodNumber;
958
+ }, z.core.$strip>, z.ZodObject<{
959
+ type: z.ZodLiteral<"get_groups">;
960
+ workspaceId: z.ZodNumber;
961
+ groups: z.ZodArray<z.ZodObject<{
962
+ id: z.ZodString;
963
+ name: z.ZodString;
964
+ workspaceId: z.ZodNumber;
965
+ memberCount: z.ZodNumber;
966
+ members: z.ZodOptional<z.ZodArray<z.ZodObject<{
967
+ id: z.ZodNumber;
968
+ name: z.ZodOptional<z.ZodString>;
969
+ email: z.ZodOptional<z.ZodString>;
970
+ }, z.core.$strip>>>;
971
+ }, z.core.$strip>>;
972
+ totalGroups: z.ZodNumber;
973
+ filteredGroups: z.ZodNumber;
974
+ }, z.core.$strip>, z.ZodObject<{
975
+ type: z.ZodLiteral<"user_info">;
976
+ userId: z.ZodNumber;
977
+ name: z.ZodString;
978
+ shortName: z.ZodString;
979
+ email: z.ZodString;
980
+ timezone: z.ZodString;
981
+ lang: z.ZodString;
982
+ status: z.ZodOptional<z.ZodObject<{
983
+ message: z.ZodString;
984
+ emoji: z.ZodOptional<z.ZodString>;
985
+ activeUntil: z.ZodOptional<z.ZodString>;
986
+ pauseNotifications: z.ZodBoolean;
987
+ pauseActivity: z.ZodBoolean;
988
+ }, z.core.$strip>>;
989
+ }, z.core.$strip>, z.ZodObject<{
990
+ type: z.ZodLiteral<"link_data">;
991
+ url: z.ZodString;
992
+ linkType: z.ZodEnum<{
993
+ thread: "thread";
994
+ comment: "comment";
995
+ message: "message";
996
+ conversation: "conversation";
997
+ }>;
998
+ params: z.ZodObject<{
999
+ workspaceId: z.ZodNumber;
1000
+ conversationId: z.ZodOptional<z.ZodString>;
1001
+ messageId: z.ZodOptional<z.ZodString>;
1002
+ channelId: z.ZodOptional<z.ZodString>;
1003
+ threadId: z.ZodOptional<z.ZodString>;
1004
+ commentId: z.ZodOptional<z.ZodString>;
1005
+ }, z.core.$strip>;
1006
+ }, z.core.$strip>, z.ZodObject<{
1007
+ name: z.ZodString;
1008
+ description: z.ZodOptional<z.ZodString>;
1009
+ public: z.ZodBoolean;
1010
+ archived: z.ZodBoolean;
1011
+ created: z.ZodString;
1012
+ channelUrl: z.ZodString;
1013
+ type: z.ZodLiteral<"create_channel_result">;
1014
+ success: z.ZodBoolean;
1015
+ channelId: z.ZodString;
1016
+ workspaceId: z.ZodNumber;
1017
+ creator: z.ZodNumber;
1018
+ userIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1019
+ }, z.core.$strip>, z.ZodObject<{
1020
+ name: z.ZodString;
1021
+ description: z.ZodOptional<z.ZodString>;
1022
+ public: z.ZodBoolean;
1023
+ archived: z.ZodBoolean;
1024
+ created: z.ZodString;
1025
+ channelUrl: z.ZodString;
1026
+ type: z.ZodLiteral<"update_channel_result">;
1027
+ success: z.ZodBoolean;
1028
+ channelId: z.ZodString;
1029
+ workspaceId: z.ZodNumber;
1030
+ creator: z.ZodNumber;
1031
+ userIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1032
+ }, z.core.$strip>, z.ZodObject<{
1033
+ type: z.ZodLiteral<"create_thread_result">;
1034
+ success: z.ZodBoolean;
1035
+ threadId: z.ZodString;
1036
+ title: z.ZodString;
1037
+ channelId: z.ZodString;
1038
+ workspaceId: z.ZodNumber;
1039
+ content: z.ZodString;
1040
+ creator: z.ZodNumber;
1041
+ created: z.ZodString;
1042
+ threadUrl: z.ZodString;
1043
+ recipients: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1044
+ groups: z.ZodOptional<z.ZodArray<z.ZodString>>;
1045
+ notifyAudience: z.ZodOptional<z.ZodEnum<{
1046
+ thread: "thread";
1047
+ channel: "channel";
1048
+ }>>;
1049
+ }, z.core.$strip>, z.ZodObject<{
1050
+ type: z.ZodLiteral<"create_conversation_result">;
1051
+ success: z.ZodBoolean;
1052
+ conversationId: z.ZodString;
1053
+ messageId: z.ZodString;
1054
+ workspaceId: z.ZodNumber;
1055
+ content: z.ZodString;
1056
+ recipients: z.ZodArray<z.ZodNumber>;
1057
+ participants: z.ZodArray<z.ZodNumber>;
1058
+ created: z.ZodString;
1059
+ conversationUrl: z.ZodString;
1060
+ messageUrl: z.ZodString;
1061
+ }, z.core.$strip>, z.ZodObject<{
1062
+ type: z.ZodLiteral<"update_thread_result">;
1063
+ success: z.ZodBoolean;
1064
+ threadId: z.ZodString;
1065
+ title: z.ZodString;
1066
+ channelId: z.ZodString;
1067
+ workspaceId: z.ZodNumber;
1068
+ content: z.ZodString;
1069
+ threadUrl: z.ZodString;
1070
+ lastEdited: z.ZodOptional<z.ZodString>;
1071
+ }, z.core.$strip>, z.ZodObject<{
1072
+ type: z.ZodLiteral<"update_comment_result">;
1073
+ success: z.ZodBoolean;
1074
+ commentId: z.ZodString;
1075
+ threadId: z.ZodString;
1076
+ channelId: z.ZodString;
1077
+ workspaceId: z.ZodNumber;
1078
+ content: z.ZodString;
1079
+ commentUrl: z.ZodString;
1080
+ lastEdited: z.ZodOptional<z.ZodString>;
1081
+ }, z.core.$strip>, z.ZodObject<{
1082
+ type: z.ZodLiteral<"update_message_result">;
1083
+ success: z.ZodBoolean;
1084
+ messageId: z.ZodString;
1085
+ conversationId: z.ZodString;
1086
+ workspaceId: z.ZodNumber;
1087
+ content: z.ZodString;
1088
+ messageUrl: z.ZodString;
1089
+ lastEdited: z.ZodOptional<z.ZodString>;
1090
+ }, z.core.$strip>, z.ZodObject<{
1091
+ type: z.ZodLiteral<"delete_thread_result">;
1092
+ success: z.ZodBoolean;
1093
+ targetType: z.ZodLiteral<"thread">;
1094
+ threadId: z.ZodString;
1095
+ }, z.core.$strip>, z.ZodObject<{
1096
+ type: z.ZodLiteral<"delete_comment_result">;
1097
+ success: z.ZodBoolean;
1098
+ targetType: z.ZodLiteral<"comment">;
1099
+ commentId: z.ZodString;
1100
+ }, z.core.$strip>, z.ZodObject<{
1101
+ type: z.ZodLiteral<"delete_message_result">;
1102
+ success: z.ZodBoolean;
1103
+ targetType: z.ZodLiteral<"message">;
1104
+ messageId: z.ZodString;
1105
+ }, z.core.$strip>, z.ZodObject<{
1106
+ type: z.ZodLiteral<"reply_result">;
1107
+ success: z.ZodBoolean;
1108
+ targetType: z.ZodEnum<{
1109
+ thread: "thread";
1110
+ conversation: "conversation";
1111
+ }>;
1112
+ targetId: z.ZodString;
1113
+ replyId: z.ZodString;
1114
+ content: z.ZodString;
1115
+ created: z.ZodString;
1116
+ replyUrl: z.ZodString;
1117
+ recipients: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
1118
+ notifyAudience: z.ZodOptional<z.ZodEnum<{
1119
+ thread: "thread";
1120
+ channel: "channel";
1121
+ }>>;
1122
+ groups: z.ZodOptional<z.ZodArray<z.ZodString>>;
1123
+ }, z.core.$strip>, z.ZodObject<{
1124
+ type: z.ZodLiteral<"reaction_result">;
1125
+ success: z.ZodBoolean;
1126
+ operation: z.ZodEnum<{
1127
+ add: "add";
1128
+ remove: "remove";
1129
+ }>;
1130
+ targetType: z.ZodEnum<{
1131
+ thread: "thread";
1132
+ comment: "comment";
1133
+ message: "message";
1134
+ }>;
1135
+ targetId: z.ZodString;
1136
+ emoji: z.ZodString;
1137
+ targetUrl: z.ZodString;
1138
+ }, z.core.$strip>, z.ZodObject<{
1139
+ type: z.ZodLiteral<"mark_done_result">;
1140
+ itemType: z.ZodEnum<{
1141
+ thread: "thread";
1142
+ conversation: "conversation";
1143
+ }>;
1144
+ mode: z.ZodEnum<{
1145
+ individual: "individual";
1146
+ bulk: "bulk";
1147
+ }>;
1148
+ completed: z.ZodArray<z.ZodString>;
1149
+ failed: z.ZodArray<z.ZodObject<{
1150
+ item: z.ZodString;
1151
+ error: z.ZodString;
1152
+ opErrors: z.ZodArray<z.ZodObject<{
1153
+ op: z.ZodEnum<{
1154
+ markRead: "markRead";
1155
+ archive: "archive";
1156
+ }>;
1157
+ error: z.ZodString;
1158
+ }, z.core.$strip>>;
1159
+ }, z.core.$strip>>;
1160
+ warnings: z.ZodArray<z.ZodObject<{
1161
+ item: z.ZodString;
1162
+ op: z.ZodEnum<{
1163
+ markRead: "markRead";
1164
+ archive: "archive";
1165
+ }>;
1166
+ error: z.ZodString;
1167
+ }, z.core.$strip>>;
1168
+ totalRequested: z.ZodNumber;
1169
+ successCount: z.ZodNumber;
1170
+ failureCount: z.ZodNumber;
1171
+ operations: z.ZodObject<{
1172
+ markRead: z.ZodBoolean;
1173
+ archive: z.ZodBoolean;
1174
+ clearUnread: z.ZodBoolean;
1175
+ }, z.core.$strip>;
1176
+ selectors: z.ZodOptional<z.ZodObject<{
1177
+ workspaceId: z.ZodOptional<z.ZodNumber>;
1178
+ channelId: z.ZodOptional<z.ZodString>;
1179
+ }, z.core.$strip>>;
1180
+ }, z.core.$strip>, z.ZodObject<{
1181
+ type: z.ZodLiteral<"mark_read_result">;
1182
+ workspaceId: z.ZodNumber;
1183
+ mode: z.ZodEnum<{
1184
+ individual: "individual";
1185
+ all: "all";
1186
+ }>;
1187
+ threads: z.ZodObject<{
1188
+ marked: z.ZodArray<z.ZodString>;
1189
+ alreadyRead: z.ZodArray<z.ZodString>;
1190
+ }, z.core.$strip>;
1191
+ conversations: z.ZodObject<{
1192
+ marked: z.ZodArray<z.ZodString>;
1193
+ alreadyRead: z.ZodArray<z.ZodString>;
1194
+ }, z.core.$strip>;
1195
+ failed: z.ZodArray<z.ZodObject<{
1196
+ item: z.ZodString;
1197
+ itemType: z.ZodEnum<{
1198
+ thread: "thread";
1199
+ conversation: "conversation";
1200
+ }>;
1201
+ error: z.ZodString;
1202
+ }, z.core.$strip>>;
1203
+ markedCount: z.ZodNumber;
1204
+ failureCount: z.ZodNumber;
1205
+ }, z.core.$strip>, z.ZodObject<{
1206
+ type: z.ZodLiteral<"list_channels">;
1207
+ workspaceId: z.ZodNumber;
1208
+ channels: z.ZodArray<z.ZodObject<{
1209
+ name: z.ZodString;
1210
+ description: z.ZodOptional<z.ZodString>;
1211
+ public: z.ZodBoolean;
1212
+ archived: z.ZodBoolean;
1213
+ created: z.ZodString;
1214
+ channelUrl: z.ZodString;
1215
+ id: z.ZodString;
1216
+ creatorId: z.ZodNumber;
1217
+ creatorName: z.ZodOptional<z.ZodString>;
1218
+ color: z.ZodOptional<z.ZodNumber>;
1219
+ }, z.core.$strip>>;
1220
+ totalChannels: z.ZodNumber;
1221
+ }, z.core.$strip>, z.ZodObject<{
1222
+ type: z.ZodLiteral<"list_conversations">;
1223
+ workspaceId: z.ZodNumber;
1224
+ conversations: z.ZodArray<z.ZodObject<{
1225
+ id: z.ZodString;
1226
+ workspaceId: z.ZodNumber;
1227
+ title: z.ZodOptional<z.ZodString>;
1228
+ userIds: z.ZodArray<z.ZodNumber>;
1229
+ participantNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
1230
+ archived: z.ZodBoolean;
1231
+ lastActive: z.ZodString;
1232
+ snippet: z.ZodOptional<z.ZodString>;
1233
+ conversationUrl: z.ZodString;
1234
+ }, z.core.$strip>>;
1235
+ totalConversations: z.ZodNumber;
1236
+ hasMore: z.ZodOptional<z.ZodBoolean>;
1237
+ cursor: z.ZodOptional<z.ZodString>;
1238
+ }, z.core.$strip>]>;
1239
+ /**
1240
+ * Type definitions for the structured outputs
1241
+ */
1242
+ export type CreateChannelOutput = z.infer<typeof CreateChannelOutputSchema>;
1243
+ export type UpdateChannelOutput = z.infer<typeof UpdateChannelOutputSchema>;
1244
+ export type ChannelOutputFields = z.infer<typeof ChannelOutputFieldsSchema>;
1245
+ export type CreateThreadOutput = z.infer<typeof CreateThreadOutputSchema>;
1246
+ export type CreateConversationOutput = z.infer<typeof CreateConversationOutputSchema>;
1247
+ export type UpdateThreadOutput = z.infer<typeof UpdateThreadOutputSchema>;
1248
+ export type UpdateCommentOutput = z.infer<typeof UpdateCommentOutputSchema>;
1249
+ export type UpdateMessageOutput = z.infer<typeof UpdateMessageOutputSchema>;
1250
+ export type UpdateObjectOutput = z.infer<typeof UpdateObjectOutputSchema>;
1251
+ /**
1252
+ * Strictly-typed union of the three per-branch update outputs. Use this in the tool
1253
+ * to construct structured payloads — `UpdateObjectOutput` is the looser MCP-facing shape.
1254
+ */
1255
+ export type UpdateObjectStructured = UpdateThreadOutput | UpdateCommentOutput | UpdateMessageOutput;
1256
+ export type DeleteThreadOutput = z.infer<typeof DeleteThreadOutputSchema>;
1257
+ export type DeleteCommentOutput = z.infer<typeof DeleteCommentOutputSchema>;
1258
+ export type DeleteMessageOutput = z.infer<typeof DeleteMessageOutputSchema>;
1259
+ export type DeleteObjectOutput = z.infer<typeof DeleteObjectOutputSchema>;
1260
+ /**
1261
+ * Strictly-typed union of the three per-branch delete outputs. Use this in the tool
1262
+ * to construct structured payloads — `DeleteObjectOutput` is the looser MCP-facing shape.
1263
+ */
1264
+ export type DeleteObjectStructured = DeleteThreadOutput | DeleteCommentOutput | DeleteMessageOutput;
1265
+ export type LoadThreadOutput = z.infer<typeof LoadThreadOutputSchema>;
1266
+ export type LoadConversationOutput = z.infer<typeof LoadConversationOutputSchema>;
1267
+ export type FetchInboxOutput = z.infer<typeof FetchInboxOutputSchema>;
1268
+ export type SearchContentOutput = z.infer<typeof SearchContentOutputSchema>;
1269
+ export type GetMentionsOutput = z.infer<typeof GetMentionsOutputSchema>;
1270
+ export type SearchResultItem = z.infer<typeof SearchResultItemSchema>;
1271
+ export type GetWorkspacesOutput = z.infer<typeof GetWorkspacesOutputSchema>;
1272
+ export type GetUsersOutput = z.infer<typeof GetUsersOutputSchema>;
1273
+ export type GetGroupsOutput = z.infer<typeof GetGroupsOutputSchema>;
1274
+ export type GroupMember = z.infer<typeof GroupMemberSchema>;
1275
+ export type UserInfoOutput = z.infer<typeof UserInfoOutputSchema>;
1276
+ export type BuildLinkOutput = z.infer<typeof BuildLinkOutputSchema>;
1277
+ export type ReplyOutput = z.infer<typeof ReplyOutputSchema>;
1278
+ export type ReactOutput = z.infer<typeof ReactOutputSchema>;
1279
+ export type MarkDoneOutput = z.infer<typeof MarkDoneOutputSchema>;
1280
+ export type MarkReadOutput = z.infer<typeof MarkReadOutputSchema>;
1281
+ export type ListChannelsOutput = z.infer<typeof ListChannelsOutputSchema>;
1282
+ export type ListConversationsOutput = z.infer<typeof ListConversationsOutputSchema>;
1283
+ export type StructuredOutput = z.infer<typeof StructuredOutputSchema>;