@muggleai/works 4.9.2 → 4.10.0

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.
Files changed (56) hide show
  1. package/dist/{chunk-6N7OIBAS.js → chunk-RK6XKSZK.js} +2 -2
  2. package/dist/{chunk-4KQZLF56.js → chunk-UVXOHXY2.js} +182 -20
  3. package/dist/cli.js +2 -2
  4. package/dist/index.js +2 -2
  5. package/dist/plugin/.claude-plugin/plugin.json +1 -1
  6. package/dist/plugin/.cursor-plugin/plugin.json +1 -1
  7. package/dist/plugin/scripts/ensure-electron-app.sh +24 -1
  8. package/dist/plugin/skills/muggle/SKILL.md +3 -12
  9. package/dist/plugin/skills/muggle-pr-visual-walkthrough/SKILL.md +5 -12
  10. package/dist/plugin/skills/muggle-preferences/SKILL.md +85 -44
  11. package/dist/plugin/skills/muggle-preferences/preference-gates/README.md +58 -0
  12. package/dist/plugin/skills/muggle-preferences/preference-gates/autoDetectChanges.md +11 -0
  13. package/dist/plugin/skills/muggle-preferences/preference-gates/autoLogin.md +11 -0
  14. package/dist/plugin/skills/muggle-preferences/preference-gates/autoPublishLocalResults.md +11 -0
  15. package/dist/plugin/skills/muggle-preferences/preference-gates/autoSelectProject.md +17 -0
  16. package/dist/plugin/skills/muggle-preferences/preference-gates/checkForUpdates.md +11 -0
  17. package/dist/plugin/skills/muggle-preferences/preference-gates/defaultExecutionMode.md +15 -0
  18. package/dist/plugin/skills/muggle-preferences/preference-gates/openTestResultsAfterRun.md +11 -0
  19. package/dist/plugin/skills/muggle-preferences/preference-gates/postPRVisualWalkthrough.md +30 -0
  20. package/dist/plugin/skills/muggle-preferences/preference-gates/showElectronBrowser.md +11 -0
  21. package/dist/plugin/skills/muggle-preferences/preference-gates/suggestRelatedTestCases.md +11 -0
  22. package/dist/plugin/skills/muggle-preferences/preference-gates/suggestRelatedUseCases.md +11 -0
  23. package/dist/plugin/skills/muggle-preferences/preference-gates/verboseOutput.md +8 -0
  24. package/dist/plugin/skills/muggle-status/SKILL.md +9 -14
  25. package/dist/plugin/skills/muggle-test/SKILL.md +56 -55
  26. package/dist/plugin/skills/muggle-test-feature-local/SKILL.md +35 -36
  27. package/dist/plugin/skills/muggle-test-import/SKILL.md +58 -24
  28. package/dist/plugin/skills/muggle-test-regenerate-missing/SKILL.md +20 -22
  29. package/dist/release-manifest.json +4 -4
  30. package/dist/src-GD3YFCCW.js +1 -0
  31. package/package.json +2 -2
  32. package/plugin/.claude-plugin/plugin.json +1 -1
  33. package/plugin/.cursor-plugin/plugin.json +1 -1
  34. package/plugin/scripts/ensure-electron-app.sh +24 -1
  35. package/plugin/skills/muggle/SKILL.md +3 -12
  36. package/plugin/skills/muggle-pr-visual-walkthrough/SKILL.md +5 -12
  37. package/plugin/skills/muggle-preferences/SKILL.md +85 -44
  38. package/plugin/skills/muggle-preferences/preference-gates/README.md +58 -0
  39. package/plugin/skills/muggle-preferences/preference-gates/autoDetectChanges.md +11 -0
  40. package/plugin/skills/muggle-preferences/preference-gates/autoLogin.md +11 -0
  41. package/plugin/skills/muggle-preferences/preference-gates/autoPublishLocalResults.md +11 -0
  42. package/plugin/skills/muggle-preferences/preference-gates/autoSelectProject.md +17 -0
  43. package/plugin/skills/muggle-preferences/preference-gates/checkForUpdates.md +11 -0
  44. package/plugin/skills/muggle-preferences/preference-gates/defaultExecutionMode.md +15 -0
  45. package/plugin/skills/muggle-preferences/preference-gates/openTestResultsAfterRun.md +11 -0
  46. package/plugin/skills/muggle-preferences/preference-gates/postPRVisualWalkthrough.md +30 -0
  47. package/plugin/skills/muggle-preferences/preference-gates/showElectronBrowser.md +11 -0
  48. package/plugin/skills/muggle-preferences/preference-gates/suggestRelatedTestCases.md +11 -0
  49. package/plugin/skills/muggle-preferences/preference-gates/suggestRelatedUseCases.md +11 -0
  50. package/plugin/skills/muggle-preferences/preference-gates/verboseOutput.md +8 -0
  51. package/plugin/skills/muggle-status/SKILL.md +9 -14
  52. package/plugin/skills/muggle-test/SKILL.md +56 -55
  53. package/plugin/skills/muggle-test-feature-local/SKILL.md +35 -36
  54. package/plugin/skills/muggle-test-import/SKILL.md +58 -24
  55. package/plugin/skills/muggle-test-regenerate-missing/SKILL.md +20 -22
  56. package/dist/src-7GB7WIFT.js +0 -1
@@ -11,21 +11,12 @@ Execution is **remote only** — Muggle's cloud generates the scripts in paralle
11
11
 
12
12
  ## Preferences
13
13
 
14
- User preferences are available in the session context (injected at session start). Look for the line starting with `Muggle Preferences` — it contains key=value pairs like `autoLogin=ask showElectronBrowser=always ...`.
14
+ Gates run per `preference-gates/README.md`.
15
15
 
