testeiya 0.2.0 → 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.
- package/LICENSE +21 -0
- package/README.md +37 -175
- package/dist/prompt/context.js +79 -0
- package/dist/prompt/context.js.map +1 -0
- package/dist/prompt/index.js +56 -0
- package/dist/prompt/index.js.map +1 -0
- package/dist/prompt/print.js +22 -0
- package/dist/prompt/print.js.map +1 -0
- package/dist/prompt/project-info.js +2 -0
- package/dist/prompt/project-info.js.map +1 -0
- package/{src/prompt/system-prompt.ts → dist/prompt/system-prompt.js} +24 -21
- package/dist/prompt/system-prompt.js.map +1 -0
- package/dist/prompt/testomatio.js +264 -0
- package/dist/prompt/testomatio.js.map +1 -0
- package/dist/prompt/tools.js +49 -0
- package/dist/prompt/tools.js.map +1 -0
- package/dist/prompt/vocab.js +8 -0
- package/dist/prompt/vocab.js.map +1 -0
- package/dist/src/args.js +72 -0
- package/dist/src/args.js.map +1 -0
- package/dist/src/cli.js +61 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/env.js +69 -0
- package/dist/src/env.js.map +1 -0
- package/dist/src/mcp-extension.js +9 -0
- package/dist/src/mcp-extension.js.map +1 -0
- package/dist/src/mcp.js +139 -0
- package/dist/src/mcp.js.map +1 -0
- package/dist/src/model.js +66 -0
- package/dist/src/model.js.map +1 -0
- package/dist/src/result.js +41 -0
- package/dist/src/result.js.map +1 -0
- package/dist/src/run.js +199 -0
- package/dist/src/run.js.map +1 -0
- package/dist/src/session.js +77 -0
- package/dist/src/session.js.map +1 -0
- package/dist/vendor/mcp.js +14801 -0
- package/mcp-tools.json +2967 -0
- package/package.json +29 -41
- package/prompt/context.ts +101 -0
- package/prompt/index.ts +93 -0
- package/prompt/print.ts +23 -0
- package/prompt/project-info.ts +30 -0
- package/prompt/system-prompt.ts +173 -0
- package/{src/prompt → prompt}/testomatio.ts +119 -8
- package/{src/prompt → prompt}/tools.ts +30 -8
- package/prompt/vocab.ts +7 -0
- package/{skills.lock.json → skills/skills.lock.json} +11 -7
- package/skills/skills.yaml +34 -0
- package/models.catalog.json +0 -6963
- package/skills/codeceptjs/ci-fix-tests/SKILL.md +0 -120
- package/skills/codeceptjs/codeceptjs-auth/SKILL.md +0 -158
- package/skills/codeceptjs/codeceptjs-exploration/SKILL.md +0 -91
- package/skills/codeceptjs/codeceptjs-fundamentals/SKILL.md +0 -158
- package/skills/codeceptjs/codeceptjs-run-analysis/SKILL.md +0 -90
- package/skills/codeceptjs/debugging-codeceptjs-tests/SKILL.md +0 -234
- package/skills/codeceptjs/migrate-codeceptjs-4/SKILL.md +0 -110
- package/skills/codeceptjs/migrate-cypress-to-codeceptjs/SKILL.md +0 -306
- package/skills/codeceptjs/migrate-protractor-to-codeceptjs/SKILL.md +0 -352
- package/skills/codeceptjs/migrate-selenium-java-to-codeceptjs/SKILL.md +0 -472
- package/skills/codeceptjs/migrate-testcafe-to-codeceptjs/SKILL.md +0 -350
- package/skills/codeceptjs/refactoring-codeceptjs-tests/SKILL.md +0 -81
- package/skills/codeceptjs/writing-codeceptjs-tests/SKILL.md +0 -206
- package/skills/playwright-best-practices-skill/LICENSE.md +0 -7
- package/skills/playwright-best-practices-skill/README.md +0 -147
- package/skills/playwright-best-practices-skill/SKILL.md +0 -303
- package/skills/playwright-best-practices-skill/advanced/authentication-flows.md +0 -360
- package/skills/playwright-best-practices-skill/advanced/authentication.md +0 -871
- package/skills/playwright-best-practices-skill/advanced/clock-mocking.md +0 -364
- package/skills/playwright-best-practices-skill/advanced/mobile-testing.md +0 -409
- package/skills/playwright-best-practices-skill/advanced/multi-context.md +0 -288
- package/skills/playwright-best-practices-skill/advanced/multi-user.md +0 -393
- package/skills/playwright-best-practices-skill/advanced/network-advanced.md +0 -452
- package/skills/playwright-best-practices-skill/advanced/third-party.md +0 -464
- package/skills/playwright-best-practices-skill/architecture/pom-vs-fixtures.md +0 -363
- package/skills/playwright-best-practices-skill/architecture/test-architecture.md +0 -369
- package/skills/playwright-best-practices-skill/architecture/when-to-mock.md +0 -383
- package/skills/playwright-best-practices-skill/browser-apis/browser-apis.md +0 -391
- package/skills/playwright-best-practices-skill/browser-apis/iframes.md +0 -403
- package/skills/playwright-best-practices-skill/browser-apis/service-workers.md +0 -504
- package/skills/playwright-best-practices-skill/browser-apis/websockets.md +0 -403
- package/skills/playwright-best-practices-skill/core/annotations.md +0 -424
- package/skills/playwright-best-practices-skill/core/assertions-waiting.md +0 -361
- package/skills/playwright-best-practices-skill/core/configuration.md +0 -452
- package/skills/playwright-best-practices-skill/core/fixtures-hooks.md +0 -417
- package/skills/playwright-best-practices-skill/core/global-setup.md +0 -434
- package/skills/playwright-best-practices-skill/core/locators.md +0 -242
- package/skills/playwright-best-practices-skill/core/page-object-model.md +0 -315
- package/skills/playwright-best-practices-skill/core/projects-dependencies.md +0 -453
- package/skills/playwright-best-practices-skill/core/test-data.md +0 -492
- package/skills/playwright-best-practices-skill/core/test-suite-structure.md +0 -361
- package/skills/playwright-best-practices-skill/core/test-tags.md +0 -298
- package/skills/playwright-best-practices-skill/debugging/console-errors.md +0 -420
- package/skills/playwright-best-practices-skill/debugging/debugging.md +0 -504
- package/skills/playwright-best-practices-skill/debugging/error-testing.md +0 -360
- package/skills/playwright-best-practices-skill/debugging/flaky-tests.md +0 -496
- package/skills/playwright-best-practices-skill/frameworks/angular.md +0 -530
- package/skills/playwright-best-practices-skill/frameworks/nextjs.md +0 -469
- package/skills/playwright-best-practices-skill/frameworks/react.md +0 -531
- package/skills/playwright-best-practices-skill/frameworks/vue.md +0 -574
- package/skills/playwright-best-practices-skill/infrastructure-ci-cd/ci-cd.md +0 -468
- package/skills/playwright-best-practices-skill/infrastructure-ci-cd/docker.md +0 -283
- package/skills/playwright-best-practices-skill/infrastructure-ci-cd/github-actions.md +0 -546
- package/skills/playwright-best-practices-skill/infrastructure-ci-cd/gitlab.md +0 -397
- package/skills/playwright-best-practices-skill/infrastructure-ci-cd/other-providers.md +0 -521
- package/skills/playwright-best-practices-skill/infrastructure-ci-cd/parallel-sharding.md +0 -371
- package/skills/playwright-best-practices-skill/infrastructure-ci-cd/performance.md +0 -453
- package/skills/playwright-best-practices-skill/infrastructure-ci-cd/reporting.md +0 -424
- package/skills/playwright-best-practices-skill/infrastructure-ci-cd/test-coverage.md +0 -497
- package/skills/playwright-best-practices-skill/testing-patterns/accessibility.md +0 -359
- package/skills/playwright-best-practices-skill/testing-patterns/api-testing.md +0 -719
- package/skills/playwright-best-practices-skill/testing-patterns/browser-extensions.md +0 -506
- package/skills/playwright-best-practices-skill/testing-patterns/canvas-webgl.md +0 -493
- package/skills/playwright-best-practices-skill/testing-patterns/component-testing.md +0 -500
- package/skills/playwright-best-practices-skill/testing-patterns/drag-drop.md +0 -576
- package/skills/playwright-best-practices-skill/testing-patterns/electron.md +0 -509
- package/skills/playwright-best-practices-skill/testing-patterns/file-operations.md +0 -377
- package/skills/playwright-best-practices-skill/testing-patterns/file-upload-download.md +0 -562
- package/skills/playwright-best-practices-skill/testing-patterns/forms-validation.md +0 -561
- package/skills/playwright-best-practices-skill/testing-patterns/graphql-testing.md +0 -331
- package/skills/playwright-best-practices-skill/testing-patterns/i18n.md +0 -508
- package/skills/playwright-best-practices-skill/testing-patterns/performance-testing.md +0 -476
- package/skills/playwright-best-practices-skill/testing-patterns/security-testing.md +0 -430
- package/skills/playwright-best-practices-skill/testing-patterns/visual-regression.md +0 -634
- package/skills/playwright-cli/SKILL.md +0 -420
- package/skills/playwright-cli/references/element-attributes.md +0 -23
- package/skills/playwright-cli/references/playwright-tests.md +0 -39
- package/skills/playwright-cli/references/request-mocking.md +0 -87
- package/skills/playwright-cli/references/running-code.md +0 -241
- package/skills/playwright-cli/references/session-management.md +0 -225
- package/skills/playwright-cli/references/storage-state.md +0 -275
- package/skills/playwright-cli/references/test-generation.md +0 -433
- package/skills/playwright-cli/references/tracing.md +0 -139
- package/skills/playwright-cli/references/video-recording.md +0 -143
- package/skills/testeiya/README.md +0 -29
- package/skills/testeiya/answer-formatting/SKILL.md +0 -30
- package/skills/testeiya/check-cucumber/SKILL.md +0 -200
- package/skills/testeiya/check-tests/SKILL.md +0 -260
- package/skills/testeiya/manual-run-assistant/SKILL.md +0 -61
- package/skills/testeiya/testomatio-docs/INDEX.md +0 -175
- package/skills/testeiya/testomatio-docs/SKILL.md +0 -102
- package/skills/testeiya/testomatio-docs/docs/advanced/ai-powered-features/ai-agents.md +0 -144
- package/skills/testeiya/testomatio-docs/docs/advanced/ai-powered-features/ai-powered-features.md +0 -531
- package/skills/testeiya/testomatio-docs/docs/advanced/ai-powered-features/ai-requirements.md +0 -437
- package/skills/testeiya/testomatio-docs/docs/advanced/api-access/index.md +0 -191
- package/skills/testeiya/testomatio-docs/docs/advanced/branches-folder/index.md +0 -277
- package/skills/testeiya/testomatio-docs/docs/advanced/bulk-edit-folder/bulk-edit-demos.mdx +0 -39
- package/skills/testeiya/testomatio-docs/docs/advanced/bulk-edit-folder/bulk-edit-on-suite-and-test-level.md +0 -122
- package/skills/testeiya/testomatio-docs/docs/advanced/bulk-edit-folder/what-is-bulk-edit.md +0 -170
- package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/branches.md +0 -53
- package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/index.mdx +0 -98
- package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/jira-issue.md +0 -151
- package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/runs-and-reports.md +0 -377
- package/skills/testeiya/testomatio-docs/docs/advanced/jira-plugin/work-in-jira.md +0 -267
- package/skills/testeiya/testomatio-docs/docs/advanced/living-doc/index.md +0 -138
- package/skills/testeiya/testomatio-docs/docs/advanced/milestones/index.md +0 -220
- package/skills/testeiya/testomatio-docs/docs/advanced/shortcuts/index.md +0 -48
- package/skills/testeiya/testomatio-docs/docs/advanced/tags-labels/labels-and-custom-fields.md +0 -201
- package/skills/testeiya/testomatio-docs/docs/advanced/tags-labels/tags-or-labels.md +0 -94
- package/skills/testeiya/testomatio-docs/docs/advanced/tags-labels/tags.md +0 -243
- package/skills/testeiya/testomatio-docs/docs/advanced/test-artifacts/index.md +0 -135
- package/skills/testeiya/testomatio-docs/docs/advanced/tql/index.md +0 -394
- package/skills/testeiya/testomatio-docs/docs/getting-started/index.md +0 -290
- package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/azure.md +0 -96
- package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/bamboo.md +0 -94
- package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/bitbucket.md +0 -106
- package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/circle.md +0 -115
- package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/github.md +0 -120
- package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/gitlab.md +0 -88
- package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/index.mdx +0 -151
- package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/jenkins.md +0 -121
- package/skills/testeiya/testomatio-docs/docs/integrations/continuous-integration/teamcity.md +0 -96
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/azure.md +0 -31
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/clickup.md +0 -54
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/confluence.md +0 -34
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/github.md +0 -31
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/gitlab.md +0 -93
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/index.md +0 -131
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/jira.md +0 -164
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/linear.md +0 -29
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/shortcut.md +0 -67
- package/skills/testeiya/testomatio-docs/docs/integrations/issues-management/youtrack.md +0 -94
- package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/azure-devops.md +0 -53
- package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/email.md +0 -71
- package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/jira.md +0 -52
- package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/ms-teams.md +0 -60
- package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/rules.md +0 -267
- package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/slack.md +0 -82
- package/skills/testeiya/testomatio-docs/docs/integrations/report-notifications/telegram.md +0 -73
- package/skills/testeiya/testomatio-docs/docs/integrations/scim-provisioning/index.mdx +0 -207
- package/skills/testeiya/testomatio-docs/docs/integrations/scim-provisioning/okta.md +0 -204
- package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/azure.md +0 -95
- package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/google.md +0 -75
- package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/index.mdx +0 -33
- package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/okta.md +0 -108
- package/skills/testeiya/testomatio-docs/docs/integrations/single-sign-on/saml.md +0 -66
- package/skills/testeiya/testomatio-docs/docs/legal/compliance/gdpr.md +0 -95
- package/skills/testeiya/testomatio-docs/docs/legal/compliance/index.mdx +0 -94
- package/skills/testeiya/testomatio-docs/docs/legal/compliance/privacy.md +0 -26
- package/skills/testeiya/testomatio-docs/docs/legal/compliance/terms.md +0 -32
- package/skills/testeiya/testomatio-docs/docs/legal/security/index.mdx +0 -242
- package/skills/testeiya/testomatio-docs/docs/legal/security/jira.md +0 -140
- package/skills/testeiya/testomatio-docs/docs/legal/security/subprocessors.md +0 -76
- package/skills/testeiya/testomatio-docs/docs/management/company/administration.md +0 -363
- package/skills/testeiya/testomatio-docs/docs/management/company/audit-log.md +0 -41
- package/skills/testeiya/testomatio-docs/docs/management/company/plan-features-comparison.md +0 -240
- package/skills/testeiya/testomatio-docs/docs/management/company/subscriptions.md +0 -326
- package/skills/testeiya/testomatio-docs/docs/management/company/trials.md +0 -75
- package/skills/testeiya/testomatio-docs/docs/management/company/users-and-permissions/accountant.md +0 -49
- package/skills/testeiya/testomatio-docs/docs/management/company/users-and-permissions/index.mdx +0 -285
- package/skills/testeiya/testomatio-docs/docs/management/company/users-and-permissions/read-only-user.md +0 -67
- package/skills/testeiya/testomatio-docs/docs/management/company/users-and-permissions/teams.md +0 -138
- package/skills/testeiya/testomatio-docs/docs/management/project/settings.md +0 -87
- package/skills/testeiya/testomatio-docs/docs/management/project/templates.md +0 -546
- package/skills/testeiya/testomatio-docs/docs/project/analytics/index.md +0 -326
- package/skills/testeiya/testomatio-docs/docs/project/import-export/export-tests/classical-tests-markdown-format.md +0 -386
- package/skills/testeiya/testomatio-docs/docs/project/import-export/export-tests/download-manual-tests-as-files.md +0 -378
- package/skills/testeiya/testomatio-docs/docs/project/import-export/export-tests/export-to-obsidian.md +0 -112
- package/skills/testeiya/testomatio-docs/docs/project/import-export/export-tests/export-to-spreadsheet.md +0 -127
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/auto-import.md +0 -63
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-Allure-TestOps.md +0 -49
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-QTest.md +0 -41
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-Qase.md +0 -39
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-Zephyr.md +0 -37
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-csv-xlsx.md +0 -117
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-cucumber.md +0 -93
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-qmetry.md +0 -44
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-source-code.md +0 -117
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-testcaselabs.md +0 -44
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-testmo.md +0 -47
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-testrail.md +0 -82
- package/skills/testeiya/testomatio-docs/docs/project/import-export/import/import-tests-from-xray.md +0 -55
- package/skills/testeiya/testomatio-docs/docs/project/plans/index.md +0 -334
- package/skills/testeiya/testomatio-docs/docs/project/pulse/index.md +0 -104
- package/skills/testeiya/testomatio-docs/docs/project/runs/archive-runs-and-groups.md +0 -176
- package/skills/testeiya/testomatio-docs/docs/project/runs/custom-statuses.md +0 -195
- package/skills/testeiya/testomatio-docs/docs/project/runs/environments.md +0 -203
- package/skills/testeiya/testomatio-docs/docs/project/runs/managing-runs.md +0 -455
- package/skills/testeiya/testomatio-docs/docs/project/runs/merge-strategies.md +0 -137
- package/skills/testeiya/testomatio-docs/docs/project/runs/reports.md +0 -329
- package/skills/testeiya/testomatio-docs/docs/project/runs/rungroups.md +0 -342
- package/skills/testeiya/testomatio-docs/docs/project/runs/running-automated-tests.md +0 -256
- package/skills/testeiya/testomatio-docs/docs/project/runs/running-manual-and-automated-tests.md +0 -331
- package/skills/testeiya/testomatio-docs/docs/project/runs/running-tests-manually.md +0 -633
- package/skills/testeiya/testomatio-docs/docs/project/runs/temporary-tests-notes.md +0 -223
- package/skills/testeiya/testomatio-docs/docs/project/steps-snippets/snippets.md +0 -68
- package/skills/testeiya/testomatio-docs/docs/project/steps-snippets/steps.md +0 -181
- package/skills/testeiya/testomatio-docs/docs/project/tests/bdd-test-case-editor.md +0 -98
- package/skills/testeiya/testomatio-docs/docs/project/tests/classical-test-case-editor.md +0 -354
- package/skills/testeiya/testomatio-docs/docs/project/tests/classical-vs-bdd.md +0 -169
- package/skills/testeiya/testomatio-docs/docs/project/tests/copy-and-move-your-tests.md +0 -156
- package/skills/testeiya/testomatio-docs/docs/project/tests/other-features-for-test-case-design.md +0 -412
- package/skills/testeiya/testomatio-docs/docs/project/tests/test-case-creation-and-editing.md +0 -527
- package/skills/testeiya/testomatio-docs/docs/support/index.md +0 -75
- package/skills/testeiya/testomatio-docs/docs/test-reporting/artifacts.md +0 -388
- package/skills/testeiya/testomatio-docs/docs/test-reporting/cli.md +0 -215
- package/skills/testeiya/testomatio-docs/docs/test-reporting/configuration.md +0 -247
- package/skills/testeiya/testomatio-docs/docs/test-reporting/frameworks.md +0 -490
- package/skills/testeiya/testomatio-docs/docs/test-reporting/functions.md +0 -144
- package/skills/testeiya/testomatio-docs/docs/test-reporting/index.mdx +0 -48
- package/skills/testeiya/testomatio-docs/docs/test-reporting/junit.md +0 -248
- package/skills/testeiya/testomatio-docs/docs/test-reporting/logger.md +0 -138
- package/skills/testeiya/testomatio-docs/docs/test-reporting/php.md +0 -77
- package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/bitbucket.md +0 -72
- package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/csv.md +0 -23
- package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/debug.md +0 -18
- package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/github.md +0 -63
- package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/gitlab.md +0 -29
- package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/html.md +0 -80
- package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/index.mdx +0 -57
- package/skills/testeiya/testomatio-docs/docs/test-reporting/pipes/testomatio.md +0 -331
- package/skills/testeiya/testomatio-docs/docs/test-reporting/python.md +0 -229
- package/skills/testeiya/testomatio-docs/docs/test-reporting/workflows.md +0 -325
- package/skills/testeiya/testomatio-docs/docs/tutorials/Interacting-via-API.md +0 -159
- package/skills/testeiya/testomatio-docs/docs/tutorials/Manual-Testing-Classic.md +0 -164
- package/skills/testeiya/testomatio-docs/docs/tutorials/Set-Up-Read-Only-Access.md +0 -85
- package/skills/testeiya/testomatio-docs/docs/tutorials/Using-AI-in-Testing.md +0 -163
- package/skills/testeiya/testomatio-docs/docs/tutorials/Working-with-Jira.md +0 -125
- package/skills/testeiya/testomatio-docs/docs/tutorials/java.md +0 -478
- package/skills/testeiya/testomatio-docs/docs/tutorials/playwright.md +0 -207
- package/skills/testeiya/testomatio-docs/docs/tutorials/webdriver.md +0 -218
- package/skills/testeiya/testomatio-docs/docs.lock.json +0 -6
- package/skills/testeiya/testomatio-reporter/SKILL.md +0 -307
- package/skills/testomatio/explorbot/explorbot-fundamentals/SKILL.md +0 -88
- package/skills/testomatio/explorbot/explorbot-plan/SKILL.md +0 -95
- package/skills/testomatio/explorbot/explorbot-setup/SKILL.md +0 -334
- package/skills/testomatio/test-automation/automate-manual-test-cases/CLAUDE.md +0 -56
- package/skills/testomatio/test-automation/automate-manual-test-cases/SKILL.md +0 -242
- package/skills/testomatio/test-automation/automate-manual-test-cases/references/CODECEPTJS_BEST_PRACTICES.md +0 -182
- package/skills/testomatio/test-automation/automate-manual-test-cases/references/FINAL_SUMMARY_TEMPLATE.md +0 -22
- package/skills/testomatio/test-automation/automate-manual-test-cases/references/PLAYWRIGHT_BEST_PRACTICES.md +0 -90
- package/skills/testomatio/test-automation/automate-manual-test-cases/references/POM_BEST_PRACTICES.md +0 -53
- package/skills/testomatio/test-automation/automate-manual-test-cases/references/TEST_DATA_MANAGEMENT.md +0 -52
- package/skills/testomatio/test-automation/debug-fix-failed-flaky-autotests/SKILL.md +0 -107
- package/skills/testomatio/test-automation/debug-fix-failed-flaky-autotests/references/DEBUGGING_QUICK_REFERENCE.md +0 -113
- package/skills/testomatio/test-automation/qa-automation-test-consolidation/SKILL.md +0 -29
- package/skills/testomatio/test-automation/run-tests-with-testomatio-reporter/SKILL.md +0 -151
- package/skills/testomatio/test-automation/setup-pr-testing/SKILL.md +0 -199
- package/skills/testomatio/test-automation/testomat-allure-adapter/SKILL.md +0 -289
- package/skills/testomatio/test-management/detect-duplicate-test-cases/SKILL.md +0 -86
- package/skills/testomatio/test-management/detect-duplicate-test-cases/references/DUPLICATE_INSTRUCTIONS.md +0 -54
- package/skills/testomatio/test-management/improve-test-cases/SKILL.md +0 -114
- package/skills/testomatio/test-management/improve-test-cases/references/TESTOMAT_MARKDOWN_EXAMPLE.md +0 -66
- package/skills/testomatio/test-management/pull-request-diff-analyzer/SKILL.md +0 -141
- package/skills/testomatio/test-management/qa-e2e-tests-reporting/SKILL.md +0 -354
- package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_ARTIFACTS.md +0 -82
- package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_HTML_REPORT.md +0 -37
- package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_REPORTERS_CONFIG.md +0 -118
- package/skills/testomatio/test-management/qa-pr-requirements-analyzer/SKILL.md +0 -149
- package/skills/testomatio/test-management/qa-pr-requirements-analyzer/references/summary-example.md +0 -54
- package/skills/testomatio/test-management/qa-requirement-reviewer/SKILL.md +0 -126
- package/skills/testomatio/test-management/qa-requirement-reviewer/references/requirements_reviewer_examples.md +0 -128
- package/skills/testomatio/test-management/qa-test-code-coverage/SKILL.md +0 -174
- package/skills/testomatio/test-management/qa-test-code-coverage/references/COVERAGE_FILE_FORMAT.md +0 -138
- package/skills/testomatio/test-management/qa-test-code-coverage/references/E2E_FRAMEWORKS.md +0 -65
- package/skills/testomatio/test-management/qa-test-code-coverage/scripts/check-coverage.mjs +0 -40
- package/skills/testomatio/test-management/qa-thinking/SKILL.md +0 -36
- package/skills/testomatio/test-management/qa-write-test-cases/SKILL.md +0 -267
- package/skills/testomatio/test-management/qa-write-test-cases/references/test-case-format.md +0 -387
- package/skills/testomatio/test-management/qa-write-test-cases/references/testomat-tms-guide.md +0 -72
- package/skills/testomatio/test-management/qa-write-test-cases/references/writing-rule.md +0 -159
- package/skills/testomatio/test-management/scan-automation-project/SKILL.md +0 -152
- package/skills/testomatio/test-management/sync-test-cases-with-tms/SKILL.md +0 -107
- package/skills/testomatio/test-management/sync-test-cases-with-tms/references/TESTOMATIO_CLI.md +0 -140
- package/skills/testomatio/test-management/testomatio-mcp/SKILL.md +0 -182
- package/skills/testomatio/test-management/testomatio-mcp/references/MCP_SETUP.md +0 -169
- package/skills.yaml +0 -21
- package/src/ai-debug.ts +0 -188
- package/src/api/agent-get.ts +0 -22
- package/src/api/agent-start.ts +0 -384
- package/src/api/client-log.ts +0 -29
- package/src/api/context.ts +0 -332
- package/src/api/debug-layout.ts +0 -47
- package/src/api/debug-report.ts +0 -29
- package/src/api/debug-snapshot.ts +0 -30
- package/src/api/debug-stream.ts +0 -52
- package/src/api/files-delete.ts +0 -184
- package/src/api/files-read.ts +0 -41
- package/src/api/files-rename.ts +0 -99
- package/src/api/files-tree.ts +0 -292
- package/src/api/files-write.ts +0 -41
- package/src/api/mcp.ts +0 -603
- package/src/api/memory.ts +0 -69
- package/src/api/open-external.ts +0 -39
- package/src/api/playwright-cli.ts +0 -606
- package/src/api/providers.ts +0 -457
- package/src/api/read-env-token.ts +0 -33
- package/src/api/sessions.ts +0 -79
- package/src/api/settings.ts +0 -120
- package/src/api/skills.ts +0 -58
- package/src/api/testomatio-attachment.ts +0 -89
- package/src/api/testomatio-auth.ts +0 -284
- package/src/api/testomatio-proxy.ts +0 -197
- package/src/api/testomatio-run-stats.ts +0 -81
- package/src/api/testomatio-target.ts +0 -225
- package/src/api/testomatio-transcription.ts +0 -82
- package/src/api/workspace-search.ts +0 -96
- package/src/api/workspace-sync.ts +0 -151
- package/src/api/workspace.ts +0 -165
- package/src/app-server.ts +0 -556
- package/src/bridge.ts +0 -251
- package/src/check-tests.ts +0 -156
- package/src/cli.ts +0 -17
- package/src/commands.ts +0 -244
- package/src/config.ts +0 -183
- package/src/connection.ts +0 -658
- package/src/context-store.ts +0 -265
- package/src/debug-bus.ts +0 -405
- package/src/extensions/tool-gate.ts +0 -220
- package/src/extensions/webui/ask-channel.ts +0 -52
- package/src/extensions/webui/index.ts +0 -184
- package/src/extensions/webui/tools/ask-question.ts +0 -88
- package/src/extensions/webui/tools/query-result.ts +0 -79
- package/src/extensions/webui/tools/render-chart.ts +0 -53
- package/src/extensions/webui/tools/render-item.ts +0 -61
- package/src/extensions/webui/tools/render-list.ts +0 -170
- package/src/extensions/webui/tools/render-result.ts +0 -85
- package/src/extensions/webui/tools/render-tree.ts +0 -71
- package/src/extensions/webui/tools/ui-widget.ts +0 -54
- package/src/extensions/webui/tools/widget-result.ts +0 -13
- package/src/extensions/webui/widget-channel.ts +0 -50
- package/src/file-log.ts +0 -196
- package/src/git-tracked.ts +0 -68
- package/src/gitignore.ts +0 -53
- package/src/json-store.ts +0 -43
- package/src/load-env.ts +0 -70
- package/src/loader-style.ts +0 -96
- package/src/main.ts +0 -140
- package/src/mcp-catalog.ts +0 -96
- package/src/models-catalog.ts +0 -72
- package/src/permissions.ts +0 -120
- package/src/project-dir.ts +0 -189
- package/src/project-info.ts +0 -108
- package/src/prompt/app-ui.ts +0 -59
- package/src/prompt/browser.ts +0 -27
- package/src/prompt/index.ts +0 -62
- package/src/server-info.ts +0 -62
- package/src/session-factory.ts +0 -442
- package/src/session-store.ts +0 -115
- package/src/shell-env.ts +0 -45
- package/src/skills.ts +0 -163
- package/src/sync-snapshot.ts +0 -140
- package/src/telemetry.ts +0 -239
- package/src/testomatio-auth.ts +0 -299
- package/src/testomatio.ts +0 -98
- package/src/theme.ts +0 -30
- package/src/user-env.ts +0 -94
- package/src/welcome.ts +0 -127
- package/src/workspace/safe-path.ts +0 -85
- package/src/workspace/test-md.ts +0 -70
- package/src/workspace-model.ts +0 -440
- package/testeiya.config.json +0 -14
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: testomatio-mcp
|
|
3
|
-
description: Configures and leverages the Testomat.io MCP server for test management analytics, run analysis, failure investigation, and defect triage. Use when the user needs to connect to Testomat.io via MCP, analyze test runs, cluster failures, investigate root causes.
|
|
4
|
-
license: MIT
|
|
5
|
-
metadata:
|
|
6
|
-
author: Testomat.io
|
|
7
|
-
version: 1.0.0
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Testomatio MCP
|
|
11
|
-
|
|
12
|
-
Set up access to Testomat.io via MCP and run QA analysis workflows: run analysis, failure clustering, root-cause investigation, plan analysis, defect triage.
|
|
13
|
-
|
|
14
|
-
## When to Use
|
|
15
|
-
|
|
16
|
-
- Detect or set up the Testomat.io MCP server for an AI agent (Claude, Cursor, OpenCode, etc.).
|
|
17
|
-
- Analyze test runs: recent results, success rates, failure trends.
|
|
18
|
-
- Investigate failures: group similar failures, find patterns.
|
|
19
|
-
- Find the root cause when many tests fail with the same issue.
|
|
20
|
-
- Create defects from failed tests in the user's issue tracker (e.g. Jira).
|
|
21
|
-
|
|
22
|
-
## MCP Tools
|
|
23
|
-
|
|
24
|
-
- Test: `tests_list`, `tests_get`, `tests_search`
|
|
25
|
-
- Test Plan: `plans_list`, `plans_get`, `plans_search`
|
|
26
|
-
- Run: `runs_list`, `runs_get`, `runs_search`
|
|
27
|
-
- Testrun (results within a run): `testruns_list`, `testruns_get`
|
|
28
|
-
- Suite: `suites_list`, `suites_get`, `suites_search`
|
|
29
|
-
- Label: `labels_list`, `labels_get`
|
|
30
|
-
- Tag: `tags_list`, `tags_get`, `tags_search`
|
|
31
|
-
|
|
32
|
-
**CRUD tools (create, update, delete) exist for all entities. Use them only when explicitly needed for targeted updates.**
|
|
33
|
-
|
|
34
|
-
## Rules
|
|
35
|
-
|
|
36
|
-
- **Prefer local tests over MCP.** If the repo contains markdown test cases (`*.test.md`) or automated test files, read them from the filesystem (or load them via the `sync-test-cases-with-tms` skill) instead of using MCP for full test discovery and analysis.
|
|
37
|
-
- Use MCP for:
|
|
38
|
-
- reading and analyzing run reports
|
|
39
|
-
- analytics and reporting
|
|
40
|
-
- test plan management
|
|
41
|
-
- tests that live exclusively in Testomat.io (no local copies), or quick test case searches (`tests_list`, `tests_search`)
|
|
42
|
-
- targeted searches and point updates to remote test cases
|
|
43
|
-
- Filter `runs_list`, `plans_list`, `testruns_list` with TQL (Testomat.io Query Language). Operators and examples: [MCP Setup Reference](./references/MCP_SETUP.md).
|
|
44
|
-
|
|
45
|
-
## Setup
|
|
46
|
-
|
|
47
|
-
### Step 1: Detect Existing Configuration
|
|
48
|
-
|
|
49
|
-
Check the user's AI agent config files for a `testomatio` or `mcp.testomatio` entry:
|
|
50
|
-
- `opencode.json`
|
|
51
|
-
- `.cursor/mcp.json`
|
|
52
|
-
- `claude_desktop_config.json`
|
|
53
|
-
- other, based on the user's local agent
|
|
54
|
-
|
|
55
|
-
Validate:
|
|
56
|
-
- the server is enabled (when the client supports enable/disable flags)
|
|
57
|
-
- `TESTOMATIO_PROJECT_TOKEN` and `TESTOMATIO_PROJECT_ID` are present
|
|
58
|
-
|
|
59
|
-
Configured and enabled → go to Workflows. Missing, incomplete, or disabled → Step 2.
|
|
60
|
-
|
|
61
|
-
### Step 2: Configure MCP
|
|
62
|
-
|
|
63
|
-
Before configuring:
|
|
64
|
-
- Prefer confirming the project contains no more than 1000 tests.
|
|
65
|
-
- If project size cannot be determined, warn the user about MCP performance limits on large projects.
|
|
66
|
-
- **Use only targeted or filtered operations when explicitly requested.**
|
|
67
|
-
|
|
68
|
-
Credential priority for `TESTOMATIO_PROJECT_TOKEN` and `TESTOMATIO_PROJECT_ID`:
|
|
69
|
-
1. Existing environment variables.
|
|
70
|
-
2. Existing MCP configuration.
|
|
71
|
-
3. User-provided values.
|
|
72
|
-
|
|
73
|
-
Per-agent config formats (OpenCode, Cursor, Claude Desktop) and where to obtain credentials: [MCP Setup Reference](./references/MCP_SETUP.md).
|
|
74
|
-
|
|
75
|
-
**Rules:**
|
|
76
|
-
- **Do not overwrite unrelated MCP server configurations.** Merge changes carefully with existing config content.
|
|
77
|
-
- **Do not expose project tokens, secrets, or credentials in chat responses.**
|
|
78
|
-
|
|
79
|
-
After successful configuration, confirm with a summary:
|
|
80
|
-
|
|
81
|
-
```text
|
|
82
|
-
Testomat.io MCP configuration completed successfully.
|
|
83
|
-
|
|
84
|
-
AI Agent: Cursor
|
|
85
|
-
Config Updated: `.cursor/mcp.json`
|
|
86
|
-
MCP Server: Enabled
|
|
87
|
-
Authentication: Verified
|
|
88
|
-
|
|
89
|
-
Available workflows:
|
|
90
|
-
- Test run analysis
|
|
91
|
-
- Failure clustering
|
|
92
|
-
- Root-cause investigation
|
|
93
|
-
- Plan analysis & defect triage
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
## Workflows
|
|
97
|
-
|
|
98
|
-
Common patterns, not a complete list — adapt and extend to the user's needs. All assume the MCP server is enabled.
|
|
99
|
-
|
|
100
|
-
### Workflow 1: Analyze Test Runs
|
|
101
|
-
|
|
102
|
-
Goal: understand the health of recent test execution.
|
|
103
|
-
|
|
104
|
-
1. Call `runs_list` with `tql` filters (e.g. `finished`, `failed`, `with_defect`); narrow scope by status, environment, or plan.
|
|
105
|
-
2. Select a run of interest and call `runs_get` for detailed metadata.
|
|
106
|
-
3. Call `testruns_list` with `run_id` and `filter_status: failed` to extract failed results.
|
|
107
|
-
4. Summarize: total tests, passed, failed, skipped, environments involved.
|
|
108
|
-
- Compare success/failure ratios across runs to spot regressions.
|
|
109
|
-
|
|
110
|
-
### Workflow 2: Failure Investigation & Error Clustering
|
|
111
|
-
|
|
112
|
-
Goal: determine what went wrong and which areas are affected.
|
|
113
|
-
|
|
114
|
-
1. Call `testruns_list` (`filter_status: failed`, `run_id`) to get failed results.
|
|
115
|
-
2. For each failed testrun, call `tests_get` to map it to its suite, priority, tags, and linked issues.
|
|
116
|
-
3. Cluster failures:
|
|
117
|
-
- by `suite_id` → identify the suite with the highest failure count
|
|
118
|
-
- by `message` substring → find tests failing with the same exception or assertion
|
|
119
|
-
4. Present clusters ranked by count, with suite and message breakdowns and affected test titles.
|
|
120
|
-
|
|
121
|
-
### Workflow 3: Plan Analysis & Root-Cause Detection
|
|
122
|
-
|
|
123
|
-
Goal: when many tests fail with the same issue, explain the root cause.
|
|
124
|
-
|
|
125
|
-
1. Call `plans_get` (if a plan is linked to the run) to understand the intended scope; check whether failures correlate with specific plan sections.
|
|
126
|
-
2. Call `runs_list` with `tql` targeting the same plan or environment to get historical runs.
|
|
127
|
-
3. Compare failures across runs:
|
|
128
|
-
- increasing failure count → new regression
|
|
129
|
-
- same failures across multiple runs → stable bug or flaky infrastructure
|
|
130
|
-
- spike in a single suite or tag → localized code change, feature regression
|
|
131
|
-
- scattered across unrelated suites → systemic issue (infrastructure, config, dependency)
|
|
132
|
-
4. Call `tests_get` on affected tests to check `code`, `state`, and linked issues.
|
|
133
|
-
5. Report a root-cause hypothesis.
|
|
134
|
-
|
|
135
|
-
Example — user asks: "Check why 20 tests failed in the last run — one suite or a systemic issue?"
|
|
136
|
-
|
|
137
|
-
```text
|
|
138
|
-
1. Detecting existing Testomat.io MCP configuration:
|
|
139
|
-
- Found `.cursor/mcp.json`
|
|
140
|
-
- Found `testomatio` MCP server entry
|
|
141
|
-
- MCP server status: enabled
|
|
142
|
-
|
|
143
|
-
2. Verifying MCP availability...
|
|
144
|
-
- Authentication successful
|
|
145
|
-
- Testomat.io tools available
|
|
146
|
-
|
|
147
|
-
3. Analyzing latest test run...
|
|
148
|
-
- Retrieved last completed run
|
|
149
|
-
- Total failed tests: 20
|
|
150
|
-
|
|
151
|
-
4. Failure clustering summary:
|
|
152
|
-
- 16/20 failures belong to suite: "Checkout / Payments"
|
|
153
|
-
- 14 failures share the same error: "Timeout waiting for payment confirmation"
|
|
154
|
-
- First failure timestamp indicates failures started simultaneously
|
|
155
|
-
|
|
156
|
-
5. Probable root cause:
|
|
157
|
-
- The failures appear systemic rather than test-specific.
|
|
158
|
-
- Most failures point to instability or outage in the payment gateway service used during checkout flows.
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
### Workflow 4: Defect Creation from Failed Tests
|
|
162
|
-
|
|
163
|
-
Goal: turn recurring failures into trackable defects.
|
|
164
|
-
|
|
165
|
-
1. Run Workflow 2 to cluster failures by message.
|
|
166
|
-
2. If a cluster contains 5+ tests with the same failure:
|
|
167
|
-
- propose creating a defect (e.g. Jira issue) to the user
|
|
168
|
-
- draft the defect summary: title, description, affected test titles, failure messages, run link, environment
|
|
169
|
-
- if a Jira MCP is available, offer to create the ticket via the Jira skill
|
|
170
|
-
3. After defect creation, call `tests_issues_link` for each affected test to link it to the defect.
|
|
171
|
-
|
|
172
|
-
## Quick Commands
|
|
173
|
-
|
|
174
|
-
| Action | MCP Tool | Key Parameters |
|
|
175
|
-
|---------------------|-----------------|----------------|
|
|
176
|
-
| List failed results | `testruns_list` | `run_id`, `filter_status: failed` |
|
|
177
|
-
| List runs | `runs_list` | `tql`, `page`, `per_page` |
|
|
178
|
-
| Get run details | `runs_get` | `run_id` |
|
|
179
|
-
| Get test details | `tests_get` | `test_id` |
|
|
180
|
-
| Get plan details | `plans_get` | `plan_id` |
|
|
181
|
-
| Link issue to test | `tests_issues_link` | `test_id`, `url` or `jira_id` |
|
|
182
|
-
| Check server status | `system_ping` | none |
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
# MCP Setup & Configuration Reference
|
|
2
|
-
|
|
3
|
-
Short reference extracted from the Testomat.io MCP server documentation.
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install -g @testomatio/mcp@latest
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
For enterprise subscriptions, install `@testomatio/mcp-enterprise@latest` instead (includes analytics).
|
|
12
|
-
|
|
13
|
-
## Server Startup
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
npx testomatio-mcp --token <PROJECT_TOKEN> --project <PROJECT_ID>
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Or with environment variables:
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
export TESTOMATIO_PROJECT_TOKEN=<PROJECT_TOKEN>
|
|
23
|
-
export TESTOMATIO_PROJECT_ID=<PROJECT_ID>
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
Optional custom base URL:
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
export TESTOMATIO_BASE_URL=https://beta.testomat.io
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## AI Agent Configurations
|
|
33
|
-
|
|
34
|
-
### OpenCode
|
|
35
|
-
|
|
36
|
-
File: `opencode.json` (project root or `~/.config/opencode/opencode.json`)
|
|
37
|
-
|
|
38
|
-
```json
|
|
39
|
-
{
|
|
40
|
-
"$schema": "https://opencode.ai/config.json",
|
|
41
|
-
"mcp": {
|
|
42
|
-
"testomat": {
|
|
43
|
-
"type": "local",
|
|
44
|
-
"command": [
|
|
45
|
-
"npx",
|
|
46
|
-
"-y",
|
|
47
|
-
"@testomatio/mcp@latest",
|
|
48
|
-
"--token",
|
|
49
|
-
"<TOKEN>",
|
|
50
|
-
"--project",
|
|
51
|
-
"<PROJECT_ID>"
|
|
52
|
-
],
|
|
53
|
-
"enabled": true,
|
|
54
|
-
"environment": {
|
|
55
|
-
"TESTOMATIO_BASE_URL": "https://app.testomat.io"
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### Claude Desktop
|
|
63
|
-
|
|
64
|
-
File:
|
|
65
|
-
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
66
|
-
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
67
|
-
|
|
68
|
-
```json
|
|
69
|
-
{
|
|
70
|
-
"mcpServers": {
|
|
71
|
-
"testomatio": {
|
|
72
|
-
"command": "npx",
|
|
73
|
-
"args": [
|
|
74
|
-
"-y",
|
|
75
|
-
"@testomatio/mcp@latest",
|
|
76
|
-
"--token",
|
|
77
|
-
"<TOKEN>",
|
|
78
|
-
"--project",
|
|
79
|
-
"<PROJECT_ID>"
|
|
80
|
-
],
|
|
81
|
-
"env": {
|
|
82
|
-
"TESTOMATIO_BASE_URL": "https://app.testomat.io"
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### Cursor IDE
|
|
90
|
-
|
|
91
|
-
File: `.cursor/mcp.json` (project root or `~/.cursor/mcp.json`)
|
|
92
|
-
|
|
93
|
-
```json
|
|
94
|
-
{
|
|
95
|
-
"mcpServers": {
|
|
96
|
-
"testomatio": {
|
|
97
|
-
"type": "stdio",
|
|
98
|
-
"command": "npx",
|
|
99
|
-
"args": [
|
|
100
|
-
"-y",
|
|
101
|
-
"@testomatio/mcp@latest",
|
|
102
|
-
"--token",
|
|
103
|
-
"<TOKEN>",
|
|
104
|
-
"--project",
|
|
105
|
-
"<PROJECT_ID>"
|
|
106
|
-
],
|
|
107
|
-
"env": {
|
|
108
|
-
"TESTOMATIO_BASE_URL": "https://app.testomat.io"
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
## Credentials
|
|
116
|
-
|
|
117
|
-
- **Project Token**: Get from Testomat.io at **Settings → Project → Project Reporting API key**.
|
|
118
|
-
- **Project ID**: Found in the project URL: `https://app.testomat.io/projects/<project_id>`.
|
|
119
|
-
|
|
120
|
-
## Environment Variables
|
|
121
|
-
|
|
122
|
-
| Variable | Required | Default | Description |
|
|
123
|
-
|----------|----------|---------|-------------|
|
|
124
|
-
| `TESTOMATIO_PROJECT_TOKEN` | Yes* | - | Project API token (preferred) |
|
|
125
|
-
| `TESTOMATIO_PROJECT_ID` | Yes | - | Project ID |
|
|
126
|
-
| `TESTOMATIO_BASE_URL` | No | `https://app.testomat.io` | API base URL |
|
|
127
|
-
|
|
128
|
-
*`TESTOMATIO_PROJECT_TOKEN` is required.
|
|
129
|
-
|
|
130
|
-
## TQL Quick Reference
|
|
131
|
-
|
|
132
|
-
TQL (Testomat.io Query Language) is used for filtering tests and runs.
|
|
133
|
-
|
|
134
|
-
Supported operators: `==`, `!=`, `>`, `<`, `>=`, `<=`, `in [...]`, `%` (contains), `and`, `or`, `not`, parentheses.
|
|
135
|
-
|
|
136
|
-
### Common TQL Examples
|
|
137
|
-
|
|
138
|
-
**Tests:**
|
|
139
|
-
- `priority == 'high'`
|
|
140
|
-
- `state == 'automated'`
|
|
141
|
-
- `suite % 'Checkout'`
|
|
142
|
-
- `tag IN ['@smoke', '@regression']`
|
|
143
|
-
|
|
144
|
-
**Runs:**
|
|
145
|
-
- `title % 'Manual tests'`
|
|
146
|
-
- `plan == '{PLAN_ID}'`
|
|
147
|
-
- `finished and with_defect`
|
|
148
|
-
- `failed and has_test_tag == 'regression'`
|
|
149
|
-
|
|
150
|
-
For full TQL syntax details, see: https://docs.testomat.io/advanced/tql/
|
|
151
|
-
|
|
152
|
-
## Corporate TLS / Proxy
|
|
153
|
-
|
|
154
|
-
If running behind a corporate proxy or TLS inspection, Node.js may reject HTTPS requests.
|
|
155
|
-
|
|
156
|
-
Use system CA support:
|
|
157
|
-
|
|
158
|
-
```bash
|
|
159
|
-
NODE_OPTIONS=--use-system-ca testomatio-mcp --token <TOKEN> --project <PROJECT_ID>
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
Or in MCP client config, pass `NODE_OPTIONS` in the server `env` block.
|
|
163
|
-
|
|
164
|
-
## Important Notes
|
|
165
|
-
|
|
166
|
-
- **Run status transitions** use `runs_update` with `status_event` values: `finish`, `finish_manual`, `launch`, `rerun`, `scheduled`, `terminate`.
|
|
167
|
-
- **Search** for tests and runs uses `tql` as the single filter input; no dedicated `/search` endpoints.
|
|
168
|
-
- **Issue linking** supports scoped helpers: `tests_issues_link/unlink`, `suites_issues_link/unlink`, `runs_issues_link/unlink`.
|
|
169
|
-
- **API Sessions** are automatically managed by the MCP server: a session starts before the first mutating request and stops when the server shuts down.
|
package/skills.yaml
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# External skills for Testeiya. ONE rule: every line is a GitHub repo.
|
|
2
|
-
#
|
|
3
|
-
# owner/repo a skill repo (one skill, or many)
|
|
4
|
-
# owner/repo/tree/<ref>/<subdir> pin a branch/tag/commit, or point at a subfolder
|
|
5
|
-
#
|
|
6
|
-
# Each source owns one vendor folder in cli/skills/ — the repo name, or the
|
|
7
|
-
# owner when the repo is just "skills" (testomatio/skills -> testomatio/).
|
|
8
|
-
# Updates replace only that folder; any folder this file does not own
|
|
9
|
-
# (e.g. cli/skills/testeiya/) holds first-party skills and is never touched.
|
|
10
|
-
#
|
|
11
|
-
# Categories are decided by the repo, never by this file:
|
|
12
|
-
# - repo with a Claude-plugin marketplace (.claude-plugin/marketplace.json)
|
|
13
|
-
# -> one category subfolder per plugin (testomatio/ -> test-management / test-automation / explorbot)
|
|
14
|
-
# - repo without one -> skills sit right under the vendor folder (the vendor is the category)
|
|
15
|
-
#
|
|
16
|
-
# Edit the list, then run: bunosh skills:update [vendor] See the result: bunosh skills:list
|
|
17
|
-
|
|
18
|
-
- testomatio/skills
|
|
19
|
-
- codeceptjs/skills
|
|
20
|
-
- currents-dev/playwright-best-practices-skill
|
|
21
|
-
- microsoft/playwright-cli/tree/main/skills/playwright-cli
|
package/src/ai-debug.ts
DELETED
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
import { publish, type AiEventEntry } from "./debug-bus.js";
|
|
2
|
-
|
|
3
|
-
/*
|
|
4
|
-
* Pluggable PI → Debug-panel recorder. `attachAiDebug(session)` adds one
|
|
5
|
-
* independent listener to a pi-coding-agent session and maps the LLM-level
|
|
6
|
-
* events the WS bridge never forwards — per-turn model responses, the errors a
|
|
7
|
-
* failed turn hides behind a plain `finish`, and auto-retry/fallback/compaction
|
|
8
|
-
* — into the panel's `ai` channel via `debug-bus`'s `publish`. The returned
|
|
9
|
-
* unsubscribe is called from `connection.ts` when the session is torn down.
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
const MAX_DETAIL = 16000;
|
|
13
|
-
|
|
14
|
-
export function attachAiDebug(session: any, conversationId?: string | null): () => void {
|
|
15
|
-
return session.subscribe((event: any) => {
|
|
16
|
-
const entry = mapAiEvent(event);
|
|
17
|
-
if (!entry) return;
|
|
18
|
-
if (conversationId) entry.summary = withSession(entry.summary, conversationId);
|
|
19
|
-
publish(entry);
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function mapAiEvent(event: any): AiEventInput | null {
|
|
24
|
-
if (event.type === "turn_end") return turnEntry(event.message);
|
|
25
|
-
if (event.type === "auto_retry_start") return retryStart(event);
|
|
26
|
-
if (event.type === "auto_retry_end") return retryEnd(event);
|
|
27
|
-
if (event.type === "retry_fallback_applied")
|
|
28
|
-
return fallback(`${event.from} → ${event.to} (${event.role})`, event.to, event);
|
|
29
|
-
if (event.type === "retry_fallback_succeeded")
|
|
30
|
-
return fallback(`${event.model} (${event.role})`, event.model, event);
|
|
31
|
-
if (event.type === "auto_compaction_start")
|
|
32
|
-
return compaction(`${event.reason} → ${event.action}`, true, event);
|
|
33
|
-
if (event.type === "auto_compaction_end") return compactionEnd(event);
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function turnEntry(message: any): AiEventInput | null {
|
|
38
|
-
if (!message || message.role !== "assistant") return null;
|
|
39
|
-
const text = assistantText(message.content);
|
|
40
|
-
const tokens = tokensOf(message.usage);
|
|
41
|
-
const entry: AiEventInput = {
|
|
42
|
-
kind: "ai",
|
|
43
|
-
channel: "ai",
|
|
44
|
-
name: "response",
|
|
45
|
-
summary:
|
|
46
|
-
`${message.model} · ${message.stopReason} · ${text.length} chars` +
|
|
47
|
-
`${tokenSummary(tokens)}${cacheSummary(message.usage)}${durSummary(message.duration)}`,
|
|
48
|
-
ok: true,
|
|
49
|
-
model: message.model ?? null,
|
|
50
|
-
durationMs: numberOrNull(message.duration),
|
|
51
|
-
tokens,
|
|
52
|
-
detail: detail({
|
|
53
|
-
model: message.model,
|
|
54
|
-
provider: message.provider,
|
|
55
|
-
stopReason: message.stopReason,
|
|
56
|
-
errorMessage: message.errorMessage,
|
|
57
|
-
usage: message.usage,
|
|
58
|
-
ttft: message.ttft,
|
|
59
|
-
duration: message.duration,
|
|
60
|
-
text,
|
|
61
|
-
}),
|
|
62
|
-
};
|
|
63
|
-
if (message.stopReason !== "error") return entry;
|
|
64
|
-
entry.name = "error";
|
|
65
|
-
entry.ok = false;
|
|
66
|
-
entry.summary = message.errorMessage ?? "error";
|
|
67
|
-
return entry;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
function tokenSummary(tokens: AiEventEntry["tokens"]): string {
|
|
71
|
-
if (!tokens) return "";
|
|
72
|
-
return ` · ${tokens.input}/${tokens.output} tok`;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
function cacheSummary(usage: any): string {
|
|
76
|
-
if (!usage?.cacheRead) return "";
|
|
77
|
-
return ` · cached=${usage.cacheRead}`;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
function durSummary(duration: any): string {
|
|
81
|
-
if (typeof duration !== "number") return "";
|
|
82
|
-
return ` · dur=${(duration / 1000).toFixed(1)}s`;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
function withSession(summary: string | null, conversationId: string): string {
|
|
86
|
-
if (!summary) return `session:${conversationId}`;
|
|
87
|
-
return `${summary} · session:${conversationId}`;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
function retryStart(event: any): AiEventInput {
|
|
91
|
-
return {
|
|
92
|
-
kind: "ai",
|
|
93
|
-
channel: "ai",
|
|
94
|
-
name: "retry",
|
|
95
|
-
ok: false,
|
|
96
|
-
summary: `attempt ${event.attempt}/${event.maxAttempts} — ${event.errorMessage}`,
|
|
97
|
-
model: null,
|
|
98
|
-
durationMs: numberOrNull(event.delayMs),
|
|
99
|
-
tokens: null,
|
|
100
|
-
detail: detail(event),
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
function retryEnd(event: any): AiEventInput {
|
|
105
|
-
const entry: AiEventInput = {
|
|
106
|
-
kind: "ai",
|
|
107
|
-
channel: "ai",
|
|
108
|
-
name: "retry",
|
|
109
|
-
ok: true,
|
|
110
|
-
summary: `recovered on attempt ${event.attempt}`,
|
|
111
|
-
model: null,
|
|
112
|
-
durationMs: null,
|
|
113
|
-
tokens: null,
|
|
114
|
-
detail: detail(event),
|
|
115
|
-
};
|
|
116
|
-
if (event.success) return entry;
|
|
117
|
-
entry.name = "error";
|
|
118
|
-
entry.ok = false;
|
|
119
|
-
entry.summary = event.finalError ?? "retries exhausted";
|
|
120
|
-
return entry;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
function fallback(summary: string, model: string | undefined, event: any): AiEventInput {
|
|
124
|
-
return {
|
|
125
|
-
kind: "ai",
|
|
126
|
-
channel: "ai",
|
|
127
|
-
name: "fallback",
|
|
128
|
-
ok: true,
|
|
129
|
-
summary,
|
|
130
|
-
model: model ?? null,
|
|
131
|
-
durationMs: null,
|
|
132
|
-
tokens: null,
|
|
133
|
-
detail: detail(event),
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
function compactionEnd(event: any): AiEventInput {
|
|
138
|
-
if (event.errorMessage) return compaction(event.errorMessage, false, event);
|
|
139
|
-
return compaction(`${event.action} done`, true, event);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
function compaction(summary: string, ok: boolean, event: any): AiEventInput {
|
|
143
|
-
return {
|
|
144
|
-
kind: "ai",
|
|
145
|
-
channel: "ai",
|
|
146
|
-
name: "compaction",
|
|
147
|
-
ok,
|
|
148
|
-
summary,
|
|
149
|
-
model: null,
|
|
150
|
-
durationMs: null,
|
|
151
|
-
tokens: null,
|
|
152
|
-
detail: detail(event),
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
function tokensOf(usage: any): AiEventEntry["tokens"] {
|
|
157
|
-
if (!usage) return null;
|
|
158
|
-
return { input: usage.input ?? 0, output: usage.output ?? 0, total: usage.totalTokens ?? 0 };
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
function assistantText(content: any): string {
|
|
162
|
-
if (!Array.isArray(content)) return "";
|
|
163
|
-
const parts: string[] = [];
|
|
164
|
-
for (const part of content) {
|
|
165
|
-
if (part?.type === "text") parts.push(part.text ?? "");
|
|
166
|
-
if (part?.type === "thinking") parts.push(`[thinking] ${part.thinking ?? part.text ?? ""}`);
|
|
167
|
-
if (part?.type === "toolCall") parts.push(`[tool:${part.name}]`);
|
|
168
|
-
}
|
|
169
|
-
return parts.filter(Boolean).join("\n");
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
function numberOrNull(value: any): number | null {
|
|
173
|
-
if (typeof value === "number") return value;
|
|
174
|
-
return null;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
function detail(value: any): string | null {
|
|
178
|
-
let json: string;
|
|
179
|
-
try {
|
|
180
|
-
json = JSON.stringify(value, null, 2);
|
|
181
|
-
} catch {
|
|
182
|
-
return null;
|
|
183
|
-
}
|
|
184
|
-
if (json.length <= MAX_DETAIL) return json;
|
|
185
|
-
return `${json.slice(0, MAX_DETAIL)}… (+${json.length - MAX_DETAIL} more chars)`;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
type AiEventInput = Omit<AiEventEntry, "id" | "ts">;
|
package/src/api/agent-get.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { getSession } from "../session-store.js";
|
|
2
|
-
|
|
3
|
-
export async function agentGet(sessionId: string): Promise<Response> {
|
|
4
|
-
const session = getSession(sessionId);
|
|
5
|
-
|
|
6
|
-
if (!session) {
|
|
7
|
-
return Response.json({ error: "Session not found" }, { status: 404 });
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const expectedMcpServers = (session.projects ?? [])
|
|
11
|
-
.filter((p) => p.status === "ok")
|
|
12
|
-
.map((p) => `testomatio-${p.slug}`);
|
|
13
|
-
|
|
14
|
-
return Response.json({
|
|
15
|
-
sessionId: session.sessionId,
|
|
16
|
-
cwd: session.cwd,
|
|
17
|
-
projects: session.projects,
|
|
18
|
-
backendUrl: session.backendUrl,
|
|
19
|
-
expectedMcpServers,
|
|
20
|
-
createdAt: session.createdAt,
|
|
21
|
-
});
|
|
22
|
-
}
|