testeiya 0.2.1 → 0.3.9

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 (414) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +41 -213
  3. package/dist/prompt/context.js +79 -0
  4. package/dist/prompt/context.js.map +1 -0
  5. package/dist/prompt/index.js +56 -0
  6. package/dist/prompt/index.js.map +1 -0
  7. package/dist/prompt/print.js +22 -0
  8. package/dist/prompt/print.js.map +1 -0
  9. package/dist/prompt/project-info.js +2 -0
  10. package/dist/prompt/project-info.js.map +1 -0
  11. package/{src/prompt/system-prompt.ts → dist/prompt/system-prompt.js} +24 -21
  12. package/dist/prompt/system-prompt.js.map +1 -0
  13. package/dist/prompt/testomatio.js +264 -0
  14. package/dist/prompt/testomatio.js.map +1 -0
  15. package/dist/prompt/tools.js +49 -0
  16. package/dist/prompt/tools.js.map +1 -0
  17. package/dist/prompt/vocab.js +8 -0
  18. package/dist/prompt/vocab.js.map +1 -0
  19. package/dist/src/args.js +72 -0
  20. package/dist/src/args.js.map +1 -0
  21. package/dist/src/cli.js +61 -0
  22. package/dist/src/cli.js.map +1 -0
  23. package/dist/src/env.js +69 -0
  24. package/dist/src/env.js.map +1 -0
  25. package/dist/src/mcp-extension.js +9 -0
  26. package/dist/src/mcp-extension.js.map +1 -0
  27. package/dist/src/mcp.js +139 -0
  28. package/dist/src/mcp.js.map +1 -0
  29. package/dist/src/model.js +66 -0
  30. package/dist/src/model.js.map +1 -0
  31. package/dist/src/result.js +41 -0
  32. package/dist/src/result.js.map +1 -0
  33. package/dist/src/run.js +199 -0
  34. package/dist/src/run.js.map +1 -0
  35. package/dist/src/session.js +77 -0
  36. package/dist/src/session.js.map +1 -0
  37. package/dist/vendor/mcp.js +14801 -0
  38. package/mcp-tools.json +2967 -0
  39. package/package.json +29 -42
  40. package/prompt/context.ts +101 -0
  41. package/prompt/index.ts +93 -0
  42. package/prompt/print.ts +23 -0
  43. package/prompt/project-info.ts +30 -0
  44. package/prompt/system-prompt.ts +173 -0
  45. package/{src/prompt → prompt}/testomatio.ts +119 -8
  46. package/{src/prompt → prompt}/tools.ts +30 -8
  47. package/prompt/vocab.ts +7 -0
  48. package/{skills.lock.json → skills/skills.lock.json} +11 -7
  49. package/skills/skills.yaml +34 -0
  50. package/assets/testeiya-logo-dark.svg +0 -16
  51. package/assets/testeiya-logo.svg +0 -15
  52. package/models.catalog.json +0 -6963
  53. package/skills/codeceptjs/ci-fix-tests/SKILL.md +0 -120
  54. package/skills/codeceptjs/codeceptjs-auth/SKILL.md +0 -158
  55. package/skills/codeceptjs/codeceptjs-exploration/SKILL.md +0 -91
  56. package/skills/codeceptjs/codeceptjs-fundamentals/SKILL.md +0 -158
  57. package/skills/codeceptjs/codeceptjs-run-analysis/SKILL.md +0 -90
  58. package/skills/codeceptjs/debugging-codeceptjs-tests/SKILL.md +0 -234
  59. package/skills/codeceptjs/migrate-codeceptjs-4/SKILL.md +0 -110
  60. package/skills/codeceptjs/migrate-cypress-to-codeceptjs/SKILL.md +0 -306
  61. package/skills/codeceptjs/migrate-protractor-to-codeceptjs/SKILL.md +0 -352
  62. package/skills/codeceptjs/migrate-selenium-java-to-codeceptjs/SKILL.md +0 -472
  63. package/skills/codeceptjs/migrate-testcafe-to-codeceptjs/SKILL.md +0 -350
  64. package/skills/codeceptjs/refactoring-codeceptjs-tests/SKILL.md +0 -81
  65. package/skills/codeceptjs/writing-codeceptjs-tests/SKILL.md +0 -206
  66. package/skills/playwright-best-practices-skill/LICENSE.md +0 -7
  67. package/skills/playwright-best-practices-skill/README.md +0 -147
  68. package/skills/playwright-best-practices-skill/SKILL.md +0 -303
  69. package/skills/playwright-best-practices-skill/advanced/authentication-flows.md +0 -360
  70. package/skills/playwright-best-practices-skill/advanced/authentication.md +0 -871
  71. package/skills/playwright-best-practices-skill/advanced/clock-mocking.md +0 -364
  72. package/skills/playwright-best-practices-skill/advanced/mobile-testing.md +0 -409
  73. package/skills/playwright-best-practices-skill/advanced/multi-context.md +0 -288
  74. package/skills/playwright-best-practices-skill/advanced/multi-user.md +0 -393
  75. package/skills/playwright-best-practices-skill/advanced/network-advanced.md +0 -452
  76. package/skills/playwright-best-practices-skill/advanced/third-party.md +0 -464
  77. package/skills/playwright-best-practices-skill/architecture/pom-vs-fixtures.md +0 -363
  78. package/skills/playwright-best-practices-skill/architecture/test-architecture.md +0 -369
  79. package/skills/playwright-best-practices-skill/architecture/when-to-mock.md +0 -383
  80. package/skills/playwright-best-practices-skill/browser-apis/browser-apis.md +0 -391
  81. package/skills/playwright-best-practices-skill/browser-apis/iframes.md +0 -403
  82. package/skills/playwright-best-practices-skill/browser-apis/service-workers.md +0 -504
  83. package/skills/playwright-best-practices-skill/browser-apis/websockets.md +0 -403
  84. package/skills/playwright-best-practices-skill/core/annotations.md +0 -424
  85. package/skills/playwright-best-practices-skill/core/assertions-waiting.md +0 -361
  86. package/skills/playwright-best-practices-skill/core/configuration.md +0 -452
  87. package/skills/playwright-best-practices-skill/core/fixtures-hooks.md +0 -417
  88. package/skills/playwright-best-practices-skill/core/global-setup.md +0 -434
  89. package/skills/playwright-best-practices-skill/core/locators.md +0 -242
  90. package/skills/playwright-best-practices-skill/core/page-object-model.md +0 -315
  91. package/skills/playwright-best-practices-skill/core/projects-dependencies.md +0 -453
  92. package/skills/playwright-best-practices-skill/core/test-data.md +0 -492
  93. package/skills/playwright-best-practices-skill/core/test-suite-structure.md +0 -361
  94. package/skills/playwright-best-practices-skill/core/test-tags.md +0 -298
  95. package/skills/playwright-best-practices-skill/debugging/console-errors.md +0 -420
  96. package/skills/playwright-best-practices-skill/debugging/debugging.md +0 -504
  97. package/skills/playwright-best-practices-skill/debugging/error-testing.md +0 -360
  98. package/skills/playwright-best-practices-skill/debugging/flaky-tests.md +0 -496
  99. package/skills/playwright-best-practices-skill/frameworks/angular.md +0 -530
  100. package/skills/playwright-best-practices-skill/frameworks/nextjs.md +0 -469
  101. package/skills/playwright-best-practices-skill/frameworks/react.md +0 -531
  102. package/skills/playwright-best-practices-skill/frameworks/vue.md +0 -574
  103. package/skills/playwright-best-practices-skill/infrastructure-ci-cd/ci-cd.md +0 -468
  104. package/skills/playwright-best-practices-skill/infrastructure-ci-cd/docker.md +0 -283
  105. package/skills/playwright-best-practices-skill/infrastructure-ci-cd/github-actions.md +0 -546
  106. package/skills/playwright-best-practices-skill/infrastructure-ci-cd/gitlab.md +0 -397
  107. package/skills/playwright-best-practices-skill/infrastructure-ci-cd/other-providers.md +0 -521
  108. package/skills/playwright-best-practices-skill/infrastructure-ci-cd/parallel-sharding.md +0 -371
  109. package/skills/playwright-best-practices-skill/infrastructure-ci-cd/performance.md +0 -453
  110. package/skills/playwright-best-practices-skill/infrastructure-ci-cd/reporting.md +0 -424
  111. package/skills/playwright-best-practices-skill/infrastructure-ci-cd/test-coverage.md +0 -497
  112. package/skills/playwright-best-practices-skill/testing-patterns/accessibility.md +0 -359
  113. package/skills/playwright-best-practices-skill/testing-patterns/api-testing.md +0 -719
  114. package/skills/playwright-best-practices-skill/testing-patterns/browser-extensions.md +0 -506
  115. package/skills/playwright-best-practices-skill/testing-patterns/canvas-webgl.md +0 -493
  116. package/skills/playwright-best-practices-skill/testing-patterns/component-testing.md +0 -500
  117. package/skills/playwright-best-practices-skill/testing-patterns/drag-drop.md +0 -576
  118. package/skills/playwright-best-practices-skill/testing-patterns/electron.md +0 -509
  119. package/skills/playwright-best-practices-skill/testing-patterns/file-operations.md +0 -377
  120. package/skills/playwright-best-practices-skill/testing-patterns/file-upload-download.md +0 -562
  121. package/skills/playwright-best-practices-skill/testing-patterns/forms-validation.md +0 -561
  122. package/skills/playwright-best-practices-skill/testing-patterns/graphql-testing.md +0 -331
  123. package/skills/playwright-best-practices-skill/testing-patterns/i18n.md +0 -508
  124. package/skills/playwright-best-practices-skill/testing-patterns/performance-testing.md +0 -476
  125. package/skills/playwright-best-practices-skill/testing-patterns/security-testing.md +0 -430
  126. package/skills/playwright-best-practices-skill/testing-patterns/visual-regression.md +0 -634
  127. package/skills/playwright-cli/SKILL.md +0 -420
  128. package/skills/playwright-cli/references/element-attributes.md +0 -23
  129. package/skills/playwright-cli/references/playwright-tests.md +0 -39
  130. package/skills/playwright-cli/references/request-mocking.md +0 -87
  131. package/skills/playwright-cli/references/running-code.md +0 -241
  132. package/skills/playwright-cli/references/session-management.md +0 -225
  133. package/skills/playwright-cli/references/storage-state.md +0 -275
  134. package/skills/playwright-cli/references/test-generation.md +0 -433
  135. package/skills/playwright-cli/references/tracing.md +0 -139
  136. package/skills/playwright-cli/references/video-recording.md +0 -143
  137. package/skills/testeiya/README.md +0 -29
  138. package/skills/testeiya/answer-formatting/SKILL.md +0 -30
  139. package/skills/testeiya/check-cucumber/SKILL.md +0 -200
  140. package/skills/testeiya/check-tests/SKILL.md +0 -260
  141. package/skills/testeiya/manual-run-assistant/SKILL.md +0 -61
  142. package/skills/testeiya/testomatio-docs/INDEX.md +0 -175
  143. package/skills/testeiya/testomatio-docs/SKILL.md +0 -102
  144. package/skills/testeiya/testomatio-docs/docs/advanced/ai-powered-features/ai-agents.md +0 -144
  145. package/skills/testeiya/testomatio-docs/docs/advanced/ai-powered-features/ai-powered-features.md +0 -531
  146. package/skills/testeiya/testomatio-docs/docs/advanced/ai-powered-features/ai-requirements.md +0 -437
  147. package/skills/testeiya/testomatio-docs/docs/advanced/api-access/index.md +0 -191
  148. package/skills/testeiya/testomatio-docs/docs/advanced/branches-folder/index.md +0 -277
  149. package/skills/testeiya/testomatio-docs/docs/advanced/bulk-edit-folder/bulk-edit-demos.mdx +0 -39
  150. package/skills/testeiya/testomatio-docs/docs/advanced/bulk-edit-folder/bulk-edit-on-suite-and-test-level.md +0 -122
  151. package/skills/testeiya/testomatio-docs/docs/advanced/bulk-edit-folder/what-is-bulk-edit.md +0 -170
  152. package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/branches.md +0 -53
  153. package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/index.mdx +0 -98
  154. package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/jira-issue.md +0 -151
  155. package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/runs-and-reports.md +0 -377
  156. package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/work-in-jira.md +0 -267
  157. package/skills/testeiya/testomatio-docs/docs/advanced/living-doc/index.md +0 -138
  158. package/skills/testeiya/testomatio-docs/docs/advanced/milestones/index.md +0 -220
  159. package/skills/testeiya/testomatio-docs/docs/advanced/shortcuts/index.md +0 -48
  160. package/skills/testeiya/testomatio-docs/docs/advanced/tags-labels/labels-and-custom-fields.md +0 -201
  161. package/skills/testeiya/testomatio-docs/docs/advanced/tags-labels/tags-or-labels.md +0 -94
  162. package/skills/testeiya/testomatio-docs/docs/advanced/tags-labels/tags.md +0 -243
  163. package/skills/testeiya/testomatio-docs/docs/advanced/test-artifacts/index.md +0 -135
  164. package/skills/testeiya/testomatio-docs/docs/advanced/tql/index.md +0 -394
  165. package/skills/testeiya/testomatio-docs/docs/getting-started/index.md +0 -290
  166. package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/azure.md +0 -96
  167. package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/bamboo.md +0 -94
  168. package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/bitbucket.md +0 -106
  169. package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/circle.md +0 -115
  170. package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/github.md +0 -120
  171. package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/gitlab.md +0 -88
  172. package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/index.mdx +0 -151
  173. package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/jenkins.md +0 -121
  174. package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/teamcity.md +0 -96
  175. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/azure.md +0 -31
  176. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/clickup.md +0 -54
  177. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/confluence.md +0 -34
  178. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/github.md +0 -31
  179. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/gitlab.md +0 -93
  180. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/index.md +0 -131
  181. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/jira.md +0 -164
  182. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/linear.md +0 -29
  183. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/shortcut.md +0 -67
  184. package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/youtrack.md +0 -94
  185. package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/azure-devops.md +0 -53
  186. package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/email.md +0 -71
  187. package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/jira.md +0 -52
  188. package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/ms-teams.md +0 -60
  189. package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/rules.md +0 -267
  190. package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/slack.md +0 -82
  191. package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/telegram.md +0 -73
  192. package/skills/testeiya/testomatio-docs/docs/integrations/scim-provisioning/index.mdx +0 -207
  193. package/skills/testeiya/testomatio-docs/docs/integrations/scim-provisioning/okta.md +0 -204
  194. package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/azure.md +0 -95
  195. package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/google.md +0 -75
  196. package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/index.mdx +0 -33
  197. package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/okta.md +0 -108
  198. package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/saml.md +0 -66
  199. package/skills/testeiya/testomatio-docs/docs/legal/compliance/gdpr.md +0 -95
  200. package/skills/testeiya/testomatio-docs/docs/legal/compliance/index.mdx +0 -94
  201. package/skills/testeiya/testomatio-docs/docs/legal/compliance/privacy.md +0 -26
  202. package/skills/testeiya/testomatio-docs/docs/legal/compliance/terms.md +0 -32
  203. package/skills/testeiya/testomatio-docs/docs/legal/security/index.mdx +0 -242
  204. package/skills/testeiya/testomatio-docs/docs/legal/security/jira.md +0 -140
  205. package/skills/testeiya/testomatio-docs/docs/legal/security/subprocessors.md +0 -76
  206. package/skills/testeiya/testomatio-docs/docs/management/company/administration.md +0 -363
  207. package/skills/testeiya/testomatio-docs/docs/management/company/audit-log.md +0 -41
  208. package/skills/testeiya/testomatio-docs/docs/management/company/plan-features-comparison.md +0 -240
  209. package/skills/testeiya/testomatio-docs/docs/management/company/subscriptions.md +0 -326
  210. package/skills/testeiya/testomatio-docs/docs/management/company/trials.md +0 -75
  211. package/skills/testeiya/testomatio-docs/docs/management/company/users-and-permissions/accountant.md +0 -49
  212. package/skills/testeiya/testomatio-docs/docs/management/company/users-and-permissions/index.mdx +0 -285
  213. package/skills/testeiya/testomatio-docs/docs/management/company/users-and-permissions/read-only-user.md +0 -67
  214. package/skills/testeiya/testomatio-docs/docs/management/company/users-and-permissions/teams.md +0 -138
  215. package/skills/testeiya/testomatio-docs/docs/management/project/settings.md +0 -87
  216. package/skills/testeiya/testomatio-docs/docs/management/project/templates.md +0 -546
  217. package/skills/testeiya/testomatio-docs/docs/project/analytics/index.md +0 -326
  218. package/skills/testeiya/testomatio-docs/docs/project/import-export/export-tests/classical-tests-markdown-format.md +0 -386
  219. package/skills/testeiya/testomatio-docs/docs/project/import-export/export-tests/download-manual-tests-as-files.md +0 -378
  220. package/skills/testeiya/testomatio-docs/docs/project/import-export/export-tests/export-to-obsidian.md +0 -112
  221. package/skills/testeiya/testomatio-docs/docs/project/import-export/export-tests/export-to-spreadsheet.md +0 -127
  222. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/auto-import.md +0 -63
  223. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-Allure-TestOps.md +0 -49
  224. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-QTest.md +0 -41
  225. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-Qase.md +0 -39
  226. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-Zephyr.md +0 -37
  227. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-csv-xlsx.md +0 -117
  228. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-cucumber.md +0 -93
  229. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-qmetry.md +0 -44
  230. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-source-code.md +0 -117
  231. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-testcaselabs.md +0 -44
  232. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-testmo.md +0 -47
  233. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-testrail.md +0 -82
  234. package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-xray.md +0 -55
  235. package/skills/testeiya/testomatio-docs/docs/project/plans/index.md +0 -334
  236. package/skills/testeiya/testomatio-docs/docs/project/pulse/index.md +0 -104
  237. package/skills/testeiya/testomatio-docs/docs/project/runs/archive-runs-and-groups.md +0 -176
  238. package/skills/testeiya/testomatio-docs/docs/project/runs/custom-statuses.md +0 -195
  239. package/skills/testeiya/testomatio-docs/docs/project/runs/environments.md +0 -203
  240. package/skills/testeiya/testomatio-docs/docs/project/runs/managing-runs.md +0 -455
  241. package/skills/testeiya/testomatio-docs/docs/project/runs/merge-strategies.md +0 -137
  242. package/skills/testeiya/testomatio-docs/docs/project/runs/reports.md +0 -329
  243. package/skills/testeiya/testomatio-docs/docs/project/runs/rungroups.md +0 -342
  244. package/skills/testeiya/testomatio-docs/docs/project/runs/running-automated-tests.md +0 -256
  245. package/skills/testeiya/testomatio-docs/docs/project/runs/running-manual-and-automated-tests.md +0 -331
  246. package/skills/testeiya/testomatio-docs/docs/project/runs/running-tests-manually.md +0 -633
  247. package/skills/testeiya/testomatio-docs/docs/project/runs/temporary-tests-notes.md +0 -223
  248. package/skills/testeiya/testomatio-docs/docs/project/steps-snippets/snippets.md +0 -68
  249. package/skills/testeiya/testomatio-docs/docs/project/steps-snippets/steps.md +0 -181
  250. package/skills/testeiya/testomatio-docs/docs/project/tests/bdd-test-case-editor.md +0 -98
  251. package/skills/testeiya/testomatio-docs/docs/project/tests/classical-test-case-editor.md +0 -354
  252. package/skills/testeiya/testomatio-docs/docs/project/tests/classical-vs-bdd.md +0 -169
  253. package/skills/testeiya/testomatio-docs/docs/project/tests/copy-and-move-your-tests.md +0 -156
  254. package/skills/testeiya/testomatio-docs/docs/project/tests/other-features-for-test-case-design.md +0 -412
  255. package/skills/testeiya/testomatio-docs/docs/project/tests/test-case-creation-and-editing.md +0 -527
  256. package/skills/testeiya/testomatio-docs/docs/support/index.md +0 -75
  257. package/skills/testeiya/testomatio-docs/docs/test-reporting/artifacts.md +0 -388
  258. package/skills/testeiya/testomatio-docs/docs/test-reporting/cli.md +0 -215
  259. package/skills/testeiya/testomatio-docs/docs/test-reporting/configuration.md +0 -247
  260. package/skills/testeiya/testomatio-docs/docs/test-reporting/frameworks.md +0 -490
  261. package/skills/testeiya/testomatio-docs/docs/test-reporting/functions.md +0 -144
  262. package/skills/testeiya/testomatio-docs/docs/test-reporting/index.mdx +0 -48
  263. package/skills/testeiya/testomatio-docs/docs/test-reporting/junit.md +0 -248
  264. package/skills/testeiya/testomatio-docs/docs/test-reporting/logger.md +0 -138
  265. package/skills/testeiya/testomatio-docs/docs/test-reporting/php.md +0 -77
  266. package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/bitbucket.md +0 -72
  267. package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/csv.md +0 -23
  268. package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/debug.md +0 -18
  269. package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/github.md +0 -63
  270. package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/gitlab.md +0 -29
  271. package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/html.md +0 -80
  272. package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/index.mdx +0 -57
  273. package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/testomatio.md +0 -331
  274. package/skills/testeiya/testomatio-docs/docs/test-reporting/python.md +0 -229
  275. package/skills/testeiya/testomatio-docs/docs/test-reporting/workflows.md +0 -325
  276. package/skills/testeiya/testomatio-docs/docs/tutorials/Interacting-via-API.md +0 -159
  277. package/skills/testeiya/testomatio-docs/docs/tutorials/Manual-Testing-Classic.md +0 -164
  278. package/skills/testeiya/testomatio-docs/docs/tutorials/Set-Up-Read-Only-Access.md +0 -85
  279. package/skills/testeiya/testomatio-docs/docs/tutorials/Using-AI-in-Testing.md +0 -163
  280. package/skills/testeiya/testomatio-docs/docs/tutorials/Working-with-Jira.md +0 -125
  281. package/skills/testeiya/testomatio-docs/docs/tutorials/java.md +0 -478
  282. package/skills/testeiya/testomatio-docs/docs/tutorials/playwright.md +0 -207
  283. package/skills/testeiya/testomatio-docs/docs/tutorials/webdriver.md +0 -218
  284. package/skills/testeiya/testomatio-docs/docs.lock.json +0 -6
  285. package/skills/testeiya/testomatio-reporter/SKILL.md +0 -307
  286. package/skills/testomatio/explorbot/explorbot-fundamentals/SKILL.md +0 -88
  287. package/skills/testomatio/explorbot/explorbot-plan/SKILL.md +0 -95
  288. package/skills/testomatio/explorbot/explorbot-setup/SKILL.md +0 -334
  289. package/skills/testomatio/test-automation/automate-manual-test-cases/CLAUDE.md +0 -56
  290. package/skills/testomatio/test-automation/automate-manual-test-cases/SKILL.md +0 -242
  291. package/skills/testomatio/test-automation/automate-manual-test-cases/references/CODECEPTJS_BEST_PRACTICES.md +0 -182
  292. package/skills/testomatio/test-automation/automate-manual-test-cases/references/FINAL_SUMMARY_TEMPLATE.md +0 -22
  293. package/skills/testomatio/test-automation/automate-manual-test-cases/references/PLAYWRIGHT_BEST_PRACTICES.md +0 -90
  294. package/skills/testomatio/test-automation/automate-manual-test-cases/references/POM_BEST_PRACTICES.md +0 -53
  295. package/skills/testomatio/test-automation/automate-manual-test-cases/references/TEST_DATA_MANAGEMENT.md +0 -52
  296. package/skills/testomatio/test-automation/debug-fix-failed-flaky-autotests/SKILL.md +0 -107
  297. package/skills/testomatio/test-automation/debug-fix-failed-flaky-autotests/references/DEBUGGING_QUICK_REFERENCE.md +0 -113
  298. package/skills/testomatio/test-automation/qa-automation-test-consolidation/SKILL.md +0 -29
  299. package/skills/testomatio/test-automation/run-tests-with-testomatio-reporter/SKILL.md +0 -151
  300. package/skills/testomatio/test-automation/setup-pr-testing/SKILL.md +0 -199
  301. package/skills/testomatio/test-automation/testomat-allure-adapter/SKILL.md +0 -289
  302. package/skills/testomatio/test-management/detect-duplicate-test-cases/SKILL.md +0 -86
  303. package/skills/testomatio/test-management/detect-duplicate-test-cases/references/DUPLICATE_INSTRUCTIONS.md +0 -54
  304. package/skills/testomatio/test-management/improve-test-cases/SKILL.md +0 -114
  305. package/skills/testomatio/test-management/improve-test-cases/references/TESTOMAT_MARKDOWN_EXAMPLE.md +0 -66
  306. package/skills/testomatio/test-management/pull-request-diff-analyzer/SKILL.md +0 -141
  307. package/skills/testomatio/test-management/qa-e2e-tests-reporting/SKILL.md +0 -354
  308. package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_ARTIFACTS.md +0 -82
  309. package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_HTML_REPORT.md +0 -37
  310. package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_REPORTERS_CONFIG.md +0 -118
  311. package/skills/testomatio/test-management/qa-pr-requirements-analyzer/SKILL.md +0 -149
  312. package/skills/testomatio/test-management/qa-pr-requirements-analyzer/references/summary-example.md +0 -54
  313. package/skills/testomatio/test-management/qa-requirement-reviewer/SKILL.md +0 -126
  314. package/skills/testomatio/test-management/qa-requirement-reviewer/references/requirements_reviewer_examples.md +0 -128
  315. package/skills/testomatio/test-management/qa-test-code-coverage/SKILL.md +0 -174
  316. package/skills/testomatio/test-management/qa-test-code-coverage/references/COVERAGE_FILE_FORMAT.md +0 -138
  317. package/skills/testomatio/test-management/qa-test-code-coverage/references/E2E_FRAMEWORKS.md +0 -65
  318. package/skills/testomatio/test-management/qa-test-code-coverage/scripts/check-coverage.mjs +0 -40
  319. package/skills/testomatio/test-management/qa-thinking/SKILL.md +0 -36
  320. package/skills/testomatio/test-management/qa-write-test-cases/SKILL.md +0 -267
  321. package/skills/testomatio/test-management/qa-write-test-cases/references/test-case-format.md +0 -387
  322. package/skills/testomatio/test-management/qa-write-test-cases/references/testomat-tms-guide.md +0 -72
  323. package/skills/testomatio/test-management/qa-write-test-cases/references/writing-rule.md +0 -159
  324. package/skills/testomatio/test-management/scan-automation-project/SKILL.md +0 -152
  325. package/skills/testomatio/test-management/sync-test-cases-with-tms/SKILL.md +0 -107
  326. package/skills/testomatio/test-management/sync-test-cases-with-tms/references/TESTOMATIO_CLI.md +0 -140
  327. package/skills/testomatio/test-management/testomatio-mcp/SKILL.md +0 -182
  328. package/skills/testomatio/test-management/testomatio-mcp/references/MCP_SETUP.md +0 -169
  329. package/skills.yaml +0 -21
  330. package/src/ai-debug.ts +0 -188
  331. package/src/api/agent-get.ts +0 -22
  332. package/src/api/agent-start.ts +0 -384
  333. package/src/api/client-log.ts +0 -29
  334. package/src/api/context.ts +0 -332
  335. package/src/api/debug-layout.ts +0 -47
  336. package/src/api/debug-report.ts +0 -29
  337. package/src/api/debug-snapshot.ts +0 -30
  338. package/src/api/debug-stream.ts +0 -52
  339. package/src/api/files-delete.ts +0 -184
  340. package/src/api/files-read.ts +0 -41
  341. package/src/api/files-rename.ts +0 -99
  342. package/src/api/files-tree.ts +0 -292
  343. package/src/api/files-write.ts +0 -41
  344. package/src/api/mcp.ts +0 -603
  345. package/src/api/memory.ts +0 -69
  346. package/src/api/open-external.ts +0 -39
  347. package/src/api/playwright-cli.ts +0 -606
  348. package/src/api/providers.ts +0 -457
  349. package/src/api/read-env-token.ts +0 -33
  350. package/src/api/sessions.ts +0 -79
  351. package/src/api/settings.ts +0 -120
  352. package/src/api/skills.ts +0 -58
  353. package/src/api/testomatio-attachment.ts +0 -89
  354. package/src/api/testomatio-auth.ts +0 -284
  355. package/src/api/testomatio-proxy.ts +0 -197
  356. package/src/api/testomatio-run-stats.ts +0 -81
  357. package/src/api/testomatio-target.ts +0 -225
  358. package/src/api/testomatio-transcription.ts +0 -82
  359. package/src/api/workspace-search.ts +0 -96
  360. package/src/api/workspace-sync.ts +0 -151
  361. package/src/api/workspace.ts +0 -165
  362. package/src/app-server.ts +0 -556
  363. package/src/bridge.ts +0 -251
  364. package/src/check-tests.ts +0 -156
  365. package/src/cli.ts +0 -17
  366. package/src/commands.ts +0 -244
  367. package/src/config.ts +0 -183
  368. package/src/connection.ts +0 -658
  369. package/src/context-store.ts +0 -265
  370. package/src/debug-bus.ts +0 -405
  371. package/src/extensions/tool-gate.ts +0 -220
  372. package/src/extensions/webui/ask-channel.ts +0 -52
  373. package/src/extensions/webui/index.ts +0 -184
  374. package/src/extensions/webui/tools/ask-question.ts +0 -88
  375. package/src/extensions/webui/tools/query-result.ts +0 -79
  376. package/src/extensions/webui/tools/render-chart.ts +0 -53
  377. package/src/extensions/webui/tools/render-item.ts +0 -61
  378. package/src/extensions/webui/tools/render-list.ts +0 -170
  379. package/src/extensions/webui/tools/render-result.ts +0 -85
  380. package/src/extensions/webui/tools/render-tree.ts +0 -71
  381. package/src/extensions/webui/tools/ui-widget.ts +0 -54
  382. package/src/extensions/webui/tools/widget-result.ts +0 -13
  383. package/src/extensions/webui/widget-channel.ts +0 -50
  384. package/src/file-log.ts +0 -196
  385. package/src/git-tracked.ts +0 -68
  386. package/src/gitignore.ts +0 -53
  387. package/src/json-store.ts +0 -43
  388. package/src/load-env.ts +0 -70
  389. package/src/loader-style.ts +0 -96
  390. package/src/main.ts +0 -140
  391. package/src/mcp-catalog.ts +0 -96
  392. package/src/models-catalog.ts +0 -72
  393. package/src/permissions.ts +0 -120
  394. package/src/project-dir.ts +0 -189
  395. package/src/project-info.ts +0 -108
  396. package/src/prompt/app-ui.ts +0 -59
  397. package/src/prompt/browser.ts +0 -27
  398. package/src/prompt/index.ts +0 -62
  399. package/src/server-info.ts +0 -62
  400. package/src/session-factory.ts +0 -442
  401. package/src/session-store.ts +0 -115
  402. package/src/shell-env.ts +0 -45
  403. package/src/skills.ts +0 -163
  404. package/src/sync-snapshot.ts +0 -140
  405. package/src/telemetry.ts +0 -239
  406. package/src/testomatio-auth.ts +0 -299
  407. package/src/testomatio.ts +0 -98
  408. package/src/theme.ts +0 -30
  409. package/src/user-env.ts +0 -94
  410. package/src/welcome.ts +0 -194
  411. package/src/workspace/safe-path.ts +0 -85
  412. package/src/workspace/test-md.ts +0 -70
  413. package/src/workspace-model.ts +0 -440
  414. package/testeiya.config.json +0 -14