16
- If no preferences line is present, treat all preferences as `"ask"`.
17
-
18
- When you reach a decision gated by a preference:
19
- - **`always`** → proceed without asking the user
20
- - **`never`** → skip without asking the user
21
- - **`ask`** → ask the user, then offer: "Want me to remember this choice for future sessions?" If yes, call `muggle-local-preferences-set` with the key, their chosen value, and scope `global`.
22
-
23
- This skill uses these preferences:
24
-
25
- | Preference | Decision it gates |
26
- |------------|------------------|
27
- | `autoLogin` | Reuse saved credentials when auth is required |
28
- | `autoSelectProject` | Reuse last-used Muggle project for this repo |
16
+ | Preference | Step | Decision it gates |
17
+ |------------|------|-------------------|
18
+ | `autoLogin` | 1 | Reuse saved credentials when auth is required |
19
+ | `autoSelectProject` | 2 | Reuse last-used Muggle project for this repo |
29
20
 
30
21
  ## Concept: what counts as "no active script"
31
22
 
@@ -55,24 +46,31 @@ Treat this filter as a default, not a law. If the user explicitly says "include
55
46
 
56
47
  ## Workflow
57
48
 
58
- ### Step 1 — Authenticate
49
+ ### Step 1 — Authenticate (gated by `autoLogin`)
59
50
 
60
51
  1. Call `muggle-remote-auth-status`.
61
- 2. If **authenticated and not expired** → print the logged-in email and ask via `AskQuestion`:
62
- > "You're logged in as **{email}**. Continue with this account?"
63
- - Option 1: "Yes, continue"
64
- - Option 2: "No, switch account"
65
- If the user picks "switch account", call `muggle-remote-auth-login` with `forceNewSession: true`, then poll with `muggle-remote-auth-poll`.
52
+ 2. If **authenticated and not expired** → gate `autoLogin` (per `preference-gates/README.md`):
53
+ - Pro-action: proceed with saved session.
54
+ - Skip-action: `muggle-remote-auth-login` with `forceNewSession: true`, then `muggle-remote-auth-poll`.
66
55
  3. If **not authenticated or expired** → call `muggle-remote-auth-login`, then poll with `muggle-remote-auth-poll`.
67
56
  4. Do not skip auth and do not assume a stale token still works.
68
57
 
69
58
  If auth keeps failing, suggest the user run `muggle logout && muggle login` from a terminal.
70
59
 
71
- ### Step 2 — Select Project (user must choose)
60
+ ### Step 2 — Select Project (gated by `autoSelectProject`)
72
61
 
73
62
  A **project** is the unit on the Muggle AI dashboard that groups test cases, scripts, and runs. The user must pick the one to scan — never auto-select from repo name, branch, or URL heuristics.
74
63
 
75
- 1. Call `muggle-remote-project-list`.
64
+ The per-repo project cache lives at `<cwd>/.muggle-ai/last-project.json` (via the `muggle-local-last-project-get` / `muggle-local-last-project-set` MCP tools). Look for `Muggle Last Project: id=… url=… name="…"` in session context.
65
+
66
+ Gate `autoSelectProject` (per `preference-gates/README.md`). Cache: `Muggle Last Project` session line.
67
+ - `always` + cache → use cached `projectId`, proceed to Step 3. No cache → fall through to `ask`.
68
+ - `never` → full project list; skip Picker 2.
69
+ - `ask` → project list picker (see gate file for spec + Picker 2 override). Skip Picker 2 if "Create new project".
70
+
71
+ ### Logic
72
+
73
+ 1. Call `muggle-remote-project-list` (only when not satisfied by the `always` cache).
76
74
  2. Use `AskQuestion` to present projects as clickable options. Include the project URL in each label so the user can disambiguate. Always include "Create new project" as the last option.
77
75
  3. Wait for explicit selection.
78
76
  4. If the user picks "Create new project": collect `projectName`, `description`, and `url`, then call `muggle-remote-project-create`.
@@ -1 +0,0 @@
1
- export { DEFAULT_PREFERENCES, PREFERENCES_FILE_NAME, PREFERENCES_PROJECT_DIR_NAME, PREFERENCES_SCHEMA, PREFERENCES_VERSION, PreferenceKey, PreferenceValue, buildElectronAppChecksumsUrl, buildElectronAppReleaseAssetUrl, buildElectronAppReleaseTag, calculateFileChecksum, createApiKeyWithToken, createChildLogger, deleteApiKeyData, deleteCredentials, e2e_exports as e2e, formatPreferencesOneLiner, getApiKey, getApiKeyFilePath, getAuthService, getBundledElectronAppVersion, getCallerCredentials, getCallerCredentialsAsync, getChecksumForPlatform, getConfig, getCredentialsFilePath, getDataDir, getDownloadBaseUrl, getElectronAppChecksums, getElectronAppDir, getElectronAppVersion, getElectronAppVersionSource, getLocalQaTools, getLogger, getPlatformKey, getQaTools, getValidApiKeyData, getValidCredentials, hasApiKey, isElectronAppInstalled, isFirstRun, loadApiKeyData, loadCredentials, local_exports as localQa, mcp_exports as mcp, openBrowserUrl, performLogin, performLogout, pollDeviceCode, e2e_exports as qa, readGlobalPreferences, readProjectPreferences, resetConfig, resetLogger, resetPreference, resolvePreferences, saveApiKey, saveApiKeyData, saveCredentials, startDeviceCodeFlow, toolRequiresAuth, validatePreference, verifyFileChecksum, writePreferences } from './chunk-4KQZLF56.js';