magus-cli 7.5.0 → 7.5.2

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 (33) hide show
  1. package/package.json +5 -4
  2. package/src/__tests__/profile-absorb.test.ts +72 -0
  3. package/src/__tests__/profile-dependencies.test.ts +442 -0
  4. package/src/__tests__/profile-manifest-write.test.ts +231 -0
  5. package/src/__tests__/profile-skills.test.ts +99 -0
  6. package/src/__tests__/profile-state.test.ts +328 -13
  7. package/src/__tests__/stale-load-repair.test.ts +265 -0
  8. package/src/__tests__/support/preload.ts +14 -0
  9. package/src/__tests__/update-apply.test.ts +342 -1
  10. package/src/cli/bootstrap.ts +4 -0
  11. package/src/cli/doctor.ts +39 -6
  12. package/src/cli/install.ts +68 -4
  13. package/src/cli/router.ts +7 -0
  14. package/src/cli/update.ts +3 -0
  15. package/src/services/claude-cli.ts +24 -0
  16. package/src/services/claude-settings.ts +45 -0
  17. package/src/services/git-worktree.ts +92 -9
  18. package/src/services/manifest.ts +220 -3
  19. package/src/services/plugin-dependencies.ts +48 -0
  20. package/src/services/plugin-requires.ts +137 -14
  21. package/src/services/profile-absorb.ts +69 -15
  22. package/src/services/profile-activate.ts +179 -33
  23. package/src/services/profile-live.ts +66 -7
  24. package/src/services/profile-render.ts +73 -6
  25. package/src/services/profile-skills.ts +32 -7
  26. package/src/services/profile-state.ts +89 -5
  27. package/src/services/profiles.ts +6 -5
  28. package/src/services/resolver.ts +96 -3
  29. package/src/services/tracked-live-files.ts +125 -0
  30. package/src/services/update-engine.ts +266 -8
  31. package/src/types/index.ts +19 -0
  32. package/src/ui/screens/PluginsScreen.tsx +11 -2
  33. package/src/ui/screens/ProfilesScreen.tsx +10 -3
@@ -26,6 +26,7 @@ import {
26
26
  renameProfile,
27
27
  } from "../../services/profiles.js";
28
28
  import { writableMap } from "../../services/settings-file.js";
29
+ import { LiveFileRefusal } from "../../services/tracked-live-files.js";
29
30
  import {
30
31
  ClipboardUnavailableError,
31
32
  readClipboard,
@@ -177,7 +178,9 @@ export function ProfilesScreen() {
177
178
  modal.hideModal();
178
179
  await modal.message(
179
180
  "Error",
180
- `Failed to apply profile: ${error}`,
181
+ error instanceof LiveFileRefusal
182
+ ? error.message
183
+ : `Failed to apply profile: ${error}`,
181
184
  "error",
182
185
  );
183
186
  }
@@ -242,7 +245,9 @@ export function ProfilesScreen() {
242
245
  modal.hideModal();
243
246
  await modal.message(
244
247
  "Error",
245
- `Failed to switch profile: ${error}`,
248
+ error instanceof LiveFileRefusal
249
+ ? error.message
250
+ : `Failed to switch profile: ${error}`,
246
251
  "error",
247
252
  );
248
253
  }
@@ -275,7 +280,9 @@ export function ProfilesScreen() {
275
280
  modal.hideModal();
276
281
  await modal.message(
277
282
  "Error",
278
- `Failed to apply profile: ${error}`,
283
+ error instanceof LiveFileRefusal
284
+ ? error.message
285
+ : `Failed to apply profile: ${error}`,
279
286
  "error",
280
287
  );
281
288
  }