mcp4openapi 0.2.8 → 0.3.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.
Files changed (358) hide show
  1. package/README.md +143 -63
  2. package/dist/scripts/validate-profile.js +3 -3
  3. package/dist/scripts/validate-profile.js.map +1 -1
  4. package/dist/src/argument-normalizer.d.ts +5 -0
  5. package/dist/src/argument-normalizer.d.ts.map +1 -0
  6. package/dist/src/argument-normalizer.js +61 -0
  7. package/dist/src/argument-normalizer.js.map +1 -0
  8. package/dist/src/auth/oauth-provider.d.ts +131 -0
  9. package/dist/src/auth/oauth-provider.d.ts.map +1 -0
  10. package/dist/src/auth/oauth-provider.js +839 -0
  11. package/dist/src/auth/oauth-provider.js.map +1 -0
  12. package/dist/src/cli-config.d.ts +9 -0
  13. package/dist/src/cli-config.d.ts.map +1 -0
  14. package/dist/src/cli-config.js +111 -0
  15. package/dist/src/cli-config.js.map +1 -0
  16. package/dist/src/core/cli-config.d.ts +9 -0
  17. package/dist/src/core/cli-config.d.ts.map +1 -0
  18. package/dist/src/core/cli-config.js +125 -0
  19. package/dist/src/core/cli-config.js.map +1 -0
  20. package/dist/src/core/constants.d.ts +86 -0
  21. package/dist/src/core/constants.d.ts.map +1 -0
  22. package/dist/src/core/constants.js +86 -0
  23. package/dist/src/core/constants.js.map +1 -0
  24. package/dist/src/core/errors.d.ts +59 -0
  25. package/dist/src/core/errors.d.ts.map +1 -0
  26. package/dist/src/core/errors.js +119 -0
  27. package/dist/src/core/errors.js.map +1 -0
  28. package/dist/src/core/filtering.d.ts +19 -0
  29. package/dist/src/core/filtering.d.ts.map +1 -0
  30. package/dist/src/core/filtering.js +292 -0
  31. package/dist/src/core/filtering.js.map +1 -0
  32. package/dist/src/core/index.d.ts +26 -0
  33. package/dist/src/core/index.d.ts.map +1 -0
  34. package/dist/src/core/index.js +276 -0
  35. package/dist/src/core/index.js.map +1 -0
  36. package/dist/src/core/lib.d.ts +8 -0
  37. package/dist/src/core/lib.d.ts.map +1 -0
  38. package/dist/src/core/lib.js +7 -0
  39. package/dist/src/core/lib.js.map +1 -0
  40. package/dist/src/core/logger.d.ts +59 -0
  41. package/dist/src/core/logger.d.ts.map +1 -0
  42. package/dist/src/core/logger.js +197 -0
  43. package/dist/src/core/logger.js.map +1 -0
  44. package/dist/src/core/metrics.d.ts +97 -0
  45. package/dist/src/core/metrics.d.ts.map +1 -0
  46. package/dist/src/core/metrics.js +273 -0
  47. package/dist/src/core/metrics.js.map +1 -0
  48. package/dist/src/core/naming-warnings.d.ts +23 -0
  49. package/dist/src/core/naming-warnings.d.ts.map +1 -0
  50. package/dist/src/core/naming-warnings.js +83 -0
  51. package/dist/src/core/naming-warnings.js.map +1 -0
  52. package/dist/src/core/naming.d.ts +58 -0
  53. package/dist/src/core/naming.d.ts.map +1 -0
  54. package/dist/src/core/naming.js +510 -0
  55. package/dist/src/core/naming.js.map +1 -0
  56. package/dist/src/errors.d.ts +6 -0
  57. package/dist/src/errors.d.ts.map +1 -1
  58. package/dist/src/errors.js +15 -6
  59. package/dist/src/errors.js.map +1 -1
  60. package/dist/src/filtering.d.ts +19 -0
  61. package/dist/src/filtering.d.ts.map +1 -0
  62. package/dist/src/filtering.js +292 -0
  63. package/dist/src/filtering.js.map +1 -0
  64. package/dist/src/generated-schemas.d.ts +290 -79
  65. package/dist/src/generated-schemas.d.ts.map +1 -1
  66. package/dist/src/generated-schemas.js +17 -2
  67. package/dist/src/generated-schemas.js.map +1 -1
  68. package/dist/src/http-transport-config.d.ts +6 -0
  69. package/dist/src/http-transport-config.d.ts.map +1 -0
  70. package/dist/src/http-transport-config.js +47 -0
  71. package/dist/src/http-transport-config.js.map +1 -0
  72. package/dist/src/http-transport.d.ts +63 -13
  73. package/dist/src/http-transport.d.ts.map +1 -1
  74. package/dist/src/http-transport.js +1045 -482
  75. package/dist/src/http-transport.js.map +1 -1
  76. package/dist/src/index.d.ts +1 -6
  77. package/dist/src/index.d.ts.map +1 -1
  78. package/dist/src/index.js +1 -170
  79. package/dist/src/index.js.map +1 -1
  80. package/dist/src/interceptors.d.ts +1 -0
  81. package/dist/src/interceptors.d.ts.map +1 -1
  82. package/dist/src/interceptors.js +73 -63
  83. package/dist/src/interceptors.js.map +1 -1
  84. package/dist/src/lib.d.ts +1 -7
  85. package/dist/src/lib.d.ts.map +1 -1
  86. package/dist/src/lib.js +1 -6
  87. package/dist/src/lib.js.map +1 -1
  88. package/dist/src/logger.d.ts +5 -0
  89. package/dist/src/logger.d.ts.map +1 -1
  90. package/dist/src/logger.js +9 -1
  91. package/dist/src/logger.js.map +1 -1
  92. package/dist/src/mcp/mcp-server-manager.d.ts +20 -0
  93. package/dist/src/mcp/mcp-server-manager.d.ts.map +1 -0
  94. package/dist/src/mcp/mcp-server-manager.js +38 -0
  95. package/dist/src/mcp/mcp-server-manager.js.map +1 -0
  96. package/dist/src/mcp/mcp-server.d.ts +205 -0
  97. package/dist/src/mcp/mcp-server.d.ts.map +1 -0
  98. package/dist/src/mcp/mcp-server.js +1473 -0
  99. package/dist/src/mcp/mcp-server.js.map +1 -0
  100. package/dist/src/mcp-server-manager.d.ts +20 -0
  101. package/dist/src/mcp-server-manager.d.ts.map +1 -0
  102. package/dist/src/mcp-server-manager.js +38 -0
  103. package/dist/src/mcp-server-manager.js.map +1 -0
  104. package/dist/src/mcp-server.d.ts +28 -0
  105. package/dist/src/mcp-server.d.ts.map +1 -1
  106. package/dist/src/mcp-server.js +406 -109
  107. package/dist/src/mcp-server.js.map +1 -1
  108. package/dist/src/metrics.d.ts +11 -0
  109. package/dist/src/metrics.d.ts.map +1 -1
  110. package/dist/src/metrics.js +61 -0
  111. package/dist/src/metrics.js.map +1 -1
  112. package/dist/src/oauth-provider.d.ts +5 -0
  113. package/dist/src/oauth-provider.d.ts.map +1 -1
  114. package/dist/src/oauth-provider.js +29 -1
  115. package/dist/src/oauth-provider.js.map +1 -1
  116. package/dist/src/openapi/openapi-parser.d.ts +70 -0
  117. package/dist/src/openapi/openapi-parser.d.ts.map +1 -0
  118. package/dist/src/openapi/openapi-parser.js +458 -0
  119. package/dist/src/openapi/openapi-parser.js.map +1 -0
  120. package/dist/src/profile/profile-loader.d.ts +78 -0
  121. package/dist/src/profile/profile-loader.d.ts.map +1 -0
  122. package/dist/src/profile/profile-loader.js +490 -0
  123. package/dist/src/profile/profile-loader.js.map +1 -0
  124. package/dist/src/profile/profile-registry.d.ts +19 -0
  125. package/dist/src/profile/profile-registry.d.ts.map +1 -0
  126. package/dist/src/profile/profile-registry.js +43 -0
  127. package/dist/src/profile/profile-registry.js.map +1 -0
  128. package/dist/src/profile/profile-resolver.d.ts +41 -0
  129. package/dist/src/profile/profile-resolver.d.ts.map +1 -0
  130. package/dist/src/profile/profile-resolver.js +324 -0
  131. package/dist/src/profile/profile-resolver.js.map +1 -0
  132. package/dist/src/profile/startup-profile.d.ts +17 -0
  133. package/dist/src/profile/startup-profile.d.ts.map +1 -0
  134. package/dist/src/profile/startup-profile.js +30 -0
  135. package/dist/src/profile/startup-profile.js.map +1 -0
  136. package/dist/src/profile/startup-validation.d.ts +11 -0
  137. package/dist/src/profile/startup-validation.d.ts.map +1 -0
  138. package/dist/src/profile/startup-validation.js +21 -0
  139. package/dist/src/profile/startup-validation.js.map +1 -0
  140. package/dist/src/profile-loader.d.ts +1 -0
  141. package/dist/src/profile-loader.d.ts.map +1 -1
  142. package/dist/src/profile-loader.js +14 -3
  143. package/dist/src/profile-loader.js.map +1 -1
  144. package/dist/src/profile-registry.d.ts +18 -0
  145. package/dist/src/profile-registry.d.ts.map +1 -0
  146. package/dist/src/profile-registry.js +26 -0
  147. package/dist/src/profile-registry.js.map +1 -0
  148. package/dist/src/profile-resolver.d.ts +19 -0
  149. package/dist/src/profile-resolver.d.ts.map +1 -0
  150. package/dist/src/profile-resolver.js +167 -0
  151. package/dist/src/profile-resolver.js.map +1 -0
  152. package/dist/src/proxy-executor.d.ts.map +1 -1
  153. package/dist/src/proxy-executor.js +7 -0
  154. package/dist/src/proxy-executor.js.map +1 -1
  155. package/dist/src/startup-profile.d.ts +17 -0
  156. package/dist/src/startup-profile.d.ts.map +1 -0
  157. package/dist/src/startup-profile.js +30 -0
  158. package/dist/src/startup-profile.js.map +1 -0
  159. package/dist/src/startup-validation.d.ts +11 -0
  160. package/dist/src/startup-validation.d.ts.map +1 -0
  161. package/dist/src/startup-validation.js +21 -0
  162. package/dist/src/startup-validation.js.map +1 -0
  163. package/dist/src/testing/dynamic-mock-server.d.ts +24 -0
  164. package/dist/src/testing/dynamic-mock-server.d.ts.map +1 -0
  165. package/dist/src/testing/dynamic-mock-server.js +138 -0
  166. package/dist/src/testing/dynamic-mock-server.js.map +1 -0
  167. package/dist/src/testing/request-assertions.d.ts +5 -0
  168. package/dist/src/testing/request-assertions.d.ts.map +1 -0
  169. package/dist/src/testing/request-assertions.js +165 -0
  170. package/dist/src/testing/request-assertions.js.map +1 -0
  171. package/dist/src/testing/template-utils.d.ts +10 -0
  172. package/dist/src/testing/template-utils.d.ts.map +1 -0
  173. package/dist/src/testing/template-utils.js +72 -0
  174. package/dist/src/testing/template-utils.js.map +1 -0
  175. package/dist/src/testing/test-http-utils.d.ts +1 -1
  176. package/dist/src/testing/test-http-utils.d.ts.map +1 -1
  177. package/dist/src/testing/test-http-utils.js +1 -1
  178. package/dist/src/testing/test-http-utils.js.map +1 -1
  179. package/dist/src/testing/test-loader.d.ts +6 -0
  180. package/dist/src/testing/test-loader.d.ts.map +1 -0
  181. package/dist/src/testing/test-loader.js +212 -0
  182. package/dist/src/testing/test-loader.js.map +1 -0
  183. package/dist/src/testing/test-schema.d.ts +1270 -0
  184. package/dist/src/testing/test-schema.d.ts.map +1 -0
  185. package/dist/src/testing/test-schema.js +76 -0
  186. package/dist/src/testing/test-schema.js.map +1 -0
  187. package/dist/src/tool-filter/compat.d.ts +49 -0
  188. package/dist/src/tool-filter/compat.d.ts.map +1 -0
  189. package/dist/src/tool-filter/compat.js +72 -0
  190. package/dist/src/tool-filter/compat.js.map +1 -0
  191. package/dist/src/tool-filter/config/env-config-parser.d.ts +38 -0
  192. package/dist/src/tool-filter/config/env-config-parser.d.ts.map +1 -0
  193. package/dist/src/tool-filter/config/env-config-parser.js +103 -0
  194. package/dist/src/tool-filter/config/env-config-parser.js.map +1 -0
  195. package/dist/src/tool-filter/config/header-config-parser.d.ts +37 -0
  196. package/dist/src/tool-filter/config/header-config-parser.d.ts.map +1 -0
  197. package/dist/src/tool-filter/config/header-config-parser.js +118 -0
  198. package/dist/src/tool-filter/config/header-config-parser.js.map +1 -0
  199. package/dist/src/tool-filter/errors.d.ts +18 -0
  200. package/dist/src/tool-filter/errors.d.ts.map +1 -0
  201. package/dist/src/tool-filter/errors.js +21 -0
  202. package/dist/src/tool-filter/errors.js.map +1 -0
  203. package/dist/src/tool-filter/filter/filter-engine.d.ts +45 -0
  204. package/dist/src/tool-filter/filter/filter-engine.d.ts.map +1 -0
  205. package/dist/src/tool-filter/filter/filter-engine.js +94 -0
  206. package/dist/src/tool-filter/filter/filter-engine.js.map +1 -0
  207. package/dist/src/tool-filter/filter/filter-rules.d.ts +44 -0
  208. package/dist/src/tool-filter/filter/filter-rules.d.ts.map +1 -0
  209. package/dist/src/tool-filter/filter/filter-rules.js +72 -0
  210. package/dist/src/tool-filter/filter/filter-rules.js.map +1 -0
  211. package/dist/src/tool-filter/filter/global-tool-filter.d.ts +40 -0
  212. package/dist/src/tool-filter/filter/global-tool-filter.d.ts.map +1 -0
  213. package/dist/src/tool-filter/filter/global-tool-filter.js +92 -0
  214. package/dist/src/tool-filter/filter/global-tool-filter.js.map +1 -0
  215. package/dist/src/tool-filter/filter/session-tool-filter.d.ts +29 -0
  216. package/dist/src/tool-filter/filter/session-tool-filter.d.ts.map +1 -0
  217. package/dist/src/tool-filter/filter/session-tool-filter.js +69 -0
  218. package/dist/src/tool-filter/filter/session-tool-filter.js.map +1 -0
  219. package/dist/src/tool-filter/index.d.ts +25 -0
  220. package/dist/src/tool-filter/index.d.ts.map +1 -0
  221. package/dist/src/tool-filter/index.js +30 -0
  222. package/dist/src/tool-filter/index.js.map +1 -0
  223. package/dist/src/tool-filter/integration/tool-filter-service.d.ts +44 -0
  224. package/dist/src/tool-filter/integration/tool-filter-service.d.ts.map +1 -0
  225. package/dist/src/tool-filter/integration/tool-filter-service.js +68 -0
  226. package/dist/src/tool-filter/integration/tool-filter-service.js.map +1 -0
  227. package/dist/src/tool-filter/operation/operation-classifier.d.ts +20 -0
  228. package/dist/src/tool-filter/operation/operation-classifier.d.ts.map +1 -0
  229. package/dist/src/tool-filter/operation/operation-classifier.js +26 -0
  230. package/dist/src/tool-filter/operation/operation-classifier.js.map +1 -0
  231. package/dist/src/tool-filter/operation/operation-detector.d.ts +30 -0
  232. package/dist/src/tool-filter/operation/operation-detector.d.ts.map +1 -0
  233. package/dist/src/tool-filter/operation/operation-detector.js +96 -0
  234. package/dist/src/tool-filter/operation/operation-detector.js.map +1 -0
  235. package/dist/src/tool-filter/operation/operation-resolver.d.ts +22 -0
  236. package/dist/src/tool-filter/operation/operation-resolver.d.ts.map +1 -0
  237. package/dist/src/tool-filter/operation/operation-resolver.js +32 -0
  238. package/dist/src/tool-filter/operation/operation-resolver.js.map +1 -0
  239. package/dist/src/tool-filter/regex/regex-compiler.d.ts +22 -0
  240. package/dist/src/tool-filter/regex/regex-compiler.d.ts.map +1 -0
  241. package/dist/src/tool-filter/regex/regex-compiler.js +56 -0
  242. package/dist/src/tool-filter/regex/regex-compiler.js.map +1 -0
  243. package/dist/src/tool-filter/regex/regex-validator.d.ts +24 -0
  244. package/dist/src/tool-filter/regex/regex-validator.d.ts.map +1 -0
  245. package/dist/src/tool-filter/regex/regex-validator.js +58 -0
  246. package/dist/src/tool-filter/regex/regex-validator.js.map +1 -0
  247. package/dist/src/tool-filter/types.d.ts +92 -0
  248. package/dist/src/tool-filter/types.d.ts.map +1 -0
  249. package/dist/src/tool-filter/types.js +5 -0
  250. package/dist/src/tool-filter/types.js.map +1 -0
  251. package/dist/src/tool-filter/utils.d.ts +11 -0
  252. package/dist/src/tool-filter/utils.d.ts.map +1 -0
  253. package/dist/src/tool-filter/utils.js +13 -0
  254. package/dist/src/tool-filter/utils.js.map +1 -0
  255. package/dist/src/tool-filter.d.ts +65 -0
  256. package/dist/src/tool-filter.d.ts.map +1 -0
  257. package/dist/src/tool-filter.js +471 -0
  258. package/dist/src/tool-filter.js.map +1 -0
  259. package/dist/src/tool-generator.d.ts +1 -0
  260. package/dist/src/tool-generator.d.ts.map +1 -1
  261. package/dist/src/tool-generator.js +15 -6
  262. package/dist/src/tool-generator.js.map +1 -1
  263. package/dist/src/tooling/composite-executor.d.ts +77 -0
  264. package/dist/src/tooling/composite-executor.d.ts.map +1 -0
  265. package/dist/src/tooling/composite-executor.js +198 -0
  266. package/dist/src/tooling/composite-executor.js.map +1 -0
  267. package/dist/src/tooling/dag-executor.d.ts +49 -0
  268. package/dist/src/tooling/dag-executor.d.ts.map +1 -0
  269. package/dist/src/tooling/dag-executor.js +138 -0
  270. package/dist/src/tooling/dag-executor.js.map +1 -0
  271. package/dist/src/tooling/proxy-executor.d.ts +86 -0
  272. package/dist/src/tooling/proxy-executor.d.ts.map +1 -0
  273. package/dist/src/tooling/proxy-executor.js +501 -0
  274. package/dist/src/tooling/proxy-executor.js.map +1 -0
  275. package/dist/src/tooling/tool-generator.d.ts +67 -0
  276. package/dist/src/tooling/tool-generator.d.ts.map +1 -0
  277. package/dist/src/tooling/tool-generator.js +222 -0
  278. package/dist/src/tooling/tool-generator.js.map +1 -0
  279. package/dist/src/transport/http-client-factory.d.ts +65 -0
  280. package/dist/src/transport/http-client-factory.d.ts.map +1 -0
  281. package/dist/src/transport/http-client-factory.js +143 -0
  282. package/dist/src/transport/http-client-factory.js.map +1 -0
  283. package/dist/src/transport/http-transport-config.d.ts +6 -0
  284. package/dist/src/transport/http-transport-config.d.ts.map +1 -0
  285. package/dist/src/transport/http-transport-config.js +63 -0
  286. package/dist/src/transport/http-transport-config.js.map +1 -0
  287. package/dist/src/transport/http-transport.d.ts +329 -0
  288. package/dist/src/transport/http-transport.d.ts.map +1 -0
  289. package/dist/src/transport/http-transport.js +2584 -0
  290. package/dist/src/transport/http-transport.js.map +1 -0
  291. package/dist/src/transport/interceptors.d.ts +119 -0
  292. package/dist/src/transport/interceptors.d.ts.map +1 -0
  293. package/dist/src/transport/interceptors.js +413 -0
  294. package/dist/src/transport/interceptors.js.map +1 -0
  295. package/dist/src/transport/profile-index.d.ts +84 -0
  296. package/dist/src/transport/profile-index.d.ts.map +1 -0
  297. package/dist/src/transport/profile-index.js +405 -0
  298. package/dist/src/transport/profile-index.js.map +1 -0
  299. package/dist/src/types/http-transport.d.ts +26 -0
  300. package/dist/src/types/http-transport.d.ts.map +1 -1
  301. package/dist/src/types/openapi.d.ts +3 -0
  302. package/dist/src/types/openapi.d.ts.map +1 -1
  303. package/dist/src/types/profile.d.ts +16 -1
  304. package/dist/src/types/profile.d.ts.map +1 -1
  305. package/dist/src/validation/argument-normalizer.d.ts +6 -0
  306. package/dist/src/validation/argument-normalizer.d.ts.map +1 -0
  307. package/dist/src/validation/argument-normalizer.js +70 -0
  308. package/dist/src/validation/argument-normalizer.js.map +1 -0
  309. package/dist/src/validation/jsonrpc-validator.d.ts +27 -0
  310. package/dist/src/validation/jsonrpc-validator.d.ts.map +1 -0
  311. package/dist/src/validation/jsonrpc-validator.js +58 -0
  312. package/dist/src/validation/jsonrpc-validator.js.map +1 -0
  313. package/dist/src/validation/schema-validator.d.ts +30 -0
  314. package/dist/src/validation/schema-validator.d.ts.map +1 -0
  315. package/dist/src/validation/schema-validator.js +128 -0
  316. package/dist/src/validation/schema-validator.js.map +1 -0
  317. package/dist/src/validation/validation-utils.d.ts +49 -0
  318. package/dist/src/validation/validation-utils.d.ts.map +1 -0
  319. package/dist/src/validation/validation-utils.js +139 -0
  320. package/dist/src/validation/validation-utils.js.map +1 -0
  321. package/html/profile-index.html +386 -0
  322. package/package.json +10 -3
  323. package/profile-schema.json +77 -3
  324. package/profiles/gitlab/developer-profile-oauth.json +1520 -0
  325. package/profiles/gitlab/developer-profile-oauth.test.json +3432 -0
  326. package/profiles/gitlab/developer-profile.json +1508 -0
  327. package/profiles/gitlab/developer-profile.test.json +3432 -0
  328. package/profiles/gitlab/openapi.yaml +6891 -0
  329. package/profiles/n8n/openapi.yaml +2441 -0
  330. package/profiles/n8n/profile-optimized.json +965 -0
  331. package/profiles/n8n/profile-optimized.test.json +1078 -0
  332. package/profiles/n8n/profile.json +1033 -0
  333. package/profiles/n8n/profile.test.json +983 -0
  334. package/profiles/n8n-nodes/openapi.yaml +24 -0
  335. package/profiles/n8n-nodes/profile-nodes.json +44 -0
  336. package/profiles/n8n-nodes/profile-nodes.test.json +91 -0
  337. package/profiles/semgrep/openapi.yaml +4706 -0
  338. package/profiles/semgrep/profile.json +692 -0
  339. package/profiles/semgrep/profile.test.json +471 -0
  340. package/profiles/youtrack/openapi.json +16976 -0
  341. package/profiles/youtrack/profile.json +608 -0
  342. package/profiles/youtrack/profile.test.json +1926 -0
  343. package/dist/src/testing/fixtures.d.ts +0 -684
  344. package/dist/src/testing/fixtures.d.ts.map +0 -1
  345. package/dist/src/testing/fixtures.js +0 -528
  346. package/dist/src/testing/fixtures.js.map +0 -1
  347. package/dist/src/testing/mock-gitlab-server.d.ts +0 -43
  348. package/dist/src/testing/mock-gitlab-server.d.ts.map +0 -1
  349. package/dist/src/testing/mock-gitlab-server.js +0 -1026
  350. package/dist/src/testing/mock-gitlab-server.js.map +0 -1
  351. package/dist/src/testing/mock-semgrep-server.d.ts +0 -32
  352. package/dist/src/testing/mock-semgrep-server.d.ts.map +0 -1
  353. package/dist/src/testing/mock-semgrep-server.js +0 -213
  354. package/dist/src/testing/mock-semgrep-server.js.map +0 -1
  355. package/dist/src/testing/mock-youtrack-server.d.ts +0 -11
  356. package/dist/src/testing/mock-youtrack-server.d.ts.map +0 -1
  357. package/dist/src/testing/mock-youtrack-server.js +0 -152
  358. package/dist/src/testing/mock-youtrack-server.js.map +0 -1