package/mcp-tools.json ADDED
@@ -0,0 +1,2967 @@
1
+ [
2
+ {
3
+ "name": "system_ping",
4
+ "description": "Check server status and active configuration",
5
+ "inputSchema": {
6
+ "type": "object",
7
+ "properties": {}
8
+ }
9
+ },
10
+ {
11
+ "name": "tests_list",
12
+ "description": "List tests (/api/v2/{project_id}/tests). TQL (Testomat.io Query Language) is a string expression passed in `tql` to filter tests. Supported syntax includes logical operators `and`, `or`, `not`, equality operators `==` and `!=`, list membership `in [...]`, `%` for partial text match on supported text fields, and parentheses for grouping. Ordered comparisons `>`, `<`, `>=`, `<=` are for ordered fields such as `priority`, dates, and numeric counters/durations. Use quotes for string values, for example `state == 'automated'`. Documented test variables: `tag`, `label`, `priority`, `issue`, `jira`, `state`, `status`, `custom_status`, `created_at`, `updated_at`, `last_run_at`, `executed_at`, `created_by`, `assigned_to`, `suite`, `test`, `shared`, `milestone`. Documented examples: `priority == 'high'`, `priority >= 'normal'`, `state == 'automated'`, `tag in ['smoke', 'stage1'] and status == 'failed'`, `suite % 'Checkout'`, `test % 'User login'`, `custom_status % 'issue'`, `created_at < 1.month_ago`, `jira in ['JST-1', 'JST-2']`, `milestone == 'Sprint 1'`. Do not invent undocumented fields or syntax. If a query fails, simplify it to one documented predicate.",
13
+ "inputSchema": {
14
+ "type": "object",
15
+ "properties": {
16
+ "page": {
17
+ "type": "integer",
18
+ "minimum": 1
19
+ },
20
+ "per_page": {
21
+ "type": "integer",
22
+ "minimum": 1,
23
+ "maximum": 100
24
+ },
25
+ "tql": {
26
+ "type": "string",
27
+ "description": "TQL filter for tests. Documented variables: `tag`, `label`, `priority`, `issue`, `jira`, `state`, `status`, `custom_status`, `created_at`, `updated_at`, `last_run_at`, `executed_at`, `created_by`, `assigned_to`, `suite`, `test`, `shared`, `milestone`. Examples: `priority == 'high'`, `priority >= 'normal'`, `state == 'automated'`, `tag in ['smoke', 'stage1'] and status == 'failed'`, `suite % 'Checkout'`, `test % 'User login'`, `custom_status % 'issue'`, `created_at < 1.month_ago`, `jira in ['JST-1', 'JST-2']`, `milestone == 'Sprint 1'`."
28
+ }
29
+ },
30
+ "additionalProperties": false
31
+ }
32
+ },
33
+ {
34
+ "name": "tests_get",
35
+ "description": "Get test by ID",
36
+ "inputSchema": {
37
+ "type": "object",
38
+ "properties": {
39
+ "test_id": {
40
+ "type": "string"
41
+ }
42
+ },
43
+ "required": [
44
+ "test_id"
45
+ ],
46
+ "additionalProperties": false
47
+ }
48
+ },
49
+ {
50
+ "name": "tests_create",
51
+ "description": "Create test (/api/v2/{project_id}/tests)",
52
+ "inputSchema": {
53
+ "type": "object",
54
+ "properties": {
55
+ "title": {
56
+ "type": "string"
57
+ },
58
+ "suite_id": {
59
+ "type": "string"
60
+ },
61
+ "description": {
62
+ "type": "string"
63
+ },
64
+ "emoji": {
65
+ "type": "string"
66
+ },
67
+ "priority": {
68
+ "type": "string"
69
+ },
70
+ "assigned_to": {
71
+ "type": "string"
72
+ },
73
+ "code": {
74
+ "type": "string"
75
+ },
76
+ "state": {
77
+ "type": "string"
78
+ },
79
+ "link": {
80
+ "type": "array",
81
+ "items": {
82
+ "type": "object",
83
+ "properties": {
84
+ "action": {
85
+ "type": "string",
86
+ "enum": [
87
+ "add",
88
+ "remove"
89
+ ]
90
+ },
91
+ "type": {
92
+ "type": "string",
93
+ "enum": [
94
+ "label",
95
+ "custom_field",
96
+ "tag",
97
+ "milestone",
98
+ "issue",
99
+ "jira"
100
+ ]
101
+ },
102
+ "value": {
103
+ "type": "string"
104
+ }
105
+ },
106
+ "required": [
107
+ "action",
108
+ "type",
109
+ "value"
110
+ ],
111
+ "additionalProperties": false
112
+ }
113
+ }
114
+ },
115
+ "required": [
116
+ "title",
117
+ "suite_id"
118
+ ],
119
+ "additionalProperties": false
120
+ }
121
+ },
122
+ {
123
+ "name": "tests_update",
124
+ "description": "Update test (/api/v2/{project_id}/tests/{id})",
125
+ "inputSchema": {
126
+ "type": "object",
127
+ "properties": {
128
+ "test_id": {
129
+ "type": "string"
130
+ },
131
+ "title": {
132
+ "type": "string"
133
+ },
134
+ "suite_id": {
135
+ "type": "string"
136
+ },
137
+ "description": {
138
+ "type": "string"
139
+ },
140
+ "emoji": {
141
+ "type": "string"
142
+ },
143
+ "priority": {
144
+ "type": "string"
145
+ },
146
+ "assigned_to": {
147
+ "type": "string"
148
+ },
149
+ "code": {
150
+ "type": "string"
151
+ },
152
+ "state": {
153
+ "type": "string"
154
+ },
155
+ "sync": {
156
+ "type": "boolean"
157
+ },
158
+ "link": {
159
+ "type": "array",
160
+ "items": {
161
+ "type": "object",
162
+ "properties": {
163
+ "action": {
164
+ "type": "string",
165
+ "enum": [
166
+ "add",
167
+ "remove"
168
+ ]
169
+ },
170
+ "type": {
171
+ "type": "string",
172
+ "enum": [
173
+ "label",
174
+ "custom_field",
175
+ "tag",
176
+ "milestone",
177
+ "issue",
178
+ "jira"
179
+ ]
180
+ },
181
+ "value": {
182
+ "type": "string"
183
+ }
184
+ },
185
+ "required": [
186
+ "action",
187
+ "type",
188
+ "value"
189
+ ],
190
+ "additionalProperties": false
191
+ }
192
+ }
193
+ },
194
+ "required": [
195
+ "test_id"
196
+ ],
197
+ "additionalProperties": false
198
+ }
199
+ },
200
+ {
201
+ "name": "tests_delete",
202
+ "description": "Delete test",
203
+ "inputSchema": {
204
+ "type": "object",
205
+ "properties": {
206
+ "test_id": {
207
+ "type": "string"
208
+ }
209
+ },
210
+ "required": [
211
+ "test_id"
212
+ ],
213
+ "additionalProperties": false
214
+ }
215
+ },
216
+ {
217
+ "name": "tests_search",
218
+ "description": "Search tests using TQL (delegates to tests_list). TQL (Testomat.io Query Language) is a string expression passed in `tql` to filter tests. Supported syntax includes logical operators `and`, `or`, `not`, equality operators `==` and `!=`, list membership `in [...]`, `%` for partial text match on supported text fields, and parentheses for grouping. Ordered comparisons `>`, `<`, `>=`, `<=` are for ordered fields such as `priority`, dates, and numeric counters/durations. Use quotes for string values, for example `state == 'automated'`. Documented test variables: `tag`, `label`, `priority`, `issue`, `jira`, `state`, `status`, `custom_status`, `created_at`, `updated_at`, `last_run_at`, `executed_at`, `created_by`, `assigned_to`, `suite`, `test`, `shared`, `milestone`. Documented examples: `priority == 'high'`, `priority >= 'normal'`, `state == 'automated'`, `tag in ['smoke', 'stage1'] and status == 'failed'`, `suite % 'Checkout'`, `test % 'User login'`, `custom_status % 'issue'`, `created_at < 1.month_ago`, `jira in ['JST-1', 'JST-2']`, `milestone == 'Sprint 1'`. Do not invent undocumented fields or syntax. If a query fails, simplify it to one documented predicate.",
219
+ "inputSchema": {
220
+ "type": "object",
221
+ "properties": {
222
+ "page": {
223
+ "type": "integer",
224
+ "minimum": 1
225
+ },
226
+ "per_page": {
227
+ "type": "integer",
228
+ "minimum": 1,
229
+ "maximum": 100
230
+ },
231
+ "tql": {
232
+ "type": "string",
233
+ "description": "TQL filter for tests. Documented variables: `tag`, `label`, `priority`, `issue`, `jira`, `state`, `status`, `custom_status`, `created_at`, `updated_at`, `last_run_at`, `executed_at`, `created_by`, `assigned_to`, `suite`, `test`, `shared`, `milestone`. Examples: `priority == 'high'`, `priority >= 'normal'`, `state == 'automated'`, `tag in ['smoke', 'stage1'] and status == 'failed'`, `suite % 'Checkout'`, `test % 'User login'`, `custom_status % 'issue'`, `created_at < 1.month_ago`, `jira in ['JST-1', 'JST-2']`, `milestone == 'Sprint 1'`."
234
+ }
235
+ },
236
+ "additionalProperties": false
237
+ }
238
+ },
239
+ {
240
+ "name": "tests_issues_list",
241
+ "description": "List linked issues for a test (/api/v2/{project_id}/issues?test_id=...)",
242
+ "inputSchema": {
243
+ "type": "object",
244
+ "properties": {
245
+ "test_id": {
246
+ "type": "string"
247
+ },
248
+ "page": {
249
+ "type": "integer",
250
+ "minimum": 1
251
+ },
252
+ "per_page": {
253
+ "type": "integer",
254
+ "minimum": 1,
255
+ "maximum": 100
256
+ },
257
+ "source": {
258
+ "type": "string"
259
+ }
260
+ },
261
+ "required": [
262
+ "test_id"
263
+ ],
264
+ "additionalProperties": false
265
+ }
266
+ },
267
+ {
268
+ "name": "tests_issues_link",
269
+ "description": "Link issue to a test (/api/v2/{project_id}/issues)",
270
+ "inputSchema": {
271
+ "type": "object",
272
+ "properties": {
273
+ "test_id": {
274
+ "type": "string"
275
+ },
276
+ "url": {
277
+ "type": "string"
278
+ },
279
+ "jira_id": {
280
+ "type": "string"
281
+ }
282
+ },
283
+ "required": [
284
+ "test_id"
285
+ ],
286
+ "additionalProperties": false
287
+ }
288
+ },
289
+ {
290
+ "name": "tests_issues_unlink",
291
+ "description": "Unlink issue from a test (/api/v2/{project_id}/issues/{id})",
292
+ "inputSchema": {
293
+ "type": "object",
294
+ "properties": {
295
+ "issue_id": {
296
+ "type": "integer"
297
+ },
298
+ "type": {
299
+ "type": "string",
300
+ "enum": [
301
+ "issue",
302
+ "jira_issue"
303
+ ]
304
+ }
305
+ },
306
+ "required": [
307
+ "issue_id",
308
+ "type"
309
+ ],
310
+ "additionalProperties": false
311
+ }
312
+ },
313
+ {
314
+ "name": "suites_list",
315
+ "description": "List suites as tree (/api/v2/{project_id}/suites)",
316
+ "inputSchema": {
317
+ "type": "object",
318
+ "properties": {
319
+ "page": {
320
+ "type": "integer",
321
+ "minimum": 1
322
+ },
323
+ "per_page": {
324
+ "type": "integer",
325
+ "minimum": 1,
326
+ "maximum": 100
327
+ },
328
+ "file_type": {
329
+ "type": "string",
330
+ "enum": [
331
+ "file",
332
+ "folder"
333
+ ]
334
+ },
335
+ "tag": {
336
+ "type": "string"
337
+ },
338
+ "labels": {
339
+ "type": "string"
340
+ },
341
+ "search_text": {
342
+ "type": "string"
343
+ }
344
+ },
345
+ "additionalProperties": false
346
+ }
347
+ },
348
+ {
349
+ "name": "suites_get",
350
+ "description": "Get suite by ID",
351
+ "inputSchema": {
352
+ "type": "object",
353
+ "properties": {
354
+ "suite_id": {
355
+ "type": "string"
356
+ }
357
+ },
358
+ "required": [
359
+ "suite_id"
360
+ ],
361
+ "additionalProperties": false
362
+ }
363
+ },
364
+ {
365
+ "name": "suites_create",
366
+ "description": "Create suite (/api/v2/{project_id}/suites)",
367
+ "inputSchema": {
368
+ "type": "object",
369
+ "properties": {
370
+ "title": {
371
+ "type": "string"
372
+ },
373
+ "description": {
374
+ "type": "string"
375
+ },
376
+ "emoji": {
377
+ "type": "string"
378
+ },
379
+ "parent_id": {
380
+ "type": "string"
381
+ },
382
+ "file_type": {
383
+ "type": "string"
384
+ },
385
+ "assigned_to": {
386
+ "type": "string"
387
+ },
388
+ "file": {
389
+ "type": "string"
390
+ },
391
+ "children": {
392
+ "type": "array",
393
+ "items": {}
394
+ },
395
+ "link": {
396
+ "type": "array",
397
+ "items": {
398
+ "type": "object",
399
+ "properties": {
400
+ "action": {
401
+ "type": "string",
402
+ "enum": [
403
+ "add",
404
+ "remove"
405
+ ]
406
+ },
407
+ "type": {
408
+ "type": "string",
409
+ "enum": [
410
+ "label",
411
+ "custom_field",
412
+ "tag",
413
+ "milestone",
414
+ "issue",
415
+ "jira",
416
+ "requirement"
417
+ ]
418
+ },
419
+ "value": {
420
+ "type": "string"
421
+ }
422
+ },
423
+ "required": [
424
+ "action",
425
+ "type",
426
+ "value"
427
+ ],
428
+ "additionalProperties": false
429
+ }
430
+ }
431
+ },
432
+ "required": [
433
+ "title"
434
+ ],
435
+ "additionalProperties": false
436
+ }
437
+ },
438
+ {
439
+ "name": "suites_update",
440
+ "description": "Update suite (/api/v2/{project_id}/suites/{id})",
441
+ "inputSchema": {
442
+ "type": "object",
443
+ "properties": {
444
+ "suite_id": {
445
+ "type": "string"
446
+ },
447
+ "title": {
448
+ "type": "string"
449
+ },
450
+ "description": {
451
+ "type": "string"
452
+ },
453
+ "emoji": {
454
+ "type": "string"
455
+ },
456
+ "parent_id": {
457
+ "type": "string"
458
+ },
459
+ "file_type": {
460
+ "type": "string"
461
+ },
462
+ "assigned_to": {
463
+ "type": "string"
464
+ },
465
+ "file": {
466
+ "type": "string"
467
+ },
468
+ "children": {
469
+ "type": "array",
470
+ "items": {}
471
+ },
472
+ "link": {
473
+ "type": "array",
474
+ "items": {
475
+ "type": "object",
476
+ "properties": {
477
+ "action": {
478
+ "type": "string",
479
+ "enum": [
480
+ "add",
481
+ "remove"
482
+ ]
483
+ },
484
+ "type": {
485
+ "type": "string",
486
+ "enum": [
487
+ "label",
488
+ "custom_field",
489
+ "tag",
490
+ "milestone",
491
+ "issue",
492
+ "jira",
493
+ "requirement"
494
+ ]
495
+ },
496
+ "value": {
497
+ "type": "string"
498
+ }
499
+ },
500
+ "required": [
501
+ "action",
502
+ "type",
503
+ "value"
504
+ ],
505
+ "additionalProperties": false
506
+ }
507
+ }
508
+ },
509
+ "required": [
510
+ "suite_id"
511
+ ],
512
+ "additionalProperties": false
513
+ }
514
+ },
515
+ {
516
+ "name": "suites_delete",
517
+ "description": "Delete suite",
518
+ "inputSchema": {
519
+ "type": "object",
520
+ "properties": {
521
+ "suite_id": {
522
+ "type": "string"
523
+ }
524
+ },
525
+ "required": [
526
+ "suite_id"
527
+ ],
528
+ "additionalProperties": false
529
+ }
530
+ },
531
+ {
532
+ "name": "suites_search",
533
+ "description": "Search suites by title (delegates to suites list with search_text)",
534
+ "inputSchema": {
535
+ "type": "object",
536
+ "properties": {
537
+ "search_text": {
538
+ "type": "string"
539
+ },
540
+ "page": {
541
+ "type": "integer",
542
+ "minimum": 1
543
+ },
544
+ "per_page": {
545
+ "type": "integer",
546
+ "minimum": 1,
547
+ "maximum": 100
548
+ },
549
+ "file_type": {
550
+ "type": "string",
551
+ "enum": [
552
+ "file",
553
+ "folder"
554
+ ]
555
+ },
556
+ "tag": {
557
+ "type": "string"
558
+ },
559
+ "labels": {
560
+ "type": "string"
561
+ }
562
+ },
563
+ "additionalProperties": false
564
+ }
565
+ },
566
+ {
567
+ "name": "suites_issues_list",
568
+ "description": "List linked issues for a suite (/api/v2/{project_id}/issues?suite_id=...)",
569
+ "inputSchema": {
570
+ "type": "object",
571
+ "properties": {
572
+ "suite_id": {
573
+ "type": "string"
574
+ },
575
+ "page": {
576
+ "type": "integer",
577
+ "minimum": 1
578
+ },
579
+ "per_page": {
580
+ "type": "integer",
581
+ "minimum": 1,
582
+ "maximum": 100
583
+ },
584
+ "source": {
585
+ "type": "string"
586
+ }
587
+ },
588
+ "required": [
589
+ "suite_id"
590
+ ],
591
+ "additionalProperties": false
592
+ }
593
+ },
594
+ {
595
+ "name": "suites_issues_link",
596
+ "description": "Link issue to a suite (/api/v2/{project_id}/issues)",
597
+ "inputSchema": {
598
+ "type": "object",
599
+ "properties": {
600
+ "suite_id": {
601
+ "type": "string"
602
+ },
603
+ "url": {
604
+ "type": "string"
605
+ },
606
+ "jira_id": {
607
+ "type": "string"
608
+ }
609
+ },
610
+ "required": [
611
+ "suite_id"
612
+ ],
613
+ "additionalProperties": false
614
+ }
615
+ },
616
+ {
617
+ "name": "suites_issues_unlink",
618
+ "description": "Unlink issue from a suite (/api/v2/{project_id}/issues/{id})",
619
+ "inputSchema": {
620
+ "type": "object",
621
+ "properties": {
622
+ "issue_id": {
623
+ "type": "integer"
624
+ },
625
+ "type": {
626
+ "type": "string",
627
+ "enum": [
628
+ "issue",
629
+ "jira_issue"
630
+ ]
631
+ }
632
+ },
633
+ "required": [
634
+ "issue_id",
635
+ "type"
636
+ ],
637
+ "additionalProperties": false
638
+ }
639
+ },
640
+ {
641
+ "name": "runs_list",
642
+ "description": "List runs (/api/v2/{project_id}/runs). TQL (Testomat.io Query Language) is a string expression passed in `tql` to filter runs. Supported syntax includes logical operators `and`, `or`, `not`, equality operators `==` and `!=`, list membership `in [...]`, `%` for partial text match on supported text fields, and parentheses for grouping. Ordered comparisons `>`, `<`, `>=`, `<=` are for ordered fields such as `priority`, dates, and numeric counters/durations. Use quotes for string values, for example `state == 'automated'`. Runs also support boolean flags without comparison such as `failed`, `finished`, `automated`, or `with_defect`. Documented run variables: `title`, `plan`, `rungroup`, `env`, `tag`, `label`, `jira`, `duration`, `passed_count`, `failed_count`, `skipped_count`, `automated`, `manual`, `mixed`, `finished`, `unfinished`, `passed`, `failed`, `terminated`, `published`, `private`, `archived`, `unarchived`, `with_defect`, `has_defect`, `has_test`, `has_test_tag`, `has_test_label`, `has_suite`, `has_message`, `has_custom_status`, `has_assigned_to`, `has_retries`, `has_test_duration`, `has_priority`, `created_at`, `updated_at`, `launched_at`, `finished_at`, `milestone`. Documented examples: `title % 'Manual tests'`, `plan == '{PLAN_ID}'`, `env in ['Windows', 'Linux']`, `failed and has_test_tag == 'regression'`, `finished and with_defect`, `has_retries > 2`, `automated and env == 'Production' and has_message % 'Server Error'`, `finished_at >= '2025-07-01' and finished_at <= '2025-07-31' and failed`. Do not invent undocumented fields or syntax. If a query fails, simplify it to one documented predicate.",
643
+ "inputSchema": {
644
+ "type": "object",
645
+ "properties": {
646
+ "page": {
647
+ "type": "integer",
648
+ "minimum": 1
649
+ },
650
+ "per_page": {
651
+ "type": "integer",
652
+ "minimum": 1,
653
+ "maximum": 100
654
+ },
655
+ "tql": {
656
+ "type": "string",
657
+ "description": "TQL filter for runs. Documented variables: `title`, `plan`, `rungroup`, `env`, `tag`, `label`, `jira`, `duration`, `passed_count`, `failed_count`, `skipped_count`, `automated`, `manual`, `mixed`, `finished`, `unfinished`, `passed`, `failed`, `terminated`, `published`, `private`, `archived`, `unarchived`, `with_defect`, `has_defect`, `has_test`, `has_test_tag`, `has_test_label`, `has_suite`, `has_message`, `has_custom_status`, `has_assigned_to`, `has_retries`, `has_test_duration`, `has_priority`, `created_at`, `updated_at`, `launched_at`, `finished_at`, `milestone`. Examples: `title % 'Manual tests'`, `plan == '{PLAN_ID}'`, `env in ['Windows', 'Linux']`, `failed and has_test_tag == 'regression'`, `finished and with_defect`, `has_retries > 2`, `automated and env == 'Production' and has_message % 'Server Error'`, `finished_at >= '2025-07-01' and finished_at <= '2025-07-31' and failed`."
658
+ }
659
+ },
660
+ "additionalProperties": false
661
+ }
662
+ },
663
+ {
664
+ "name": "runs_get",
665
+ "description": "Get run by ID",
666
+ "inputSchema": {
667
+ "type": "object",
668
+ "properties": {
669
+ "run_id": {
670
+ "type": "string"
671
+ }
672
+ },
673
+ "required": [
674
+ "run_id"
675
+ ],
676
+ "additionalProperties": false
677
+ }
678
+ },
679
+ {
680
+ "name": "runs_create",
681
+ "description": "Create run (/api/v2/{project_id}/runs)",
682
+ "inputSchema": {
683
+ "type": "object",
684
+ "properties": {
685
+ "title": {
686
+ "type": "string"
687
+ },
688
+ "description": {
689
+ "type": "string"
690
+ },
691
+ "plan_ids": {
692
+ "type": "array",
693
+ "items": {
694
+ "type": "string"
695
+ }
696
+ },
697
+ "kind": {
698
+ "type": "string",
699
+ "enum": [
700
+ "manual",
701
+ "automated",
702
+ "mixed"
703
+ ]
704
+ },
705
+ "rungroup_id": {
706
+ "type": "string"
707
+ },
708
+ "env": {
709
+ "type": "string"
710
+ },
711
+ "assigned_to": {
712
+ "type": "string"
713
+ },
714
+ "assign_strategy": {
715
+ "type": "string",
716
+ "enum": [
717
+ "test",
718
+ "random",
719
+ "none"
720
+ ]
721
+ },
722
+ "test_ids": {
723
+ "type": "array",
724
+ "items": {
725
+ "type": "string"
726
+ }
727
+ },
728
+ "suite_ids": {
729
+ "type": "array",
730
+ "items": {
731
+ "type": "string"
732
+ }
733
+ },
734
+ "envs": {
735
+ "type": "array",
736
+ "items": {
737
+ "type": "string"
738
+ }
739
+ },
740
+ "link": {
741
+ "type": "array",
742
+ "items": {
743
+ "type": "object",
744
+ "properties": {
745
+ "action": {
746
+ "type": "string",
747
+ "enum": [
748
+ "add",
749
+ "remove"
750
+ ]
751
+ },
752
+ "type": {
753
+ "type": "string",
754
+ "enum": [
755
+ "label",
756
+ "custom_field",
757
+ "tag",
758
+ "milestone",
759
+ "issue",
760
+ "jira"
761
+ ]
762
+ },
763
+ "value": {
764
+ "type": "string"
765
+ }
766
+ },
767
+ "required": [
768
+ "action",
769
+ "type",
770
+ "value"
771
+ ],
772
+ "additionalProperties": false
773
+ }
774
+ }
775
+ },
776
+ "required": [
777
+ "title"
778
+ ],
779
+ "additionalProperties": false
780
+ }
781
+ },
782
+ {
783
+ "name": "runs_update",
784
+ "description": "Update run (/api/v2/{project_id}/runs/{id})",
785
+ "inputSchema": {
786
+ "type": "object",
787
+ "properties": {
788
+ "run_id": {
789
+ "type": "string"
790
+ },
791
+ "title": {
792
+ "type": "string"
793
+ },
794
+ "description": {
795
+ "type": "string"
796
+ },
797
+ "kind": {
798
+ "type": "string",
799
+ "enum": [
800
+ "manual",
801
+ "automated",
802
+ "mixed"
803
+ ]
804
+ },
805
+ "rungroup_id": {
806
+ "type": "string"
807
+ },
808
+ "env": {
809
+ "type": "string"
810
+ },
811
+ "status_event": {
812
+ "type": "string",
813
+ "enum": [
814
+ "finish",
815
+ "finish_manual",
816
+ "launch",
817
+ "rerun",
818
+ "scheduled",
819
+ "terminate"
820
+ ]
821
+ },
822
+ "assigned_to": {
823
+ "type": "string"
824
+ },
825
+ "assign_strategy": {
826
+ "type": "string",
827
+ "enum": [
828
+ "test",
829
+ "random",
830
+ "none"
831
+ ]
832
+ },
833
+ "test_ids": {
834
+ "type": "array",
835
+ "items": {
836
+ "type": "string"
837
+ }
838
+ },
839
+ "suite_ids": {
840
+ "type": "array",
841
+ "items": {
842
+ "type": "string"
843
+ }
844
+ },
845
+ "link": {
846
+ "type": "array",
847
+ "items": {
848
+ "type": "object",
849
+ "properties": {
850
+ "action": {
851
+ "type": "string",
852
+ "enum": [
853
+ "add",
854
+ "remove"
855
+ ]
856
+ },
857
+ "type": {
858
+ "type": "string",
859
+ "enum": [
860
+ "label",
861
+ "custom_field",
862
+ "tag",
863
+ "milestone",
864
+ "issue",
865
+ "jira"
866
+ ]
867
+ },
868
+ "value": {
869
+ "type": "string"
870
+ }
871
+ },
872
+ "required": [
873
+ "action",
874
+ "type",
875
+ "value"
876
+ ],
877
+ "additionalProperties": false
878
+ }
879
+ }
880
+ },
881
+ "required": [
882
+ "run_id"
883
+ ],
884
+ "additionalProperties": false
885
+ }
886
+ },
887
+ {
888
+ "name": "runs_delete",
889
+ "description": "Delete run (/api/v2/{project_id}/runs/{id})",
890
+ "inputSchema": {
891
+ "type": "object",
892
+ "properties": {
893
+ "run_id": {
894
+ "type": "string"
895
+ }
896
+ },
897
+ "required": [
898
+ "run_id"
899
+ ],
900
+ "additionalProperties": false
901
+ }
902
+ },
903
+ {
904
+ "name": "runs_search",
905
+ "description": "Search runs using TQL (delegates to runs_list). TQL (Testomat.io Query Language) is a string expression passed in `tql` to filter runs. Supported syntax includes logical operators `and`, `or`, `not`, equality operators `==` and `!=`, list membership `in [...]`, `%` for partial text match on supported text fields, and parentheses for grouping. Ordered comparisons `>`, `<`, `>=`, `<=` are for ordered fields such as `priority`, dates, and numeric counters/durations. Use quotes for string values, for example `state == 'automated'`. Runs also support boolean flags without comparison such as `failed`, `finished`, `automated`, or `with_defect`. Documented run variables: `title`, `plan`, `rungroup`, `env`, `tag`, `label`, `jira`, `duration`, `passed_count`, `failed_count`, `skipped_count`, `automated`, `manual`, `mixed`, `finished`, `unfinished`, `passed`, `failed`, `terminated`, `published`, `private`, `archived`, `unarchived`, `with_defect`, `has_defect`, `has_test`, `has_test_tag`, `has_test_label`, `has_suite`, `has_message`, `has_custom_status`, `has_assigned_to`, `has_retries`, `has_test_duration`, `has_priority`, `created_at`, `updated_at`, `launched_at`, `finished_at`, `milestone`. Documented examples: `title % 'Manual tests'`, `plan == '{PLAN_ID}'`, `env in ['Windows', 'Linux']`, `failed and has_test_tag == 'regression'`, `finished and with_defect`, `has_retries > 2`, `automated and env == 'Production' and has_message % 'Server Error'`, `finished_at >= '2025-07-01' and finished_at <= '2025-07-31' and failed`. Do not invent undocumented fields or syntax. If a query fails, simplify it to one documented predicate.",
906
+ "inputSchema": {
907
+ "type": "object",
908
+ "properties": {
909
+ "page": {
910
+ "type": "integer",
911
+ "minimum": 1
912
+ },
913
+ "per_page": {
914
+ "type": "integer",
915
+ "minimum": 1,
916
+ "maximum": 100
917
+ },
918
+ "tql": {
919
+ "type": "string",
920
+ "description": "TQL filter for runs. Documented variables: `title`, `plan`, `rungroup`, `env`, `tag`, `label`, `jira`, `duration`, `passed_count`, `failed_count`, `skipped_count`, `automated`, `manual`, `mixed`, `finished`, `unfinished`, `passed`, `failed`, `terminated`, `published`, `private`, `archived`, `unarchived`, `with_defect`, `has_defect`, `has_test`, `has_test_tag`, `has_test_label`, `has_suite`, `has_message`, `has_custom_status`, `has_assigned_to`, `has_retries`, `has_test_duration`, `has_priority`, `created_at`, `updated_at`, `launched_at`, `finished_at`, `milestone`. Examples: `title % 'Manual tests'`, `plan == '{PLAN_ID}'`, `env in ['Windows', 'Linux']`, `failed and has_test_tag == 'regression'`, `finished and with_defect`, `has_retries > 2`, `automated and env == 'Production' and has_message % 'Server Error'`, `finished_at >= '2025-07-01' and finished_at <= '2025-07-31' and failed`."
921
+ }
922
+ },
923
+ "additionalProperties": false
924
+ }
925
+ },
926
+ {
927
+ "name": "runs_issues_list",
928
+ "description": "List linked issues for a run (/api/v2/{project_id}/issues?run_id=...)",
929
+ "inputSchema": {
930
+ "type": "object",
931
+ "properties": {
932
+ "run_id": {
933
+ "type": "string"
934
+ },
935
+ "page": {
936
+ "type": "integer",
937
+ "minimum": 1
938
+ },
939
+ "per_page": {
940
+ "type": "integer",
941
+ "minimum": 1,
942
+ "maximum": 100
943
+ },
944
+ "source": {
945
+ "type": "string"
946
+ }
947
+ },
948
+ "required": [
949
+ "run_id"
950
+ ],
951
+ "additionalProperties": false
952
+ }
953
+ },
954
+ {
955
+ "name": "runs_issues_link",
956
+ "description": "Link issue to a run (/api/v2/{project_id}/issues)",
957
+ "inputSchema": {
958
+ "type": "object",
959
+ "properties": {
960
+ "run_id": {
961
+ "type": "string"
962
+ },
963
+ "url": {
964
+ "type": "string"
965
+ },
966
+ "jira_id": {
967
+ "type": "string"
968
+ }
969
+ },
970
+ "required": [
971
+ "run_id"
972
+ ],
973
+ "additionalProperties": false
974
+ }
975
+ },
976
+ {
977
+ "name": "runs_issues_unlink",
978
+ "description": "Unlink issue from a run (/api/v2/{project_id}/issues/{id})",
979
+ "inputSchema": {
980
+ "type": "object",
981
+ "properties": {
982
+ "issue_id": {
983
+ "type": "integer"
984
+ },
985
+ "type": {
986
+ "type": "string",
987
+ "enum": [
988
+ "issue",
989
+ "jira_issue"
990
+ ]
991
+ }
992
+ },
993
+ "required": [
994
+ "issue_id",
995
+ "type"
996
+ ],
997
+ "additionalProperties": false
998
+ }
999
+ },
1000
+ {
1001
+ "name": "testruns_list",
1002
+ "description": "List testruns (/api/v2/{project_id}/testruns)",
1003
+ "inputSchema": {
1004
+ "type": "object",
1005
+ "properties": {
1006
+ "page": {
1007
+ "type": "integer",
1008
+ "minimum": 1
1009
+ },
1010
+ "per_page": {
1011
+ "type": "integer",
1012
+ "minimum": 1,
1013
+ "maximum": 100
1014
+ },
1015
+ "run_id": {
1016
+ "type": "string"
1017
+ },
1018
+ "test_ids": {
1019
+ "type": [
1020
+ "array",
1021
+ "string"
1022
+ ],
1023
+ "items": {
1024
+ "type": "string"
1025
+ }
1026
+ },
1027
+ "filter_status": {
1028
+ "type": "string",
1029
+ "enum": [
1030
+ "passed",
1031
+ "failed",
1032
+ "skipped",
1033
+ "pending"
1034
+ ]
1035
+ },
1036
+ "filter_kind": {
1037
+ "type": "string",
1038
+ "enum": [
1039
+ "manual",
1040
+ "automated"
1041
+ ]
1042
+ },
1043
+ "filter_user": {
1044
+ "type": [
1045
+ "integer",
1046
+ "string"
1047
+ ]
1048
+ },
1049
+ "filter_priority": {
1050
+ "type": "string",
1051
+ "enum": [
1052
+ "low",
1053
+ "normal",
1054
+ "important",
1055
+ "high",
1056
+ "critical"
1057
+ ]
1058
+ },
1059
+ "filter_substatus": {
1060
+ "type": "string"
1061
+ },
1062
+ "filter_search": {
1063
+ "type": "string"
1064
+ },
1065
+ "filter_message": {
1066
+ "type": "boolean"
1067
+ },
1068
+ "filter_link": {
1069
+ "type": "boolean"
1070
+ },
1071
+ "filter_finished_at_date_range": {
1072
+ "type": "string"
1073
+ },
1074
+ "tags": {
1075
+ "type": [
1076
+ "array",
1077
+ "string"
1078
+ ],
1079
+ "items": {
1080
+ "type": "string"
1081
+ }
1082
+ },
1083
+ "labels": {
1084
+ "type": [
1085
+ "array",
1086
+ "string"
1087
+ ],
1088
+ "items": {
1089
+ "type": "string"
1090
+ }
1091
+ },
1092
+ "envs": {
1093
+ "type": [
1094
+ "array",
1095
+ "string"
1096
+ ],
1097
+ "items": {
1098
+ "type": "string"
1099
+ }
1100
+ },
1101
+ "rungroups": {
1102
+ "type": [
1103
+ "array",
1104
+ "string"
1105
+ ],
1106
+ "items": {
1107
+ "type": "string"
1108
+ }
1109
+ },
1110
+ "defects": {
1111
+ "type": "string",
1112
+ "enum": [
1113
+ "has_defects",
1114
+ "without_defects"
1115
+ ]
1116
+ }
1117
+ },
1118
+ "additionalProperties": false
1119
+ }
1120
+ },
1121
+ {
1122
+ "name": "testruns_get",
1123
+ "description": "Get testrun by ID",
1124
+ "inputSchema": {
1125
+ "type": "object",
1126
+ "properties": {
1127
+ "testrun_id": {
1128
+ "type": "integer"
1129
+ }
1130
+ },
1131
+ "required": [
1132
+ "testrun_id"
1133
+ ],
1134
+ "additionalProperties": false
1135
+ }
1136
+ },
1137
+ {
1138
+ "name": "testruns_create",
1139
+ "description": "Create testrun (/api/v2/{project_id}/testruns)",
1140
+ "inputSchema": {
1141
+ "type": "object",
1142
+ "properties": {
1143
+ "run_id": {
1144
+ "type": "string"
1145
+ },
1146
+ "test_id": {
1147
+ "type": "string"
1148
+ },
1149
+ "status": {
1150
+ "type": "string"
1151
+ },
1152
+ "message": {
1153
+ "type": "string"
1154
+ },
1155
+ "run_time": {
1156
+ "type": "number"
1157
+ },
1158
+ "assigned_to": {
1159
+ "type": "string"
1160
+ },
1161
+ "test_title": {
1162
+ "type": "string"
1163
+ },
1164
+ "automated": {
1165
+ "type": "boolean"
1166
+ }
1167
+ },
1168
+ "required": [
1169
+ "run_id"
1170
+ ],
1171
+ "additionalProperties": false
1172
+ }
1173
+ },
1174
+ {
1175
+ "name": "testruns_update",
1176
+ "description": "Update testrun (/api/v2/{project_id}/testruns/{id})",
1177
+ "inputSchema": {
1178
+ "type": "object",
1179
+ "properties": {
1180
+ "testrun_id": {
1181
+ "type": "integer"
1182
+ },
1183
+ "run_id": {
1184
+ "type": "string"
1185
+ },
1186
+ "test_id": {
1187
+ "type": "string"
1188
+ },
1189
+ "status": {
1190
+ "type": "string"
1191
+ },
1192
+ "message": {
1193
+ "type": "string"
1194
+ },
1195
+ "run_time": {
1196
+ "type": "number"
1197
+ },
1198
+ "assigned_to": {
1199
+ "type": "string"
1200
+ },
1201
+ "test_title": {
1202
+ "type": "string"
1203
+ },
1204
+ "automated": {
1205
+ "type": "boolean"
1206
+ }
1207
+ },
1208
+ "required": [
1209
+ "testrun_id"
1210
+ ],
1211
+ "additionalProperties": false
1212
+ }
1213
+ },
1214
+ {
1215
+ "name": "testruns_delete",
1216
+ "description": "Delete testrun (/api/v2/{project_id}/testruns/{id})",
1217
+ "inputSchema": {
1218
+ "type": "object",
1219
+ "properties": {
1220
+ "testrun_id": {
1221
+ "type": "integer"
1222
+ }
1223
+ },
1224
+ "required": [
1225
+ "testrun_id"
1226
+ ],
1227
+ "additionalProperties": false
1228
+ }
1229
+ },
1230
+ {
1231
+ "name": "testruns_search",
1232
+ "description": "Search testruns (delegates to testruns list; docs has no dedicated search parameter)",
1233
+ "inputSchema": {
1234
+ "type": "object",
1235
+ "properties": {
1236
+ "run_id": {
1237
+ "type": "string"
1238
+ },
1239
+ "test_ids": {
1240
+ "type": [
1241
+ "array",
1242
+ "string"
1243
+ ],
1244
+ "items": {
1245
+ "type": "string"
1246
+ }
1247
+ },
1248
+ "filter_status": {
1249
+ "type": "string",
1250
+ "enum": [
1251
+ "passed",
1252
+ "failed",
1253
+ "skipped",
1254
+ "pending"
1255
+ ]
1256
+ },
1257
+ "filter_kind": {
1258
+ "type": "string",
1259
+ "enum": [
1260
+ "manual",
1261
+ "automated"
1262
+ ]
1263
+ },
1264
+ "filter_user": {
1265
+ "type": [
1266
+ "integer",
1267
+ "string"
1268
+ ]
1269
+ },
1270
+ "filter_priority": {
1271
+ "type": "string",
1272
+ "enum": [
1273
+ "low",
1274
+ "normal",
1275
+ "important",
1276
+ "high",
1277
+ "critical"
1278
+ ]
1279
+ },
1280
+ "filter_substatus": {
1281
+ "type": "string"
1282
+ },
1283
+ "filter_search": {
1284
+ "type": "string"
1285
+ },
1286
+ "page": {
1287
+ "type": "integer",
1288
+ "minimum": 1
1289
+ },
1290
+ "per_page": {
1291
+ "type": "integer",
1292
+ "minimum": 1,
1293
+ "maximum": 100
1294
+ },
1295
+ "filter_message": {
1296
+ "type": "boolean"
1297
+ },
1298
+ "filter_link": {
1299
+ "type": "boolean"
1300
+ },
1301
+ "filter_finished_at_date_range": {
1302
+ "type": "string"
1303
+ },
1304
+ "tags": {
1305
+ "type": [
1306
+ "array",
1307
+ "string"
1308
+ ],
1309
+ "items": {
1310
+ "type": "string"
1311
+ }
1312
+ },
1313
+ "labels": {
1314
+ "type": [
1315
+ "array",
1316
+ "string"
1317
+ ],
1318
+ "items": {
1319
+ "type": "string"
1320
+ }
1321
+ },
1322
+ "envs": {
1323
+ "type": [
1324
+ "array",
1325
+ "string"
1326
+ ],
1327
+ "items": {
1328
+ "type": "string"
1329
+ }
1330
+ },
1331
+ "rungroups": {
1332
+ "type": [
1333
+ "array",
1334
+ "string"
1335
+ ],
1336
+ "items": {
1337
+ "type": "string"
1338
+ }
1339
+ },
1340
+ "defects": {
1341
+ "type": "string",
1342
+ "enum": [
1343
+ "has_defects",
1344
+ "without_defects"
1345
+ ]
1346
+ }
1347
+ },
1348
+ "additionalProperties": false
1349
+ }
1350
+ },
1351
+ {
1352
+ "name": "testruns_issues_list",
1353
+ "description": "List linked issues for a testrun (/api/v2/{project_id}/issues?testrun_id=...)",
1354
+ "inputSchema": {
1355
+ "type": "object",
1356
+ "properties": {
1357
+ "testrun_id": {
1358
+ "type": "integer"
1359
+ },
1360
+ "page": {
1361
+ "type": "integer",
1362
+ "minimum": 1
1363
+ },
1364
+ "per_page": {
1365
+ "type": "integer",
1366
+ "minimum": 1,
1367
+ "maximum": 100
1368
+ },
1369
+ "source": {
1370
+ "type": "string"
1371
+ }
1372
+ },
1373
+ "required": [
1374
+ "testrun_id"
1375
+ ],
1376
+ "additionalProperties": false
1377
+ }
1378
+ },
1379
+ {
1380
+ "name": "testruns_issues_link",
1381
+ "description": "Link issue to a testrun (/api/v2/{project_id}/issues)",
1382
+ "inputSchema": {
1383
+ "type": "object",
1384
+ "properties": {
1385
+ "testrun_id": {
1386
+ "type": "integer"
1387
+ },
1388
+ "url": {
1389
+ "type": "string"
1390
+ },
1391
+ "jira_id": {
1392
+ "type": "string"
1393
+ }
1394
+ },
1395
+ "required": [
1396
+ "testrun_id"
1397
+ ],
1398
+ "additionalProperties": false
1399
+ }
1400
+ },
1401
+ {
1402
+ "name": "testruns_issues_unlink",
1403
+ "description": "Unlink issue from a testrun (/api/v2/{project_id}/issues/{id})",
1404
+ "inputSchema": {
1405
+ "type": "object",
1406
+ "properties": {
1407
+ "issue_id": {
1408
+ "type": "integer"
1409
+ },
1410
+ "type": {
1411
+ "type": "string",
1412
+ "enum": [
1413
+ "issue",
1414
+ "jira_issue"
1415
+ ]
1416
+ }
1417
+ },
1418
+ "required": [
1419
+ "issue_id",
1420
+ "type"
1421
+ ],
1422
+ "additionalProperties": false
1423
+ }
1424
+ },
1425
+ {
1426
+ "name": "rungroups_list",
1427
+ "description": "List run groups as tree (/api/v2/{project_id}/rungroups)",
1428
+ "inputSchema": {
1429
+ "type": "object",
1430
+ "properties": {
1431
+ "page": {
1432
+ "type": "integer",
1433
+ "minimum": 1
1434
+ },
1435
+ "per_page": {
1436
+ "type": "integer",
1437
+ "minimum": 1,
1438
+ "maximum": 100
1439
+ }
1440
+ },
1441
+ "additionalProperties": false
1442
+ }
1443
+ },
1444
+ {
1445
+ "name": "rungroups_get",
1446
+ "description": "Get run group by ID",
1447
+ "inputSchema": {
1448
+ "type": "object",
1449
+ "properties": {
1450
+ "rungroup_id": {
1451
+ "type": "string"
1452
+ }
1453
+ },
1454
+ "required": [
1455
+ "rungroup_id"
1456
+ ],
1457
+ "additionalProperties": false
1458
+ }
1459
+ },
1460
+ {
1461
+ "name": "rungroups_create",
1462
+ "description": "Create run group (/api/v2/{project_id}/rungroups)",
1463
+ "inputSchema": {
1464
+ "type": "object",
1465
+ "properties": {
1466
+ "title": {
1467
+ "type": "string"
1468
+ },
1469
+ "description": {
1470
+ "type": "string"
1471
+ },
1472
+ "emoji": {
1473
+ "type": "string"
1474
+ },
1475
+ "kind": {
1476
+ "type": "string"
1477
+ },
1478
+ "pin": {
1479
+ "type": "boolean"
1480
+ },
1481
+ "status": {
1482
+ "type": "string"
1483
+ },
1484
+ "parent_id": {
1485
+ "type": "string"
1486
+ },
1487
+ "children": {
1488
+ "type": "array",
1489
+ "items": {}
1490
+ }
1491
+ },
1492
+ "required": [
1493
+ "title"
1494
+ ],
1495
+ "additionalProperties": false
1496
+ }
1497
+ },
1498
+ {
1499
+ "name": "rungroups_update",
1500
+ "description": "Update run group (/api/v2/{project_id}/rungroups/{id})",
1501
+ "inputSchema": {
1502
+ "type": "object",
1503
+ "properties": {
1504
+ "rungroup_id": {
1505
+ "type": "string"
1506
+ },
1507
+ "title": {
1508
+ "type": "string"
1509
+ },
1510
+ "description": {
1511
+ "type": "string"
1512
+ },
1513
+ "emoji": {
1514
+ "type": "string"
1515
+ },
1516
+ "kind": {
1517
+ "type": "string"
1518
+ },
1519
+ "pin": {
1520
+ "type": "boolean"
1521
+ },
1522
+ "status": {
1523
+ "type": "string"
1524
+ },
1525
+ "parent_id": {
1526
+ "type": "string"
1527
+ },
1528
+ "children": {
1529
+ "type": "array",
1530
+ "items": {}
1531
+ }
1532
+ },
1533
+ "required": [
1534
+ "rungroup_id"
1535
+ ],
1536
+ "additionalProperties": false
1537
+ }
1538
+ },
1539
+ {
1540
+ "name": "rungroups_delete",
1541
+ "description": "Delete run group (/api/v2/{project_id}/rungroups/{id})",
1542
+ "inputSchema": {
1543
+ "type": "object",
1544
+ "properties": {
1545
+ "rungroup_id": {
1546
+ "type": "string"
1547
+ }
1548
+ },
1549
+ "required": [
1550
+ "rungroup_id"
1551
+ ],
1552
+ "additionalProperties": false
1553
+ }
1554
+ },
1555
+ {
1556
+ "name": "steps_list",
1557
+ "description": "List steps (/api/v2/{project_id}/steps)",
1558
+ "inputSchema": {
1559
+ "type": "object",
1560
+ "properties": {
1561
+ "page": {
1562
+ "type": "integer",
1563
+ "minimum": 1
1564
+ },
1565
+ "per_page": {
1566
+ "type": "integer",
1567
+ "minimum": 1,
1568
+ "maximum": 100
1569
+ }
1570
+ },
1571
+ "additionalProperties": false
1572
+ }
1573
+ },
1574
+ {
1575
+ "name": "steps_get",
1576
+ "description": "Get step by ID",
1577
+ "inputSchema": {
1578
+ "type": "object",
1579
+ "properties": {
1580
+ "step_id": {
1581
+ "type": "integer"
1582
+ }
1583
+ },
1584
+ "required": [
1585
+ "step_id"
1586
+ ],
1587
+ "additionalProperties": false
1588
+ }
1589
+ },
1590
+ {
1591
+ "name": "steps_create",
1592
+ "description": "Create step (/api/v2/{project_id}/steps)",
1593
+ "inputSchema": {
1594
+ "type": "object",
1595
+ "properties": {
1596
+ "title": {
1597
+ "type": "string"
1598
+ },
1599
+ "description": {
1600
+ "type": "string"
1601
+ },
1602
+ "link": {
1603
+ "type": "array",
1604
+ "items": {
1605
+ "type": "object",
1606
+ "properties": {
1607
+ "action": {
1608
+ "type": "string",
1609
+ "enum": [
1610
+ "add",
1611
+ "remove"
1612
+ ]
1613
+ },
1614
+ "type": {
1615
+ "type": "string",
1616
+ "enum": [
1617
+ "label",
1618
+ "custom_field",
1619
+ "tag",
1620
+ "milestone",
1621
+ "issue",
1622
+ "jira"
1623
+ ]
1624
+ },
1625
+ "value": {
1626
+ "type": "string"
1627
+ }
1628
+ },
1629
+ "required": [
1630
+ "action",
1631
+ "type",
1632
+ "value"
1633
+ ],
1634
+ "additionalProperties": false
1635
+ }
1636
+ }
1637
+ },
1638
+ "required": [
1639
+ "title"
1640
+ ],
1641
+ "additionalProperties": false
1642
+ }
1643
+ },
1644
+ {
1645
+ "name": "steps_update",
1646
+ "description": "Update step (/api/v2/{project_id}/steps/{id})",
1647
+ "inputSchema": {
1648
+ "type": "object",
1649
+ "properties": {
1650
+ "step_id": {
1651
+ "type": "integer"
1652
+ },
1653
+ "title": {
1654
+ "type": "string"
1655
+ },
1656
+ "description": {
1657
+ "type": "string"
1658
+ },
1659
+ "link": {
1660
+ "type": "array",
1661
+ "items": {
1662
+ "type": "object",
1663
+ "properties": {
1664
+ "action": {
1665
+ "type": "string",
1666
+ "enum": [
1667
+ "add",
1668
+ "remove"
1669
+ ]
1670
+ },
1671
+ "type": {
1672
+ "type": "string",
1673
+ "enum": [
1674
+ "label",
1675
+ "custom_field",
1676
+ "tag",
1677
+ "milestone",
1678
+ "issue",
1679
+ "jira"
1680
+ ]
1681
+ },
1682
+ "value": {
1683
+ "type": "string"
1684
+ }
1685
+ },
1686
+ "required": [
1687
+ "action",
1688
+ "type",
1689
+ "value"
1690
+ ],
1691
+ "additionalProperties": false
1692
+ }
1693
+ }
1694
+ },
1695
+ "required": [
1696
+ "step_id"
1697
+ ],
1698
+ "additionalProperties": false
1699
+ }
1700
+ },
1701
+ {
1702
+ "name": "steps_delete",
1703
+ "description": "Delete step (/api/v2/{project_id}/steps/{id})",
1704
+ "inputSchema": {
1705
+ "type": "object",
1706
+ "properties": {
1707
+ "step_id": {
1708
+ "type": "integer"
1709
+ }
1710
+ },
1711
+ "required": [
1712
+ "step_id"
1713
+ ],
1714
+ "additionalProperties": false
1715
+ }
1716
+ },
1717
+ {
1718
+ "name": "snippets_list",
1719
+ "description": "List snippets (/api/v2/{project_id}/snippets)",
1720
+ "inputSchema": {
1721
+ "type": "object",
1722
+ "properties": {
1723
+ "page": {
1724
+ "type": "integer",
1725
+ "minimum": 1
1726
+ },
1727
+ "per_page": {
1728
+ "type": "integer",
1729
+ "minimum": 1,
1730
+ "maximum": 100
1731
+ }
1732
+ },
1733
+ "additionalProperties": false
1734
+ }
1735
+ },
1736
+ {
1737
+ "name": "snippets_get",
1738
+ "description": "Get snippet by ID",
1739
+ "inputSchema": {
1740
+ "type": "object",
1741
+ "properties": {
1742
+ "snippet_id": {
1743
+ "type": "integer"
1744
+ }
1745
+ },
1746
+ "required": [
1747
+ "snippet_id"
1748
+ ],
1749
+ "additionalProperties": false
1750
+ }
1751
+ },
1752
+ {
1753
+ "name": "snippets_create",
1754
+ "description": "Create snippet (/api/v2/{project_id}/snippets)",
1755
+ "inputSchema": {
1756
+ "type": "object",
1757
+ "properties": {
1758
+ "title": {
1759
+ "type": "string"
1760
+ },
1761
+ "description": {
1762
+ "type": "string"
1763
+ },
1764
+ "link": {
1765
+ "type": "array",
1766
+ "items": {
1767
+ "type": "object",
1768
+ "properties": {
1769
+ "action": {
1770
+ "type": "string",
1771
+ "enum": [
1772
+ "add",
1773
+ "remove"
1774
+ ]
1775
+ },
1776
+ "type": {
1777
+ "type": "string",
1778
+ "enum": [
1779
+ "label",
1780
+ "custom_field",
1781
+ "tag",
1782
+ "milestone",
1783
+ "issue",
1784
+ "jira"
1785
+ ]
1786
+ },
1787
+ "value": {
1788
+ "type": "string"
1789
+ }
1790
+ },
1791
+ "required": [
1792
+ "action",
1793
+ "type",
1794
+ "value"
1795
+ ],
1796
+ "additionalProperties": false
1797
+ }
1798
+ }
1799
+ },
1800
+ "required": [
1801
+ "title"
1802
+ ],
1803
+ "additionalProperties": false
1804
+ }
1805
+ },
1806
+ {
1807
+ "name": "snippets_update",
1808
+ "description": "Update snippet (/api/v2/{project_id}/snippets/{id})",
1809
+ "inputSchema": {
1810
+ "type": "object",
1811
+ "properties": {
1812
+ "snippet_id": {
1813
+ "type": "integer"
1814
+ },
1815
+ "title": {
1816
+ "type": "string"
1817
+ },
1818
+ "description": {
1819
+ "type": "string"
1820
+ },
1821
+ "link": {
1822
+ "type": "array",
1823
+ "items": {
1824
+ "type": "object",
1825
+ "properties": {
1826
+ "action": {
1827
+ "type": "string",
1828
+ "enum": [
1829
+ "add",
1830
+ "remove"
1831
+ ]
1832
+ },
1833
+ "type": {
1834
+ "type": "string",
1835
+ "enum": [
1836
+ "label",
1837
+ "custom_field",
1838
+ "tag",
1839
+ "milestone",
1840
+ "issue",
1841
+ "jira"
1842
+ ]
1843
+ },
1844
+ "value": {
1845
+ "type": "string"
1846
+ }
1847
+ },
1848
+ "required": [
1849
+ "action",
1850
+ "type",
1851
+ "value"
1852
+ ],
1853
+ "additionalProperties": false
1854
+ }
1855
+ }
1856
+ },
1857
+ "required": [
1858
+ "snippet_id"
1859
+ ],
1860
+ "additionalProperties": false
1861
+ }
1862
+ },
1863
+ {
1864
+ "name": "snippets_delete",
1865
+ "description": "Delete snippet (/api/v2/{project_id}/snippets/{id})",
1866
+ "inputSchema": {
1867
+ "type": "object",
1868
+ "properties": {
1869
+ "snippet_id": {
1870
+ "type": "integer"
1871
+ }
1872
+ },
1873
+ "required": [
1874
+ "snippet_id"
1875
+ ],
1876
+ "additionalProperties": false
1877
+ }
1878
+ },
1879
+ {
1880
+ "name": "labels_list",
1881
+ "description": "List labels (/api/v2/{project_id}/labels)",
1882
+ "inputSchema": {
1883
+ "type": "object",
1884
+ "properties": {
1885
+ "page": {
1886
+ "type": "integer",
1887
+ "minimum": 1
1888
+ },
1889
+ "per_page": {
1890
+ "type": "integer",
1891
+ "minimum": 1,
1892
+ "maximum": 100
1893
+ }
1894
+ },
1895
+ "additionalProperties": false
1896
+ }
1897
+ },
1898
+ {
1899
+ "name": "labels_get",
1900
+ "description": "Get label by slug",
1901
+ "inputSchema": {
1902
+ "type": "object",
1903
+ "properties": {
1904
+ "label_id": {
1905
+ "type": "string"
1906
+ }
1907
+ },
1908
+ "required": [
1909
+ "label_id"
1910
+ ],
1911
+ "additionalProperties": false
1912
+ }
1913
+ },
1914
+ {
1915
+ "name": "labels_create",
1916
+ "description": "Create label (/api/v2/{project_id}/labels)",
1917
+ "inputSchema": {
1918
+ "type": "object",
1919
+ "properties": {
1920
+ "title": {
1921
+ "type": "string"
1922
+ },
1923
+ "color": {
1924
+ "type": "string"
1925
+ },
1926
+ "visibility": {
1927
+ "type": "array",
1928
+ "items": {
1929
+ "type": "string",
1930
+ "enum": [
1931
+ "filter",
1932
+ "list"
1933
+ ]
1934
+ }
1935
+ },
1936
+ "scope": {
1937
+ "type": "array",
1938
+ "items": {
1939
+ "type": "string",
1940
+ "enum": [
1941
+ "tests",
1942
+ "suites",
1943
+ "runs",
1944
+ "plans",
1945
+ "steps",
1946
+ "templates"
1947
+ ]
1948
+ }
1949
+ },
1950
+ "field": {
1951
+ "type": "object"
1952
+ }
1953
+ },
1954
+ "required": [
1955
+ "title"
1956
+ ],
1957
+ "additionalProperties": false
1958
+ }
1959
+ },
1960
+ {
1961
+ "name": "labels_update",
1962
+ "description": "Update label (/api/v2/{project_id}/labels/{id})",
1963
+ "inputSchema": {
1964
+ "type": "object",
1965
+ "properties": {
1966
+ "label_id": {
1967
+ "type": "string"
1968
+ },
1969
+ "title": {
1970
+ "type": "string"
1971
+ },
1972
+ "color": {
1973
+ "type": "string"
1974
+ },
1975
+ "visibility": {
1976
+ "type": "array",
1977
+ "items": {
1978
+ "type": "string",
1979
+ "enum": [
1980
+ "filter",
1981
+ "list"
1982
+ ]
1983
+ }
1984
+ },
1985
+ "scope": {
1986
+ "type": "array",
1987
+ "items": {
1988
+ "type": "string",
1989
+ "enum": [
1990
+ "tests",
1991
+ "suites",
1992
+ "runs",
1993
+ "plans",
1994
+ "steps",
1995
+ "templates"
1996
+ ]
1997
+ }
1998
+ },
1999
+ "field": {
2000
+ "type": "object"
2001
+ }
2002
+ },
2003
+ "required": [
2004
+ "label_id"
2005
+ ],
2006
+ "additionalProperties": false
2007
+ }
2008
+ },
2009
+ {
2010
+ "name": "labels_delete",
2011
+ "description": "Delete label (/api/v2/{project_id}/labels/{id})",
2012
+ "inputSchema": {
2013
+ "type": "object",
2014
+ "properties": {
2015
+ "label_id": {
2016
+ "type": "string"
2017
+ }
2018
+ },
2019
+ "required": [
2020
+ "label_id"
2021
+ ],
2022
+ "additionalProperties": false
2023
+ }
2024
+ },
2025
+ {
2026
+ "name": "tags_list",
2027
+ "description": "List tags with counts (/api/v2/{project_id}/tags)",
2028
+ "inputSchema": {
2029
+ "type": "object",
2030
+ "properties": {},
2031
+ "additionalProperties": false
2032
+ }
2033
+ },
2034
+ {
2035
+ "name": "tags_get",
2036
+ "description": "Get tests by tag title (/api/v2/{project_id}/tags/{id})",
2037
+ "inputSchema": {
2038
+ "type": "object",
2039
+ "properties": {
2040
+ "tag_id": {
2041
+ "type": "string"
2042
+ }
2043
+ },
2044
+ "required": [
2045
+ "tag_id"
2046
+ ],
2047
+ "additionalProperties": false
2048
+ }
2049
+ },
2050
+ {
2051
+ "name": "tags_search",
2052
+ "description": "Search by tag title (delegates to tags_get)",
2053
+ "inputSchema": {
2054
+ "type": "object",
2055
+ "properties": {
2056
+ "tag_id": {
2057
+ "type": "string"
2058
+ },
2059
+ "query": {
2060
+ "type": "string"
2061
+ }
2062
+ },
2063
+ "additionalProperties": false
2064
+ }
2065
+ },
2066
+ {
2067
+ "name": "milestones_list",
2068
+ "description": "List milestones (/api/v2/{project_id}/milestones)",
2069
+ "inputSchema": {
2070
+ "type": "object",
2071
+ "properties": {
2072
+ "page": {
2073
+ "type": "integer",
2074
+ "minimum": 1
2075
+ },
2076
+ "per_page": {
2077
+ "type": "integer",
2078
+ "minimum": 1,
2079
+ "maximum": 100
2080
+ },
2081
+ "type": {
2082
+ "type": "string",
2083
+ "description": "Filter by milestone type (title), e.g. Sprint or Release."
2084
+ },
2085
+ "status": {
2086
+ "type": "string",
2087
+ "enum": [
2088
+ "created",
2089
+ "active",
2090
+ "closed"
2091
+ ]
2092
+ }
2093
+ },
2094
+ "additionalProperties": false
2095
+ }
2096
+ },
2097
+ {
2098
+ "name": "milestones_get",
2099
+ "description": "Get milestone by ID",
2100
+ "inputSchema": {
2101
+ "type": "object",
2102
+ "properties": {
2103
+ "milestone_id": {
2104
+ "type": "string"
2105
+ }
2106
+ },
2107
+ "required": [
2108
+ "milestone_id"
2109
+ ],
2110
+ "additionalProperties": false
2111
+ }
2112
+ },
2113
+ {
2114
+ "name": "issues_list",
2115
+ "description": "List linked issues (/api/v2/{project_id}/issues)",
2116
+ "inputSchema": {
2117
+ "type": "object",
2118
+ "properties": {
2119
+ "page": {
2120
+ "type": "integer",
2121
+ "minimum": 1
2122
+ },
2123
+ "per_page": {
2124
+ "type": "integer",
2125
+ "minimum": 1,
2126
+ "maximum": 100
2127
+ },
2128
+ "test_id": {
2129
+ "type": "string"
2130
+ },
2131
+ "suite_id": {
2132
+ "type": "string"
2133
+ },
2134
+ "run_id": {
2135
+ "type": "string"
2136
+ },
2137
+ "testrun_id": {
2138
+ "type": "integer"
2139
+ },
2140
+ "plan_id": {
2141
+ "type": "string"
2142
+ },
2143
+ "source": {
2144
+ "type": "string"
2145
+ }
2146
+ },
2147
+ "additionalProperties": false
2148
+ }
2149
+ },
2150
+ {
2151
+ "name": "issues_create",
2152
+ "description": "Link issue to resource (/api/v2/{project_id}/issues)",
2153
+ "inputSchema": {
2154
+ "type": "object",
2155
+ "properties": {
2156
+ "test_id": {
2157
+ "type": "string"
2158
+ },
2159
+ "suite_id": {
2160
+ "type": "string"
2161
+ },
2162
+ "run_id": {
2163
+ "type": "string"
2164
+ },
2165
+ "testrun_id": {
2166
+ "type": "integer"
2167
+ },
2168
+ "plan_id": {
2169
+ "type": "string"
2170
+ },
2171
+ "url": {
2172
+ "type": "string"
2173
+ },
2174
+ "jira_id": {
2175
+ "type": "string"
2176
+ }
2177
+ },
2178
+ "additionalProperties": false
2179
+ }
2180
+ },
2181
+ {
2182
+ "name": "issues_delete",
2183
+ "description": "Unlink issue (/api/v2/{project_id}/issues/{id})",
2184
+ "inputSchema": {
2185
+ "type": "object",
2186
+ "properties": {
2187
+ "issue_id": {
2188
+ "type": "integer"
2189
+ },
2190
+ "type": {
2191
+ "type": "string",
2192
+ "enum": [
2193
+ "issue",
2194
+ "jira_issue"
2195
+ ]
2196
+ }
2197
+ },
2198
+ "required": [
2199
+ "issue_id",
2200
+ "type"
2201
+ ],
2202
+ "additionalProperties": false
2203
+ }
2204
+ },
2205
+ {
2206
+ "name": "issues_search",
2207
+ "description": "Search issues (delegates to issues_list filters)",
2208
+ "inputSchema": {
2209
+ "type": "object",
2210
+ "properties": {
2211
+ "page": {
2212
+ "type": "integer",
2213
+ "minimum": 1
2214
+ },
2215
+ "per_page": {
2216
+ "type": "integer",
2217
+ "minimum": 1,
2218
+ "maximum": 100
2219
+ },
2220
+ "test_id": {
2221
+ "type": "string"
2222
+ },
2223
+ "suite_id": {
2224
+ "type": "string"
2225
+ },
2226
+ "run_id": {
2227
+ "type": "string"
2228
+ },
2229
+ "testrun_id": {
2230
+ "type": "integer"
2231
+ },
2232
+ "plan_id": {
2233
+ "type": "string"
2234
+ },
2235
+ "source": {
2236
+ "type": "string"
2237
+ }
2238
+ },
2239
+ "additionalProperties": false
2240
+ }
2241
+ },
2242
+ {
2243
+ "name": "tests_attachments_list",
2244
+ "description": "List attachments for a test (/api/v2/{project_id}/attachments?test_id=...)",
2245
+ "inputSchema": {
2246
+ "type": "object",
2247
+ "properties": {
2248
+ "test_id": {
2249
+ "type": "string"
2250
+ }
2251
+ },
2252
+ "required": [
2253
+ "test_id"
2254
+ ],
2255
+ "additionalProperties": false
2256
+ }
2257
+ },
2258
+ {
2259
+ "name": "tests_attachments_upload",
2260
+ "description": "Upload one attachment to a test (/api/v2/{project_id}/attachments?test_id=...)",
2261
+ "inputSchema": {
2262
+ "type": "object",
2263
+ "properties": {
2264
+ "test_id": {
2265
+ "type": "string"
2266
+ },
2267
+ "file_path": {
2268
+ "type": "string",
2269
+ "description": "Local path to the file that will be sent as multipart/form-data field \"file\"."
2270
+ }
2271
+ },
2272
+ "required": [
2273
+ "test_id",
2274
+ "file_path"
2275
+ ],
2276
+ "additionalProperties": false
2277
+ }
2278
+ },
2279
+ {
2280
+ "name": "tests_attachments_delete",
2281
+ "description": "Delete attachment from a test (/api/v2/{project_id}/attachments/{id}?test_id=...)",
2282
+ "inputSchema": {
2283
+ "type": "object",
2284
+ "properties": {
2285
+ "test_id": {
2286
+ "type": "string"
2287
+ },
2288
+ "attachment_id": {
2289
+ "type": "string"
2290
+ }
2291
+ },
2292
+ "required": [
2293
+ "test_id",
2294
+ "attachment_id"
2295
+ ],
2296
+ "additionalProperties": false
2297
+ }
2298
+ },
2299
+ {
2300
+ "name": "suites_attachments_list",
2301
+ "description": "List attachments for a suite (/api/v2/{project_id}/attachments?suite_id=...)",
2302
+ "inputSchema": {
2303
+ "type": "object",
2304
+ "properties": {
2305
+ "suite_id": {
2306
+ "type": "string"
2307
+ }
2308
+ },
2309
+ "required": [
2310
+ "suite_id"
2311
+ ],
2312
+ "additionalProperties": false
2313
+ }
2314
+ },
2315
+ {
2316
+ "name": "suites_attachments_upload",
2317
+ "description": "Upload one attachment to a suite (/api/v2/{project_id}/attachments?suite_id=...)",
2318
+ "inputSchema": {
2319
+ "type": "object",
2320
+ "properties": {
2321
+ "suite_id": {
2322
+ "type": "string"
2323
+ },
2324
+ "file_path": {
2325
+ "type": "string",
2326
+ "description": "Local path to the file that will be sent as multipart/form-data field \"file\"."
2327
+ }
2328
+ },
2329
+ "required": [
2330
+ "suite_id",
2331
+ "file_path"
2332
+ ],
2333
+ "additionalProperties": false
2334
+ }
2335
+ },
2336
+ {
2337
+ "name": "suites_attachments_delete",
2338
+ "description": "Delete attachment from a suite (/api/v2/{project_id}/attachments/{id}?suite_id=...)",
2339
+ "inputSchema": {
2340
+ "type": "object",
2341
+ "properties": {
2342
+ "suite_id": {
2343
+ "type": "string"
2344
+ },
2345
+ "attachment_id": {
2346
+ "type": "string"
2347
+ }
2348
+ },
2349
+ "required": [
2350
+ "suite_id",
2351
+ "attachment_id"
2352
+ ],
2353
+ "additionalProperties": false
2354
+ }
2355
+ },
2356
+ {
2357
+ "name": "testruns_attachments_list",
2358
+ "description": "List attachments for a testrun (/api/v2/{project_id}/attachments?testrun_id=...)",
2359
+ "inputSchema": {
2360
+ "type": "object",
2361
+ "properties": {
2362
+ "testrun_id": {
2363
+ "type": "integer"
2364
+ }
2365
+ },
2366
+ "required": [
2367
+ "testrun_id"
2368
+ ],
2369
+ "additionalProperties": false
2370
+ }
2371
+ },
2372
+ {
2373
+ "name": "testruns_attachments_upload",
2374
+ "description": "Upload one attachment to a testrun (/api/v2/{project_id}/attachments?testrun_id=...)",
2375
+ "inputSchema": {
2376
+ "type": "object",
2377
+ "properties": {
2378
+ "testrun_id": {
2379
+ "type": "integer"
2380
+ },
2381
+ "file_path": {
2382
+ "type": "string",
2383
+ "description": "Local path to the file that will be sent as multipart/form-data field \"file\"."
2384
+ }
2385
+ },
2386
+ "required": [
2387
+ "testrun_id",
2388
+ "file_path"
2389
+ ],
2390
+ "additionalProperties": false
2391
+ }
2392
+ },
2393
+ {
2394
+ "name": "testruns_attachments_delete",
2395
+ "description": "Delete attachment from a testrun (/api/v2/{project_id}/attachments/{id}?testrun_id=...)",
2396
+ "inputSchema": {
2397
+ "type": "object",
2398
+ "properties": {
2399
+ "testrun_id": {
2400
+ "type": "integer"
2401
+ },
2402
+ "attachment_id": {
2403
+ "type": "string"
2404
+ }
2405
+ },
2406
+ "required": [
2407
+ "testrun_id",
2408
+ "attachment_id"
2409
+ ],
2410
+ "additionalProperties": false
2411
+ }
2412
+ },
2413
+ {
2414
+ "name": "plans_list",
2415
+ "description": "List plans (/api/v2/{project_id}/plans)",
2416
+ "inputSchema": {
2417
+ "type": "object",
2418
+ "properties": {
2419
+ "page": {
2420
+ "type": "integer",
2421
+ "minimum": 1
2422
+ },
2423
+ "per_page": {
2424
+ "type": "integer",
2425
+ "minimum": 1,
2426
+ "maximum": 100
2427
+ },
2428
+ "kind": {
2429
+ "type": "string",
2430
+ "enum": [
2431
+ "manual",
2432
+ "automated",
2433
+ "mixed"
2434
+ ]
2435
+ },
2436
+ "hidden": {
2437
+ "type": "boolean"
2438
+ },
2439
+ "labels": {
2440
+ "type": "array",
2441
+ "items": {
2442
+ "type": "string"
2443
+ }
2444
+ },
2445
+ "search_text": {
2446
+ "type": "string"
2447
+ }
2448
+ },
2449
+ "additionalProperties": false
2450
+ }
2451
+ },
2452
+ {
2453
+ "name": "plans_get",
2454
+ "description": "Get plan by ID",
2455
+ "inputSchema": {
2456
+ "type": "object",
2457
+ "properties": {
2458
+ "plan_id": {
2459
+ "type": "string"
2460
+ }
2461
+ },
2462
+ "required": [
2463
+ "plan_id"
2464
+ ],
2465
+ "additionalProperties": false
2466
+ }
2467
+ },
2468
+ {
2469
+ "name": "plans_create",
2470
+ "description": "Create plan (/api/v2/{project_id}/plans). TQL (Testomat.io Query Language) is a string expression passed in `tql` to select tests included in a plan. Supported syntax includes logical operators `and`, `or`, `not`, equality operators `==` and `!=`, list membership `in [...]`, `%` for partial text match on supported text fields, and parentheses for grouping. Ordered comparisons `>`, `<`, `>=`, `<=` are for ordered fields such as `priority`, dates, and numeric counters/durations. Use quotes for string values, for example `state == 'automated'`. Plan TQL uses documented test variables: `tag`, `label`, `priority`, `issue`, `jira`, `state`, `status`, `custom_status`, `created_at`, `updated_at`, `last_run_at`, `executed_at`, `created_by`, `assigned_to`, `suite`, `test`, `shared`, `milestone`. Documented examples: `priority == 'high'`, `priority >= 'normal'`, `state == 'automated'`, `tag in ['smoke', 'stage1'] and status == 'failed'`, `suite % 'Checkout'`, `test % 'User login'`, `custom_status % 'issue'`, `created_at < 1.month_ago`, `jira in ['JST-1', 'JST-2']`, `milestone == 'Sprint 1'`. Use `tql` when you want the API to resolve matching tests automatically instead of sending explicit `test_ids`. Do not invent undocumented fields or syntax. If a query fails, simplify it to one documented predicate.",
2471
+ "inputSchema": {
2472
+ "type": "object",
2473
+ "properties": {
2474
+ "title": {
2475
+ "type": "string"
2476
+ },
2477
+ "description": {
2478
+ "type": "string"
2479
+ },
2480
+ "kind": {
2481
+ "type": "string",
2482
+ "enum": [
2483
+ "manual",
2484
+ "automated",
2485
+ "mixed"
2486
+ ]
2487
+ },
2488
+ "hidden": {
2489
+ "type": "boolean"
2490
+ },
2491
+ "as_manual": {
2492
+ "type": "boolean"
2493
+ },
2494
+ "test_ids": {
2495
+ "type": "array",
2496
+ "items": {
2497
+ "type": "string"
2498
+ },
2499
+ "description": "List of test IDs (8-char) to include in the plan. If omitted, all tests matching the plan kind are included."
2500
+ },
2501
+ "suite_ids": {
2502
+ "type": "array",
2503
+ "items": {
2504
+ "type": "string"
2505
+ },
2506
+ "description": "List of suite IDs (8-char) to include in the plan. If omitted, all suites are considered."
2507
+ },
2508
+ "tql": {
2509
+ "type": "string",
2510
+ "description": "TQL filter for selecting tests included in the plan. Documented test variables: `tag`, `label`, `priority`, `issue`, `jira`, `state`, `status`, `custom_status`, `created_at`, `updated_at`, `last_run_at`, `executed_at`, `created_by`, `assigned_to`, `suite`, `test`, `shared`, `milestone`. Examples: `priority == 'high'`, `priority >= 'normal'`, `state == 'automated'`, `tag in ['smoke', 'stage1'] and status == 'failed'`, `suite % 'Checkout'`, `test % 'User login'`, `custom_status % 'issue'`, `created_at < 1.month_ago`, `jira in ['JST-1', 'JST-2']`, `milestone == 'Sprint 1'`."
2511
+ },
2512
+ "link": {
2513
+ "type": "array",
2514
+ "items": {
2515
+ "type": "object",
2516
+ "properties": {
2517
+ "action": {
2518
+ "type": "string",
2519
+ "enum": [
2520
+ "add",
2521
+ "remove"
2522
+ ]
2523
+ },
2524
+ "type": {
2525
+ "type": "string",
2526
+ "enum": [
2527
+ "label",
2528
+ "custom_field",
2529
+ "tag",
2530
+ "milestone",
2531
+ "issue",
2532
+ "jira"
2533
+ ]
2534
+ },
2535
+ "value": {
2536
+ "type": "string"
2537
+ }
2538
+ },
2539
+ "required": [
2540
+ "action",
2541
+ "type",
2542
+ "value"
2543
+ ],
2544
+ "additionalProperties": false
2545
+ }
2546
+ }
2547
+ },
2548
+ "required": [
2549
+ "title"
2550
+ ],
2551
+ "additionalProperties": false
2552
+ }
2553
+ },
2554
+ {
2555
+ "name": "plans_update",
2556
+ "description": "Update plan (/api/v2/{project_id}/plans/{id}). TQL (Testomat.io Query Language) is a string expression passed in `tql` to select tests included in a plan. Supported syntax includes logical operators `and`, `or`, `not`, equality operators `==` and `!=`, list membership `in [...]`, `%` for partial text match on supported text fields, and parentheses for grouping. Ordered comparisons `>`, `<`, `>=`, `<=` are for ordered fields such as `priority`, dates, and numeric counters/durations. Use quotes for string values, for example `state == 'automated'`. Plan TQL uses documented test variables: `tag`, `label`, `priority`, `issue`, `jira`, `state`, `status`, `custom_status`, `created_at`, `updated_at`, `last_run_at`, `executed_at`, `created_by`, `assigned_to`, `suite`, `test`, `shared`, `milestone`. Documented examples: `priority == 'high'`, `priority >= 'normal'`, `state == 'automated'`, `tag in ['smoke', 'stage1'] and status == 'failed'`, `suite % 'Checkout'`, `test % 'User login'`, `custom_status % 'issue'`, `created_at < 1.month_ago`, `jira in ['JST-1', 'JST-2']`, `milestone == 'Sprint 1'`. Use `tql` when you want the API to resolve matching tests automatically instead of sending explicit `test_ids`. Do not invent undocumented fields or syntax. If a query fails, simplify it to one documented predicate.",
2557
+ "inputSchema": {
2558
+ "type": "object",
2559
+ "properties": {
2560
+ "plan_id": {
2561
+ "type": "string"
2562
+ },
2563
+ "title": {
2564
+ "type": "string"
2565
+ },
2566
+ "description": {
2567
+ "type": "string"
2568
+ },
2569
+ "kind": {
2570
+ "type": "string",
2571
+ "enum": [
2572
+ "manual",
2573
+ "automated",
2574
+ "mixed"
2575
+ ]
2576
+ },
2577
+ "hidden": {
2578
+ "type": "boolean"
2579
+ },
2580
+ "as_manual": {
2581
+ "type": "boolean"
2582
+ },
2583
+ "test_ids": {
2584
+ "type": "array",
2585
+ "items": {
2586
+ "type": "string"
2587
+ },
2588
+ "description": "List of test IDs (8-char) to include in the plan. If omitted, all tests matching the plan kind are included."
2589
+ },
2590
+ "suite_ids": {
2591
+ "type": "array",
2592
+ "items": {
2593
+ "type": "string"
2594
+ },
2595
+ "description": "List of suite IDs (8-char) to include in the plan. If omitted, all suites are considered."
2596
+ },
2597
+ "tql": {
2598
+ "type": "string",
2599
+ "description": "TQL filter for selecting tests included in the plan. Documented test variables: `tag`, `label`, `priority`, `issue`, `jira`, `state`, `status`, `custom_status`, `created_at`, `updated_at`, `last_run_at`, `executed_at`, `created_by`, `assigned_to`, `suite`, `test`, `shared`, `milestone`. Examples: `priority == 'high'`, `priority >= 'normal'`, `state == 'automated'`, `tag in ['smoke', 'stage1'] and status == 'failed'`, `suite % 'Checkout'`, `test % 'User login'`, `custom_status % 'issue'`, `created_at < 1.month_ago`, `jira in ['JST-1', 'JST-2']`, `milestone == 'Sprint 1'`."
2600
+ },
2601
+ "link": {
2602
+ "type": "array",
2603
+ "items": {
2604
+ "type": "object",
2605
+ "properties": {
2606
+ "action": {
2607
+ "type": "string",
2608
+ "enum": [
2609
+ "add",
2610
+ "remove"
2611
+ ]
2612
+ },
2613
+ "type": {
2614
+ "type": "string",
2615
+ "enum": [
2616
+ "label",
2617
+ "custom_field",
2618
+ "tag",
2619
+ "milestone",
2620
+ "issue",
2621
+ "jira"
2622
+ ]
2623
+ },
2624
+ "value": {
2625
+ "type": "string"
2626
+ }
2627
+ },
2628
+ "required": [
2629
+ "action",
2630
+ "type",
2631
+ "value"
2632
+ ],
2633
+ "additionalProperties": false
2634
+ }
2635
+ }
2636
+ },
2637
+ "required": [
2638
+ "plan_id"
2639
+ ],
2640
+ "additionalProperties": false
2641
+ }
2642
+ },
2643
+ {
2644
+ "name": "plans_delete",
2645
+ "description": "Delete plan",
2646
+ "inputSchema": {
2647
+ "type": "object",
2648
+ "properties": {
2649
+ "plan_id": {
2650
+ "type": "string"
2651
+ }
2652
+ },
2653
+ "required": [
2654
+ "plan_id"
2655
+ ],
2656
+ "additionalProperties": false
2657
+ }
2658
+ },
2659
+ {
2660
+ "name": "plans_search",
2661
+ "description": "Search plans (delegates to plans list; docs has no dedicated search parameter)",
2662
+ "inputSchema": {
2663
+ "type": "object",
2664
+ "properties": {
2665
+ "search_text": {
2666
+ "type": "string"
2667
+ },
2668
+ "page": {
2669
+ "type": "integer",
2670
+ "minimum": 1
2671
+ },
2672
+ "per_page": {
2673
+ "type": "integer",
2674
+ "minimum": 1,
2675
+ "maximum": 100
2676
+ },
2677
+ "kind": {
2678
+ "type": "string",
2679
+ "enum": [
2680
+ "manual",
2681
+ "automated",
2682
+ "mixed"
2683
+ ]
2684
+ },
2685
+ "hidden": {
2686
+ "type": "boolean"
2687
+ },
2688
+ "labels": {
2689
+ "type": "array",
2690
+ "items": {
2691
+ "type": "string"
2692
+ }
2693
+ }
2694
+ },
2695
+ "additionalProperties": false
2696
+ }
2697
+ },
2698
+ {
2699
+ "name": "plans_issues_list",
2700
+ "description": "List linked issues for a plan (/api/v2/{project_id}/issues?plan_id=...)",
2701
+ "inputSchema": {
2702
+ "type": "object",
2703
+ "properties": {
2704
+ "plan_id": {
2705
+ "type": "string"
2706
+ },
2707
+ "page": {
2708
+ "type": "integer",
2709
+ "minimum": 1
2710
+ },
2711
+ "per_page": {
2712
+ "type": "integer",
2713
+ "minimum": 1,
2714
+ "maximum": 100
2715
+ },
2716
+ "source": {
2717
+ "type": "string"
2718
+ }
2719
+ },
2720
+ "required": [
2721
+ "plan_id"
2722
+ ],
2723
+ "additionalProperties": false
2724
+ }
2725
+ },
2726
+ {
2727
+ "name": "plans_issues_link",
2728
+ "description": "Link issue to a plan (/api/v2/{project_id}/issues)",
2729
+ "inputSchema": {
2730
+ "type": "object",
2731
+ "properties": {
2732
+ "plan_id": {
2733
+ "type": "string"
2734
+ },
2735
+ "url": {
2736
+ "type": "string"
2737
+ },
2738
+ "jira_id": {
2739
+ "type": "string"
2740
+ }
2741
+ },
2742
+ "required": [
2743
+ "plan_id"
2744
+ ],
2745
+ "additionalProperties": false
2746
+ }
2747
+ },
2748
+ {
2749
+ "name": "plans_issues_unlink",
2750
+ "description": "Unlink issue from a plan (/api/v2/{project_id}/issues/{id})",
2751
+ "inputSchema": {
2752
+ "type": "object",
2753
+ "properties": {
2754
+ "issue_id": {
2755
+ "type": "integer"
2756
+ },
2757
+ "type": {
2758
+ "type": "string",
2759
+ "enum": [
2760
+ "issue",
2761
+ "jira_issue"
2762
+ ]
2763
+ }
2764
+ },
2765
+ "required": [
2766
+ "issue_id",
2767
+ "type"
2768
+ ],
2769
+ "additionalProperties": false
2770
+ }
2771
+ },
2772
+ {
2773
+ "name": "requirements_list",
2774
+ "description": "List requirements (/api/v2/{project_id}/requirements)",
2775
+ "inputSchema": {
2776
+ "type": "object",
2777
+ "properties": {
2778
+ "page": {
2779
+ "type": "integer",
2780
+ "minimum": 1
2781
+ },
2782
+ "per_page": {
2783
+ "type": "integer",
2784
+ "minimum": 1,
2785
+ "maximum": 100
2786
+ },
2787
+ "source": {
2788
+ "type": "string",
2789
+ "enum": [
2790
+ "jira",
2791
+ "confluence",
2792
+ "file",
2793
+ "text"
2794
+ ]
2795
+ },
2796
+ "scope": {
2797
+ "type": "string",
2798
+ "enum": [
2799
+ "global",
2800
+ "attached",
2801
+ "detached",
2802
+ "without_suites"
2803
+ ]
2804
+ }
2805
+ },
2806
+ "additionalProperties": false
2807
+ }
2808
+ },
2809
+ {
2810
+ "name": "requirements_get",
2811
+ "description": "Get requirement by ID",
2812
+ "inputSchema": {
2813
+ "type": "object",
2814
+ "properties": {
2815
+ "requirement_id": {
2816
+ "type": "string"
2817
+ }
2818
+ },
2819
+ "required": [
2820
+ "requirement_id"
2821
+ ],
2822
+ "additionalProperties": false
2823
+ }
2824
+ },
2825
+ {
2826
+ "name": "requirements_create",
2827
+ "description": "Create requirement (/api/v2/{project_id}/requirements)",
2828
+ "inputSchema": {
2829
+ "type": "object",
2830
+ "properties": {
2831
+ "title": {
2832
+ "type": "string"
2833
+ },
2834
+ "source_type": {
2835
+ "type": "string",
2836
+ "enum": [
2837
+ "jira",
2838
+ "confluence",
2839
+ "file",
2840
+ "text"
2841
+ ]
2842
+ },
2843
+ "description": {
2844
+ "type": "string",
2845
+ "description": "Required for text requirements. Must be at least 500 characters."
2846
+ },
2847
+ "details": {
2848
+ "type": "string"
2849
+ },
2850
+ "active": {
2851
+ "type": "boolean"
2852
+ },
2853
+ "global": {
2854
+ "type": "boolean"
2855
+ },
2856
+ "confluence_url": {
2857
+ "type": "string",
2858
+ "description": "Required for confluence requirements."
2859
+ },
2860
+ "files": {
2861
+ "type": "array",
2862
+ "items": {
2863
+ "type": "string"
2864
+ },
2865
+ "description": "Local file paths to upload for file requirements."
2866
+ }
2867
+ },
2868
+ "required": [
2869
+ "title",
2870
+ "source_type"
2871
+ ],
2872
+ "additionalProperties": false
2873
+ }
2874
+ },
2875
+ {
2876
+ "name": "requirements_update",
2877
+ "description": "Update requirement (/api/v2/{project_id}/requirements/{id})",
2878
+ "inputSchema": {
2879
+ "type": "object",
2880
+ "properties": {
2881
+ "requirement_id": {
2882
+ "type": "string"
2883
+ },
2884
+ "title": {
2885
+ "type": "string"
2886
+ },
2887
+ "description": {
2888
+ "type": "string",
2889
+ "description": "Only applied for text requirements."
2890
+ },
2891
+ "details": {
2892
+ "type": "string"
2893
+ },
2894
+ "active": {
2895
+ "type": "boolean"
2896
+ },
2897
+ "global": {
2898
+ "type": "boolean"
2899
+ },
2900
+ "files": {
2901
+ "type": "array",
2902
+ "items": {
2903
+ "type": "string"
2904
+ },
2905
+ "description": "Local file paths to upload for file requirements."
2906
+ }
2907
+ },
2908
+ "required": [
2909
+ "requirement_id"
2910
+ ],
2911
+ "additionalProperties": false
2912
+ }
2913
+ },
2914
+ {
2915
+ "name": "requirements_delete",
2916
+ "description": "Delete requirement (/api/v2/{project_id}/requirements/{id})",
2917
+ "inputSchema": {
2918
+ "type": "object",
2919
+ "properties": {
2920
+ "requirement_id": {
2921
+ "type": "string"
2922
+ }
2923
+ },
2924
+ "required": [
2925
+ "requirement_id"
2926
+ ],
2927
+ "additionalProperties": false
2928
+ }
2929
+ },
2930
+ {
2931
+ "name": "requirements_search",
2932
+ "description": "Search requirements (delegates to requirements list with filters)",
2933
+ "inputSchema": {
2934
+ "type": "object",
2935
+ "properties": {
2936
+ "page": {
2937
+ "type": "integer",
2938
+ "minimum": 1
2939
+ },
2940
+ "per_page": {
2941
+ "type": "integer",
2942
+ "minimum": 1,
2943
+ "maximum": 100
2944
+ },
2945
+ "source": {
2946
+ "type": "string",
2947
+ "enum": [
2948
+ "jira",
2949
+ "confluence",
2950
+ "file",
2951
+ "text"
2952
+ ]
2953
+ },
2954
+ "scope": {
2955
+ "type": "string",
2956
+ "enum": [
2957
+ "global",
2958
+ "attached",
2959
+ "detached",
2960
+ "without_suites"
2961
+ ]
2962
+ }
2963
+ },
2964
+ "additionalProperties": false
2965
+ }
2966
+ }
2967
+ ]