@laststance/claude-plugin-dashboard 0.3.0 → 0.3.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.
- package/README.md +1 -0
- package/dist/app.js +346 -211
- package/dist/cli.js +3 -1
- package/dist/components/ComponentBadges.d.ts +0 -9
- package/dist/components/ComponentBadges.js +0 -33
- package/dist/components/ComponentDetail.d.ts +32 -0
- package/dist/components/ComponentDetail.js +106 -0
- package/dist/components/ComponentList.d.ts +36 -2
- package/dist/components/ComponentList.js +105 -11
- package/dist/components/HelpOverlay.js +1 -0
- package/dist/components/KeyHints.d.ts +1 -0
- package/dist/components/KeyHints.js +8 -1
- package/dist/components/PluginDetail.d.ts +16 -3
- package/dist/components/PluginDetail.js +29 -3
- package/dist/services/componentService.d.ts +10 -42
- package/dist/services/componentService.js +19 -412
- package/dist/services/components/hookService.d.ts +17 -0
- package/dist/services/components/hookService.js +45 -0
- package/dist/services/components/index.d.ts +41 -0
- package/dist/services/components/index.js +126 -0
- package/dist/services/components/markdownService.d.ts +39 -0
- package/dist/services/components/markdownService.js +147 -0
- package/dist/services/components/serverService.d.ts +28 -0
- package/dist/services/components/serverService.js +69 -0
- package/dist/services/components/skillService.d.ts +48 -0
- package/dist/services/components/skillService.js +164 -0
- package/dist/services/components/utils.d.ts +23 -0
- package/dist/services/components/utils.js +42 -0
- package/dist/services/pluginActionsService.d.ts +31 -2
- package/dist/services/pluginActionsService.js +65 -6
- package/dist/store/index.d.ts +46 -0
- package/dist/store/index.js +47 -0
- package/dist/store/slices/marketplaceSlice.d.ts +344 -0
- package/dist/store/slices/marketplaceSlice.js +152 -0
- package/dist/store/slices/pluginSlice.d.ts +1544 -0
- package/dist/store/slices/pluginSlice.js +191 -0
- package/dist/store/slices/uiSlice.d.ts +147 -0
- package/dist/store/slices/uiSlice.js +126 -0
- package/dist/tabs/DiscoverTab.d.ts +8 -2
- package/dist/tabs/DiscoverTab.js +2 -2
- package/dist/tabs/EnabledTab.d.ts +8 -2
- package/dist/tabs/EnabledTab.js +2 -2
- package/dist/tabs/ErrorsTab.js +1 -1
- package/dist/tabs/InstalledTab.d.ts +8 -2
- package/dist/tabs/InstalledTab.js +2 -2
- package/dist/types/index.d.ts +47 -4
- package/package.json +7 -2
package/dist/types/index.d.ts
CHANGED
|
@@ -60,6 +60,28 @@ export interface ComponentInfo {
|
|
|
60
60
|
/** Component type for display categorization */
|
|
61
61
|
type: ComponentType;
|
|
62
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Extended component information with full SKILL.md parsing
|
|
65
|
+
* Used for Component detail view in PluginDetail panel
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* {
|
|
69
|
+
* name: "sentry-code-review",
|
|
70
|
+
* description: "Analyze and resolve Sentry comments...",
|
|
71
|
+
* type: "skill",
|
|
72
|
+
* allowedTools: ["Read", "Edit", "Write", "Bash", "Grep"],
|
|
73
|
+
* fullDescription: "Full markdown body content...",
|
|
74
|
+
* filePath: "/Users/.../skills/sentry-code-review/SKILL.md"
|
|
75
|
+
* }
|
|
76
|
+
*/
|
|
77
|
+
export interface ComponentDetailedInfo extends ComponentInfo {
|
|
78
|
+
/** Allowed tools from SKILL.md frontmatter (allowed-tools field) */
|
|
79
|
+
allowedTools?: string[];
|
|
80
|
+
/** Full markdown body content (after frontmatter) */
|
|
81
|
+
fullDescription?: string;
|
|
82
|
+
/** Absolute file path for reference */
|
|
83
|
+
filePath?: string;
|
|
84
|
+
}
|
|
63
85
|
/**
|
|
64
86
|
* Detailed component information for a plugin
|
|
65
87
|
* Extends PluginComponents (counts) with actual component names and descriptions
|
|
@@ -273,7 +295,7 @@ export interface Settings {
|
|
|
273
295
|
* Focus zones for keyboard navigation
|
|
274
296
|
* Defines which UI area currently has keyboard focus
|
|
275
297
|
*/
|
|
276
|
-
export type FocusZone = 'tabbar' | 'search' | 'list';
|
|
298
|
+
export type FocusZone = 'tabbar' | 'search' | 'list' | 'components';
|
|
277
299
|
/**
|
|
278
300
|
* Marketplace operation types
|
|
279
301
|
*/
|
|
@@ -306,12 +328,20 @@ export interface AppState {
|
|
|
306
328
|
error: string | null;
|
|
307
329
|
/** Status message */
|
|
308
330
|
message: string | null;
|
|
309
|
-
/** Current async operation (install/uninstall) */
|
|
310
|
-
operation: 'idle' | 'installing' | 'uninstalling';
|
|
331
|
+
/** Current async operation (install/uninstall/update) */
|
|
332
|
+
operation: 'idle' | 'installing' | 'uninstalling' | 'updating';
|
|
311
333
|
/** Plugin ID being operated on */
|
|
312
334
|
operationPluginId: string | null;
|
|
313
335
|
/** Whether confirmation dialog is showing */
|
|
314
336
|
confirmUninstall: boolean;
|
|
337
|
+
/** Whether update all confirmation dialog is showing */
|
|
338
|
+
confirmUpdateAll: boolean;
|
|
339
|
+
/** Progress of bulk update operation */
|
|
340
|
+
updateProgress: {
|
|
341
|
+
current: number;
|
|
342
|
+
total: number;
|
|
343
|
+
pluginId: string;
|
|
344
|
+
} | null;
|
|
315
345
|
/** Whether help overlay is showing */
|
|
316
346
|
showHelp: boolean;
|
|
317
347
|
/** Current marketplace operation */
|
|
@@ -328,6 +358,8 @@ export interface AppState {
|
|
|
328
358
|
showMarketplaceActionMenu: boolean;
|
|
329
359
|
/** Selected index in marketplace action menu */
|
|
330
360
|
actionMenuSelectedIndex: number;
|
|
361
|
+
/** Selected component index within the current plugin */
|
|
362
|
+
selectedComponentIndex: number;
|
|
331
363
|
}
|
|
332
364
|
/**
|
|
333
365
|
* Action types for useReducer
|
|
@@ -381,7 +413,7 @@ export type Action = {
|
|
|
381
413
|
} | {
|
|
382
414
|
type: 'START_OPERATION';
|
|
383
415
|
payload: {
|
|
384
|
-
operation: 'installing' | 'uninstalling';
|
|
416
|
+
operation: 'installing' | 'uninstalling' | 'updating';
|
|
385
417
|
pluginId: string;
|
|
386
418
|
};
|
|
387
419
|
} | {
|
|
@@ -426,4 +458,15 @@ export type Action = {
|
|
|
426
458
|
} | {
|
|
427
459
|
type: 'MOVE_ACTION_MENU_SELECTION';
|
|
428
460
|
payload: 'up' | 'down';
|
|
461
|
+
} | {
|
|
462
|
+
type: 'SET_COMPONENT_INDEX';
|
|
463
|
+
payload: number;
|
|
464
|
+
} | {
|
|
465
|
+
type: 'MOVE_COMPONENT_SELECTION';
|
|
466
|
+
payload: 'up' | 'down';
|
|
467
|
+
maxIndex: number;
|
|
468
|
+
} | {
|
|
469
|
+
type: 'ENTER_COMPONENT_MODE';
|
|
470
|
+
} | {
|
|
471
|
+
type: 'EXIT_COMPONENT_MODE';
|
|
429
472
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@laststance/claude-plugin-dashboard",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Interactive CLI dashboard to manage Claude Code plugins",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ryota Murakami <ryota.murakami@laststance.io> (https://github.com/ryota-murakami)",
|
|
@@ -47,15 +47,19 @@
|
|
|
47
47
|
"prettier": "prettier --ignore-unknown --write .",
|
|
48
48
|
"test": "vitest",
|
|
49
49
|
"test:run": "vitest run",
|
|
50
|
-
"test:coverage": "vitest run --coverage"
|
|
50
|
+
"test:coverage": "vitest run --coverage",
|
|
51
|
+
"push-release-commit": "push-release-commit"
|
|
51
52
|
},
|
|
52
53
|
"dependencies": {
|
|
54
|
+
"@reduxjs/toolkit": "^2.11.2",
|
|
53
55
|
"fullscreen-ink": "^0.1.0",
|
|
54
56
|
"ink": "^5.1.0",
|
|
55
57
|
"react": "^18.3.1",
|
|
58
|
+
"react-redux": "^9.2.0",
|
|
56
59
|
"ts-pattern": "^5.9.0"
|
|
57
60
|
},
|
|
58
61
|
"devDependencies": {
|
|
62
|
+
"@laststance/npm-publish-tool": "^2.1.0",
|
|
59
63
|
"@sindresorhus/tsconfig": "^6.0.0",
|
|
60
64
|
"@types/node": "^22.10.2",
|
|
61
65
|
"@types/react": "^18.3.18",
|
|
@@ -64,6 +68,7 @@
|
|
|
64
68
|
"ink-testing-library": "^4.0.0",
|
|
65
69
|
"lint-staged": "^16.2.7",
|
|
66
70
|
"prettier": "^3.7.4",
|
|
71
|
+
"release-it": "^19.2.4",
|
|
67
72
|
"typescript": "^5.7.2",
|
|
68
73
|
"vitest": "^4.0.16"
|
|
69
74
|
}
|