testdriverai 7.9.54-test → 7.9.56-canary

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.
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "testdriver",
3
+ "version": "7.9.54-test",
4
+ "description": "TestDriver.ai plugins for Claude Code — MCP server, agent, and skills for building natural-language end-to-end tests.",
5
+ "repository": "https://github.com/testdriverai/testdriverai",
6
+ "owner": {
7
+ "name": "TestDriver.ai",
8
+ "url": "https://testdriver.ai"
9
+ },
10
+ "plugins": [
11
+ {
12
+ "name": "testdriver",
13
+ "source": "./ai",
14
+ "description": "TestDriver.ai MCP server, TestDriver expert agent, and skills for authoring computer-use end-to-end tests with Vitest."
15
+ }
16
+ ]
17
+ }
@@ -1,9 +1,94 @@
1
1
  {
2
2
  "name": "testdriver",
3
- "description": "TestDriver plugin: SDK guidance plus MCP access to test runs and results.",
4
- "version": "1.0.0",
3
+ "version": "7.9.54-test",
4
+ "description": "TestDriver.ai Claude Code plugin: MCP server, TestDriver expert agent, and skills for authoring computer-use end-to-end tests with Vitest.",
5
5
  "author": {
6
- "name": "TestDriver"
7
- }
6
+ "name": "TestDriver.ai",
7
+ "url": "https://testdriver.ai"
8
+ },
9
+ "homepage": "https://docs.testdriver.ai",
10
+ "repository": "https://github.com/testdriverai/testdriverai",
11
+ "license": "AGPL-3.0",
12
+ "keywords": [
13
+ "testdriver",
14
+ "testing",
15
+ "e2e",
16
+ "mcp",
17
+ "vitest",
18
+ "automation",
19
+ "computer-use",
20
+ "browser",
21
+ "ai",
22
+ "qa"
23
+ ],
24
+ "mcpServers": {
25
+ "testdriver": {
26
+ "command": "npx",
27
+ "args": ["-p", "testdriverai", "testdriverai-mcp"],
28
+ "env": {
29
+ "TD_API_KEY": "${TD_API_KEY}"
30
+ }
31
+ }
32
+ },
33
+ "agents": [
34
+ "./agents/testdriver.md"
35
+ ],
36
+ "skills": [
37
+ "./skills/testdriver-ai",
38
+ "./skills/testdriver-assert",
39
+ "./skills/testdriver-aws-setup",
40
+ "./skills/testdriver-cache",
41
+ "./skills/testdriver-caching",
42
+ "./skills/testdriver-captcha",
43
+ "./skills/testdriver-ci-cd",
44
+ "./skills/testdriver-click",
45
+ "./skills/testdriver-client",
46
+ "./skills/testdriver-cloud",
47
+ "./skills/testdriver-customizing-devices",
48
+ "./skills/testdriver-dashcam",
49
+ "./skills/testdriver-debugging-with-screenshots",
50
+ "./skills/testdriver-device-config",
51
+ "./skills/testdriver-double-click",
52
+ "./skills/testdriver-elements",
53
+ "./skills/testdriver-enterprise",
54
+ "./skills/testdriver-errors",
55
+ "./skills/testdriver-events",
56
+ "./skills/testdriver-examples",
57
+ "./skills/testdriver-exec",
58
+ "./skills/testdriver-find",
59
+ "./skills/testdriver-focus-application",
60
+ "./skills/testdriver-generating-tests",
61
+ "./skills/testdriver-hosted",
62
+ "./skills/testdriver-hover",
63
+ "./skills/testdriver-locating-elements",
64
+ "./skills/testdriver-making-assertions",
65
+ "./skills/testdriver-mcp",
66
+ "./skills/testdriver-mcp-workflow",
67
+ "./skills/testdriver-mouse-down",
68
+ "./skills/testdriver-mouse-up",
69
+ "./skills/testdriver-parse",
70
+ "./skills/testdriver-performing-actions",
71
+ "./skills/testdriver-press-keys",
72
+ "./skills/testdriver-provision",
73
+ "./skills/testdriver-quickstart",
74
+ "./skills/testdriver-redraw",
75
+ "./skills/testdriver-reusable-code",
76
+ "./skills/testdriver-right-click",
77
+ "./skills/testdriver-running-tests",
78
+ "./skills/testdriver-screenshot",
79
+ "./skills/testdriver-screenshots",
80
+ "./skills/testdriver-scroll",
81
+ "./skills/testdriver-secrets",
82
+ "./skills/testdriver-self-hosted",
83
+ "./skills/testdriver-test-results-json",
84
+ "./skills/testdriver-test-writer",
85
+ "./skills/testdriver-testdriver",
86
+ "./skills/testdriver-testdriver-mechanic",
87
+ "./skills/testdriver-type",
88
+ "./skills/testdriver-variables",
89
+ "./skills/testdriver-wait",
90
+ "./skills/testdriver-waiting-for-elements",
91
+ "./skills/testdriver-what-is-testdriver"
92
+ ]
8
93
  }
