claudeup 0.6.0 → 0.6.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 (72) hide show
  1. package/dist/data/cli-tools.d.ts +13 -0
  2. package/dist/data/cli-tools.d.ts.map +1 -0
  3. package/dist/data/cli-tools.js +124 -0
  4. package/dist/data/cli-tools.js.map +1 -0
  5. package/dist/data/marketplaces.d.ts +4 -0
  6. package/dist/data/marketplaces.d.ts.map +1 -0
  7. package/dist/data/marketplaces.js +26 -0
  8. package/dist/data/marketplaces.js.map +1 -0
  9. package/dist/data/mcp-servers.d.ts +8 -0
  10. package/dist/data/mcp-servers.d.ts.map +1 -0
  11. package/dist/data/mcp-servers.js +421 -0
  12. package/dist/data/mcp-servers.js.map +1 -0
  13. package/dist/data/statuslines.d.ts +10 -0
  14. package/dist/data/statuslines.d.ts.map +1 -0
  15. package/dist/data/statuslines.js +160 -0
  16. package/dist/data/statuslines.js.map +1 -0
  17. package/dist/index.d.ts +3 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/services/claude-settings.d.ts +49 -0
  21. package/dist/services/claude-settings.d.ts.map +1 -0
  22. package/dist/services/claude-settings.js +299 -0
  23. package/dist/services/claude-settings.js.map +1 -0
  24. package/dist/services/mcp-registry.d.ts +10 -0
  25. package/dist/services/mcp-registry.d.ts.map +1 -0
  26. package/dist/services/mcp-registry.js +88 -0
  27. package/dist/services/mcp-registry.js.map +1 -0
  28. package/dist/services/plugin-manager.d.ts +23 -0
  29. package/dist/services/plugin-manager.d.ts.map +1 -0
  30. package/dist/services/plugin-manager.js +151 -0
  31. package/dist/services/plugin-manager.js.map +1 -0
  32. package/dist/types/index.d.ts +86 -0
  33. package/dist/types/index.d.ts.map +1 -0
  34. package/dist/types/index.js +2 -0
  35. package/dist/types/index.js.map +1 -0
  36. package/dist/ui/app.d.ts +38 -0
  37. package/dist/ui/app.d.ts.map +1 -0
  38. package/dist/ui/app.js +590 -0
  39. package/dist/ui/app.js.map +1 -0
  40. package/dist/ui/screens/cli-tools.d.ts +4 -0
  41. package/dist/ui/screens/cli-tools.d.ts.map +1 -0
  42. package/dist/ui/screens/cli-tools.js +369 -0
  43. package/dist/ui/screens/cli-tools.js.map +1 -0
  44. package/dist/ui/screens/env-vars.d.ts +3 -0
  45. package/dist/ui/screens/env-vars.d.ts.map +1 -0
  46. package/dist/ui/screens/env-vars.js +119 -0
  47. package/dist/ui/screens/env-vars.js.map +1 -0
  48. package/dist/ui/screens/main-menu.d.ts +3 -0
  49. package/dist/ui/screens/main-menu.d.ts.map +1 -0
  50. package/dist/ui/screens/main-menu.js +110 -0
  51. package/dist/ui/screens/main-menu.js.map +1 -0
  52. package/dist/ui/screens/marketplace.d.ts +3 -0
  53. package/dist/ui/screens/marketplace.d.ts.map +1 -0
  54. package/dist/ui/screens/marketplace.js +132 -0
  55. package/dist/ui/screens/marketplace.js.map +1 -0
  56. package/dist/ui/screens/mcp-registry.d.ts +10 -0
  57. package/dist/ui/screens/mcp-registry.d.ts.map +1 -0
  58. package/dist/ui/screens/mcp-registry.js +310 -0
  59. package/dist/ui/screens/mcp-registry.js.map +1 -0
  60. package/dist/ui/screens/mcp-setup.d.ts +4 -0
  61. package/dist/ui/screens/mcp-setup.d.ts.map +1 -0
  62. package/dist/ui/screens/mcp-setup.js +492 -0
  63. package/dist/ui/screens/mcp-setup.js.map +1 -0
  64. package/dist/ui/screens/plugins.d.ts +3 -0
  65. package/dist/ui/screens/plugins.d.ts.map +1 -0
  66. package/dist/ui/screens/plugins.js +443 -0
  67. package/dist/ui/screens/plugins.js.map +1 -0
  68. package/dist/ui/screens/statusline.d.ts +5 -0
  69. package/dist/ui/screens/statusline.d.ts.map +1 -0
  70. package/dist/ui/screens/statusline.js +235 -0
  71. package/dist/ui/screens/statusline.js.map +1 -0
  72. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-registry.js","sourceRoot":"","sources":["../../src/services/mcp-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export interface PluginInfo {
2
+ id: string;
3
+ name: string;
4
+ version: string;
5
+ description: string;
6
+ marketplace: string;
7
+ marketplaceDisplay: string;
8
+ enabled: boolean;
9
+ installedVersion?: string;
10
+ hasUpdate?: boolean;
11
+ }
12
+ export interface MarketplacePlugin {
13
+ name: string;
14
+ version: string;
15
+ description: string;
16
+ }
17
+ export declare function fetchMarketplacePlugins(marketplaceName: string, repo: string): Promise<MarketplacePlugin[]>;
18
+ export declare function getAvailablePlugins(projectPath?: string): Promise<PluginInfo[]>;
19
+ export declare function getGlobalAvailablePlugins(): Promise<PluginInfo[]>;
20
+ export declare function saveInstalledPluginVersion(pluginId: string, version: string, projectPath?: string): Promise<void>;
21
+ export declare function removeInstalledPluginVersion(pluginId: string, projectPath?: string): Promise<void>;
22
+ export declare function clearMarketplaceCache(): void;
23
+ //# sourceMappingURL=plugin-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-manager.d.ts","sourceRoot":"","sources":["../../src/services/plugin-manager.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAKD,wBAAsB,uBAAuB,CAC3C,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAsC9B;AAED,wBAAsB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CA0CrF;AAED,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CA0CvE;AAyBD,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAKf;AAGD,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAMf;AAGD,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
@@ -0,0 +1,151 @@
1
+ import { getConfiguredMarketplaces, getEnabledPlugins, readSettings, writeSettings, getGlobalConfiguredMarketplaces, getGlobalEnabledPlugins, getGlobalInstalledPluginVersions, } from './claude-settings.js';
2
+ import { defaultMarketplaces } from '../data/marketplaces.js';
3
+ // Session-level cache for fetched marketplace data (no TTL - persists until explicit refresh)
4
+ const marketplaceCache = new Map();
5
+ export async function fetchMarketplacePlugins(marketplaceName, repo) {
6
+ // Check cache first - session-level, no TTL
7
+ const cached = marketplaceCache.get(marketplaceName);
8
+ if (cached) {
9
+ return cached;
10
+ }
11
+ try {
12
+ // Fetch marketplace.json from GitHub
13
+ const url = `https://raw.githubusercontent.com/${repo}/main/.claude-plugin/marketplace.json`;
14
+ const response = await fetch(url);
15
+ if (!response.ok) {
16
+ console.error(`Failed to fetch marketplace: ${response.status}`);
17
+ return [];
18
+ }
19
+ const data = (await response.json());
20
+ const plugins = [];
21
+ if (data.plugins && Array.isArray(data.plugins)) {
22
+ for (const plugin of data.plugins) {
23
+ plugins.push({
24
+ name: plugin.name,
25
+ version: plugin.version || '0.0.0',
26
+ description: plugin.description || '',
27
+ });
28
+ }
29
+ }
30
+ // Cache the result (session-level)
31
+ marketplaceCache.set(marketplaceName, plugins);
32
+ return plugins;
33
+ }
34
+ catch (error) {
35
+ console.error(`Error fetching marketplace ${marketplaceName}:`, error);
36
+ return [];
37
+ }
38
+ }
39
+ export async function getAvailablePlugins(projectPath) {
40
+ const configuredMarketplaces = await getConfiguredMarketplaces(projectPath);
41
+ const enabledPlugins = await getEnabledPlugins(projectPath);
42
+ const installedVersions = await getInstalledPluginVersions(projectPath);
43
+ const plugins = [];
44
+ // Get all marketplace names (configured + defaults)
45
+ const marketplaceNames = new Set();
46
+ for (const mp of defaultMarketplaces) {
47
+ if (configuredMarketplaces[mp.name]) {
48
+ marketplaceNames.add(mp.name);
49
+ }
50
+ }
51
+ // Fetch plugins from each configured marketplace
52
+ for (const mpName of marketplaceNames) {
53
+ const marketplace = defaultMarketplaces.find((m) => m.name === mpName);
54
+ if (!marketplace)
55
+ continue;
56
+ const marketplacePlugins = await fetchMarketplacePlugins(mpName, marketplace.source.repo);
57
+ for (const plugin of marketplacePlugins) {
58
+ const pluginId = `${plugin.name}@${mpName}`;
59
+ const installedVersion = installedVersions[pluginId];
60
+ const isEnabled = enabledPlugins[pluginId] === true;
61
+ plugins.push({
62
+ id: pluginId,
63
+ name: plugin.name,
64
+ version: plugin.version,
65
+ description: plugin.description,
66
+ marketplace: mpName,
67
+ marketplaceDisplay: marketplace.displayName,
68
+ enabled: isEnabled,
69
+ installedVersion: installedVersion,
70
+ hasUpdate: installedVersion ? compareVersions(plugin.version, installedVersion) > 0 : false,
71
+ });
72
+ }
73
+ }
74
+ return plugins;
75
+ }
76
+ export async function getGlobalAvailablePlugins() {
77
+ const configuredMarketplaces = await getGlobalConfiguredMarketplaces();
78
+ const enabledPlugins = await getGlobalEnabledPlugins();
79
+ const installedVersions = await getGlobalInstalledPluginVersions();
80
+ const plugins = [];
81
+ // Get all marketplace names (configured + defaults)
82
+ const marketplaceNames = new Set();
83
+ for (const mp of defaultMarketplaces) {
84
+ if (configuredMarketplaces[mp.name]) {
85
+ marketplaceNames.add(mp.name);
86
+ }
87
+ }
88
+ // Fetch plugins from each configured marketplace
89
+ for (const mpName of marketplaceNames) {
90
+ const marketplace = defaultMarketplaces.find((m) => m.name === mpName);
91
+ if (!marketplace)
92
+ continue;
93
+ const marketplacePlugins = await fetchMarketplacePlugins(mpName, marketplace.source.repo);
94
+ for (const plugin of marketplacePlugins) {
95
+ const pluginId = `${plugin.name}@${mpName}`;
96
+ const installedVersion = installedVersions[pluginId];
97
+ const isEnabled = enabledPlugins[pluginId] === true;
98
+ plugins.push({
99
+ id: pluginId,
100
+ name: plugin.name,
101
+ version: plugin.version,
102
+ description: plugin.description,
103
+ marketplace: mpName,
104
+ marketplaceDisplay: marketplace.displayName,
105
+ enabled: isEnabled,
106
+ installedVersion: installedVersion,
107
+ hasUpdate: installedVersion ? compareVersions(plugin.version, installedVersion) > 0 : false,
108
+ });
109
+ }
110
+ }
111
+ return plugins;
112
+ }
113
+ // Simple version comparison (returns 1 if a > b, -1 if a < b, 0 if equal)
114
+ function compareVersions(a, b) {
115
+ const partsA = a.replace(/^v/, '').split('.').map(Number);
116
+ const partsB = b.replace(/^v/, '').split('.').map(Number);
117
+ for (let i = 0; i < Math.max(partsA.length, partsB.length); i++) {
118
+ const numA = partsA[i] || 0;
119
+ const numB = partsB[i] || 0;
120
+ if (numA > numB)
121
+ return 1;
122
+ if (numA < numB)
123
+ return -1;
124
+ }
125
+ return 0;
126
+ }
127
+ // Get installed plugin versions from settings.json (shared, not secret)
128
+ async function getInstalledPluginVersions(projectPath) {
129
+ const settings = await readSettings(projectPath);
130
+ return settings.installedPluginVersions || {};
131
+ }
132
+ // Save installed plugin version to settings.json
133
+ export async function saveInstalledPluginVersion(pluginId, version, projectPath) {
134
+ const settings = await readSettings(projectPath);
135
+ settings.installedPluginVersions = settings.installedPluginVersions || {};
136
+ settings.installedPluginVersions[pluginId] = version;
137
+ await writeSettings(settings, projectPath);
138
+ }
139
+ // Remove installed plugin version from settings.json
140
+ export async function removeInstalledPluginVersion(pluginId, projectPath) {
141
+ const settings = await readSettings(projectPath);
142
+ if (settings.installedPluginVersions) {
143
+ delete settings.installedPluginVersions[pluginId];
144
+ await writeSettings(settings, projectPath);
145
+ }
146
+ }
147
+ // Clear marketplace cache
148
+ export function clearMarketplaceCache() {
149
+ marketplaceCache.clear();
150
+ }
151
+ //# sourceMappingURL=plugin-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-manager.js","sourceRoot":"","sources":["../../src/services/plugin-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ export interface McpServer {
2
+ name: string;
3
+ description: string;
4
+ command?: string;
5
+ args?: string[];
6
+ env?: Record<string, string>;
7
+ type?: 'http';
8
+ url?: string;
9
+ category: 'browser' | 'ai' | 'design' | 'dev-tools' | 'cloud' | 'database' | 'productivity';
10
+ requiresConfig?: boolean;
11
+ configFields?: ConfigField[];
12
+ }
13
+ export interface ConfigField {
14
+ name: string;
15
+ label: string;
16
+ type: 'string' | 'path' | 'url' | 'boolean';
17
+ required: boolean;
18
+ default?: string;
19
+ envVar?: string;
20
+ }
21
+ export interface Marketplace {
22
+ name: string;
23
+ displayName: string;
24
+ source: {
25
+ source: 'github';
26
+ repo: string;
27
+ };
28
+ description: string;
29
+ official?: boolean;
30
+ }
31
+ export interface Plugin {
32
+ name: string;
33
+ version: string;
34
+ description: string;
35
+ marketplace: string;
36
+ installed: boolean;
37
+ availableVersion?: string;
38
+ hasUpdate?: boolean;
39
+ }
40
+ export interface StatusLineConfig {
41
+ name: string;
42
+ description: string;
43
+ template: string;
44
+ }
45
+ export interface MarketplaceSource {
46
+ source: {
47
+ source: 'github';
48
+ repo: string;
49
+ };
50
+ }
51
+ export interface ClaudeSettings {
52
+ enabledMcpServers?: Record<string, boolean>;
53
+ mcpServers?: Record<string, McpServerConfig>;
54
+ enabledPlugins?: Record<string, boolean>;
55
+ extraKnownMarketplaces?: Record<string, MarketplaceSource>;
56
+ installedPluginVersions?: Record<string, string>;
57
+ statusLine?: string;
58
+ }
59
+ export interface McpServerConfig {
60
+ command?: string;
61
+ args?: string[];
62
+ env?: Record<string, string>;
63
+ type?: 'http';
64
+ url?: string;
65
+ }
66
+ export interface ClaudeLocalSettings extends ClaudeSettings {
67
+ allowMcp?: boolean;
68
+ enabledMcpjsonServers?: string[];
69
+ enableAllProjectMcpServers?: boolean;
70
+ env?: Record<string, string>;
71
+ }
72
+ export type Screen = 'main' | 'mcp' | 'mcp-registry' | 'plugins' | 'statusline' | 'cli-tools' | 'env-vars';
73
+ export interface McpRegistryServer {
74
+ name: string;
75
+ url: string;
76
+ short_description: string;
77
+ version?: string;
78
+ source_code_url?: string;
79
+ package_registry?: string;
80
+ published_at?: string;
81
+ }
82
+ export interface McpRegistryResponse {
83
+ servers: McpRegistryServer[];
84
+ next_cursor?: string;
85
+ }
86
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,38 @@
1
+ import blessed from 'neo-blessed';
2
+ import type { Screen } from '../types/index.js';
3
+ export declare const VERSION = "0.6.2";
4
+ export interface AppState {
5
+ screen: blessed.Screen;
6
+ currentScreen: Screen;
7
+ projectPath: string;
8
+ isSearching: boolean;
9
+ }
10
+ export declare const colors: {
11
+ primary: string;
12
+ secondary: string;
13
+ success: string;
14
+ warning: string;
15
+ error: string;
16
+ muted: string;
17
+ bg: string;
18
+ fg: string;
19
+ };
20
+ export declare function createApp(): AppState;
21
+ export declare function navigateTo(state: AppState, screen: Screen): Promise<void>;
22
+ export declare function showHelp(state: AppState): void;
23
+ export declare function showLoading(state: AppState, message: string): {
24
+ stop: () => void;
25
+ };
26
+ export declare function showMessage(state: AppState, title: string, message: string, type?: 'info' | 'success' | 'error'): Promise<void>;
27
+ export declare function showConfirm(state: AppState, title: string, message: string): Promise<boolean>;
28
+ export declare function showInput(state: AppState, title: string, label: string, defaultValue?: string): Promise<string | null>;
29
+ export interface SelectOption {
30
+ label: string;
31
+ value: string;
32
+ description?: string;
33
+ }
34
+ export declare function showSelect(state: AppState, title: string, message: string, options: SelectOption[]): Promise<string | null>;
35
+ export declare function createBackground(state: AppState): blessed.BoxElement;
36
+ export declare function createHeader(state: AppState, _title: string): blessed.BoxElement;
37
+ export declare function createFooter(state: AppState, hints: string): blessed.BoxElement;
38
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/ui/app.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAOhD,eAAO,MAAM,OAAO,UAAU,CAAC;AAyB/B,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAGD,eAAO,MAAM,MAAM;;;;;;;;;CASlB,CAAC;AAEF,wBAAgB,SAAS,IAAI,QAAQ,CA6DpC;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiE/E;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CA+C9C;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,MAAM,GACd;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CAyCtB;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,GAAG,SAAS,GAAG,OAAgB,GAC1C,OAAO,CAAC,IAAI,CAAC,CA4Cf;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAoClB;AAED,wBAAgB,SAAS,CACvB,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAkHxB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,EAAE,GACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+GxB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAWpE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAmChF;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAU/E"}