@muggleai/works 5.12.0-staging.77 → 5.12.0-staging.78

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/README.md CHANGED
@@ -265,6 +265,7 @@ Use Cases (muggle-remote-use-case-*)
265
265
  | `muggle-remote-use-case-prompt-preview` | Preview before creating |
266
266
  | `muggle-remote-use-case-update-from-prompt` | Regenerate from new prompt |
267
267
  | `muggle-remote-use-case-bulk-preview-submit` | Async batch-preview via OpenAI Batch API (~50% cheaper) |
268
+ | `muggle-remote-use-case-delete` | Delete use case (cascades to its test cases + scripts) |
268
269
 
269
270
 
270
271
  Test Cases (muggle-remote-test-case-*)
@@ -278,6 +279,7 @@ Test Cases (muggle-remote-test-case-*)
278
279
  | `muggle-remote-test-case-create` | Create test case |
279
280
  | `muggle-remote-test-case-generate-from-prompt` | Generate from prompt |
280
281
  | `muggle-remote-test-case-bulk-preview-submit` | Async batch-preview via OpenAI Batch API (~50% cheaper) |
282
+ | `muggle-remote-test-case-delete` | Delete test case |
281
283
 
282
284
 
283
285
  Bulk Preview Jobs (muggle-remote-bulk-preview-job-*)
@@ -300,6 +302,8 @@ Test Scripts and Workflows (muggle-remote-workflow-*)
300
302
  | ------------------------------------------------------ | ----------------------- |
301
303
  | `muggle-remote-test-script-list` | List test scripts |
302
304
  | `muggle-remote-test-script-get` | Get script details |
305
+ | `muggle-remote-test-script-delete` | Delete test script |
306
+ | `muggle-remote-action-script-delete` | Delete action script (permanent) |
303
307
  | `muggle-remote-workflow-start-website-scan` | Scan site for use cases |
304
308
  | `muggle-remote-workflow-start-test-case-detection` | Generate test cases |
305
309
  | `muggle-remote-workflow-start-test-script-generation` | Generate scripts |
@@ -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-DJ6W5PZA.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-TI5YMCFE.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-FRYBTZ6J.js');
756
+ const mcps = await import('./src-ZTLESPN6.js');
757
757
  const credentials = await mcps.getCallerCredentialsAsync();