9
94
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: testdriver
3
3
  description: An expert at creating and refining automated tests using TestDriver.ai
4
- tools: ['vscode/getProjectSetupInfo', 'vscode/installExtension', 'vscode/newWorkspace', 'vscode/openSimpleBrowser', 'vscode/runCommand', 'vscode/askQuestions', 'vscode/switchAgent', 'vscode/vscodeAPI', 'vscode/extensions', 'execute/runNotebookCell', 'execute/testFailure', 'execute/getTerminalOutput', 'execute/awaitTerminal', 'execute/killTerminal', 'execute/runTask', 'execute/createAndRunTask', 'execute/runInTerminal', 'execute/runTests', 'read/getNotebookSummary', 'read/problems', 'read/readFile', 'read/readNotebookCellOutput', 'read/terminalSelection', 'read/terminalLastCommand', 'read/getTaskOutput', 'agent/runSubagent', 'edit/createDirectory', 'edit/createFile', 'edit/createJupyterNotebook', 'edit/editFiles', 'edit/editNotebook', 'search/changes', 'search/codebase', 'search/fileSearch', 'search/listDirectory', 'search/searchResults', 'search/textSearch', 'search/usages', 'search/searchSubagent', 'web/fetch', 'web/githubRepo', 'testdriver/assert', 'testdriver/check', 'testdriver/click', 'testdriver/exec', 'testdriver/find', 'testdriver/find_and_click', 'testdriver/findall', 'testdriver/focus_application', 'testdriver/hover', 'testdriver/list_local_screenshots', 'testdriver/press_keys', 'testdriver/screenshot', 'testdriver/scroll', 'testdriver/session_extend', 'testdriver/session_start', 'testdriver/session_status', 'testdriver/type', 'testdriver/view_local_screenshot', 'testdriver/wait', 'todo']
4
+ tools: ['vscode/getProjectSetupInfo', 'vscode/installExtension', 'vscode/newWorkspace', 'vscode/openSimpleBrowser', 'vscode/runCommand', 'vscode/askQuestions', 'vscode/switchAgent', 'vscode/vscodeAPI', 'vscode/extensions', 'execute/runNotebookCell', 'execute/testFailure', 'execute/getTerminalOutput', 'execute/awaitTerminal', 'execute/killTerminal', 'execute/runTask', 'execute/createAndRunTask', 'execute/runInTerminal', 'execute/runTests', 'read/getNotebookSummary', 'read/problems', 'read/readFile', 'read/readNotebookCellOutput', 'read/terminalSelection', 'read/terminalLastCommand', 'read/getTaskOutput', 'agent/runSubagent', 'edit/createDirectory', 'edit/createFile', 'edit/createJupyterNotebook', 'edit/editFiles', 'edit/editNotebook', 'search/changes', 'search/codebase', 'search/fileSearch', 'search/listDirectory', 'search/searchResults', 'search/textSearch', 'search/usages', 'search/searchSubagent', 'web/fetch', 'web/githubRepo', 'testdriver/assert', 'testdriver/check', 'testdriver/click', 'testdriver/exec', 'testdriver/find', 'testdriver/find_and_click', 'testdriver/findall', 'testdriver/focus_application', 'testdriver/hover', 'testdriver/init', 'testdriver/list_local_screenshots', 'testdriver/press_keys', 'testdriver/screenshot', 'testdriver/scroll', 'testdriver/session_extend', 'testdriver/session_start', 'testdriver/session_status', 'testdriver/type', 'testdriver/view_local_screenshot', 'testdriver/wait', 'todo']
5
5
  mcp-servers:
6
6
  testdriver:
7
7
  command: npx