@@ -0,0 +1,1926 @@
1
+ {
2
+ "$schema": "../../src/testing/test-schema.ts",
3
+ "profile_name": "youtrack-optimized",
4
+ "scenarios": [
5
+ {
6
+ "name": "Get Issue",
7
+ "tool": "retrieve_content",
8
+ "arguments": {
9
+ "action": "get_issue",
10
+ "id": "ISSUE-123"
11
+ },
12
+ "mocks": [
13
+ {
14
+ "operationId": "get_/issues/{id}",
15
+ "response": {
16
+ "body": {
17
+ "id": "ISSUE-123",
18
+ "summary": "Test Issue",
19
+ "comments": [
20
+ {
21
+ "text": "Test Comment",
22
+ "author": {
23
+ "login": "user1"
24
+ }
25
+ }
26
+ ]
27
+ }
28
+ }
29
+ }
30
+ ],
31
+ "expect": {
32
+ "success": true,
33
+ "result": {
34
+ "id": "ISSUE-123",
35
+ "comments": [
36
+ {
37
+ "text": "Test Comment"
38
+ }
39
+ ]
40
+ }
41
+ }
42
+ },
43
+ {
44
+ "name": "Get Issue - Missing Id",
45
+ "tool": "retrieve_content",
46
+ "arguments": {
47
+ "action": "get_issue"
48
+ },
49
+ "mocks": [],
50
+ "expect": {
51
+ "success": false,
52
+ "error_message_regex": "id"
53
+ }
54
+ },
55
+ {
56
+ "name": "List Issue Comments",
57
+ "tool": "retrieve_content",
58
+ "arguments": {
59
+ "action": "list_issue_comments",
60
+ "id": "ISSUE-123"
61
+ },
62
+ "mocks": [
63
+ {
64
+ "operationId": "get_/issues/{id}/comments",
65
+ "response": {
66
+ "body": [
67
+ {
68
+ "text": "Comment 1"
69
+ }
70
+ ]
71
+ }
72
+ }
73
+ ],
74
+ "expect": {
75
+ "success": true,
76
+ "result": [
77
+ {
78
+ "text": "Comment 1"
79
+ }
80
+ ]
81
+ }
82
+ },
83
+ {
84
+ "name": "List Issue Comments - Response Fields",
85
+ "tool": "retrieve_content",
86
+ "arguments": {
87
+ "action": "list_issue_comments",
88
+ "id": "ISSUE-123"
89
+ },
90
+ "mocks": [
91
+ {
92
+ "operationId": "get_/issues/{id}/comments",
93
+ "response": {
94
+ "body": [
95
+ {
96
+ "id": "c1",
97
+ "text": "Comment 1",
98
+ "author": {
99
+ "login": "user1",
100
+ "email": "hidden@example.com"
101
+ },
102
+ "created": "2024-01-01",
103
+ "attachments": [
104
+ {
105
+ "id": "a1",
106
+ "name": "file",
107
+ "url": "https://mock-api-youtrack-optimized.com/file",
108
+ "token": "secret"
109
+ }
110
+ ],
111
+ "internal": true
112
+ }
113
+ ]
114
+ }
115
+ }
116
+ ],
117
+ "expect": {
118
+ "success": true,
119
+ "result_exact": [
120
+ {
121
+ "id": "c1",
122
+ "text": "Comment 1",
123
+ "author": {
124
+ "login": "user1"
125
+ },
126
+ "created": "2024-01-01",
127
+ "attachments": [
128
+ {
129
+ "id": "a1",
130
+ "name": "file",
131
+ "url": "https://mock-api-youtrack-optimized.com/file"
132
+ }
133
+ ]
134
+ }
135
+ ],
136
+ "request": {
137
+ "method": "GET",
138
+ "path": "/issues/ISSUE-123/comments",
139
+ "origin": "https://mock-api-youtrack-optimized.com",
140
+ "headers": {
141
+ "authorization": "Bearer test-token"
142
+ },
143
+ "query": {
144
+ "fields": "id,text,author(login),created,attachments(id,name,url)"
145
+ }
146
+ }
147
+ }
148
+ },
149
+ {
150
+ "name": "Get Project",
151
+ "tool": "retrieve_content",
152
+ "arguments": {
153
+ "action": "get_project",
154
+ "id": "PROJ"
155
+ },
156
+ "mocks": [
157
+ {
158
+ "operationId": "get_/admin/projects/{id}",
159
+ "response": {
160
+ "body": {
161
+ "id": "PROJ",
162
+ "name": "Project",
163
+ "customFields": [
164
+ {
165
+ "field": {
166
+ "name": "Priority"
167
+ }
168
+ }
169
+ ]
170
+ }
171
+ }
172
+ }
173
+ ],
174
+ "expect": {
175
+ "success": true,
176
+ "result": {
177
+ "id": "PROJ",
178
+ "customFields": [
179
+ {
180
+ "field": {
181
+ "name": "Priority"
182
+ }
183
+ }
184
+ ]
185
+ }
186
+ }
187
+ },
188
+ {
189
+ "name": "Download Issue Attachment - Skip Auth",
190
+ "tool": "retrieve_content",
191
+ "arguments": {
192
+ "action": "download_issue_attachment",
193
+ "id": "ISSUE-123",
194
+ "issueAttachmentId": "att-1"
195
+ },
196
+ "mocks": [
197
+ {
198
+ "operationId": "get_/issues/{id}/attachments/{issueAttachmentId}",
199
+ "response": {
200
+ "body": {
201
+ "id": "att-1",
202
+ "name": "log.txt",
203
+ "mimeType": "text/plain",
204
+ "size": 5,
205
+ "url": "https://mock-api-youtrack-optimized.com/attachments/log.txt"
206
+ }
207
+ }
208
+ },
209
+ {
210
+ "path": "/attachments/log.txt",
211
+ "method": "GET",
212
+ "response": {
213
+ "body": "hello",
214
+ "headers": {
215
+ "content-type": "text/plain"
216
+ }
217
+ }
218
+ }
219
+ ],
220
+ "expect": {
221
+ "success": true,
222
+ "result": {
223
+ "fileName": "log.txt",
224
+ "content": "aGVsbG8="
225
+ },
226
+ "requests": [
227
+ {
228
+ "method": "GET",
229
+ "path": "/issues/ISSUE-123/attachments/att-1",
230
+ "origin": "https://mock-api-youtrack-optimized.com",
231
+ "headers": {
232
+ "authorization": "Bearer test-token"
233
+ }
234
+ },
235
+ {
236
+ "method": "GET",
237
+ "path": "/attachments/log.txt",
238
+ "origin": "https://mock-api-youtrack-optimized.com",
239
+ "headers_absent": [
240
+ "authorization"
241
+ ]
242
+ }
243
+ ],
244
+ "allow_additional_requests": false
245
+ }
246
+ },
247
+ {
248
+ "name": "Download Article Attachment - Skip Auth",
249
+ "tool": "retrieve_content",
250
+ "arguments": {
251
+ "action": "download_article_attachment",
252
+ "id": "ARTICLE-1",
253
+ "articleAttachmentId": "aa-1"
254
+ },
255
+ "mocks": [
256
+ {
257
+ "operationId": "get_/articles/{id}/attachments/{articleAttachmentId}",
258
+ "response": {
259
+ "body": {
260
+ "id": "aa-1",
261
+ "name": "article.txt",
262
+ "mimeType": "text/plain",
263
+ "size": 7,
264
+ "url": "https://mock-api-youtrack-optimized.com/attachments/article.txt"
265
+ }
266
+ }
267
+ },
268
+ {
269
+ "path": "/attachments/article.txt",
270
+ "method": "GET",
271
+ "response": {
272
+ "body": "article",
273
+ "headers": {
274
+ "content-type": "text/plain"
275
+ }
276
+ }
277
+ }
278
+ ],
279
+ "expect": {
280
+ "success": true,
281
+ "result": {
282
+ "fileName": "article.txt",
283
+ "content": "YXJ0aWNsZQ=="
284
+ },
285
+ "requests": [
286
+ {
287
+ "method": "GET",
288
+ "path": "/articles/ARTICLE-1/attachments/aa-1",
289
+ "origin": "https://mock-api-youtrack-optimized.com",
290
+ "headers": {
291
+ "authorization": "Bearer test-token"
292
+ }
293
+ },
294
+ {
295
+ "method": "GET",
296
+ "path": "/attachments/article.txt",
297
+ "origin": "https://mock-api-youtrack-optimized.com",
298
+ "headers_absent": [
299
+ "authorization"
300
+ ]
301
+ }
302
+ ],
303
+ "allow_additional_requests": false
304
+ }
305
+ },
306
+ {
307
+ "name": "Retrieve Content - List Issues",
308
+ "tool": "retrieve_content",
309
+ "arguments": {
310
+ "action": "list_issues"
311
+ },
312
+ "mocks": [
313
+ {
314
+ "operationId": "get_/issues",
315
+ "response": {
316
+ "status": 200,
317
+ "body": [
318
+ {
319
+ "id": "issue-1",
320
+ "idReadable": "PROJ-123",
321
+ "summary": "Test Issue",
322
+ "resolved": false,
323
+ "description": "Should not be in response",
324
+ "customFields": [
325
+ {
326
+ "name": "Priority",
327
+ "value": {
328
+ "name": "High"
329
+ }
330
+ }
331
+ ]
332
+ }
333
+ ]
334
+ }
335
+ }
336
+ ],
337
+ "expect": {
338
+ "success": true,
339
+ "result_exact": [
340
+ {
341
+ "id": "issue-1",
342
+ "idReadable": "PROJ-123",
343
+ "summary": "Test Issue",
344
+ "resolved": false
345
+ }
346
+ ],
347
+ "request": {
348
+ "method": "GET",
349
+ "path": "/issues",
350
+ "origin": "https://mock-api-youtrack-optimized.com",
351
+ "headers": {
352
+ "authorization": "Bearer test-token"
353
+ },
354
+ "query": {
355
+ "fields": "id,idReadable,summary,resolved"
356
+ }
357
+ }
358
+ }
359
+ },
360
+ {
361
+ "name": "Retrieve Content - List Issues Detailed",
362
+ "tool": "retrieve_content",
363
+ "arguments": {
364
+ "action": "list_issues_detailed"
365
+ },
366
+ "mocks": [
367
+ {
368
+ "operationId": "get_/issues",
369
+ "response": {
370
+ "status": 200,
371
+ "body": [
372
+ {
373
+ "id": "issue-1",
374
+ "idReadable": "PROJ-123",
375
+ "summary": "Test Issue",
376
+ "description": "Full description",
377
+ "resolved": false,
378
+ "customFields": [
379
+ {
380
+ "id": "cf-1",
381
+ "name": "Priority",
382
+ "value": {
383
+ "id": "val-1",
384
+ "name": "High"
385
+ }
386
+ }
387
+ ],
388
+ "created": 1704067200000,
389
+ "updated": 1704153600000,
390
+ "reporter": {
391
+ "id": "user-1",
392
+ "login": "testuser"
393
+ },
394
+ "state": {
395
+ "id": "state-1",
396
+ "name": "Open"
397
+ }
398
+ }
399
+ ]
400
+ }
401
+ }
402
+ ],
403
+ "expect": {
404
+ "success": true,
405
+ "result_exact": [
406
+ {
407
+ "id": "issue-1",
408
+ "idReadable": "PROJ-123",
409
+ "summary": "Test Issue",
410
+ "description": "Full description",
411
+ "resolved": false,
412
+ "customFields": [
413
+ {
414
+ "id": "cf-1",
415
+ "name": "Priority",
416
+ "value": {
417
+ "id": "val-1",
418
+ "name": "High"
419
+ }
420
+ }
421
+ ],
422
+ "created": 1704067200000,
423
+ "updated": 1704153600000,
424
+ "reporter": {
425
+ "id": "user-1",
426
+ "login": "testuser"
427
+ }
428
+ }
429
+ ],
430
+ "request": {
431
+ "method": "GET",
432
+ "path": "/issues",
433
+ "origin": "https://mock-api-youtrack-optimized.com",
434
+ "headers": {
435
+ "authorization": "Bearer test-token"
436
+ },
437
+ "query": {
438
+ "fields": "id,idReadable,summary,description,resolved,customFields(id,name,value(id,name)),created,updated,reporter(id,login)"
439
+ }
440
+ }
441
+ }
442
+ },
443
+ {
444
+ "name": "Retrieve Content - Get Issue Comment",
445
+ "tool": "retrieve_content",
446
+ "arguments": {
447
+ "action": "get_issue_comment",
448
+ "id": "ISSUE-123",
449
+ "issueCommentId": "comment-1"
450
+ },
451
+ "mocks": [
452
+ {
453
+ "operationId": "get_/issues/{id}/comments/{issueCommentId}",
454
+ "response": {
455
+ "status": 200,
456
+ "body": {
457
+ "id": "id-1"
458
+ }
459
+ }
460
+ }
461
+ ],
462
+ "expect": {
463
+ "success": true
464
+ }
465
+ },
466
+ {
467
+ "name": "Retrieve Content - List Issue Attachments",
468
+ "tool": "retrieve_content",
469
+ "arguments": {
470
+ "action": "list_issue_attachments",
471
+ "id": "ISSUE-123"
472
+ },
473
+ "mocks": [
474
+ {
475
+ "operationId": "get_/issues/{id}/attachments",
476
+ "response": {
477
+ "status": 200,
478
+ "body": []
479
+ }
480
+ }
481
+ ],
482
+ "expect": {
483
+ "success": true
484
+ }
485
+ },
486
+ {
487
+ "name": "Retrieve Content - Get Issue Attachment",
488
+ "tool": "retrieve_content",
489
+ "arguments": {
490
+ "action": "get_issue_attachment",
491
+ "id": "ISSUE-123",
492
+ "issueAttachmentId": "att-1"
493
+ },
494
+ "mocks": [
495
+ {
496
+ "operationId": "get_/issues/{id}/attachments/{issueAttachmentId}",
497
+ "response": {
498
+ "status": 200,
499
+ "body": {
500
+ "id": "id-1"
501
+ }
502
+ }
503
+ }
504
+ ],
505
+ "expect": {
506
+ "success": true
507
+ }
508
+ },
509
+ {
510
+ "name": "Retrieve Content - List Issue Tags",
511
+ "tool": "retrieve_content",
512
+ "arguments": {
513
+ "action": "list_issue_tags",
514
+ "id": "ISSUE-123"
515
+ },
516
+ "mocks": [
517
+ {
518
+ "operationId": "get_/issues/{id}/tags",
519
+ "response": {
520
+ "status": 200,
521
+ "body": []
522
+ }
523
+ }
524
+ ],
525
+ "expect": {
526
+ "success": true
527
+ }
528
+ },
529
+ {
530
+ "name": "Retrieve Content - List Issue Links",
531
+ "tool": "retrieve_content",
532
+ "arguments": {
533
+ "action": "list_issue_links",
534
+ "id": "ISSUE-123"
535
+ },
536
+ "mocks": [
537
+ {
538
+ "operationId": "get_/issues/{id}/links",
539
+ "response": {
540
+ "status": 200,
541
+ "body": []
542
+ }
543
+ }
544
+ ],
545
+ "expect": {
546
+ "success": true
547
+ }
548
+ },
549
+ {
550
+ "name": "Retrieve Content - Get Issue Link",
551
+ "tool": "retrieve_content",
552
+ "arguments": {
553
+ "action": "get_issue_link",
554
+ "id": "ISSUE-123",
555
+ "issueLinkId": "link-1"
556
+ },
557
+ "mocks": [
558
+ {
559
+ "operationId": "get_/issues/{id}/links/{issueLinkId}",
560
+ "response": {
561
+ "status": 200,
562
+ "body": {
563
+ "id": "id-1"
564
+ }
565
+ }
566
+ }
567
+ ],
568
+ "expect": {
569
+ "success": true
570
+ }
571
+ },
572
+ {
573
+ "name": "Retrieve Content - List Linked Issues",
574
+ "tool": "retrieve_content",
575
+ "arguments": {
576
+ "action": "list_linked_issues",
577
+ "id": "ISSUE-123",
578
+ "issueLinkId": "link-1"
579
+ },
580
+ "mocks": [
581
+ {
582
+ "operationId": "get_/issues/{id}/links/{issueLinkId}/issues",
583
+ "response": {
584
+ "status": 200,
585
+ "body": []
586
+ }
587
+ }
588
+ ],
589
+ "expect": {
590
+ "success": true
591
+ }
592
+ },
593
+ {
594
+ "name": "Retrieve Content - List Projects",
595
+ "tool": "retrieve_content",
596
+ "arguments": {
597
+ "action": "list_projects"
598
+ },
599
+ "mocks": [
600
+ {
601
+ "operationId": "get_/admin/projects",
602
+ "response": {
603
+ "status": 200,
604
+ "body": []
605
+ }
606
+ }
607
+ ],
608
+ "expect": {
609
+ "success": true
610
+ }
611
+ },
612
+ {
613
+ "name": "Retrieve Content - List Project Custom Fields",
614
+ "tool": "retrieve_content",
615
+ "arguments": {
616
+ "action": "list_project_custom_fields",
617
+ "id": "PROJ"
618
+ },
619
+ "mocks": [
620
+ {
621
+ "operationId": "get_/admin/projects/{id}/customFields",
622
+ "response": {
623
+ "status": 200,
624
+ "body": [
625
+ {
626
+ "id": "pcf-1",
627
+ "$type": "EnumProjectCustomField",
628
+ "field": {
629
+ "id": "cf-1",
630
+ "name": "Priority",
631
+ "fieldType": {
632
+ "id": "enum",
633
+ "$type": "EnumFieldType"
634
+ }
635
+ },
636
+ "bundle": {
637
+ "id": "bundle-1",
638
+ "$type": "EnumBundle"
639
+ },
640
+ "defaultValues": [
641
+ {
642
+ "id": "val-1",
643
+ "name": "High",
644
+ "$type": "EnumBundleElement"
645
+ },
646
+ {
647
+ "id": "val-2",
648
+ "name": "Medium",
649
+ "$type": "EnumBundleElement"
650
+ }
651
+ ],
652
+ "canBeEmpty": true,
653
+ "emptyFieldText": "No priority",
654
+ "ordinal": 1,
655
+ "isPublic": true,
656
+ "extraField": "should not be in response"
657
+ }
658
+ ]
659
+ }
660
+ }
661
+ ],
662
+ "expect": {
663
+ "success": true,
664
+ "result_exact": [
665
+ {
666
+ "id": "pcf-1",
667
+ "$type": "EnumProjectCustomField",
668
+ "field": {
669
+ "id": "cf-1",
670
+ "name": "Priority",
671
+ "fieldType": {
672
+ "id": "enum",
673
+ "$type": "EnumFieldType"
674
+ }
675
+ },
676
+ "bundle": {
677
+ "id": "bundle-1",
678
+ "$type": "EnumBundle"
679
+ },
680
+ "defaultValues": [
681
+ {
682
+ "id": "val-1",
683
+ "name": "High",
684
+ "$type": "EnumBundleElement"
685
+ },
686
+ {
687
+ "id": "val-2",
688
+ "name": "Medium",
689
+ "$type": "EnumBundleElement"
690
+ }
691
+ ],
692
+ "canBeEmpty": true,
693
+ "emptyFieldText": "No priority",
694
+ "ordinal": 1,
695
+ "isPublic": true
696
+ }
697
+ ],
698
+ "request": {
699
+ "method": "GET",
700
+ "path": "/admin/projects/PROJ/customFields",
701
+ "origin": "https://mock-api-youtrack-optimized.com",
702
+ "headers": {
703
+ "authorization": "Bearer test-token"
704
+ },
705
+ "query": {
706
+ "fields": "id,$type,field(id,name,fieldType(id,$type)),bundle($type,id),defaultValues($type,id,name),canBeEmpty,emptyFieldText,ordinal,isPublic"
707
+ }
708
+ }
709
+ }
710
+ },
711
+ {
712
+ "name": "Retrieve Content - Get Project Custom Field",
713
+ "tool": "retrieve_content",
714
+ "arguments": {
715
+ "action": "get_project_custom_field",
716
+ "id": "PROJ",
717
+ "projectCustomFieldId": "pcf-1"
718
+ },
719
+ "mocks": [
720
+ {
721
+ "operationId": "get_/admin/projects/{id}/customFields/{projectCustomFieldId}",
722
+ "response": {
723
+ "status": 200,
724
+ "body": {
725
+ "id": "pcf-1",
726
+ "$type": "EnumProjectCustomField",
727
+ "field": {
728
+ "id": "cf-1",
729
+ "name": "Priority",
730
+ "fieldType": {
731
+ "id": "enum",
732
+ "$type": "EnumFieldType"
733
+ }
734
+ },
735
+ "bundle": {
736
+ "id": "bundle-1",
737
+ "$type": "EnumBundle"
738
+ },
739
+ "defaultValues": [
740
+ {
741
+ "id": "val-1",
742
+ "name": "High",
743
+ "$type": "EnumBundleElement"
744
+ },
745
+ {
746
+ "id": "val-2",
747
+ "name": "Medium",
748
+ "$type": "EnumBundleElement"
749
+ },
750
+ {
751
+ "id": "val-3",
752
+ "name": "Low",
753
+ "$type": "EnumBundleElement"
754
+ }
755
+ ],
756
+ "canBeEmpty": false,
757
+ "emptyFieldText": "",
758
+ "ordinal": 1,
759
+ "isPublic": true,
760
+ "extraField": "should not be in response"
761
+ }
762
+ }
763
+ }
764
+ ],
765
+ "expect": {
766
+ "success": true,
767
+ "result_exact": {
768
+ "id": "pcf-1",
769
+ "$type": "EnumProjectCustomField",
770
+ "field": {
771
+ "id": "cf-1",
772
+ "name": "Priority",
773
+ "fieldType": {
774
+ "id": "enum",
775
+ "$type": "EnumFieldType"
776
+ }
777
+ },
778
+ "bundle": {
779
+ "id": "bundle-1",
780
+ "$type": "EnumBundle"
781
+ },
782
+ "defaultValues": [
783
+ {
784
+ "id": "val-1",
785
+ "name": "High",
786
+ "$type": "EnumBundleElement"
787
+ },
788
+ {
789
+ "id": "val-2",
790
+ "name": "Medium",
791
+ "$type": "EnumBundleElement"
792
+ },
793
+ {
794
+ "id": "val-3",
795
+ "name": "Low",
796
+ "$type": "EnumBundleElement"
797
+ }
798
+ ],
799
+ "canBeEmpty": false,
800
+ "emptyFieldText": "",
801
+ "ordinal": 1,
802
+ "isPublic": true
803
+ },
804
+ "request": {
805
+ "method": "GET",
806
+ "path": "/admin/projects/PROJ/customFields/pcf-1",
807
+ "origin": "https://mock-api-youtrack-optimized.com",
808
+ "headers": {
809
+ "authorization": "Bearer test-token"
810
+ },
811
+ "query": {
812
+ "fields": "id,$type,field(id,name,fieldType(id,$type)),bundle($type,id),defaultValues($type,id,name),canBeEmpty,emptyFieldText,ordinal,isPublic"
813
+ }
814
+ }
815
+ }
816
+ },
817
+ {
818
+ "name": "Retrieve Content - List Workitems",
819
+ "tool": "retrieve_content",
820
+ "arguments": {
821
+ "action": "list_workitems"
822
+ },
823
+ "mocks": [
824
+ {
825
+ "operationId": "get_/workItems",
826
+ "response": {
827
+ "status": 200,
828
+ "body": []
829
+ }
830
+ }
831
+ ],
832
+ "expect": {
833
+ "success": true
834
+ }
835
+ },
836
+ {
837
+ "name": "Retrieve Content - List Articles",
838
+ "tool": "retrieve_content",
839
+ "arguments": {
840
+ "action": "list_articles"
841
+ },
842
+ "mocks": [
843
+ {
844
+ "operationId": "get_/articles",
845
+ "response": {
846
+ "status": 200,
847
+ "body": []
848
+ }
849
+ }
850
+ ],
851
+ "expect": {
852
+ "success": true
853
+ }
854
+ },
855
+ {
856
+ "name": "Retrieve Content - Get Article",
857
+ "tool": "retrieve_content",
858
+ "arguments": {
859
+ "action": "get_article",
860
+ "id": "ISSUE-123"
861
+ },
862
+ "mocks": [
863
+ {
864
+ "operationId": "get_/articles/{id}",
865
+ "response": {
866
+ "status": 200,
867
+ "body": {
868
+ "id": "id-1"
869
+ }
870
+ }
871
+ }
872
+ ],
873
+ "expect": {
874
+ "success": true
875
+ }
876
+ },
877
+ {
878
+ "name": "Retrieve Content - List Article Comments",
879
+ "tool": "retrieve_content",
880
+ "arguments": {
881
+ "action": "list_article_comments",
882
+ "id": "ISSUE-123"
883
+ },
884
+ "mocks": [
885
+ {
886
+ "operationId": "get_/articles/{id}/comments",
887
+ "response": {
888
+ "status": 200,
889
+ "body": []
890
+ }
891
+ }
892
+ ],
893
+ "expect": {
894
+ "success": true
895
+ }
896
+ },
897
+ {
898
+ "name": "Retrieve Content - List Article Attachments",
899
+ "tool": "retrieve_content",
900
+ "arguments": {
901
+ "action": "list_article_attachments",
902
+ "id": "ISSUE-123"
903
+ },
904
+ "mocks": [
905
+ {
906
+ "operationId": "get_/articles/{id}/attachments",
907
+ "response": {
908
+ "status": 200,
909
+ "body": []
910
+ }
911
+ }
912
+ ],
913
+ "expect": {
914
+ "success": true
915
+ }
916
+ },
917
+ {
918
+ "name": "Retrieve Content - Get Article Attachment",
919
+ "tool": "retrieve_content",
920
+ "arguments": {
921
+ "action": "get_article_attachment",
922
+ "id": "ISSUE-123",
923
+ "articleAttachmentId": "aa-1"
924
+ },
925
+ "mocks": [
926
+ {
927
+ "operationId": "get_/articles/{id}/attachments/{articleAttachmentId}",
928
+ "response": {
929
+ "status": 200,
930
+ "body": {
931
+ "id": "id-1"
932
+ }
933
+ }
934
+ }
935
+ ],
936
+ "expect": {
937
+ "success": true
938
+ }
939
+ },
940
+ {
941
+ "name": "Retrieve Content - List Tags",
942
+ "tool": "retrieve_content",
943
+ "arguments": {
944
+ "action": "list_tags"
945
+ },
946
+ "mocks": [
947
+ {
948
+ "operationId": "get_/tags",
949
+ "response": {
950
+ "status": 200,
951
+ "body": []
952
+ }
953
+ }
954
+ ],
955
+ "expect": {
956
+ "success": true
957
+ }
958
+ },
959
+ {
960
+ "name": "Retrieve Content - Get Tag",
961
+ "tool": "retrieve_content",
962
+ "arguments": {
963
+ "action": "get_tag",
964
+ "id": "ISSUE-123"
965
+ },
966
+ "mocks": [
967
+ {
968
+ "operationId": "get_/tags/{id}",
969
+ "response": {
970
+ "status": 200,
971
+ "body": {
972
+ "id": "id-1"
973
+ }
974
+ }
975
+ }
976
+ ],
977
+ "expect": {
978
+ "success": true
979
+ }
980
+ },
981
+ {
982
+ "name": "Retrieve Content - List Saved Queries",
983
+ "tool": "retrieve_content",
984
+ "arguments": {
985
+ "action": "list_saved_queries"
986
+ },
987
+ "mocks": [
988
+ {
989
+ "operationId": "get_/savedQueries",
990
+ "response": {
991
+ "status": 200,
992
+ "body": []
993
+ }
994
+ }
995
+ ],
996
+ "expect": {
997
+ "success": true
998
+ }
999
+ },
1000
+ {
1001
+ "name": "Retrieve Content - List Agiles",
1002
+ "tool": "retrieve_content",
1003
+ "arguments": {
1004
+ "action": "list_agiles"
1005
+ },
1006
+ "mocks": [
1007
+ {
1008
+ "operationId": "get_/agiles",
1009
+ "response": {
1010
+ "status": 200,
1011
+ "body": []
1012
+ }
1013
+ }
1014
+ ],
1015
+ "expect": {
1016
+ "success": true
1017
+ }
1018
+ },
1019
+ {
1020
+ "name": "Retrieve Content - Get Agile",
1021
+ "tool": "retrieve_content",
1022
+ "arguments": {
1023
+ "action": "get_agile",
1024
+ "id": "ISSUE-123"
1025
+ },
1026
+ "mocks": [
1027
+ {
1028
+ "operationId": "get_/agiles/{id}",
1029
+ "response": {
1030
+ "status": 200,
1031
+ "body": {
1032
+ "id": "id-1"
1033
+ }
1034
+ }
1035
+ }
1036
+ ],
1037
+ "expect": {
1038
+ "success": true
1039
+ }
1040
+ },
1041
+ {
1042
+ "name": "Retrieve Content - List Sprints",
1043
+ "tool": "retrieve_content",
1044
+ "arguments": {
1045
+ "action": "list_sprints",
1046
+ "id": "ISSUE-123",
1047
+ "agile_id": "test"
1048
+ },
1049
+ "mocks": [
1050
+ {
1051
+ "operationId": "get_/agiles/{id}/sprints",
1052
+ "response": {
1053
+ "status": 200,
1054
+ "body": []
1055
+ }
1056
+ }
1057
+ ],
1058
+ "expect": {
1059
+ "success": true
1060
+ }
1061
+ },
1062
+ {
1063
+ "name": "Retrieve Content - List Users",
1064
+ "tool": "retrieve_content",
1065
+ "arguments": {
1066
+ "action": "list_users"
1067
+ },
1068
+ "mocks": [
1069
+ {
1070
+ "operationId": "get_/users",
1071
+ "response": {
1072
+ "status": 200,
1073
+ "body": []
1074
+ }
1075
+ }
1076
+ ],
1077
+ "expect": {
1078
+ "success": true
1079
+ }
1080
+ },
1081
+ {
1082
+ "name": "Retrieve Content - Get User",
1083
+ "tool": "retrieve_content",
1084
+ "arguments": {
1085
+ "action": "get_user",
1086
+ "id": "ISSUE-123"
1087
+ },
1088
+ "mocks": [
1089
+ {
1090
+ "operationId": "get_/users/{id}",
1091
+ "response": {
1092
+ "status": 200,
1093
+ "body": {
1094
+ "id": "id-1"
1095
+ }
1096
+ }
1097
+ }
1098
+ ],
1099
+ "expect": {
1100
+ "success": true
1101
+ }
1102
+ },
1103
+ {
1104
+ "name": "Retrieve Content - List Groups",
1105
+ "tool": "retrieve_content",
1106
+ "arguments": {
1107
+ "action": "list_groups"
1108
+ },
1109
+ "mocks": [
1110
+ {
1111
+ "operationId": "get_/groups",
1112
+ "response": {
1113
+ "status": 200,
1114
+ "body": []
1115
+ }
1116
+ }
1117
+ ],
1118
+ "expect": {
1119
+ "success": true
1120
+ }
1121
+ },
1122
+ {
1123
+ "name": "Retrieve History - List Activities",
1124
+ "tool": "retrieve_history",
1125
+ "arguments": {
1126
+ "action": "list_activities"
1127
+ },
1128
+ "mocks": [
1129
+ {
1130
+ "operationId": "get_/activities",
1131
+ "response": {
1132
+ "status": 200,
1133
+ "body": []
1134
+ }
1135
+ }
1136
+ ],
1137
+ "expect": {
1138
+ "success": true
1139
+ }
1140
+ },
1141
+ {
1142
+ "name": "Retrieve History - Get Activity",
1143
+ "tool": "retrieve_history",
1144
+ "arguments": {
1145
+ "action": "get_activity",
1146
+ "id": "ISSUE-123"
1147
+ },
1148
+ "mocks": [
1149
+ {
1150
+ "operationId": "get_/activities/{id}",
1151
+ "response": {
1152
+ "status": 200,
1153
+ "body": {
1154
+ "id": "id-1"
1155
+ }
1156
+ }
1157
+ }
1158
+ ],
1159
+ "expect": {
1160
+ "success": true
1161
+ }
1162
+ },
1163
+ {
1164
+ "name": "Retrieve History - List Activities Page",
1165
+ "tool": "retrieve_history",
1166
+ "arguments": {
1167
+ "action": "list_activities_page"
1168
+ },
1169
+ "mocks": [
1170
+ {
1171
+ "operationId": "get_/activitiesPage",
1172
+ "response": {
1173
+ "status": 200,
1174
+ "body": []
1175
+ }
1176
+ }
1177
+ ],
1178
+ "expect": {
1179
+ "success": true
1180
+ }
1181
+ },
1182
+ {
1183
+ "name": "Retrieve History - List Issue Activities",
1184
+ "tool": "retrieve_history",
1185
+ "arguments": {
1186
+ "action": "list_issue_activities",
1187
+ "id": "ISSUE-123"
1188
+ },
1189
+ "mocks": [
1190
+ {
1191
+ "operationId": "get_/issues/{id}/activities",
1192
+ "response": {
1193
+ "status": 200,
1194
+ "body": []
1195
+ }
1196
+ }
1197
+ ],
1198
+ "expect": {
1199
+ "success": true
1200
+ }
1201
+ },
1202
+ {
1203
+ "name": "Create Content - Create Issue",
1204
+ "tool": "create_content",
1205
+ "arguments": {
1206
+ "action": "create_issue",
1207
+ "summary": "Test issue",
1208
+ "project": {
1209
+ "shortName": "PROJ"
1210
+ },
1211
+ "customFields": {
1212
+ "Type": "Task",
1213
+ "Priority": {
1214
+ "name": "Medium"
1215
+ }
1216
+ }
1217
+ },
1218
+ "mocks": [
1219
+ {
1220
+ "operationId": "post_/issues",
1221
+ "response": {
1222
+ "status": 200,
1223
+ "body": {
1224
+ "id": "id-1"
1225
+ }
1226
+ }
1227
+ }
1228
+ ],
1229
+ "expect": {
1230
+ "success": true,
1231
+ "request": {
1232
+ "method": "POST",
1233
+ "path": "/issues",
1234
+ "body_exact": {
1235
+ "summary": "Test issue",
1236
+ "project": {
1237
+ "shortName": "PROJ"
1238
+ },
1239
+ "customFields": [
1240
+ {
1241
+ "name": "Type",
1242
+ "value": {
1243
+ "name": "Task"
1244
+ }
1245
+ },
1246
+ {
1247
+ "name": "Priority",
1248
+ "value": {
1249
+ "name": "Medium"
1250
+ }
1251
+ }
1252
+ ]
1253
+ }
1254
+ }
1255
+ }
1256
+ },
1257
+ {
1258
+ "name": "Create Content - Create Issue Comment",
1259
+ "tool": "create_content",
1260
+ "arguments": {
1261
+ "action": "create_issue_comment",
1262
+ "id": "ISSUE-123",
1263
+ "text": "Test text"
1264
+ },
1265
+ "mocks": [
1266
+ {
1267
+ "operationId": "post_/issues/{id}/comments",
1268
+ "response": {
1269
+ "status": 200,
1270
+ "body": {
1271
+ "id": "id-1"
1272
+ }
1273
+ }
1274
+ }
1275
+ ],
1276
+ "expect": {
1277
+ "success": true,
1278
+ "request": {
1279
+ "method": "POST",
1280
+ "path": "/issues/ISSUE-123/comments",
1281
+ "body_exact": {
1282
+ "text": "Test text"
1283
+ }
1284
+ }
1285
+ }
1286
+ },
1287
+ {
1288
+ "name": "Create Content - Create Article Comment",
1289
+ "tool": "create_content",
1290
+ "arguments": {
1291
+ "action": "create_article_comment",
1292
+ "id": "ISSUE-123",
1293
+ "text": "Test text"
1294
+ },
1295
+ "mocks": [
1296
+ {
1297
+ "operationId": "post_/articles/{id}/comments",
1298
+ "response": {
1299
+ "status": 200,
1300
+ "body": {
1301
+ "id": "id-1"
1302
+ }
1303
+ }
1304
+ }
1305
+ ],
1306
+ "expect": {
1307
+ "success": true
1308
+ }
1309
+ },
1310
+ {
1311
+ "name": "Create Content - Log Time",
1312
+ "tool": "create_content",
1313
+ "arguments": {
1314
+ "action": "log_time",
1315
+ "id": "ISSUE-123",
1316
+ "duration": {
1317
+ "minutes": 60
1318
+ },
1319
+ "date": 1704067200000
1320
+ },
1321
+ "mocks": [
1322
+ {
1323
+ "operationId": "post_/issues/{id}/timeTracking/workItems",
1324
+ "response": {
1325
+ "status": 200,
1326
+ "body": {
1327
+ "id": "id-1"
1328
+ }
1329
+ }
1330
+ }
1331
+ ],
1332
+ "expect": {
1333
+ "success": true
1334
+ }
1335
+ },
1336
+ {
1337
+ "name": "Create Content - Add Issue Tag",
1338
+ "tool": "create_content",
1339
+ "arguments": {
1340
+ "action": "add_issue_tag",
1341
+ "id": "ISSUE-123",
1342
+ "tag": {
1343
+ "id": "tag-1"
1344
+ }
1345
+ },
1346
+ "mocks": [
1347
+ {
1348
+ "operationId": "post_/issues/{id}/tags",
1349
+ "response": {
1350
+ "status": 200,
1351
+ "body": {
1352
+ "id": "id-1"
1353
+ }
1354
+ }
1355
+ }
1356
+ ],
1357
+ "expect": {
1358
+ "success": true
1359
+ }
1360
+ },
1361
+ {
1362
+ "name": "Create Content - Add Article Tag",
1363
+ "tool": "create_content",
1364
+ "arguments": {
1365
+ "action": "add_article_tag",
1366
+ "id": "ISSUE-123",
1367
+ "tag": {
1368
+ "id": "tag-1"
1369
+ }
1370
+ },
1371
+ "mocks": [
1372
+ {
1373
+ "operationId": "post_/articles/{id}/tags",
1374
+ "response": {
1375
+ "status": 200,
1376
+ "body": {
1377
+ "id": "id-1"
1378
+ }
1379
+ }
1380
+ }
1381
+ ],
1382
+ "expect": {
1383
+ "success": true
1384
+ }
1385
+ },
1386
+ {
1387
+ "name": "Create Content - Create Tag",
1388
+ "tool": "create_content",
1389
+ "arguments": {
1390
+ "action": "create_tag",
1391
+ "name": "Test name"
1392
+ },
1393
+ "mocks": [
1394
+ {
1395
+ "operationId": "post_/tags",
1396
+ "response": {
1397
+ "status": 200,
1398
+ "body": {
1399
+ "id": "id-1"
1400
+ }
1401
+ }
1402
+ }
1403
+ ],
1404
+ "expect": {
1405
+ "success": true
1406
+ }
1407
+ },
1408
+ {
1409
+ "name": "Create Content - Add Issue Link",
1410
+ "tool": "create_content",
1411
+ "arguments": {
1412
+ "action": "add_issue_link",
1413
+ "id": "ISSUE-123",
1414
+ "issueLinkId": "link-1",
1415
+ "issues": [
1416
+ "ISSUE-456",
1417
+ "ISSUE-789"
1418
+ ]
1419
+ },
1420
+ "mocks": [
1421
+ {
1422
+ "operationId": "post_/issues/{id}/links/{issueLinkId}/issues",
1423
+ "response": {
1424
+ "status": 200,
1425
+ "body": {
1426
+ "id": "id-1"
1427
+ }
1428
+ }
1429
+ }
1430
+ ],
1431
+ "expect": {
1432
+ "success": true,
1433
+ "request": {
1434
+ "method": "POST",
1435
+ "path": "/issues/ISSUE-123/links/link-1/issues",
1436
+ "body_exact": {
1437
+ "issues": [
1438
+ "ISSUE-456",
1439
+ "ISSUE-789"
1440
+ ]
1441
+ }
1442
+ }
1443
+ }
1444
+ },
1445
+ {
1446
+ "name": "Create Content - Upload Issue Attachment",
1447
+ "tool": "create_content",
1448
+ "arguments": {
1449
+ "action": "upload_issue_attachment",
1450
+ "id": "ISSUE-123",
1451
+ "fileName": "test.txt",
1452
+ "base64Content": "dGVzdA=="
1453
+ },
1454
+ "mocks": [
1455
+ {
1456
+ "operationId": "post_/issues/{id}/attachments",
1457
+ "response": {
1458
+ "status": 200,
1459
+ "body": {
1460
+ "id": "id-1"
1461
+ }
1462
+ }
1463
+ }
1464
+ ],
1465
+ "expect": {
1466
+ "success": true
1467
+ }
1468
+ },
1469
+ {
1470
+ "name": "Create Content - Upload Article Attachment",
1471
+ "tool": "create_content",
1472
+ "arguments": {
1473
+ "action": "upload_article_attachment",
1474
+ "id": "ISSUE-123",
1475
+ "fileName": "test.txt",
1476
+ "base64Content": "dGVzdA=="
1477
+ },
1478
+ "mocks": [
1479
+ {
1480
+ "operationId": "post_/articles/{id}/attachments",
1481
+ "response": {
1482
+ "status": 200,
1483
+ "body": {
1484
+ "id": "id-1"
1485
+ }
1486
+ }
1487
+ }
1488
+ ],
1489
+ "expect": {
1490
+ "success": true
1491
+ }
1492
+ },
1493
+ {
1494
+ "name": "Update Content - Update Issue",
1495
+ "tool": "update_content",
1496
+ "arguments": {
1497
+ "action": "update_issue",
1498
+ "id": "ISSUE-123"
1499
+ },
1500
+ "mocks": [
1501
+ {
1502
+ "operationId": "post_/issues/{id}",
1503
+ "response": {
1504
+ "status": 200,
1505
+ "body": {
1506
+ "id": "id-1"
1507
+ }
1508
+ }
1509
+ }
1510
+ ],
1511
+ "expect": {
1512
+ "success": true
1513
+ }
1514
+ },
1515
+ {
1516
+ "name": "Update Content - Update Issue Comment",
1517
+ "tool": "update_content",
1518
+ "arguments": {
1519
+ "action": "update_issue_comment",
1520
+ "id": "ISSUE-123",
1521
+ "issueCommentId": "comment-1",
1522
+ "text": "Test text"
1523
+ },
1524
+ "mocks": [
1525
+ {
1526
+ "operationId": "post_/issues/{id}/comments/{issueCommentId}",
1527
+ "response": {
1528
+ "status": 200,
1529
+ "body": {
1530
+ "id": "id-1"
1531
+ }
1532
+ }
1533
+ }
1534
+ ],
1535
+ "expect": {
1536
+ "success": true
1537
+ }
1538
+ },
1539
+ {
1540
+ "name": "Update Content - Update Article Comment",
1541
+ "tool": "update_content",
1542
+ "arguments": {
1543
+ "action": "update_article_comment",
1544
+ "id": "ISSUE-123",
1545
+ "articleCommentId": "ac-1",
1546
+ "text": "Test text"
1547
+ },
1548
+ "mocks": [
1549
+ {
1550
+ "operationId": "post_/articles/{id}/comments/{articleCommentId}",
1551
+ "response": {
1552
+ "status": 200,
1553
+ "body": {
1554
+ "id": "id-1"
1555
+ }
1556
+ }
1557
+ }
1558
+ ],
1559
+ "expect": {
1560
+ "success": true
1561
+ }
1562
+ },
1563
+ {
1564
+ "name": "Update Content - Update Work Item",
1565
+ "tool": "update_content",
1566
+ "arguments": {
1567
+ "action": "update_work_item",
1568
+ "id": "ISSUE-123",
1569
+ "issueWorkItemId": "work-1",
1570
+ "duration": {
1571
+ "minutes": 60
1572
+ }
1573
+ },
1574
+ "mocks": [
1575
+ {
1576
+ "operationId": "post_/issues/{id}/timeTracking/workItems/{issueWorkItemId}",
1577
+ "response": {
1578
+ "status": 200,
1579
+ "body": {
1580
+ "id": "id-1"
1581
+ }
1582
+ }
1583
+ }
1584
+ ],
1585
+ "expect": {
1586
+ "success": true
1587
+ }
1588
+ },
1589
+ {
1590
+ "name": "Update Content - Update Issue Attachment",
1591
+ "tool": "update_content",
1592
+ "arguments": {
1593
+ "action": "update_issue_attachment",
1594
+ "id": "ISSUE-123",
1595
+ "issueAttachmentId": "att-1",
1596
+ "name": "Test name"
1597
+ },
1598
+ "mocks": [
1599
+ {
1600
+ "operationId": "post_/issues/{id}/attachments/{issueAttachmentId}",
1601
+ "response": {
1602
+ "status": 200,
1603
+ "body": {
1604
+ "id": "id-1"
1605
+ }
1606
+ }
1607
+ }
1608
+ ],
1609
+ "expect": {
1610
+ "success": true
1611
+ }
1612
+ },
1613
+ {
1614
+ "name": "Update Content - Update Tag",
1615
+ "tool": "update_content",
1616
+ "arguments": {
1617
+ "action": "update_tag",
1618
+ "id": "ISSUE-123",
1619
+ "name": "Test name"
1620
+ },
1621
+ "mocks": [
1622
+ {
1623
+ "operationId": "post_/tags/{id}",
1624
+ "response": {
1625
+ "status": 200,
1626
+ "body": {
1627
+ "id": "id-1"
1628
+ }
1629
+ }
1630
+ }
1631
+ ],
1632
+ "expect": {
1633
+ "success": true
1634
+ }
1635
+ },
1636
+ {
1637
+ "name": "Delete Content - Delete Issue",
1638
+ "tool": "delete_content",
1639
+ "arguments": {
1640
+ "action": "delete_issue",
1641
+ "id": "ISSUE-123"
1642
+ },
1643
+ "mocks": [
1644
+ {
1645
+ "operationId": "delete_/issues/{id}",
1646
+ "response": {
1647
+ "status": 204
1648
+ }
1649
+ }
1650
+ ],
1651
+ "expect": {
1652
+ "success": true
1653
+ }
1654
+ },
1655
+ {
1656
+ "name": "Delete Content - Delete Issue Comment",
1657
+ "tool": "delete_content",
1658
+ "arguments": {
1659
+ "action": "delete_issue_comment",
1660
+ "id": "ISSUE-123",
1661
+ "issueCommentId": "comment-1"
1662
+ },
1663
+ "mocks": [
1664
+ {
1665
+ "operationId": "delete_/issues/{id}/comments/{issueCommentId}",
1666
+ "response": {
1667
+ "status": 204
1668
+ }
1669
+ }
1670
+ ],
1671
+ "expect": {
1672
+ "success": true
1673
+ }
1674
+ },
1675
+ {
1676
+ "name": "Delete Content - Delete Article Comment",
1677
+ "tool": "delete_content",
1678
+ "arguments": {
1679
+ "action": "delete_article_comment",
1680
+ "id": "ISSUE-123",
1681
+ "articleCommentId": "ac-1"
1682
+ },
1683
+ "mocks": [
1684
+ {
1685
+ "operationId": "delete_/articles/{id}/comments/{articleCommentId}",
1686
+ "response": {
1687
+ "status": 204
1688
+ }
1689
+ }
1690
+ ],
1691
+ "expect": {
1692
+ "success": true
1693
+ }
1694
+ },
1695
+ {
1696
+ "name": "Delete Content - Delete Work Item",
1697
+ "tool": "delete_content",
1698
+ "arguments": {
1699
+ "action": "delete_work_item",
1700
+ "id": "ISSUE-123",
1701
+ "issueWorkItemId": "work-1"
1702
+ },
1703
+ "mocks": [
1704
+ {
1705
+ "operationId": "delete_/issues/{id}/timeTracking/workItems/{issueWorkItemId}",
1706
+ "response": {
1707
+ "status": 204
1708
+ }
1709
+ }
1710
+ ],
1711
+ "expect": {
1712
+ "success": true
1713
+ }
1714
+ },
1715
+ {
1716
+ "name": "Delete Content - Delete Issue Attachment",
1717
+ "tool": "delete_content",
1718
+ "arguments": {
1719
+ "action": "delete_issue_attachment",
1720
+ "id": "ISSUE-123",
1721
+ "issueAttachmentId": "att-1"
1722
+ },
1723
+ "mocks": [
1724
+ {
1725
+ "operationId": "delete_/issues/{id}/attachments/{issueAttachmentId}",
1726
+ "response": {
1727
+ "status": 204
1728
+ }
1729
+ }
1730
+ ],
1731
+ "expect": {
1732
+ "success": true
1733
+ }
1734
+ },
1735
+ {
1736
+ "name": "Delete Content - Delete Article Attachment",
1737
+ "tool": "delete_content",
1738
+ "arguments": {
1739
+ "action": "delete_article_attachment",
1740
+ "id": "ISSUE-123",
1741
+ "articleAttachmentId": "aa-1"
1742
+ },
1743
+ "mocks": [
1744
+ {
1745
+ "operationId": "delete_/articles/{id}/attachments/{articleAttachmentId}",
1746
+ "response": {
1747
+ "status": 204
1748
+ }
1749
+ }
1750
+ ],
1751
+ "expect": {
1752
+ "success": true
1753
+ }
1754
+ },
1755
+ {
1756
+ "name": "Delete Content - Remove Issue Tag",
1757
+ "tool": "delete_content",
1758
+ "arguments": {
1759
+ "action": "remove_issue_tag",
1760
+ "id": "ISSUE-123",
1761
+ "tagId": "tag-1"
1762
+ },
1763
+ "mocks": [
1764
+ {
1765
+ "operationId": "delete_/issues/{id}/tags/{tagId}",
1766
+ "response": {
1767
+ "status": 204
1768
+ }
1769
+ }
1770
+ ],
1771
+ "expect": {
1772
+ "success": true
1773
+ }
1774
+ },
1775
+ {
1776
+ "name": "Delete Content - Remove Article Tag",
1777
+ "tool": "delete_content",
1778
+ "arguments": {
1779
+ "action": "remove_article_tag",
1780
+ "id": "ISSUE-123",
1781
+ "tagId": "tag-1"
1782
+ },
1783
+ "mocks": [
1784
+ {
1785
+ "operationId": "delete_/articles/{id}/tags/{tagId}",
1786
+ "response": {
1787
+ "status": 204
1788
+ }
1789
+ }
1790
+ ],
1791
+ "expect": {
1792
+ "success": true
1793
+ }
1794
+ },
1795
+ {
1796
+ "name": "Delete Content - Delete Tag",
1797
+ "tool": "delete_content",
1798
+ "arguments": {
1799
+ "action": "delete_tag",
1800
+ "id": "ISSUE-123",
1801
+ "tagId": "tag-1"
1802
+ },
1803
+ "mocks": [
1804
+ {
1805
+ "operationId": "delete_/tags/{id}",
1806
+ "response": {
1807
+ "status": 204
1808
+ }
1809
+ }
1810
+ ],
1811
+ "expect": {
1812
+ "success": true
1813
+ }
1814
+ },
1815
+ {
1816
+ "name": "Delete Content - Remove Issue Link",
1817
+ "tool": "delete_content",
1818
+ "arguments": {
1819
+ "action": "remove_issue_link",
1820
+ "id": "ISSUE-123",
1821
+ "issueLinkId": "link-1",
1822
+ "issueId": "ISSUE-456"
1823
+ },
1824
+ "mocks": [
1825
+ {
1826
+ "operationId": "delete_/issues/{id}/links/{issueLinkId}/issues/{issueId}",
1827
+ "response": {
1828
+ "status": 204
1829
+ }
1830
+ }
1831
+ ],
1832
+ "expect": {
1833
+ "success": true
1834
+ }
1835
+ },
1836
+ {
1837
+ "name": "Run Commands - Execute Command",
1838
+ "tool": "run_commands",
1839
+ "arguments": {
1840
+ "action": "execute_command",
1841
+ "query": "project: PROJ",
1842
+ "command": "state: Open"
1843
+ },
1844
+ "mocks": [
1845
+ {
1846
+ "operationId": "post_/commands",
1847
+ "response": {
1848
+ "status": 200,
1849
+ "body": {
1850
+ "id": "id-1"
1851
+ }
1852
+ }
1853
+ }
1854
+ ],
1855
+ "expect": {
1856
+ "success": true
1857
+ }
1858
+ },
1859
+ {
1860
+ "name": "Run Commands - Execute Command With Issues",
1861
+ "tool": "run_commands",
1862
+ "arguments": {
1863
+ "action": "execute_command",
1864
+ "query": "project: PROJ",
1865
+ "command": "state: Open",
1866
+ "issues": ["ISSUE-123", "ISSUE-456"]
1867
+ },
1868
+ "mocks": [
1869
+ {
1870
+ "operationId": "post_/commands",
1871
+ "response": {
1872
+ "status": 200,
1873
+ "body": {
1874
+ "id": "id-1"
1875
+ }
1876
+ }
1877
+ }
1878
+ ],
1879
+ "expect": {
1880
+ "success": true,
1881
+ "request": {
1882
+ "method": "POST",
1883
+ "path": "/commands",
1884
+ "body_exact": {
1885
+ "query": "project: PROJ",
1886
+ "command": "state: Open",
1887
+ "issues": [
1888
+ {
1889
+ "id": "ISSUE-123"
1890
+ },
1891
+ {
1892
+ "id": "ISSUE-456"
1893
+ }
1894
+ ]
1895
+ }
1896
+ }
1897
+ }
1898
+ },
1899
+ {
1900
+ "name": "Run Commands - Assist Command",
1901
+ "tool": "run_commands",
1902
+ "arguments": {
1903
+ "action": "assist_command",
1904
+ "text": "Test text"
1905
+ },
1906
+ "mocks": [
1907
+ {
1908
+ "operationId": "post_/commands/assist",
1909
+ "response": {
1910
+ "status": 200,
1911
+ "body": {
1912
+ "id": "id-1"
1913
+ }
1914
+ }
1915
+ }
1916
+ ],
1917
+ "expect": {
1918
+ "success": true
1919
+ }
1920
+ }
1921
+ ],
1922
+ "coverage": {
1923
+ "require_all_actions": true,
1924
+ "skip_actions": {}
1925
+ }
1926
+ }