758
758
  if (!credentials.bearerToken && !credentials.apiKey) {
759
759
  stderrWrite(
@@ -4227,6 +4227,9 @@ var UseCaseListInputSchema = z.object({
4227
4227
  var UseCaseGetInputSchema = z.object({
4228
4228
  useCaseId: IdSchema.describe("Use case ID (UUID) to retrieve")
4229
4229
  });
4230
+ var UseCaseDeleteInputSchema = z.object({
4231
+ useCaseId: IdSchema.describe("Use case ID (UUID) to delete")
4232
+ });
4230
4233
  var UseCasePromptPreviewInputSchema = z.object({
4231
4234
  projectId: IdSchema.describe("Project ID (UUID) to generate use case for"),
4232
4235
  instruction: z.string().min(1).describe("Natural language instruction describing the use case (e.g., 'As a logged-in user, I can add items to cart')")
@@ -4315,6 +4318,9 @@ var TestCaseListInputSchema = z.object({
4315
4318
  var TestCaseGetInputSchema = z.object({
4316
4319
  testCaseId: IdSchema.describe("Test case ID (UUID) to retrieve")
4317
4320
  });
4321
+ var TestCaseDeleteInputSchema = z.object({
4322
+ testCaseId: IdSchema.describe("Test case ID (UUID) to delete")
4323
+ });
4318
4324
  var TestCaseAncestorsGetInputSchema = z.object({
4319
4325
  testCaseId: IdSchema.describe("Test case ID (UUID) to resolve the test-plan-graph ancestor chain for")
4320
4326
  });
@@ -4363,9 +4369,15 @@ var TestScriptListInputSchema = z.object({
4363
4369
  var TestScriptGetInputSchema = z.object({
4364
4370
  testScriptId: IdSchema.describe("Test script ID (UUID) to retrieve")
4365
4371
  });
4372
+ var TestScriptDeleteInputSchema = z.object({
4373
+ testScriptId: IdSchema.describe("Test script ID (UUID) to delete")
4374
+ });
4366
4375
  var ActionScriptGetInputSchema = z.object({
4367
4376
  actionScriptId: IdSchema.describe("Action script ID (UUID) to retrieve")
4368
4377
  });
4378
+ var ActionScriptDeleteInputSchema = z.object({
4379
+ actionScriptId: IdSchema.describe("Action script ID (UUID) to delete")
4380
+ });
4369
4381
  var WorkflowStartWebsiteScanInputSchema = z.object({
4370
4382
  projectId: IdSchema.describe("Project ID (UUID) to scan"),
4371
4383
  url: z.string().url().describe("Website URL to scan"),
@@ -5148,6 +5160,18 @@ var useCaseTools = [
5148
5160
  body: { prompts: data.prompts }
5149
5161
  };
5150
5162
  }
5163
+ },
5164
+ {
5165
+ name: "muggle-remote-use-case-delete",
5166
+ description: "Delete a use case by ID. Soft delete, and it cascades: the use case's test cases and their test scripts are deleted with it.",
5167
+ inputSchema: UseCaseDeleteInputSchema,
5168
+ mapToUpstream: (input) => {
5169
+ const useCaseDeleteInput = input;
5170
+ return {
5171
+ method: "DELETE",
5172
+ path: `${MUGGLE_TEST_PREFIX}/use-cases/${useCaseDeleteInput.useCaseId}`
5173
+ };
5174
+ }
5151
5175
  }
5152
5176
  ];
5153
5177
  var testCaseTools = [
@@ -5283,6 +5307,18 @@ var testCaseTools = [
5283
5307
  body: { prompts: data.prompts }
5284
5308
  };
5285
5309
  }
5310
+ },
5311
+ {
5312
+ name: "muggle-remote-test-case-delete",
5313
+ description: "Delete a test case by ID. This is a soft delete.",
5314
+ inputSchema: TestCaseDeleteInputSchema,
5315
+ mapToUpstream: (input) => {
5316
+ const testCaseDeleteInput = input;
5317
+ return {
5318
+ method: "DELETE",
5319
+ path: `${MUGGLE_TEST_PREFIX}/test-cases/${testCaseDeleteInput.testCaseId}`
5320
+ };
5321
+ }
5286
5322
  }
5287
5323
  ];
5288
5324
  var bulkPreviewTools = [
@@ -5362,6 +5398,18 @@ var testScriptTools = [
5362
5398
  path: `${MUGGLE_TEST_PREFIX}/test-scripts/${data.testScriptId}`
5363
5399
  };
5364
5400
  }
5401
+ },
5402
+ {
5403
+ name: "muggle-remote-test-script-delete",
5404
+ description: "Delete a test script by ID. This is a soft delete; the test case it belongs to is not affected.",
5405
+ inputSchema: TestScriptDeleteInputSchema,
5406
+ mapToUpstream: (input) => {
5407
+ const testScriptDeleteInput = input;
5408
+ return {
5409
+ method: "DELETE",
5410
+ path: `${MUGGLE_TEST_PREFIX}/test-scripts/${testScriptDeleteInput.testScriptId}`
5411
+ };
5412
+ }
5365
5413
  }
5366
5414
  ];
5367
5415
  var actionScriptTools = [
@@ -5376,6 +5424,18 @@ var actionScriptTools = [
5376
5424
  path: `/v1/protected/actionScript/${data.actionScriptId}`
5377
5425
  };
5378
5426
  }
5427
+ },
5428
+ {
5429
+ name: "muggle-remote-action-script-delete",
5430
+ description: "Permanently delete an action script by ID. Unlike the other delete tools this is a hard delete and cannot be undone, and any test script referencing it keeps an orphaned actionScriptId. Only the owner or a super user may call it.",
5431
+ inputSchema: ActionScriptDeleteInputSchema,
5432
+ mapToUpstream: (input) => {
5433
+ const actionScriptDeleteInput = input;
5434
+ return {
5435
+ method: "DELETE",
5436
+ path: `/v1/protected/actionScript/${actionScriptDeleteInput.actionScriptId}`
5437
+ };
5438
+ }
5379
5439
  }
5380
5440
  ];
5381
5441
  var workflowTools = [
@@ -7542,6 +7602,7 @@ function safeTrack2(event) {
7542
7602
  // packages/mcps/src/mcp/e2e/index.ts
7543
7603
  var e2e_exports2 = {};
7544
7604
  __export(e2e_exports2, {
7605
+ ActionScriptDeleteInputSchema: () => ActionScriptDeleteInputSchema,
7545
7606
  ActionScriptGetInputSchema: () => ActionScriptGetInputSchema,
7546
7607
  ApiKeyCreateInputSchema: () => ApiKeyCreateInputSchema,
7547
7608
  ApiKeyGetInputSchema: () => ApiKeyGetInputSchema,
@@ -7598,11 +7659,13 @@ __export(e2e_exports2, {
7598
7659
  StripePaymentMethodIdSchema: () => StripePaymentMethodIdSchema,
7599
7660
  TestCaseAncestorsGetInputSchema: () => TestCaseAncestorsGetInputSchema,
7600
7661
  TestCaseCreateInputSchema: () => TestCaseCreateInputSchema,
7662
+ TestCaseDeleteInputSchema: () => TestCaseDeleteInputSchema,
7601
7663
  TestCaseGenerateFromPromptInputSchema: () => TestCaseGenerateFromPromptInputSchema,
7602
7664
  TestCaseGetInputSchema: () => TestCaseGetInputSchema,
7603
7665
  TestCaseListByUseCaseInputSchema: () => TestCaseListByUseCaseInputSchema,
7604
7666
  TestCaseListInputSchema: () => TestCaseListInputSchema,
7605
7667
  TestCaseUpdateInputSchema: () => TestCaseUpdateInputSchema,
7668
+ TestScriptDeleteInputSchema: () => TestScriptDeleteInputSchema,
7606
7669
  TestScriptGetInputSchema: () => TestScriptGetInputSchema,
7607
7670
  TestScriptListInputSchema: () => TestScriptListInputSchema,
7608
7671
  TokenPackageIdSchema: () => TokenPackageIdSchema,
@@ -7610,6 +7673,7 @@ __export(e2e_exports2, {
7610
7673
  UseCaseCandidatesApproveInputSchema: () => UseCaseCandidatesApproveInputSchema,
7611
7674
  UseCaseCreateFromPromptsInputSchema: () => UseCaseCreateFromPromptsInputSchema,
7612
7675
  UseCaseCreateInputSchema: () => UseCaseCreateInputSchema,
7676
+ UseCaseDeleteInputSchema: () => UseCaseDeleteInputSchema,
7613
7677
  UseCaseDiscoveryMemoryGetInputSchema: () => UseCaseDiscoveryMemoryGetInputSchema,
7614
7678
  UseCaseGetInputSchema: () => UseCaseGetInputSchema,
7615
7679
  UseCaseListInputSchema: () => UseCaseListInputSchema,
package/dist/cli.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { runCli } from './chunk-VTSS6TGQ.js';
3
- import './chunk-DJ6W5PZA.js';
2
+ import { runCli } from './chunk-R6COFAUT.js';
3
+ import './chunk-TI5YMCFE.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-VTSS6TGQ.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-DJ6W5PZA.js';
1
+ export { src_exports as commands, createUnifiedMcpServer, server_exports as server } from './chunk-R6COFAUT.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-TI5YMCFE.js';
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "release": "5.11.0",
3
- "buildId": "run-77-1",
4
- "commitSha": "f385d4cd5e0a09b88e2bfce2a59a6338a0d9720a",
5
- "buildTime": "2026-08-27T06:43:59Z",
3
+ "buildId": "run-78-1",
4
+ "commitSha": "2183746de8b83324378dbab10ae576aadd2e0662",
5
+ "buildTime": "2026-08-27T07:10:28Z",
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-DJ6W5PZA.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-TI5YMCFE.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.77",
4
+ "version": "5.12.0-staging.78",
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",