@@ -294,7 +294,7 @@ When creating a new test project, use these exact dependencies:
294
294
  {
295
295
  "type": "module",
296
296
  "devDependencies": {
297
- "testdriverai": "beta",
297
+ "testdriverai": "canary",
298
298
  "vitest": "^4.0.0"
299
299
  },
300
300
  "scripts": {
@@ -303,7 +303,7 @@ When creating a new test project, use these exact dependencies:
303
303
  }
304
304
  ```
305
305
 
306
- **Important:** The package is `testdriverai` (NOT `@testdriverai/sdk`). Always install from the `beta` tag.
306
+ **Important:** The package is `testdriverai` (NOT `@testdriverai/sdk`). Always install from the `canary` tag.
307
307
 
308
308
  ## Test File Format
309
309
 
@@ -50,12 +50,12 @@ Get your API key at: **https://console.testdriver.ai/team**
50
50
 
51
51
  ### Installation
52
52
 
53
- Always use the **beta** tag when installing TestDriver:
53
+ Always use the **canary** tag when installing TestDriver:
54
54
 
55
55
  ```bash
56
- npm install --save-dev testdriverai@beta
56
+ npm install --save-dev testdriverai@canary
57
57
  # or
58
- npx testdriverai@beta init
58
+ npx testdriverai@canary init
59
59
  ```
60
60
 
61
61
  ### Test Runner
@@ -2,29 +2,74 @@
2
2
  title: Using TestDriver with Claude Code (MCP)
3
3
  ---
4
4
 
5
- TestDriver exposes test results and analytics over an **HTTP MCP server**, so Claude Code (or any MCP-compatible client) can inspect your test runs, failures, and filters.
5
+ TestDriver ships as a native [Claude Code plugin](https://docs.claude.com/en/docs/claude-code/plugins) that bundles the **TestDriver MCP server**, the **`testdriver` expert sub-agent**, and all **TestDriver skills**. You get everything you need to drive TestDriver from Claude Code with a single install.
6
6
 
7
- This guide assumes:
7
+ > The plugin lives inside the `testdriverai` npm package at `ai/.claude-plugin/plugin.json`, and the marketplace entry lives at `.claude-plugin/marketplace.json` in this repo.
8
8
 
9
- - Your API server is running the MCP endpoint at `POST /api/v1/mcp`
10
- - You have a **team or user API key** for authentication
11
- - You are using this repo (`testdriverai`) as the SDK / local tooling
12
-
13
- ## 1. Configure an API key
14
-
15
- Get your API key from the team settings:
9
+ ## 1. Get a TestDriver API key
16
10
 
17
11
  - Visit your team page (e.g. `https://console.testdriver.ai/team`)
18
12
  - Create or copy a **Team API Key** (or User API Key)
19
- - Store it locally as an environment variable, for example:
13
+ - Export it in your shell so Claude Code can pass it to the MCP server:
14
+
15
+ ```bash
16
+ export TD_API_KEY="your_api_key_here"
17
+ ```
18
+
19
+ ## 2. Install the plugin in Claude Code
20
+
21
+ From inside Claude Code, add this repo as a plugin marketplace and install the `testdriver` plugin:
22
+
23
+ ```text
24
+ /plugin marketplace add testdriverai/testdriverai
25
+ /plugin install testdriver@testdriver
26
+ ```
20
27
 
21
- ```bash
22
- export TD_API_KEY="your_api_key_here"
28
+ That registers three things:
29
+
30
+ - **`testdriver` MCP server** — spawned via `npx -p testdriverai testdriverai-mcp`, with `TD_API_KEY` forwarded from your environment.
31
+ - **`testdriver` sub-agent** — the TestDriver expert agent from `ai/agents/testdriver.md`. Invoke it with `@testdriver ...`.
32
+ - **TestDriver skills** — every `ai/skills/testdriver-*` skill, auto-loaded by Claude Code.
33
+
34
+ ## 3. Write tests with the agent
35
+
36
+ In a Claude Code session, delegate to the agent:
37
+
38
+ ```text
39
+ @testdriver Write a test that signs into https://example.com and adds an item to the cart.
23
40
  ```
24
41
 
25
- The MCP server expects this API key in the `X-Api-Key` header (or `Authorization: Bearer <key>`).
42
+ The agent will use the TestDriver MCP tools (`session_start`, `find`, `click`, `type`, `assert`, …) to interactively build a Vitest test, append generated code to your test file after every action, and run it with `vitest run` until it passes.
43
+
44
+ For the full agent guide, see the [`testdriver` agent definition](https://github.com/testdriverai/testdriverai/blob/main/ai/agents/testdriver.md) and the [MCP workflow skill](https://github.com/testdriverai/testdriverai/blob/main/ai/skills/testdriver-mcp-workflow/SKILL.md).
26
45
 
27
- ## 2. HTTP MCP endpoint contract
46
+ ## Manual MCP configuration (no plugin)
47
+
48
+ If you prefer not to use the plugin, you can register the MCP server manually in any MCP-compatible client (Claude Desktop, Cursor, VS Code, …):
49
+
50
+ ```json
51
+ {
52
+ "mcpServers": {
53
+ "testdriver": {
54
+ "command": "npx",
55
+ "args": ["-p", "testdriverai", "testdriverai-mcp"],
56
+ "env": {
57
+ "TD_API_KEY": "${TD_API_KEY}"
58
+ }
59
+ }
60
+ }
61
+ }
62
+ ```
63
+
64
+ This is the same config the plugin wires up for you — the plugin just bundles it alongside the agent and skills.
65
+
66
+ ---
67
+
68
+ ## Observing test runs via HTTP MCP
69
+
70
+ TestDriver also exposes **test results and analytics** over an HTTP MCP endpoint, so Claude Code (or any MCP-compatible client) can inspect your test runs, failures, and filters without provisioning a sandbox.
71
+
72
+ ### HTTP MCP endpoint contract
28
73
 
29
74
  The HTTP endpoint lives at:
30
75
 
@@ -32,6 +77,8 @@ The HTTP endpoint lives at:
32
77
  POST /api/v1/mcp
33
78
  ```
34
79
 
80
+ It expects the TestDriver API key in the `X-Api-Key` header (or `Authorization: Bearer <key>`).
81
+
35
82
  Common request shapes:
36
83
 
37
84
  - **List tools**
@@ -89,7 +136,7 @@ The MCP server advertises at least these tools in `list_tools`:
89
136
  - `get_filter_options`
90
137
  Get branch, suite, repo, filename, commit, status, platform, and test name options for building queries.
91
138
 
92
- ## 3. Claude Code MCP server configuration
139
+ ### Pointing Claude Code at the HTTP MCP endpoint
93
140
 
94
141
  You can point Claude Code at the HTTP MCP endpoint using a JSON configuration similar to:
95
142
 
@@ -137,12 +184,12 @@ For local development:
137
184
  }
