claudeup 4.16.0 → 4.17.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudeup",
3
- "version": "4.16.0",
3
+ "version": "4.17.0",
4
4
  "description": "TUI tool for managing Claude Code plugins, MCPs, and configuration",
5
5
  "type": "module",
6
6
  "main": "src/main.tsx",
@@ -41,6 +41,15 @@ export const defaultMarketplaces = [
41
41
  description: "Official Anthropic-managed directory of high quality Claude Code plugins",
42
42
  official: true,
43
43
  },
44
+ {
45
+ name: "superpowers",
46
+ displayName: "Superpowers",
47
+ source: {
48
+ source: "github",
49
+ repo: "obra/superpowers",
50
+ },
51
+ description: "Jesse Vincent's agentic skills framework and software development methodology",
52
+ },
44
53
  {
45
54
  name: "claude-code-plugins",
46
55
  displayName: "Anthropic Deprecated",
@@ -50,6 +59,7 @@ export const defaultMarketplaces = [
50
59
  },
51
60
  description: "Legacy demo plugins from Anthropic (deprecated - use Official instead)",
52
61
  official: true,
62
+ deprecated: true,
53
63
  },
54
64
  ];
55
65
  export function getMarketplaceByName(name) {
@@ -93,6 +103,7 @@ export function getAllMarketplaces(localMarketplaces) {
93
103
  description: defaultMp?.description || local.description || "",
94
104
  official: defaultMp?.official ?? repo.toLowerCase().includes("anthropics/"),
95
105
  featured: defaultMp?.featured,
106
+ deprecated: defaultMp?.deprecated,
96
107
  });
97
108
  }
98
109
  }
@@ -105,7 +116,7 @@ export function getAllMarketplaces(localMarketplaces) {
105
116
  seenRepos.add(repo);
106
117
  }
107
118
  }
108
- // Sort: Magus first, then alphabetically
119
+ // Sort: Magus first, deprecated last, then alphabetically
109
120
  return Array.from(all.values()).sort((a, b) => {
110
121
  // Magus (MadAppGang) always first
111
122
  const aIsMag = a.source.repo?.toLowerCase().includes("madappgang/");
@@ -114,6 +125,11 @@ export function getAllMarketplaces(localMarketplaces) {
114
125
  return -1;
115
126
  if (!aIsMag && bIsMag)
116
127
  return 1;
128
+ // Deprecated entries always last
129
+ if (a.deprecated && !b.deprecated)
130
+ return 1;
131
+ if (!a.deprecated && b.deprecated)
132
+ return -1;
117
133
  // Then alphabetically by display name
118
134
  return (a.displayName || a.name).localeCompare(b.displayName || b.name);
119
135
  });
@@ -49,6 +49,16 @@ export const defaultMarketplaces: Marketplace[] = [
49
49
  "Official Anthropic-managed directory of high quality Claude Code plugins",
50
50
  official: true,
51
51
  },
52
+ {
53
+ name: "superpowers",
54
+ displayName: "Superpowers",
55
+ source: {
56
+ source: "github",
57
+ repo: "obra/superpowers",
58
+ },
59
+ description:
60
+ "Jesse Vincent's agentic skills framework and software development methodology",
61
+ },
52
62
  {
53
63
  name: "claude-code-plugins",
54
64
  displayName: "Anthropic Deprecated",
@@ -59,6 +69,7 @@ export const defaultMarketplaces: Marketplace[] = [
59
69
  description:
60
70
  "Legacy demo plugins from Anthropic (deprecated - use Official instead)",
61
71
  official: true,
72
+ deprecated: true,
62
73
  },
63
74
  ];
64
75
 
@@ -113,6 +124,7 @@ export function getAllMarketplaces(
113
124
  official:
114
125
  defaultMp?.official ?? repo.toLowerCase().includes("anthropics/"),
115
126
  featured: defaultMp?.featured,
127
+ deprecated: defaultMp?.deprecated,
116
128
  });
117
129
  }
118
130
  }
@@ -126,13 +138,16 @@ export function getAllMarketplaces(
126
138
  }
127
139
  }
128
140
 
129
- // Sort: Magus first, then alphabetically
141
+ // Sort: Magus first, deprecated last, then alphabetically
130
142
  return Array.from(all.values()).sort((a, b) => {
131
143
  // Magus (MadAppGang) always first
132
144
  const aIsMag = a.source.repo?.toLowerCase().includes("madappgang/");
133
145
  const bIsMag = b.source.repo?.toLowerCase().includes("madappgang/");
134
146
  if (aIsMag && !bIsMag) return -1;
135
147
  if (!aIsMag && bIsMag) return 1;
148
+ // Deprecated entries always last
149
+ if (a.deprecated && !b.deprecated) return 1;
150
+ if (!a.deprecated && b.deprecated) return -1;
136
151
  // Then alphabetically by display name
137
152
  return (a.displayName || a.name).localeCompare(b.displayName || b.name);
138
153
  });
@@ -41,6 +41,7 @@ export interface Marketplace {
41
41
  description: string;
42
42
  official?: boolean;
43
43
  featured?: boolean; // Featured marketplaces have plugins fetched by default (like official)
44
+ deprecated?: boolean; // Deprecated marketplaces are sorted to the bottom of the list
44
45
  }
45
46
 
46
47
  export interface DiscoveredMarketplace {