mcp4openapi 0.3.1 → 0.3.4

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 (160) hide show
  1. package/README.md +7 -0
  2. package/dist/src/auth/oauth-provider.d.ts +1 -0
  3. package/dist/src/auth/oauth-provider.d.ts.map +1 -1
  4. package/dist/src/auth/oauth-provider.js +17 -0
  5. package/dist/src/auth/oauth-provider.js.map +1 -1
  6. package/dist/src/core/cli-config.d.ts.map +1 -1
  7. package/dist/src/core/cli-config.js +2 -0
  8. package/dist/src/core/cli-config.js.map +1 -1
  9. package/dist/src/core/index.d.ts.map +1 -1
  10. package/dist/src/core/index.js +18 -3
  11. package/dist/src/core/index.js.map +1 -1
  12. package/dist/src/index.js +0 -0
  13. package/dist/src/profile/profile-allowlist.d.ts +18 -0
  14. package/dist/src/profile/profile-allowlist.d.ts.map +1 -0
  15. package/dist/src/profile/profile-allowlist.js +68 -0
  16. package/dist/src/profile/profile-allowlist.js.map +1 -0
  17. package/dist/src/profile/profile-registry.d.ts +5 -0
  18. package/dist/src/profile/profile-registry.d.ts.map +1 -1
  19. package/dist/src/profile/profile-registry.js +38 -14
  20. package/dist/src/profile/profile-registry.js.map +1 -1
  21. package/dist/src/security/ssrf-validator.d.ts +31 -0
  22. package/dist/src/security/ssrf-validator.d.ts.map +1 -0
  23. package/dist/src/security/ssrf-validator.js +190 -0
  24. package/dist/src/security/ssrf-validator.js.map +1 -0
  25. package/package.json +2 -2
  26. package/profiles/gitlab/developer-profile-oauth.json +445 -81
  27. package/profiles/gitlab/developer-profile-oauth.test.json +1037 -12
  28. package/profiles/gitlab/openapi.yaml +1420 -165
  29. package/profiles/gitlab/profile-optimized-oauth.json +928 -0
  30. package/profiles/gitlab/profile-optimized-oauth.test.json +1606 -0
  31. package/profiles/grafana/openapi.json +28078 -0
  32. package/profiles/grafana/profile.json +1083 -0
  33. package/profiles/grafana/profile.test.json +235 -0
  34. package/profiles/mattermost/openapi.yaml +27434 -0
  35. package/profiles/mattermost/profile.json +463 -0
  36. package/profiles/mattermost/profile.test.json +607 -0
  37. package/profiles/n8n/profile-optimized.json +1002 -364
  38. package/profiles/n8n/profile-optimized.test.json +43 -43
  39. package/dist/src/argument-normalizer.d.ts +0 -5
  40. package/dist/src/argument-normalizer.d.ts.map +0 -1
  41. package/dist/src/argument-normalizer.js +0 -61
  42. package/dist/src/argument-normalizer.js.map +0 -1
  43. package/dist/src/cli-config.d.ts +0 -9
  44. package/dist/src/cli-config.d.ts.map +0 -1
  45. package/dist/src/cli-config.js +0 -111
  46. package/dist/src/cli-config.js.map +0 -1
  47. package/dist/src/composite-executor.d.ts +0 -77
  48. package/dist/src/composite-executor.d.ts.map +0 -1
  49. package/dist/src/composite-executor.js +0 -193
  50. package/dist/src/composite-executor.js.map +0 -1
  51. package/dist/src/constants.d.ts +0 -85
  52. package/dist/src/constants.d.ts.map +0 -1
  53. package/dist/src/constants.js +0 -85
  54. package/dist/src/constants.js.map +0 -1
  55. package/dist/src/dag-executor.d.ts +0 -49
  56. package/dist/src/dag-executor.d.ts.map +0 -1
  57. package/dist/src/dag-executor.js +0 -138
  58. package/dist/src/dag-executor.js.map +0 -1
  59. package/dist/src/errors.d.ts +0 -59
  60. package/dist/src/errors.d.ts.map +0 -1
  61. package/dist/src/errors.js +0 -119
  62. package/dist/src/errors.js.map +0 -1
  63. package/dist/src/filtering.d.ts +0 -19
  64. package/dist/src/filtering.d.ts.map +0 -1
  65. package/dist/src/filtering.js +0 -292
  66. package/dist/src/filtering.js.map +0 -1
  67. package/dist/src/http-client-factory.d.ts +0 -62
  68. package/dist/src/http-client-factory.d.ts.map +0 -1
  69. package/dist/src/http-client-factory.js +0 -133
  70. package/dist/src/http-client-factory.js.map +0 -1
  71. package/dist/src/http-transport-config.d.ts +0 -6
  72. package/dist/src/http-transport-config.d.ts.map +0 -1
  73. package/dist/src/http-transport-config.js +0 -47
  74. package/dist/src/http-transport-config.js.map +0 -1
  75. package/dist/src/http-transport.d.ts +0 -316
  76. package/dist/src/http-transport.d.ts.map +0 -1
  77. package/dist/src/http-transport.js +0 -2412
  78. package/dist/src/http-transport.js.map +0 -1
  79. package/dist/src/interceptors.d.ts +0 -116
  80. package/dist/src/interceptors.d.ts.map +0 -1
  81. package/dist/src/interceptors.js +0 -392
  82. package/dist/src/interceptors.js.map +0 -1
  83. package/dist/src/jsonrpc-validator.d.ts +0 -27
  84. package/dist/src/jsonrpc-validator.d.ts.map +0 -1
  85. package/dist/src/jsonrpc-validator.js +0 -58
  86. package/dist/src/jsonrpc-validator.js.map +0 -1
  87. package/dist/src/logger.d.ts +0 -59
  88. package/dist/src/logger.d.ts.map +0 -1
  89. package/dist/src/logger.js +0 -177
  90. package/dist/src/logger.js.map +0 -1
  91. package/dist/src/mcp-server-manager.d.ts +0 -20
  92. package/dist/src/mcp-server-manager.d.ts.map +0 -1
  93. package/dist/src/mcp-server-manager.js +0 -38
  94. package/dist/src/mcp-server-manager.js.map +0 -1
  95. package/dist/src/mcp-server.d.ts +0 -203
  96. package/dist/src/mcp-server.d.ts.map +0 -1
  97. package/dist/src/mcp-server.js +0 -1369
  98. package/dist/src/mcp-server.js.map +0 -1
  99. package/dist/src/metrics.d.ts +0 -97
  100. package/dist/src/metrics.d.ts.map +0 -1
  101. package/dist/src/metrics.js +0 -273
  102. package/dist/src/metrics.js.map +0 -1
  103. package/dist/src/naming-warnings.d.ts +0 -23
  104. package/dist/src/naming-warnings.d.ts.map +0 -1
  105. package/dist/src/naming-warnings.js +0 -83
  106. package/dist/src/naming-warnings.js.map +0 -1
  107. package/dist/src/naming.d.ts +0 -58
  108. package/dist/src/naming.d.ts.map +0 -1
  109. package/dist/src/naming.js +0 -510
  110. package/dist/src/naming.js.map +0 -1
  111. package/dist/src/oauth-provider.d.ts +0 -131
  112. package/dist/src/oauth-provider.d.ts.map +0 -1
  113. package/dist/src/oauth-provider.js +0 -836
  114. package/dist/src/oauth-provider.js.map +0 -1
  115. package/dist/src/openapi-parser.d.ts +0 -70
  116. package/dist/src/openapi-parser.d.ts.map +0 -1
  117. package/dist/src/openapi-parser.js +0 -436
  118. package/dist/src/openapi-parser.js.map +0 -1
  119. package/dist/src/profile-loader.d.ts +0 -78
  120. package/dist/src/profile-loader.d.ts.map +0 -1
  121. package/dist/src/profile-loader.js +0 -483
  122. package/dist/src/profile-loader.js.map +0 -1
  123. package/dist/src/profile-registry.d.ts +0 -18
  124. package/dist/src/profile-registry.d.ts.map +0 -1
  125. package/dist/src/profile-registry.js +0 -26
  126. package/dist/src/profile-registry.js.map +0 -1
  127. package/dist/src/profile-resolver.d.ts +0 -19
  128. package/dist/src/profile-resolver.d.ts.map +0 -1
  129. package/dist/src/profile-resolver.js +0 -167
  130. package/dist/src/profile-resolver.js.map +0 -1
  131. package/dist/src/proxy-executor.d.ts +0 -86
  132. package/dist/src/proxy-executor.d.ts.map +0 -1
  133. package/dist/src/proxy-executor.js +0 -497
  134. package/dist/src/proxy-executor.js.map +0 -1
  135. package/dist/src/schema-validator.d.ts +0 -30
  136. package/dist/src/schema-validator.d.ts.map +0 -1
  137. package/dist/src/schema-validator.js +0 -128
  138. package/dist/src/schema-validator.js.map +0 -1
  139. package/dist/src/startup-profile.d.ts +0 -17
  140. package/dist/src/startup-profile.d.ts.map +0 -1
  141. package/dist/src/startup-profile.js +0 -30
  142. package/dist/src/startup-profile.js.map +0 -1
  143. package/dist/src/startup-validation.d.ts +0 -11
  144. package/dist/src/startup-validation.d.ts.map +0 -1
  145. package/dist/src/startup-validation.js +0 -21
  146. package/dist/src/startup-validation.js.map +0 -1
  147. package/dist/src/tool-filter.d.ts +0 -65
  148. package/dist/src/tool-filter.d.ts.map +0 -1
  149. package/dist/src/tool-filter.js +0 -471
  150. package/dist/src/tool-filter.js.map +0 -1
  151. package/dist/src/tool-generator.d.ts +0 -67
  152. package/dist/src/tool-generator.d.ts.map +0 -1
  153. package/dist/src/tool-generator.js +0 -182
  154. package/dist/src/tool-generator.js.map +0 -1
  155. package/dist/src/validation-utils.d.ts +0 -49
  156. package/dist/src/validation-utils.d.ts.map +0 -1
  157. package/dist/src/validation-utils.js +0 -138
  158. package/dist/src/validation-utils.js.map +0 -1
  159. package/profiles/gitlab/developer-profile.json +0 -1508
  160. package/profiles/gitlab/developer-profile.test.json +0 -3432
