@laststance/claude-plugin-dashboard 0.1.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/LICENSE +21 -0
- package/README.md +235 -0
- package/dist/app.d.ts +8 -0
- package/dist/app.js +481 -0
- package/dist/cli.d.ts +16 -0
- package/dist/cli.js +316 -0
- package/dist/components/ConfirmDialog.d.ts +14 -0
- package/dist/components/ConfirmDialog.js +14 -0
- package/dist/components/KeyHints.d.ts +19 -0
- package/dist/components/KeyHints.js +23 -0
- package/dist/components/MarketplaceDetail.d.ts +15 -0
- package/dist/components/MarketplaceDetail.js +39 -0
- package/dist/components/MarketplaceList.d.ts +16 -0
- package/dist/components/MarketplaceList.js +32 -0
- package/dist/components/PluginDetail.d.ts +15 -0
- package/dist/components/PluginDetail.js +52 -0
- package/dist/components/PluginList.d.ts +19 -0
- package/dist/components/PluginList.js +54 -0
- package/dist/components/SearchInput.d.ts +16 -0
- package/dist/components/SearchInput.js +14 -0
- package/dist/components/SortDropdown.d.ts +21 -0
- package/dist/components/SortDropdown.js +29 -0
- package/dist/components/StatusIcon.d.ts +20 -0
- package/dist/components/StatusIcon.js +25 -0
- package/dist/components/TabBar.d.ts +24 -0
- package/dist/components/TabBar.js +38 -0
- package/dist/services/fileService.d.ts +41 -0
- package/dist/services/fileService.js +104 -0
- package/dist/services/pluginActionsService.d.ts +21 -0
- package/dist/services/pluginActionsService.js +65 -0
- package/dist/services/pluginService.d.ts +66 -0
- package/dist/services/pluginService.js +188 -0
- package/dist/services/settingsService.d.ts +82 -0
- package/dist/services/settingsService.js +117 -0
- package/dist/tabs/DiscoverTab.d.ts +26 -0
- package/dist/tabs/DiscoverTab.js +25 -0
- package/dist/tabs/ErrorsTab.d.ts +16 -0
- package/dist/tabs/ErrorsTab.js +39 -0
- package/dist/tabs/InstalledTab.d.ts +16 -0
- package/dist/tabs/InstalledTab.js +24 -0
- package/dist/tabs/MarketplacesTab.d.ts +16 -0
- package/dist/tabs/MarketplacesTab.js +21 -0
- package/dist/types/index.d.ts +250 -0
- package/dist/types/index.js +5 -0
- package/dist/utils/paths.d.ts +40 -0
- package/dist/utils/paths.js +50 -0
- package/package.json +60 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File path constants for Claude Code configuration
|
|
3
|
+
* Uses os.homedir() for cross-platform compatibility (macOS, Linux, Windows)
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* All file paths used by the dashboard
|
|
7
|
+
* These paths work on macOS, Linux, and Windows
|
|
8
|
+
*/
|
|
9
|
+
export declare const PATHS: {
|
|
10
|
+
/** Root Claude Code directory */
|
|
11
|
+
readonly claudeDir: string;
|
|
12
|
+
/** Plugins directory */
|
|
13
|
+
readonly pluginsDir: string;
|
|
14
|
+
/** Main settings file with enabledPlugins */
|
|
15
|
+
readonly settings: string;
|
|
16
|
+
/** Installed plugins registry */
|
|
17
|
+
readonly installedPlugins: string;
|
|
18
|
+
/** Known marketplaces registry */
|
|
19
|
+
readonly knownMarketplaces: string;
|
|
20
|
+
/** Global install counts cache */
|
|
21
|
+
readonly installCountsCache: string;
|
|
22
|
+
/** Marketplaces source directory */
|
|
23
|
+
readonly marketplacesDir: string;
|
|
24
|
+
/** Cached plugins directory */
|
|
25
|
+
readonly cacheDir: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Get the marketplace.json path for a specific marketplace
|
|
29
|
+
* @param marketplaceId - The marketplace identifier
|
|
30
|
+
* @returns Absolute path to marketplace.json
|
|
31
|
+
*/
|
|
32
|
+
export declare function getMarketplaceJsonPath(marketplaceId: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Get the plugin.json path for a cached plugin
|
|
35
|
+
* @param marketplace - Marketplace identifier
|
|
36
|
+
* @param pluginName - Plugin name
|
|
37
|
+
* @param version - Plugin version
|
|
38
|
+
* @returns Absolute path to plugin.json
|
|
39
|
+
*/
|
|
40
|
+
export declare function getPluginJsonPath(marketplace: string, pluginName: string, version: string): string;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File path constants for Claude Code configuration
|
|
3
|
+
* Uses os.homedir() for cross-platform compatibility (macOS, Linux, Windows)
|
|
4
|
+
*/
|
|
5
|
+
import * as os from 'node:os';
|
|
6
|
+
import * as path from 'node:path';
|
|
7
|
+
/** Claude Code configuration directory (~/.claude) */
|
|
8
|
+
const CLAUDE_DIR = path.join(os.homedir(), '.claude');
|
|
9
|
+
/** Plugins directory (~/.claude/plugins) */
|
|
10
|
+
const PLUGINS_DIR = path.join(CLAUDE_DIR, 'plugins');
|
|
11
|
+
/**
|
|
12
|
+
* All file paths used by the dashboard
|
|
13
|
+
* These paths work on macOS, Linux, and Windows
|
|
14
|
+
*/
|
|
15
|
+
export const PATHS = {
|
|
16
|
+
/** Root Claude Code directory */
|
|
17
|
+
claudeDir: CLAUDE_DIR,
|
|
18
|
+
/** Plugins directory */
|
|
19
|
+
pluginsDir: PLUGINS_DIR,
|
|
20
|
+
/** Main settings file with enabledPlugins */
|
|
21
|
+
settings: path.join(CLAUDE_DIR, 'settings.json'),
|
|
22
|
+
/** Installed plugins registry */
|
|
23
|
+
installedPlugins: path.join(PLUGINS_DIR, 'installed_plugins.json'),
|
|
24
|
+
/** Known marketplaces registry */
|
|
25
|
+
knownMarketplaces: path.join(PLUGINS_DIR, 'known_marketplaces.json'),
|
|
26
|
+
/** Global install counts cache */
|
|
27
|
+
installCountsCache: path.join(PLUGINS_DIR, 'install-counts-cache.json'),
|
|
28
|
+
/** Marketplaces source directory */
|
|
29
|
+
marketplacesDir: path.join(PLUGINS_DIR, 'marketplaces'),
|
|
30
|
+
/** Cached plugins directory */
|
|
31
|
+
cacheDir: path.join(PLUGINS_DIR, 'cache'),
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Get the marketplace.json path for a specific marketplace
|
|
35
|
+
* @param marketplaceId - The marketplace identifier
|
|
36
|
+
* @returns Absolute path to marketplace.json
|
|
37
|
+
*/
|
|
38
|
+
export function getMarketplaceJsonPath(marketplaceId) {
|
|
39
|
+
return path.join(PATHS.marketplacesDir, marketplaceId, '.claude-plugin', 'marketplace.json');
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get the plugin.json path for a cached plugin
|
|
43
|
+
* @param marketplace - Marketplace identifier
|
|
44
|
+
* @param pluginName - Plugin name
|
|
45
|
+
* @param version - Plugin version
|
|
46
|
+
* @returns Absolute path to plugin.json
|
|
47
|
+
*/
|
|
48
|
+
export function getPluginJsonPath(marketplace, pluginName, version) {
|
|
49
|
+
return path.join(PATHS.cacheDir, marketplace, pluginName, version, '.claude-plugin', 'plugin.json');
|
|
50
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@laststance/claude-plugin-dashboard",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Interactive CLI dashboard to manage Claude Code plugins",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Ryota Murakami <ryota.murakami@laststance.io> (https://github.com/ryota-murakami)",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/laststance/claude-code-plugin-dashboard"
|
|
10
|
+
},
|
|
11
|
+
"publishConfig": {
|
|
12
|
+
"access": "public"
|
|
13
|
+
},
|
|
14
|
+
"keywords": [
|
|
15
|
+
"claude",
|
|
16
|
+
"claude-code",
|
|
17
|
+
"plugin",
|
|
18
|
+
"cli",
|
|
19
|
+
"dashboard",
|
|
20
|
+
"anthropic",
|
|
21
|
+
"terminal",
|
|
22
|
+
"tui"
|
|
23
|
+
],
|
|
24
|
+
"bin": {
|
|
25
|
+
"claude-plugin-dashboard": "./dist/cli.js"
|
|
26
|
+
},
|
|
27
|
+
"type": "module",
|
|
28
|
+
"engines": {
|
|
29
|
+
"node": ">=20"
|
|
30
|
+
},
|
|
31
|
+
"files": [
|
|
32
|
+
"dist"
|
|
33
|
+
],
|
|
34
|
+
"packageManager": "pnpm@10.26.2",
|
|
35
|
+
"lint-staged": {
|
|
36
|
+
"*": "prettier --ignore-unknown --write"
|
|
37
|
+
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"build": "tsc",
|
|
40
|
+
"dev": "tsc --watch",
|
|
41
|
+
"start": "node dist/cli.js",
|
|
42
|
+
"link": "pnpm build && pnpm link --global",
|
|
43
|
+
"prepublishOnly": "pnpm build",
|
|
44
|
+
"prepare": "husky",
|
|
45
|
+
"prettier": "prettier --ignore-unknown --write ."
|
|
46
|
+
},
|
|
47
|
+
"dependencies": {
|
|
48
|
+
"ink": "^5.1.0",
|
|
49
|
+
"react": "^18.3.1"
|
|
50
|
+
},
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"@sindresorhus/tsconfig": "^6.0.0",
|
|
53
|
+
"@types/node": "^22.10.2",
|
|
54
|
+
"@types/react": "^18.3.18",
|
|
55
|
+
"husky": "^9.1.7",
|
|
56
|
+
"lint-staged": "^16.2.7",
|
|
57
|
+
"prettier": "^3.7.4",
|
|
58
|
+
"typescript": "^5.7.2"
|
|
59
|
+
}
|
|
60
|
+
}
|