@muggleai/works 5.12.0-staging.82 → 5.12.0-staging.84

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.
@@ -1,4 +1,4 @@
1
- import { __export, getLogger, getConfig, createChildLogger, buildElectronAppReleaseAssetUrl, getActiveRuntimeTarget, getAuthService, hasApiKey, getElectronAppVersion, getElectronAppDir, getPlatformKey, reconcileProjectPreferences, getDataDir, PREFERENCES_FILE_NAME, isFirstRun, writePreferences, DEFAULT_PREFERENCES, isElectronAppInstalled, getElectronAppChecksums, getChecksumForPlatform, getElectronAppSignedFromVersion, getReleaseSignerIdentityUri, verifyFileChecksum, calculateFileChecksum, initTelemetry, Surface, ServiceName, track, EventName, getQaTools, getLocalQaTools, performLogout, assertDeviceCodeClientProvisioned, performLogin, toolRequiresAuth, getCallerCredentials, hasShownDisclosure, getDisclosureCopy, markDisclosureShown, getBundledElectronAppVersion, getElectronAppVersionSource, getCredentialsFilePath, buildElectronAppChecksumsUrl, __require } from './chunk-5Q5CMHUP.js';
1
+ import { __export, getLogger, getConfig, createChildLogger, buildElectronAppReleaseAssetUrl, getActiveRuntimeTarget, getAuthService, hasApiKey, getElectronAppVersion, getElectronAppDir, getPlatformKey, reconcileProjectPreferences, getDataDir, PREFERENCES_FILE_NAME, isFirstRun, writePreferences, DEFAULT_PREFERENCES, isElectronAppInstalled, getElectronAppChecksums, getChecksumForPlatform, getElectronAppSignedFromVersion, getReleaseSignerIdentityUri, verifyFileChecksum, calculateFileChecksum, initTelemetry, Surface, ServiceName, track, EventName, getQaTools, getLocalQaTools, performLogout, assertDeviceCodeClientProvisioned, performLogin, toolRequiresAuth, getCallerCredentials, hasShownDisclosure, getDisclosureCopy, markDisclosureShown, getBundledElectronAppVersion, getElectronAppVersionSource, getCredentialsFilePath, buildElectronAppChecksumsUrl, __require } from './chunk-H5UDFKG3.js';
2
2
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
3
3
  import { ListToolsRequestSchema, CallToolRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema } from '@modelcontextprotocol/sdk/types.js';
4
4
  import { v4 } from 'uuid';
