@muggleai/works 5.13.1 → 5.14.0-staging.101
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.
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"targets": {
|
|
11
11
|
"production": {
|
|
12
12
|
"promptServiceBaseUrl": "https://promptservice.muggle-ai.com",
|
|
13
|
+
"uiBaseUrl": "https://www.muggle-ai.com/muggleTestV0",
|
|
13
14
|
"auth0Domain": "login.muggle-ai.com",
|
|
14
15
|
"auth0ClientId": "UgG5UjoyLksxMciWWKqVpwfWrJ4rFvtT",
|
|
15
16
|
"auth0Audience": "https://muggleai.us.auth0.com/api/v2/",
|
|
@@ -17,6 +18,7 @@
|
|
|
17
18
|
},
|
|
18
19
|
"staging": {
|
|
19
20
|
"promptServiceBaseUrl": "https://staging.promptservice.muggle-ai.com",
|
|
21
|
+
"uiBaseUrl": "https://staging.muggle-ai.com/muggleTestV0",
|
|
20
22
|
"auth0Domain": "login.staging.muggle-ai.com",
|
|
21
23
|
"auth0ClientId": "C6rmJN3FeX3EuGZdY8qbHpbJVRadxsly",
|
|
22
24
|
"auth0Audience": "https://staging-muggleai.us.auth0.com/api/v2/",
|
|
@@ -24,6 +26,7 @@
|
|
|
24
26
|
},
|
|
25
27
|
"dev": {
|
|
26
28
|
"promptServiceBaseUrl": "http://localhost:5050",
|
|
29
|
+
"uiBaseUrl": "http://localhost:3999/muggleTestV0",
|
|
27
30
|
"auth0Domain": "dev-po4mxmz0rd8a0w8w.us.auth0.com",
|
|
28
31
|
"auth0ClientId": "GBvkMdTbCI80XJXnJ90MmbEvXwcWGUtw",
|
|
29
32
|
"auth0Audience": "https://dev-po4mxmz0rd8a0w8w.us.auth0.com/api/v2/",
|
|
@@ -490,10 +490,10 @@ function renderOverview(report) {
|
|
|
490
490
|
}
|
|
491
491
|
return lines.join("\n");
|
|
492
492
|
}
|
|
493
|
-
function renderTestDetails(test, projectId, testNumber) {
|
|
493
|
+
function renderTestDetails(test, projectId, testNumber, dashboardBaseUrl = DASHBOARD_URL_BASE) {
|
|
494
494
|
const summary = renderSummaryLine(test, testNumber);
|
|
495
495
|
const frameBlock = renderEndingFrame(test);
|
|
496
|
-
const resultLines = renderResultSummary(test, projectId);
|
|
496
|
+
const resultLines = renderResultSummary(test, projectId, dashboardBaseUrl);
|
|
497
497
|
const body = ["", "<br>", ""];
|
|
498
498
|
if (frameBlock) {
|
|
499
499
|
body.push(...frameBlock, "");
|
|
@@ -524,8 +524,8 @@ function renderEndingFrame(test) {
|
|
|
524
524
|
fullSizeImage(frame.url, test.name)
|
|
525
525
|
];
|
|
526
526
|
}
|
|
527
|
-
function renderResultSummary(test, projectId) {
|
|
528
|
-
const dashboardUrl = `${
|
|
527
|
+
function renderResultSummary(test, projectId, dashboardBaseUrl) {
|
|
528
|
+
const dashboardUrl = `${dashboardBaseUrl}/${projectId}/scripts?modal=script-details&testCaseId=${encodeURIComponent(test.testCaseId)}`;
|
|
529
529
|
const lines = [];
|
|
530
530
|
if (test.status === "passed") {
|
|
531
531
|
lines.push(`**Result:** \u2705 PASSED`);
|
|
@@ -554,7 +554,7 @@ function renderBody(report, opts) {
|
|
|
554
554
|
"_Full per-test details in the comment below \u2014 the PR description was too large to inline them._"
|
|
555
555
|
].join("\n");
|
|
556
556
|
}
|
|
557
|
-
const detailBlocks = report.tests.map((t, i) => renderTestDetails(t, report.projectId, i + 1));
|
|
557
|
+
const detailBlocks = report.tests.map((t, i) => renderTestDetails(t, report.projectId, i + 1, opts.dashboardBaseUrl ?? DASHBOARD_URL_BASE));
|
|
558
558
|
return [
|
|
559
559
|
overview,
|
|
560
560
|
"",
|
|
@@ -563,11 +563,11 @@ function renderBody(report, opts) {
|
|
|
563
563
|
detailBlocks.join("\n\n")
|
|
564
564
|
].join("\n");
|
|
565
565
|
}
|
|
566
|
-
function renderComment(report) {
|
|
566
|
+
function renderComment(report, opts = {}) {
|
|
567
567
|
if (report.tests.length === 0) {
|
|
568
568
|
return "";
|
|
569
569
|
}
|
|
570
|
-
const detailBlocks = report.tests.map((t, i) => renderTestDetails(t, report.projectId, i + 1));
|
|
570
|
+
const detailBlocks = report.tests.map((t, i) => renderTestDetails(t, report.projectId, i + 1, opts.dashboardBaseUrl ?? DASHBOARD_URL_BASE));
|
|
571
571
|
return [
|
|
572
572
|
"## E2E acceptance evidence (overflow)",
|
|
573
573
|
"",
|
|
@@ -579,7 +579,7 @@ function renderComment(report) {
|
|
|
579
579
|
|
|
580
580
|
// src/cli/pr-section/overflow.ts
|
|
581
581
|
function splitWithOverflow(report, opts) {
|
|
582
|
-
const inlineBody = renderBody(report, { inlineDetails: true });
|
|
582
|
+
const inlineBody = renderBody(report, { inlineDetails: true, dashboardBaseUrl: opts.dashboardBaseUrl });
|
|
583
583
|
const inlineBytes = Buffer.byteLength(inlineBody, "utf-8");
|
|
584
584
|
if (inlineBytes <= opts.maxBodyBytes) {
|
|
585
585
|
return { body: inlineBody, comment: null };
|
|
@@ -587,8 +587,8 @@ function splitWithOverflow(report, opts) {
|
|
|
587
587
|
if (report.tests.length === 0) {
|
|
588
588
|
return { body: inlineBody, comment: null };
|
|
589
589
|
}
|
|
590
|
-
const spilledBody = renderBody(report, { inlineDetails: false });
|
|
591
|
-
const comment = renderComment(report);
|
|
590
|
+
const spilledBody = renderBody(report, { inlineDetails: false, dashboardBaseUrl: opts.dashboardBaseUrl });
|
|
591
|
+
const comment = renderComment(report, { dashboardBaseUrl: opts.dashboardBaseUrl });
|
|
592
592
|
return {
|
|
593
593
|
body: spilledBody,
|
|
594
594
|
comment: comment.length > 0 ? comment : null
|
|
@@ -804,6 +804,18 @@ var DEFAULT_MAX_BODY_BYTES = 6e4;
|
|
|
804
804
|
var REPORT_SECTION_SENTINEL = "<!-- muggle-pr-section:v1 -->";
|
|
805
805
|
var withSentinel = (s) => s ? `${REPORT_SECTION_SENTINEL}
|
|
806
806
|
${s}` : s;
|
|
807
|
+
async function resolveDashboardBaseUrl(stderrWrite) {
|
|
808
|
+
try {
|
|
809
|
+
const mcps = await import('./src-KNYT7EHP.js');
|
|
810
|
+
return `${mcps.resolveActiveProfile().uiBaseUrl}/dashboard/projects`;
|
|
811
|
+
} catch (err) {
|
|
812
|
+
stderrWrite(
|
|
813
|
+
`build-pr-section: could not resolve the runtime target, linking to production: ${errMsg2(err)}
|
|
814
|
+
`
|
|
815
|
+
);
|
|
816
|
+
return DASHBOARD_URL_BASE;
|
|
817
|
+
}
|
|
818
|
+
}
|
|
807
819
|
async function readAll(stream) {
|
|
808
820
|
const chunks = [];
|
|
809
821
|
for await (const chunk of stream) {
|
|
@@ -851,7 +863,8 @@ ${err.issues.map((i) => ` - ${i.path.join(".")}: ${i.message}`).join("\n")}
|
|
|
851
863
|
const sentinelCost = Buffer.byteLength(`${REPORT_SECTION_SENTINEL}
|
|
852
864
|
`, "utf-8");
|
|
853
865
|
const renderedSection = buildPrSection(resolvedReport, {
|
|
854
|
-
maxBodyBytes: opts.maxBodyBytes - sentinelCost
|
|
866
|
+
maxBodyBytes: opts.maxBodyBytes - sentinelCost,
|
|
867
|
+
dashboardBaseUrl: await resolveDashboardBaseUrl(opts.stderrWrite)
|
|
855
868
|
});
|
|
856
869
|
opts.stdoutWrite(
|
|
857
870
|
JSON.stringify({
|
package/dist/cli.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { src_exports as commands, createUnifiedMcpServer, server_exports as server } from './chunk-
|
|
1
|
+
export { src_exports as commands, createUnifiedMcpServer, server_exports as server } from './chunk-2YXBHSCP.js';
|
|
2
2
|
export { createChildLogger, e2e_exports as e2e, getConfig, getLocalQaTools, getLogger, getQaTools, local_exports as localQa, mcp_exports as mcp, e2e_exports as qa, src_exports as shared } from './chunk-H5UDFKG3.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"release": "5.13.1",
|
|
3
|
-
"buildId": "run-
|
|
4
|
-
"commitSha": "
|
|
5
|
-
"buildTime": "2026-09-
|
|
3
|
+
"buildId": "run-101-1",
|
|
4
|
+
"commitSha": "0ca6cf7623407bc11836f39529640129081de7d0",
|
|
5
|
+
"buildTime": "2026-09-05T06:15:43Z",
|
|
6
6
|
"serviceName": "muggle-ai-works-mcp"
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@muggleai/works",
|
|
3
3
|
"mcpName": "io.github.multiplex-ai/muggle",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.14.0-staging.101",
|
|
5
5
|
"description": "Ship quality products with AI-powered E2E acceptance testing that validates your web app like a real user — from Claude Code and Cursor to PR.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"muggleConfig": {
|
|
54
54
|
"electronAppVersion": "1.10.3",
|
|
55
55
|
"downloadBaseUrl": "https://github.com/multiplex-ai/muggle-ai-works/releases/download",
|
|
56
|
-
"runtimeTargetDefault": "
|
|
56
|
+
"runtimeTargetDefault": "staging",
|
|
57
57
|
"checksumsByStream": {
|
|
58
58
|
"production": {
|
|
59
59
|
"win32-x64": "58e2238b1609ceff65b836b4b724b1c4c341d737a15debaa8a71af21b70bc436",
|