138
185
  ```
139
186
 
140
- ## 4. Skills documentation for Claude
187
+ ### Skills documentation for Claude
141
188
 
142
- Claude Code expects a `SKILLs.md` file to explain how to use a server. In this repo:
189
+ Claude Code loads the agent and skills automatically when you install the plugin (see step 2). The underlying sources are:
143
190
 
144
191
  - `ai/agents/testdriver.md` contains the **full TestDriver Agent Guide**
145
- - `SKILLs.md` acts as a short wrapper that points Claude (and other agents) to the agent guide
192
+ - `ai/skills/testdriver-*/SKILL.md` provide task-specific skills (MCP workflow, assertions, provisioning, etc.)
146
193
 
147
194
  Use these as the primary reference for:
148
195
 
@@ -89,6 +89,38 @@ To use the TestDriver MCP server with GitHub Copilot coding agent:
89
89
 
90
90
  For more information, see [Extending GitHub Copilot coding agent with Model Context Protocol](https://docs.github.com/en/copilot/customizing-copilot/extending-copilot-coding-agent-with-mcp).
91
91
 
92
+ ### With Claude Code (plugin)
93
+
94
+ TestDriver ships as a [Claude Code plugin](https://docs.claude.com/en/docs/claude-code/plugins) so you get the MCP server, the `testdriver` expert agent, and all TestDriver skills with a single install.
95
+
96
+ 1. Set your TestDriver API key in your shell:
97
+
98
+ ```bash
99
+ export TD_API_KEY=your_api_key_from_https_console_testdriver_ai_team
100
+ ```
101
+
102
+ 2. Add this repo as a Claude Code plugin marketplace and install the `testdriver` plugin:
103
+
104
+ ```bash
105
+ # Add the marketplace (sources `.claude-plugin/marketplace.json` from this repo)
106
+ /plugin marketplace add testdriverai/testdriverai
107
+
108
+ # Install the plugin
109
+ /plugin install testdriver@testdriver
110
+ ```
111
+
112
+ This reads `.claude-plugin/plugin.json` (shipped inside the `testdriverai` npm package) and:
113
+
114
+ - Registers the `testdriver` MCP server (`npx -p testdriverai testdriverai-mcp`)
115
+ - Registers the `testdriver` sub-agent (from `ai/agents/testdriver.md`)
116
+ - Registers all TestDriver skills (from `ai/skills/testdriver-*/SKILL.md`)
117
+
118
+ 3. In a Claude Code session, delegate to the agent with:
119
+
120
+ ```text
121
+ @testdriver Write a test that signs into example.com and adds an item to the cart.
122
+ ```
123
+
92
124
  ### With Claude Desktop / Cursor
93
125
 
94
126
  Add to your MCP config (`~/.cursor/mcp.json` or `~/Library/Application Support/Claude/claude_desktop_config.json`):
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "testdriverai",
3
- "version": "7.9.54-test",
3
+ "version": "7.9.56-canary",
4
4
  "description": "Next generation autonomous AI agent for end-to-end testing of web & desktop",
5
5
  "main": "sdk.js",
6
6
  "types": "sdk.d.ts",