@@ -0,0 +1,607 @@
1
+ {
2
+ "$schema": "../../src/testing/test-schema.ts",
3
+ "profile_name": "mattermost",
4
+ "variables": {
5
+ "userId": "user-123",
6
+ "teamId": "team-123",
7
+ "channelId": "channel-123",
8
+ "postId": "post-123",
9
+ "threadId": "thread-123",
10
+ "fileId": "file-123",
11
+ "emojiName": "thumbsup",
12
+ "timestamp": "1700000000000"
13
+ },
14
+ "scenarios": [
15
+ {
16
+ "name": "Create User",
17
+ "tool": "create_content",
18
+ "arguments": {
19
+ "action": "create_user",
20
+ "email": "user@example.com",
21
+ "username": "user",
22
+ "password": "Password123!"
23
+ },
24
+ "mocks": [
25
+ {
26
+ "operationId": "CreateUser",
27
+ "response": { "body": { "id": "{{userId}}", "username": "user" } }
28
+ }
29
+ ],
30
+ "expect": { "success": true }
31
+ },
32
+ {
33
+ "name": "Create Team",
34
+ "tool": "create_content",
35
+ "arguments": {
36
+ "action": "create_team",
37
+ "name": "team",
38
+ "display_name": "Team",
39
+ "type": "O"
40
+ },
41
+ "mocks": [
42
+ {
43
+ "operationId": "CreateTeam",
44
+ "response": { "body": { "id": "{{teamId}}", "name": "team" } }
45
+ }
46
+ ],
47
+ "expect": { "success": true }
48
+ },
49
+ {
50
+ "name": "Create Channel",
51
+ "tool": "create_content",
52
+ "arguments": {
53
+ "action": "create_channel",
54
+ "team_id": "{{teamId}}",
55
+ "name": "channel",
56
+ "display_name": "Channel",
57
+ "type": "O"
58
+ },
59
+ "mocks": [
60
+ {
61
+ "operationId": "CreateChannel",
62
+ "response": { "body": { "id": "{{channelId}}", "name": "channel" } }
63
+ }
64
+ ],
65
+ "expect": { "success": true }
66
+ },
67
+ {
68
+ "name": "Create Post",
69
+ "tool": "create_content",
70
+ "arguments": {
71
+ "action": "create_post",
72
+ "channel_id": "{{channelId}}",
73
+ "message": "Hello"
74
+ },
75
+ "mocks": [
76
+ {
77
+ "operationId": "CreatePost",
78
+ "response": { "body": { "id": "{{postId}}", "message": "Hello" } }
79
+ }
80
+ ],
81
+ "expect": { "success": true }
82
+ },
83
+ {
84
+ "name": "Upload File",
85
+ "tool": "create_content",
86
+ "arguments": {
87
+ "action": "upload_file",
88
+ "channel_id": "{{channelId}}",
89
+ "files": "test",
90
+ "filename": "test.txt"
91
+ },
92
+ "mocks": [
93
+ {
94
+ "operationId": "UploadFile",
95
+ "response": { "body": { "file_infos": [{ "id": "{{fileId}}" }] } }
96
+ }
97
+ ],
98
+ "expect": { "success": true }
99
+ },
100
+ {
101
+ "name": "Save Reaction",
102
+ "tool": "create_content",
103
+ "arguments": {
104
+ "action": "save_reaction",
105
+ "post_id": "{{postId}}",
106
+ "user_id": "{{userId}}",
107
+ "emoji_name": "{{emojiName}}"
108
+ },
109
+ "mocks": [
110
+ {
111
+ "operationId": "SaveReaction",
112
+ "response": { "body": { "post_id": "{{postId}}", "emoji_name": "{{emojiName}}" } }
113
+ }
114
+ ],
115
+ "expect": { "success": true }
116
+ },
117
+
118
+ {
119
+ "name": "List Users",
120
+ "tool": "retrieve_content",
121
+ "arguments": { "action": "list_users" },
122
+ "mocks": [
123
+ {
124
+ "operationId": "GetUsers",
125
+ "response": { "body": [{ "id": "{{userId}}" }] }
126
+ }
127
+ ],
128
+ "expect": { "success": true }
129
+ },
130
+ {
131
+ "name": "Get User",
132
+ "tool": "retrieve_content",
133
+ "arguments": { "action": "get_user", "user_id": "{{userId}}" },
134
+ "mocks": [
135
+ {
136
+ "operationId": "GetUser",
137
+ "response": { "body": { "id": "{{userId}}" } }
138
+ }
139
+ ],
140
+ "expect": { "success": true }
141
+ },
142
+ {
143
+ "name": "List Teams",
144
+ "tool": "retrieve_content",
145
+ "arguments": { "action": "list_teams" },
146
+ "mocks": [
147
+ {
148
+ "operationId": "GetAllTeams",
149
+ "response": { "body": [{ "id": "{{teamId}}" }] }
150
+ }
151
+ ],
152
+ "expect": { "success": true }
153
+ },
154
+ {
155
+ "name": "Get Team",
156
+ "tool": "retrieve_content",
157
+ "arguments": { "action": "get_team", "team_id": "{{teamId}}" },
158
+ "mocks": [
159
+ {
160
+ "operationId": "GetTeam",
161
+ "response": { "body": { "id": "{{teamId}}" } }
162
+ }
163
+ ],
164
+ "expect": { "success": true }
165
+ },
166
+ {
167
+ "name": "List Channels",
168
+ "tool": "retrieve_content",
169
+ "arguments": { "action": "list_channels" },
170
+ "mocks": [
171
+ {
172
+ "operationId": "GetAllChannels",
173
+ "response": { "body": [{ "id": "{{channelId}}" }] }
174
+ }
175
+ ],
176
+ "expect": { "success": true }
177
+ },
178
+ {
179
+ "name": "Get Channel",
180
+ "tool": "retrieve_content",
181
+ "arguments": { "action": "get_channel", "channel_id": "{{channelId}}" },
182
+ "mocks": [
183
+ {
184
+ "operationId": "GetChannel",
185
+ "response": { "body": { "id": "{{channelId}}" } }
186
+ }
187
+ ],
188
+ "expect": { "success": true }
189
+ },
190
+ {
191
+ "name": "List Posts For Channel",
192
+ "tool": "retrieve_content",
193
+ "arguments": { "action": "list_posts_for_channel", "channel_id": "{{channelId}}" },
194
+ "mocks": [
195
+ {
196
+ "operationId": "GetPostsForChannel",
197
+ "response": { "body": { "order": ["{{postId}}"], "posts": { "{{postId}}": { "id": "{{postId}}" } } } }
198
+ }
199
+ ],
200
+ "expect": { "success": true }
201
+ },
202
+ {
203
+ "name": "Get Post",
204
+ "tool": "retrieve_content",
205
+ "arguments": { "action": "get_post", "post_id": "{{postId}}" },
206
+ "mocks": [
207
+ {
208
+ "operationId": "GetPost",
209
+ "response": { "body": { "id": "{{postId}}" } }
210
+ }
211
+ ],
212
+ "expect": { "success": true }
213
+ },
214
+ {
215
+ "name": "Get Post Thread",
216
+ "tool": "retrieve_content",
217
+ "arguments": { "action": "get_post_thread", "post_id": "{{postId}}" },
218
+ "mocks": [
219
+ {
220
+ "operationId": "GetPostThread",
221
+ "response": { "body": { "order": ["{{postId}}"], "posts": { "{{postId}}": { "id": "{{postId}}" } } } }
222
+ }
223
+ ],
224
+ "expect": { "success": true }
225
+ },
226
+ {
227
+ "name": "Get User Threads",
228
+ "tool": "retrieve_content",
229
+ "arguments": {
230
+ "action": "get_user_threads",
231
+ "user_id": "{{userId}}",
232
+ "team_id": "{{teamId}}"
233
+ },
234
+ "mocks": [
235
+ {
236
+ "operationId": "GetUserThreads",
237
+ "response": { "body": { "threads": [] } }
238
+ }
239
+ ],
240
+ "expect": { "success": true }
241
+ },
242
+ {
243
+ "name": "Get User Thread",
244
+ "tool": "retrieve_content",
245
+ "arguments": {
246
+ "action": "get_user_thread",
247
+ "user_id": "{{userId}}",
248
+ "team_id": "{{teamId}}",
249
+ "thread_id": "{{threadId}}"
250
+ },
251
+ "mocks": [
252
+ {
253
+ "operationId": "GetUserThread",
254
+ "response": { "body": { "id": "{{threadId}}" } }
255
+ }
256
+ ],
257
+ "expect": { "success": true }
258
+ },
259
+ {
260
+ "name": "Get File Infos For Post",
261
+ "tool": "retrieve_content",
262
+ "arguments": { "action": "get_file_infos_for_post", "post_id": "{{postId}}" },
263
+ "mocks": [
264
+ {
265
+ "operationId": "GetFileInfosForPost",
266
+ "response": { "body": [{ "id": "{{fileId}}" }] }
267
+ }
268
+ ],
269
+ "expect": { "success": true }
270
+ },
271
+ {
272
+ "name": "Get File Info",
273
+ "tool": "retrieve_content",
274
+ "arguments": { "action": "get_file_info", "file_id": "{{fileId}}" },
275
+ "mocks": [
276
+ {
277
+ "operationId": "GetFileInfo",
278
+ "response": { "body": { "id": "{{fileId}}" } }
279
+ }
280
+ ],
281
+ "expect": { "success": true }
282
+ },
283
+ {
284
+ "name": "Get File",
285
+ "tool": "retrieve_content",
286
+ "arguments": { "action": "get_file", "file_id": "{{fileId}}" },
287
+ "mocks": [
288
+ {
289
+ "operationId": "GetFile",
290
+ "response": { "body": "file" }
291
+ }
292
+ ],
293
+ "expect": { "success": true }
294
+ },
295
+ {
296
+ "name": "Get File Thumbnail",
297
+ "tool": "retrieve_content",
298
+ "arguments": { "action": "get_file_thumbnail", "file_id": "{{fileId}}" },
299
+ "mocks": [
300
+ {
301
+ "operationId": "GetFileThumbnail",
302
+ "response": { "body": "thumb" }
303
+ }
304
+ ],
305
+ "expect": { "success": true }
306
+ },
307
+ {
308
+ "name": "Get File Preview",
309
+ "tool": "retrieve_content",
310
+ "arguments": { "action": "get_file_preview", "file_id": "{{fileId}}" },
311
+ "mocks": [
312
+ {
313
+ "operationId": "GetFilePreview",
314
+ "response": { "body": "preview" }
315
+ }
316
+ ],
317
+ "expect": { "success": true }
318
+ },
319
+ {
320
+ "name": "Get File Link",
321
+ "tool": "retrieve_content",
322
+ "arguments": { "action": "get_file_link", "file_id": "{{fileId}}" },
323
+ "mocks": [
324
+ {
325
+ "operationId": "GetFileLink",
326
+ "response": { "body": { "link": "https://example.com/file" } }
327
+ }
328
+ ],
329
+ "expect": { "success": true }
330
+ },
331
+ {
332
+ "name": "Get Reactions",
333
+ "tool": "retrieve_content",
334
+ "arguments": { "action": "get_reactions", "post_id": "{{postId}}" },
335
+ "mocks": [
336
+ {
337
+ "operationId": "GetReactions",
338
+ "response": { "body": [{ "post_id": "{{postId}}", "emoji_name": "{{emojiName}}" }] }
339
+ }
340
+ ],
341
+ "expect": { "success": true }
342
+ },
343
+
344
+ {
345
+ "name": "Update User",
346
+ "tool": "update_content",
347
+ "arguments": {
348
+ "action": "update_user",
349
+ "user_id": "{{userId}}",
350
+ "id": "{{userId}}",
351
+ "username": "user",
352
+ "email": "new@example.com"
353
+ },
354
+ "mocks": [
355
+ {
356
+ "operationId": "UpdateUser",
357
+ "response": { "body": { "id": "{{userId}}", "email": "new@example.com" } }
358
+ }
359
+ ],
360
+ "expect": { "success": true }
361
+ },
362
+ {
363
+ "name": "Patch User",
364
+ "tool": "update_content",
365
+ "arguments": {
366
+ "action": "patch_user",
367
+ "user_id": "{{userId}}",
368
+ "email": "patch@example.com"
369
+ },
370
+ "mocks": [
371
+ {
372
+ "operationId": "PatchUser",
373
+ "response": { "body": { "id": "{{userId}}", "email": "patch@example.com" } }
374
+ }
375
+ ],
376
+ "expect": { "success": true }
377
+ },
378
+ {
379
+ "name": "Update Team",
380
+ "tool": "update_content",
381
+ "arguments": {
382
+ "action": "update_team",
383
+ "team_id": "{{teamId}}",
384
+ "id": "{{teamId}}",
385
+ "display_name": "Team Updated",
386
+ "description": "Updated description",
387
+ "company_name": "Example Co",
388
+ "allowed_domains": "example.com",
389
+ "invite_id": "invite-123",
390
+ "allow_open_invite": "true"
391
+ },
392
+ "mocks": [
393
+ {
394
+ "operationId": "UpdateTeam",
395
+ "response": { "body": { "id": "{{teamId}}", "display_name": "Team Updated" } }
396
+ }
397
+ ],
398
+ "expect": { "success": true }
399
+ },
400
+ {
401
+ "name": "Update Channel",
402
+ "tool": "update_content",
403
+ "arguments": {
404
+ "action": "update_channel",
405
+ "channel_id": "{{channelId}}",
406
+ "id": "{{channelId}}",
407
+ "display_name": "Channel Updated"
408
+ },
409
+ "mocks": [
410
+ {
411
+ "operationId": "UpdateChannel",
412
+ "response": { "body": { "id": "{{channelId}}", "display_name": "Channel Updated" } }
413
+ }
414
+ ],
415
+ "expect": { "success": true }
416
+ },
417
+ {
418
+ "name": "Update Post",
419
+ "tool": "update_content",
420
+ "arguments": {
421
+ "action": "update_post",
422
+ "post_id": "{{postId}}",
423
+ "id": "{{postId}}",
424
+ "message": "Updated"
425
+ },
426
+ "mocks": [
427
+ {
428
+ "operationId": "UpdatePost",
429
+ "response": { "body": { "id": "{{postId}}", "message": "Updated" } }
430
+ }
431
+ ],
432
+ "expect": { "success": true }
433
+ },
434
+ {
435
+ "name": "Update Threads Read",
436
+ "tool": "update_content",
437
+ "arguments": {
438
+ "action": "update_threads_read",
439
+ "user_id": "{{userId}}",
440
+ "team_id": "{{teamId}}"
441
+ },
442
+ "mocks": [
443
+ {
444
+ "operationId": "UpdateThreadsReadForUser",
445
+ "response": { "status": 200, "body": {} }
446
+ }
447
+ ],
448
+ "expect": { "success": true }
449
+ },
450
+ {
451
+ "name": "Update Thread Read",
452
+ "tool": "update_content",
453
+ "arguments": {
454
+ "action": "update_thread_read",
455
+ "user_id": "{{userId}}",
456
+ "team_id": "{{teamId}}",
457
+ "thread_id": "{{threadId}}",
458
+ "timestamp": "{{timestamp}}"
459
+ },
460
+ "mocks": [
461
+ {
462
+ "operationId": "UpdateThreadReadForUser",
463
+ "response": { "status": 200, "body": {} }
464
+ }
465
+ ],
466
+ "expect": { "success": true }
467
+ },
468
+ {
469
+ "name": "Set Thread Unread",
470
+ "tool": "update_content",
471
+ "arguments": {
472
+ "action": "set_thread_unread",
473
+ "user_id": "{{userId}}",
474
+ "team_id": "{{teamId}}",
475
+ "thread_id": "{{threadId}}",
476
+ "post_id": "{{postId}}"
477
+ },
478
+ "mocks": [
479
+ {
480
+ "operationId": "SetThreadUnreadByPostId",
481
+ "response": { "status": 200, "body": {} }
482
+ }
483
+ ],
484
+ "expect": { "success": true }
485
+ },
486
+ {
487
+ "name": "Start Following Thread",
488
+ "tool": "update_content",
489
+ "arguments": {
490
+ "action": "start_following_thread",
491
+ "user_id": "{{userId}}",
492
+ "team_id": "{{teamId}}",
493
+ "thread_id": "{{threadId}}"
494
+ },
495
+ "mocks": [
496
+ {
497
+ "operationId": "StartFollowingThread",
498
+ "response": { "status": 200, "body": {} }
499
+ }
500
+ ],
501
+ "expect": { "success": true }
502
+ },
503
+ {
504
+ "name": "Move Thread",
505
+ "tool": "update_content",
506
+ "arguments": {
507
+ "action": "move_thread",
508
+ "post_id": "{{postId}}",
509
+ "channel_id": "{{channelId}}"
510
+ },
511
+ "mocks": [
512
+ {
513
+ "operationId": "MoveThread",
514
+ "response": { "status": 200, "body": {} }
515
+ }
516
+ ],
517
+ "expect": { "success": true }
518
+ },
519
+
520
+ {
521
+ "name": "Delete User",
522
+ "tool": "delete_content",
523
+ "arguments": { "action": "delete_user", "user_id": "{{userId}}" },
524
+ "mocks": [
525
+ {
526
+ "operationId": "DeleteUser",
527
+ "response": { "status": 200, "body": {} }
528
+ }
529
+ ],
530
+ "expect": { "success": true }
531
+ },
532
+ {
533
+ "name": "Delete Team",
534
+ "tool": "delete_content",
535
+ "arguments": { "action": "delete_team", "team_id": "{{teamId}}" },
536
+ "mocks": [
537
+ {
538
+ "operationId": "SoftDeleteTeam",
539
+ "response": { "status": 200, "body": {} }
540
+ }
541
+ ],
542
+ "expect": { "success": true }
543
+ },
544
+ {
545
+ "name": "Delete Channel",
546
+ "tool": "delete_content",
547
+ "arguments": { "action": "delete_channel", "channel_id": "{{channelId}}" },
548
+ "mocks": [
549
+ {
550
+ "operationId": "DeleteChannel",
551
+ "response": { "status": 200, "body": {} }
552
+ }
553
+ ],
554
+ "expect": { "success": true }
555
+ },
556
+ {
557
+ "name": "Delete Post",
558
+ "tool": "delete_content",
559
+ "arguments": { "action": "delete_post", "post_id": "{{postId}}" },
560
+ "mocks": [
561
+ {
562
+ "operationId": "DeletePost",
563
+ "response": { "status": 200, "body": {} }
564
+ }
565
+ ],
566
+ "expect": { "success": true }
567
+ },
568
+ {
569
+ "name": "Delete Reaction",
570
+ "tool": "delete_content",
571
+ "arguments": {
572
+ "action": "delete_reaction",
573
+ "user_id": "{{userId}}",
574
+ "post_id": "{{postId}}",
575
+ "emoji_name": "{{emojiName}}"
576
+ },
577
+ "mocks": [
578
+ {
579
+ "operationId": "DeleteReaction",
580
+ "response": { "status": 200, "body": {} }
581
+ }
582
+ ],
583
+ "expect": { "success": true }
584
+ },
585
+ {
586
+ "name": "Stop Following Thread",
587
+ "tool": "delete_content",
588
+ "arguments": {
589
+ "action": "stop_following_thread",
590
+ "user_id": "{{userId}}",
591
+ "team_id": "{{teamId}}",
592
+ "thread_id": "{{threadId}}"
593
+ },
594
+ "mocks": [
595
+ {
596
+ "operationId": "StopFollowingThread",
597
+ "response": { "status": 200, "body": {} }
598
+ }
599
+ ],
600
+ "expect": { "success": true }
601
+ }
602
+ ],
603
+ "coverage": {
604
+ "require_all_actions": true,
605
+ "skip_actions": {}
606
+ }
607
+ }