@@ -753,7 +753,7 @@ async function resolveGsScreenshotUrls(report, opts) {
753
753
  if (gsUrls.length === 0) {
754
754
  return report;
755
755
  }
756
- const mcps = await import('./src-UFOOP4QA.js');
756
+ const mcps = await import('./src-KNYT7EHP.js');
757
757
  const credentials = await mcps.getCallerCredentialsAsync();
758
758
  if (!credentials.bearerToken && !credentials.apiKey) {
759
759
  stderrWrite(
@@ -4453,7 +4453,11 @@ var ProjectTestResultsSummaryInputSchema = z.object({
4453
4453
  projectId: IdSchema.describe("Project ID (UUID) to get test results summary for")
4454
4454
  });
4455
4455
  var ProjectTestScriptsSummaryInputSchema = z.object({
4456
- projectId: IdSchema.describe("Project ID (UUID) to get test scripts summary for")
4456
+ projectId: IdSchema.describe("Project ID (UUID) to get test scripts summary for"),
4457
+ page: z.number().int().positive().default(1).describe("Page number, 1-based. Defaults to 1."),
4458
+ pageSize: z.number().int().positive().max(100).default(20).describe("Number of rows per page. Defaults to 20, max 100."),
4459
+ sortBy: z.enum(["createdAt", "updatedAt"]).default("createdAt").describe("Sort field for the page. Defaults to createdAt (stable under concurrent writes)."),
4460
+ sortOrder: z.enum(["asc", "desc"]).default("desc").describe("Sort direction. Defaults to desc (newest first).")
4457
4461
  });
4458
4462
  var ProjectTestRunsSummaryInputSchema = z.object({
4459
4463
  projectId: IdSchema.describe("Project ID (UUID) to get test runs summary for"),
@@ -4921,6 +4925,33 @@ function mapTestRunsSummary(response) {
4921
4925
  };
4922
4926
  }
4923
4927
 
4928
+ // packages/mcps/src/mcp/tools/e2e/test-scripts-summary-transform.ts
4929
+ var UNKNOWN_STATUS2 = "UNKNOWN";
4930
+ function slimScriptsEntry(raw) {
4931
+ return {
4932
+ status: raw.status || UNKNOWN_STATUS2,
4933
+ ...raw.testCase?.id && { testCaseId: raw.testCase.id },
4934
+ ...raw.testCase?.title && { testCaseTitle: raw.testCase.title },
4935
+ ...raw.useCase?.id && { useCaseId: raw.useCase.id },
4936
+ ...raw.useCase?.title && { useCaseTitle: raw.useCase.title },
4937
+ ...raw.testScript?.id && { testScriptId: raw.testScript.id },
4938
+ ...raw.lastRunAt && { lastRunAt: raw.lastRunAt },
4939
+ ...raw.error && { error: raw.error }
4940
+ };
4941
+ }
4942
+ function mapTestScriptsSummary(response) {
4943
+ const envelope = response.data ?? {};
4944
+ const scripts = Array.isArray(envelope.data) ? envelope.data.map(slimScriptsEntry) : [];
4945
+ return {
4946
+ page: envelope.page ?? 1,
4947
+ pageSize: envelope.pageSize ?? scripts.length,
4948
+ totalCount: envelope.totalCount ?? scripts.length,
4949
+ totalPages: envelope.totalPages ?? (scripts.length === 0 ? 0 : 1),
4950
+ hasMore: envelope.hasMore ?? false,
4951
+ scripts
4952
+ };
4953
+ }
4954
+
4924
4955
  // packages/mcps/src/mcp/tools/e2e/tool-registry.ts
4925
4956
  var MUGGLE_TEST_PREFIX = "/v1/protected/muggle-test";
4926
4957
  var getWorkflowTimeoutMs = () => getConfig().e2e.workflowTimeoutMs;
@@ -5768,15 +5799,22 @@ var reportTools = [
5768
5799
  },
5769
5800
  {
5770
5801
  name: "muggle-remote-project-test-scripts-summary-get",
5771
- description: "Get a summary of test scripts for a project.",
5802
+ description: "Get a paginated, slimmed script-generation summary for a project. One row per TEST CASE, not per script: a test case with no script yet still gets a row, with `testScriptId` absent and a status such as TEST_CASE_DRAFTED. Row count is therefore a test-case count \u2014 do not read it as a number of scripts, and do not infer from a row's presence that a script exists. Response shape: { page, pageSize, totalCount, totalPages, hasMore, scripts: [{ status, testCaseId, testCaseTitle, useCaseId, useCaseTitle, testScriptId, lastRunAt, error }] }. Returns 20 rows per page by default (max 100). Check `hasMore` to decide whether to fetch additional pages. Use muggle-remote-test-script-get for full per-script detail.",
5772
5803
  inputSchema: ProjectTestScriptsSummaryInputSchema,
5773
5804
  mapToUpstream: (input) => {
5774
5805
  const toolInput = input;
5775
5806
  return {
5776
5807
  method: "GET",
5777
- path: `${MUGGLE_TEST_PREFIX}/projects/${toolInput.projectId}/test-scripts/summary`
5808
+ path: `${MUGGLE_TEST_PREFIX}/projects/${toolInput.projectId}/test-scripts/summary`,
5809
+ queryParams: {
5810
+ page: toolInput.page,
5811
+ pageSize: toolInput.pageSize,
5812
+ sortBy: toolInput.sortBy,
5813
+ sortOrder: toolInput.sortOrder
5814
+ }
5778
5815
  };
5779
- }
5816
+ },
5817
+ mapFromUpstream: mapTestScriptsSummary
5780
5818
  },
5781
5819
  {
5782
5820
  name: "muggle-remote-project-test-runs-summary-get",
package/dist/cli.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { runCli } from './chunk-NTNNHUGO.js';
3
- import './chunk-5Q5CMHUP.js';
2
+ import { runCli } from './chunk-APXAF244.js';
3
+ import './chunk-H5UDFKG3.js';
4
4
 
5
5
  // src/cli/main.ts
6
6
  runCli().catch((error) => {
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { src_exports as commands, createUnifiedMcpServer, server_exports as server } from './chunk-NTNNHUGO.js';
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-5Q5CMHUP.js';
1
+ export { src_exports as commands, createUnifiedMcpServer, server_exports as server } from './chunk-APXAF244.js';
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.11.0",
3
- "buildId": "run-82-1",
4
- "commitSha": "3d6d60dfe644e20d012b3b6ab6870387c5f7472d",
5
- "buildTime": "2026-08-29T04:53:20Z",
3
+ "buildId": "run-84-1",
4
+ "commitSha": "936a62e2fe1a6861faf2f4eb10643d9e00bf8f6f",
5
+ "buildTime": "2026-08-29T05:05:31Z",
6
6
  "serviceName": "muggle-ai-works-mcp"
7
7
  }
@@ -1 +1 @@
1
- export { DEFAULT_PREFERENCES, ElectronAppReleaseStream, PREFERENCES_FILE_NAME, PREFERENCES_PROJECT_DIR_NAME, PREFERENCES_SCHEMA, PREFERENCES_VERSION, PREFERENCE_ALLOWED_VALUES, PreferenceKey, PreferenceValue, ProjectPreferencesReconcileOutcome, RuntimeTarget, WATCHER_LIFETIME_SECONDS, WATCHER_LIFETIME_UNBOUNDED_SECONDS, assertDeviceCodeClientProvisioned, buildElectronAppChecksumsUrl, buildElectronAppReleaseAssetUrl, buildElectronAppReleaseTag, calculateFileChecksum, createApiKeyWithToken, createChildLogger, deleteApiKeyData, deleteCredentials, e2e_exports as e2e, formatPreferencesOneLiner, getActiveElectronAppReleaseStream, getActiveRuntimeTarget, getApiKey, getApiKeyFilePath, getAuthService, getBundledElectronAppVersion, getCallerCredentials, getCallerCredentialsAsync, getChecksumForPlatform, getConfig, getCredentialsFilePath, getDataDir, getDownloadBaseUrl, getElectronAppChecksums, getElectronAppDir, getElectronAppReleaseTagPrefix, getElectronAppSignedFromVersion, getElectronAppVersion, getElectronAppVersionSource, getLocalQaTools, getLogger, getPlatformKey, getQaTools, getReleaseSignerIdentityUri, getValidApiKeyData, getValidCredentials, hasApiKey, isElectronAppInstalled, isFirstRun, loadApiKeyData, loadCredentials, local_exports as localQa, mcp_exports as mcp, openBrowserUrl, performLogin, performLogout, pollDeviceCode, e2e_exports as qa, reconcileProjectPreferences, resetConfig, resetLogger, resetPreference, resolveActiveProfile, resolveActiveReleaseStream, resolveActiveReleaseTagPrefix, resolveElectronAppPathOrNull, resolvePreferences, resolveRuntimeTarget, saveApiKey, saveApiKeyData, saveCredentials, startDeviceCodeFlow, toolRequiresAuth, validatePreference, verifyFileChecksum, writePreferences } from './chunk-5Q5CMHUP.js';
1
+ export { DEFAULT_PREFERENCES, ElectronAppReleaseStream, PREFERENCES_FILE_NAME, PREFERENCES_PROJECT_DIR_NAME, PREFERENCES_SCHEMA, PREFERENCES_VERSION, PREFERENCE_ALLOWED_VALUES, PreferenceKey, PreferenceValue, ProjectPreferencesReconcileOutcome, RuntimeTarget, WATCHER_LIFETIME_SECONDS, WATCHER_LIFETIME_UNBOUNDED_SECONDS, assertDeviceCodeClientProvisioned, buildElectronAppChecksumsUrl, buildElectronAppReleaseAssetUrl, buildElectronAppReleaseTag, calculateFileChecksum, createApiKeyWithToken, createChildLogger, deleteApiKeyData, deleteCredentials, e2e_exports as e2e, formatPreferencesOneLiner, getActiveElectronAppReleaseStream, getActiveRuntimeTarget, getApiKey, getApiKeyFilePath, getAuthService, getBundledElectronAppVersion, getCallerCredentials, getCallerCredentialsAsync, getChecksumForPlatform, getConfig, getCredentialsFilePath, getDataDir, getDownloadBaseUrl, getElectronAppChecksums, getElectronAppDir, getElectronAppReleaseTagPrefix, getElectronAppSignedFromVersion, getElectronAppVersion, getElectronAppVersionSource, getLocalQaTools, getLogger, getPlatformKey, getQaTools, getReleaseSignerIdentityUri, getValidApiKeyData, getValidCredentials, hasApiKey, isElectronAppInstalled, isFirstRun, loadApiKeyData, loadCredentials, local_exports as localQa, mcp_exports as mcp, openBrowserUrl, performLogin, performLogout, pollDeviceCode, e2e_exports as qa, reconcileProjectPreferences, resetConfig, resetLogger, resetPreference, resolveActiveProfile, resolveActiveReleaseStream, resolveActiveReleaseTagPrefix, resolveElectronAppPathOrNull, resolvePreferences, resolveRuntimeTarget, saveApiKey, saveApiKeyData, saveCredentials, startDeviceCodeFlow, toolRequiresAuth, validatePreference, verifyFileChecksum, writePreferences } from './chunk-H5UDFKG3.js';
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.12.0-staging.82",
4
+ "version": "5.12.0-staging.84",
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",