testdriverai 7.5.12 → 7.5.14
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/CHANGELOG.md +21 -0
- package/agent/index.js +1 -1
- package/docs/_scripts/generate-examples.js +1 -1
- package/docs/v7/_drafts/architecture.mdx +1 -1
- package/docs/v7/_drafts/configuration.mdx +2 -2
- package/docs/v7/_drafts/quick-start-test-recording.mdx +1 -1
- package/docs/v7/_drafts/test-recording.mdx +1 -1
- package/docs/v7/_drafts/vitest-plugin.mdx +3 -3
- package/docs/v7/_drafts/vitest.mdx +1 -1
- package/docs/v7/examples/ai.mdx +1 -1
- package/docs/v7/examples/assert.mdx +1 -1
- package/docs/v7/examples/captcha-api.mdx +1 -1
- package/docs/v7/examples/chrome-extension.mdx +1 -1
- package/docs/v7/examples/drag-and-drop.mdx +1 -1
- package/docs/v7/examples/element-not-found.mdx +1 -1
- package/docs/v7/examples/hover-image.mdx +1 -1
- package/docs/v7/examples/hover-text.mdx +1 -1
- package/docs/v7/examples/installer.mdx +1 -1
- package/docs/v7/examples/launch-vscode-linux.mdx +1 -1
- package/docs/v7/examples/match-image.mdx +1 -1
- package/docs/v7/examples/press-keys.mdx +1 -1
- package/docs/v7/examples/scroll-keyboard.mdx +1 -1
- package/docs/v7/examples/scroll-until-image.mdx +1 -1
- package/docs/v7/examples/scroll-until-text.mdx +1 -1
- package/docs/v7/examples/scroll.mdx +1 -1
- package/docs/v7/examples/type.mdx +1 -1
- package/docs/v7/examples/windows-installer.mdx +1 -1
- package/interfaces/cli/commands/init.js +1 -1
- package/interfaces/vitest-plugin.mjs +4 -4
- package/lib/core/Dashcam.js +3 -3
- package/lib/github-comment.mjs +1 -1
- package/lib/init-project.js +1 -1
- package/lib/vitest/hooks.mjs +1 -1
- package/mcp-server/README.md +2 -2
- package/mcp-server/dist/server.mjs +1 -1
- package/mcp-server/src/server.ts +1 -1
- package/package.json +1 -1
- package/sdk.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
## 7.5.14 (2026-03-06)
|
|
2
|
+
|
|
3
|
+
## 🔧 Maintenance
|
|
4
|
+
|
|
5
|
+
- Update brand assets and marketing materials with new logos, icons, and product screenshots (dbaf002e)
|
|
6
|
+
- Update API endpoint configuration for Stripe payment processing [API] (dbaf002e)
|
|
7
|
+
- Update default project initialization settings [SDK] (dbaf002e)
|
|
8
|
+
|
|
9
|
+
## 7.5.13 (2026-03-06)
|
|
10
|
+
|
|
11
|
+
## ✨ Features
|
|
12
|
+
|
|
13
|
+
- Add new marketing website with comprehensive landing pages, pricing, features, and documentation sections [Marketing] (a1d567fe)
|
|
14
|
+
|
|
15
|
+
## 🔧 Maintenance
|
|
16
|
+
|
|
17
|
+
- Update API server location configuration across all components [API] (a1d567fe)
|
|
18
|
+
- Upgrade runner AMI and improve deployment automation [Runner] (a1d567fe)
|
|
19
|
+
- Add automated testing for runner auto-upgrade functionality [Runner] (a1d567fe)
|
|
20
|
+
- Update Windows CI workflow configuration [CI] (a1d567fe)
|
|
21
|
+
|
|
1
22
|
## 7.5.12 (2026-03-06)
|
|
2
23
|
|
|
3
24
|
## 🔧 Maintenance
|
package/agent/index.js
CHANGED
|
@@ -1942,7 +1942,7 @@ ${regression}
|
|
|
1942
1942
|
if (process.env.VITE_DOMAIN) return process.env.VITE_DOMAIN;
|
|
1943
1943
|
|
|
1944
1944
|
const mapping = {
|
|
1945
|
-
"https://
|
|
1945
|
+
"https://api.testdriver.ai": "https://console.testdriver.ai",
|
|
1946
1946
|
"https://v6.testdriver.ai": "https://console.testdriver.ai",
|
|
1947
1947
|
};
|
|
1948
1948
|
if (mapping[apiRoot]) return mapping[apiRoot];
|
|
@@ -256,7 +256,7 @@ function extractTestcaseId(url) {
|
|
|
256
256
|
// Generate replay URL from testcase ID
|
|
257
257
|
function generateReplayUrl(testcaseId) {
|
|
258
258
|
// Use the API replay endpoint which handles the redirect with embed=true
|
|
259
|
-
const apiRoot = process.env.TD_API_ROOT || 'https://
|
|
259
|
+
const apiRoot = process.env.TD_API_ROOT || 'https://api.testdriver.ai';
|
|
260
260
|
return `${apiRoot}/api/v1/testdriver/testcase/${testcaseId}/replay`;
|
|
261
261
|
}
|
|
262
262
|
|
|
@@ -214,7 +214,7 @@ export default {
|
|
|
214
214
|
plugins: [
|
|
215
215
|
testDriverPlugin({
|
|
216
216
|
apiKey: process.env.TD_API_KEY,
|
|
217
|
-
apiRoot: process.env.TD_API_ROOT || 'https://
|
|
217
|
+
apiRoot: process.env.TD_API_ROOT || 'https://api.testdriver.ai',
|
|
218
218
|
}),
|
|
219
219
|
],
|
|
220
220
|
}
|
|
@@ -17,7 +17,7 @@ Set these in your `.env` file:
|
|
|
17
17
|
TD_API_KEY=your_api_key_here
|
|
18
18
|
|
|
19
19
|
# Optional
|
|
20
|
-
TD_API_ROOT=https://
|
|
20
|
+
TD_API_ROOT=https://api.testdriver.ai
|
|
21
21
|
TD_DEFAULT_OS=linux
|
|
22
22
|
TD_DEFAULT_RESOLUTION=1920x1080
|
|
23
23
|
TD_NO_PROMPT_CACHE=false
|
|
@@ -52,7 +52,7 @@ const client = await TestDriver.create({
|
|
|
52
52
|
sandboxId: null,
|
|
53
53
|
|
|
54
54
|
// API Configuration
|
|
55
|
-
apiRoot: 'https://
|
|
55
|
+
apiRoot: 'https://api.testdriver.ai',
|
|
56
56
|
|
|
57
57
|
// Logging
|
|
58
58
|
verbosity: 1,
|
|
@@ -21,7 +21,7 @@ export default defineConfig({
|
|
|
21
21
|
plugins: [
|
|
22
22
|
testDriverPlugin({
|
|
23
23
|
apiKey: process.env.TD_API_KEY,
|
|
24
|
-
apiRoot: process.env.TD_API_ROOT || 'https://
|
|
24
|
+
apiRoot: process.env.TD_API_ROOT || 'https://api.testdriver.ai',
|
|
25
25
|
}),
|
|
26
26
|
],
|
|
27
27
|
});
|
|
@@ -25,7 +25,7 @@ export default defineConfig({
|
|
|
25
25
|
plugins: [
|
|
26
26
|
testDriverPlugin({
|
|
27
27
|
apiKey: process.env.TD_API_KEY,
|
|
28
|
-
apiRoot: process.env.TD_API_ROOT || 'https://
|
|
28
|
+
apiRoot: process.env.TD_API_ROOT || 'https://api.testdriver.ai',
|
|
29
29
|
}),
|
|
30
30
|
],
|
|
31
31
|
});
|
|
@@ -73,7 +73,7 @@ testDriverPlugin({
|
|
|
73
73
|
apiKey: process.env.TD_API_KEY,
|
|
74
74
|
|
|
75
75
|
// Optional: Custom API endpoint (for self-hosted)
|
|
76
|
-
apiRoot: 'https://
|
|
76
|
+
apiRoot: 'https://api.testdriver.ai',
|
|
77
77
|
})
|
|
78
78
|
```
|
|
79
79
|
|
|
@@ -81,7 +81,7 @@ testDriverPlugin({
|
|
|
81
81
|
Your TestDriver API key. Get one at [console.testdriver.ai](https://console.testdriver.ai)
|
|
82
82
|
</ParamField>
|
|
83
83
|
|
|
84
|
-
<ParamField path="apiRoot" type="string" default="https://
|
|
84
|
+
<ParamField path="apiRoot" type="string" default="https://api.testdriver.ai">
|
|
85
85
|
API endpoint URL. Only change this if you're using a self-hosted instance.
|
|
86
86
|
</ParamField>
|
|
87
87
|
|
|
@@ -345,7 +345,7 @@ Check your API key is valid:
|
|
|
345
345
|
|
|
346
346
|
```bash
|
|
347
347
|
# Test authentication
|
|
348
|
-
curl -X POST https://
|
|
348
|
+
curl -X POST https://api.testdriver.ai/auth/exchange-api-key \
|
|
349
349
|
-H "Content-Type: application/json" \
|
|
350
350
|
-d '{"apiKey":"your-api-key-here"}'
|
|
351
351
|
```
|
|
@@ -235,7 +235,7 @@ Create a `.env` file in your project root:
|
|
|
235
235
|
|
|
236
236
|
```bash .env
|
|
237
237
|
TD_API_KEY=your-api-key-here
|
|
238
|
-
TD_API_ROOT=https://
|
|
238
|
+
TD_API_ROOT=https://api.testdriver.ai
|
|
239
239
|
```
|
|
240
240
|
|
|
241
241
|
TestDriver automatically reads these when initializing.
|
package/docs/v7/examples/ai.mdx
CHANGED
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* ai.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://
|
|
15
|
+
src="https://api.testdriver.ai/api/v1/testdriver/testcase/69a62b8f06a177a05bccd1dc/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* assert.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://
|
|
15
|
+
src="https://api.testdriver.ai/api/v1/testdriver/testcase/69a62b6206a177a05bccd1cc/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* captcha-api.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://
|
|
15
|
+
src="https://api.testdriver.ai/api/v1/testdriver/testcase/698f7fb0d3b320ad547d9d44/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* chrome-extension.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://
|
|
15
|
+
src="https://api.testdriver.ai/api/v1/testdriver/testcase/69a62b91fc0ac3cc632a91a0/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* drag-and-drop.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://
|
|
15
|
+
src="https://api.testdriver.ai/api/v1/testdriver/testcase/69a62b42fc0ac3cc632a918b/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* element-not-found.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://
|
|
15
|
+
src="https://api.testdriver.ai/api/v1/testdriver/testcase/69a62b6f0d4a5265e44e7d7b/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* hover-image.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://
|
|
15
|
+
src="https://api.testdriver.ai/api/v1/testdriver/testcase/69a62b77fc0ac3cc632a9198/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* hover-text.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://
|
|
15
|
+
src="https://api.testdriver.ai/api/v1/testdriver/testcase/69a62b79dc33133fc0da9439/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* installer.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://
|
|
15
|
+
src="https://api.testdriver.ai/api/v1/testdriver/testcase/69a62b570446888b52a4e1c9/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* launch-vscode-linux.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://
|
|
15
|
+
src="https://api.testdriver.ai/api/v1/testdriver/testcase/69a62b91113035da665496a6/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* match-image.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://
|
|
15
|
+
src="https://api.testdriver.ai/api/v1/testdriver/testcase/69a62b42258e8885264fc704/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* press-keys.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://
|
|
15
|
+
src="https://api.testdriver.ai/api/v1/testdriver/testcase/69a62b800d4a5265e44e7d86/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* scroll-keyboard.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://
|
|
15
|
+
src="https://api.testdriver.ai/api/v1/testdriver/testcase/69a62b82258e8885264fc728/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* scroll-until-image.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://
|
|
15
|
+
src="https://api.testdriver.ai/api/v1/testdriver/testcase/69a62b4549845ced0b71e2b0/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* scroll-until-text.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://
|
|
15
|
+
src="https://api.testdriver.ai/api/v1/testdriver/testcase/69a62b99dc33133fc0da9440/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* scroll.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://
|
|
15
|
+
src="https://api.testdriver.ai/api/v1/testdriver/testcase/69a62b83113035da665496a3/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* type.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://
|
|
15
|
+
src="https://api.testdriver.ai/api/v1/testdriver/testcase/69a62b8d49845ced0b71e2bf/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ Watch this test execute in a real sandbox environment:
|
|
|
12
12
|
|
|
13
13
|
{/* windows-installer.test.mjs output */}
|
|
14
14
|
<iframe
|
|
15
|
-
src="https://
|
|
15
|
+
src="https://api.testdriver.ai/api/v1/testdriver/testcase/69a62b42565d339e8065f17f/replay"
|
|
16
16
|
width="100%"
|
|
17
17
|
height="390"
|
|
18
18
|
style={{ border: "1px solid #333", borderRadius: "8px" }}
|
|
@@ -12,7 +12,7 @@ const { execSync } = require("child_process");
|
|
|
12
12
|
require("dotenv").config();
|
|
13
13
|
|
|
14
14
|
// API configuration
|
|
15
|
-
const API_BASE_URL = process.env.TD_API_ROOT || "https://
|
|
15
|
+
const API_BASE_URL = process.env.TD_API_ROOT || "https://api.testdriver.ai";
|
|
16
16
|
const POLL_INTERVAL = 5000; // 5 seconds
|
|
17
17
|
const POLL_TIMEOUT = 900000; // 15 minutes
|
|
18
18
|
|
|
@@ -763,7 +763,7 @@ export default function testDriverPlugin(options = {}) {
|
|
|
763
763
|
pluginState.apiRoot =
|
|
764
764
|
options.apiRoot ||
|
|
765
765
|
process.env.TD_API_ROOT ||
|
|
766
|
-
"https://
|
|
766
|
+
"https://api.testdriver.ai";
|
|
767
767
|
pluginState.ciProvider = detectCI();
|
|
768
768
|
pluginState.gitInfo = getGitInfo();
|
|
769
769
|
|
|
@@ -822,7 +822,7 @@ class TestDriverReporter {
|
|
|
822
822
|
pluginState.apiRoot =
|
|
823
823
|
this.options.apiRoot ||
|
|
824
824
|
process.env.TD_API_ROOT ||
|
|
825
|
-
"https://
|
|
825
|
+
"https://api.testdriver.ai";
|
|
826
826
|
logger.debug("API key from options:", !!this.options.apiKey);
|
|
827
827
|
logger.debug("API key from env (at onInit):", !!process.env.TD_API_KEY);
|
|
828
828
|
logger.debug("API root from options:", this.options.apiRoot);
|
|
@@ -1239,7 +1239,7 @@ class TestDriverReporter {
|
|
|
1239
1239
|
* Maps an API root URL to its corresponding web console URL.
|
|
1240
1240
|
* The API and web console are served from different domains/ports.
|
|
1241
1241
|
*
|
|
1242
|
-
* @param {string} apiRoot - The API root URL (e.g., https://
|
|
1242
|
+
* @param {string} apiRoot - The API root URL (e.g., https://api.testdriver.ai)
|
|
1243
1243
|
* @returns {string} The corresponding web console URL
|
|
1244
1244
|
*/
|
|
1245
1245
|
function getConsoleUrl(apiRoot) {
|
|
@@ -1249,7 +1249,7 @@ function getConsoleUrl(apiRoot) {
|
|
|
1249
1249
|
if (!apiRoot) return "https://console.testdriver.ai";
|
|
1250
1250
|
|
|
1251
1251
|
// Production: API on render.com -> Console on testdriver.ai
|
|
1252
|
-
if (apiRoot.includes("
|
|
1252
|
+
if (apiRoot.includes("api.testdriver.ai")) {
|
|
1253
1253
|
return "https://console.testdriver.ai";
|
|
1254
1254
|
}
|
|
1255
1255
|
|
package/lib/core/Dashcam.js
CHANGED
|
@@ -81,7 +81,7 @@ class Dashcam {
|
|
|
81
81
|
*/
|
|
82
82
|
_getApiRoot() {
|
|
83
83
|
return (
|
|
84
|
-
this.client.config?.TD_API_ROOT || "https://
|
|
84
|
+
this.client.config?.TD_API_ROOT || "https://api.testdriver.ai"
|
|
85
85
|
);
|
|
86
86
|
}
|
|
87
87
|
|
|
@@ -91,7 +91,7 @@ class Dashcam {
|
|
|
91
91
|
* @param {string} apiRoot - The API root URL
|
|
92
92
|
* @returns {string} The corresponding console URL
|
|
93
93
|
*/
|
|
94
|
-
static getConsoleUrl(apiRoot = "https://
|
|
94
|
+
static getConsoleUrl(apiRoot = "https://api.testdriver.ai") {
|
|
95
95
|
// Allow explicit override via env (e.g. VITE_DOMAIN from .env)
|
|
96
96
|
if (process.env.VITE_DOMAIN) return process.env.VITE_DOMAIN;
|
|
97
97
|
|
|
@@ -99,7 +99,7 @@ class Dashcam {
|
|
|
99
99
|
|
|
100
100
|
// Production: API on render.com or v6 -> Console on testdriver.ai
|
|
101
101
|
if (
|
|
102
|
-
apiRoot.includes("
|
|
102
|
+
apiRoot.includes("api.testdriver.ai") ||
|
|
103
103
|
apiRoot.includes("v6.testdriver.ai")
|
|
104
104
|
) {
|
|
105
105
|
return "https://console.testdriver.ai";
|
package/lib/github-comment.mjs
CHANGED
|
@@ -211,7 +211,7 @@ function getReplayGifUrl(replayUrl, replayId) {
|
|
|
211
211
|
apiBaseUrl = 'https://testdriverai-v6-c96fc597be11.herokuapp.com';
|
|
212
212
|
} else if (replayUrl.includes('console.testdriver.ai')) {
|
|
213
213
|
// TestDriver console
|
|
214
|
-
apiBaseUrl = 'https://
|
|
214
|
+
apiBaseUrl = 'https://api.testdriver.ai';
|
|
215
215
|
} else if (replayUrl.includes('localhost')) {
|
|
216
216
|
// Local development
|
|
217
217
|
apiBaseUrl = 'http://localhost:1337';
|
package/lib/init-project.js
CHANGED
package/lib/vitest/hooks.mjs
CHANGED
|
@@ -255,7 +255,7 @@ async function uploadLogsToReplay(client, dashcamUrl) {
|
|
|
255
255
|
}
|
|
256
256
|
|
|
257
257
|
// Use the SDK's configured API root (matches what the SDK uses for all other API calls)
|
|
258
|
-
const apiRoot = client.config?.TD_API_ROOT || process.env.TD_API_ROOT || "https://
|
|
258
|
+
const apiRoot = client.config?.TD_API_ROOT || process.env.TD_API_ROOT || "https://api.testdriver.ai";
|
|
259
259
|
|
|
260
260
|
console.log(`[TestDriver] Uploading logs for replay ${replayId} to ${apiRoot}...`);
|
|
261
261
|
|
package/mcp-server/README.md
CHANGED
|
@@ -137,10 +137,10 @@ The API endpoint can be configured in three ways (in order of precedence):
|
|
|
137
137
|
|
|
138
138
|
1. **Per-session**: Pass `apiRoot` to `session_start` tool
|
|
139
139
|
2. **Environment variable**: Set `TD_API_ROOT` in your MCP config
|
|
140
|
-
3. **Default**: `https://
|
|
140
|
+
3. **Default**: `https://api.testdriver.ai`
|
|
141
141
|
|
|
142
142
|
Common values:
|
|
143
|
-
- **Production**: `https://
|
|
143
|
+
- **Production**: `https://api.testdriver.ai`
|
|
144
144
|
- **Local dev**: Your ngrok URL (e.g., `https://abc123.ngrok.io`)
|
|
145
145
|
|
|
146
146
|
### Self-Hosted AWS Instances
|
|
@@ -407,7 +407,7 @@ Debug mode (connect to existing sandbox):
|
|
|
407
407
|
});
|
|
408
408
|
logger.debug("session_start: Session created", { sessionId: newSession.sessionId });
|
|
409
409
|
// Determine API root
|
|
410
|
-
const apiRoot = params.apiRoot || process.env.TD_API_ROOT || "https://
|
|
410
|
+
const apiRoot = params.apiRoot || process.env.TD_API_ROOT || "https://api.testdriver.ai";
|
|
411
411
|
logger.debug("session_start: Using API root", { apiRoot });
|
|
412
412
|
// Initialize SDK
|
|
413
413
|
logger.debug("session_start: Initializing SDK");
|
package/mcp-server/src/server.ts
CHANGED
|
@@ -520,7 +520,7 @@ Debug mode (connect to existing sandbox):
|
|
|
520
520
|
logger.debug("session_start: Session created", { sessionId: newSession.sessionId });
|
|
521
521
|
|
|
522
522
|
// Determine API root
|
|
523
|
-
const apiRoot = params.apiRoot || process.env.TD_API_ROOT || "https://
|
|
523
|
+
const apiRoot = params.apiRoot || process.env.TD_API_ROOT || "https://api.testdriver.ai";
|
|
524
524
|
logger.debug("session_start: Using API root", { apiRoot });
|
|
525
525
|
|
|
526
526
|
// Initialize SDK
|
package/package.json
CHANGED
package/sdk.js
CHANGED
|
@@ -1440,7 +1440,7 @@ class TestDriverSDK {
|
|
|
1440
1440
|
// Set up environment with API key
|
|
1441
1441
|
const environment = {
|
|
1442
1442
|
TD_API_KEY: resolvedApiKey,
|
|
1443
|
-
TD_API_ROOT: options.apiRoot || "https://
|
|
1443
|
+
TD_API_ROOT: options.apiRoot || "https://api.testdriver.ai",
|
|
1444
1444
|
TD_RESOLUTION: options.resolution || "1366x768",
|
|
1445
1445
|
TD_ANALYTICS: options.analytics !== false,
|
|
1446
1446
|
TD_PREVIEW: previewMode,
|