@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.
Files changed (47) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +235 -0
  3. package/dist/app.d.ts +8 -0
  4. package/dist/app.js +481 -0
  5. package/dist/cli.d.ts +16 -0
  6. package/dist/cli.js +316 -0
  7. package/dist/components/ConfirmDialog.d.ts +14 -0
  8. package/dist/components/ConfirmDialog.js +14 -0
  9. package/dist/components/KeyHints.d.ts +19 -0
  10. package/dist/components/KeyHints.js +23 -0
  11. package/dist/components/MarketplaceDetail.d.ts +15 -0
  12. package/dist/components/MarketplaceDetail.js +39 -0
  13. package/dist/components/MarketplaceList.d.ts +16 -0
  14. package/dist/components/MarketplaceList.js +32 -0
  15. package/dist/components/PluginDetail.d.ts +15 -0
  16. package/dist/components/PluginDetail.js +52 -0
  17. package/dist/components/PluginList.d.ts +19 -0
  18. package/dist/components/PluginList.js +54 -0
  19. package/dist/components/SearchInput.d.ts +16 -0
  20. package/dist/components/SearchInput.js +14 -0
  21. package/dist/components/SortDropdown.d.ts +21 -0
  22. package/dist/components/SortDropdown.js +29 -0
  23. package/dist/components/StatusIcon.d.ts +20 -0
  24. package/dist/components/StatusIcon.js +25 -0
  25. package/dist/components/TabBar.d.ts +24 -0
  26. package/dist/components/TabBar.js +38 -0
  27. package/dist/services/fileService.d.ts +41 -0
  28. package/dist/services/fileService.js +104 -0
  29. package/dist/services/pluginActionsService.d.ts +21 -0
  30. package/dist/services/pluginActionsService.js +65 -0
  31. package/dist/services/pluginService.d.ts +66 -0
  32. package/dist/services/pluginService.js +188 -0
  33. package/dist/services/settingsService.d.ts +82 -0
  34. package/dist/services/settingsService.js +117 -0
  35. package/dist/tabs/DiscoverTab.d.ts +26 -0
  36. package/dist/tabs/DiscoverTab.js +25 -0
  37. package/dist/tabs/ErrorsTab.d.ts +16 -0
  38. package/dist/tabs/ErrorsTab.js +39 -0
  39. package/dist/tabs/InstalledTab.d.ts +16 -0
  40. package/dist/tabs/InstalledTab.js +24 -0
  41. package/dist/tabs/MarketplacesTab.d.ts +16 -0
  42. package/dist/tabs/MarketplacesTab.js +21 -0
  43. package/dist/types/index.d.ts +250 -0
  44. package/dist/types/index.js +5 -0
  45. package/dist/utils/paths.d.ts +40 -0
  46. package/dist/utils/paths.js +50 -0
  47. 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
+ }