@laststance/claude-plugin-dashboard 0.2.3 → 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.
Files changed (58) hide show
  1. package/README.md +7 -1
  2. package/dist/app.d.ts +7 -1
  3. package/dist/app.js +544 -262
  4. package/dist/cli.js +60 -67
  5. package/dist/components/ComponentBadges.d.ts +0 -9
  6. package/dist/components/ComponentBadges.js +0 -33
  7. package/dist/components/ComponentDetail.d.ts +32 -0
  8. package/dist/components/ComponentDetail.js +106 -0
  9. package/dist/components/ComponentList.d.ts +87 -0
  10. package/dist/components/ComponentList.js +287 -0
  11. package/dist/components/HelpOverlay.js +1 -0
  12. package/dist/components/KeyHints.d.ts +1 -0
  13. package/dist/components/KeyHints.js +33 -29
  14. package/dist/components/MarketplaceActionMenu.d.ts +41 -0
  15. package/dist/components/MarketplaceActionMenu.js +68 -0
  16. package/dist/components/MarketplaceDetail.d.ts +10 -3
  17. package/dist/components/MarketplaceDetail.js +10 -4
  18. package/dist/components/PluginDetail.d.ts +19 -3
  19. package/dist/components/PluginDetail.js +56 -6
  20. package/dist/components/PluginList.js +19 -7
  21. package/dist/services/componentService.d.ts +10 -31
  22. package/dist/services/componentService.js +19 -174
  23. package/dist/services/components/hookService.d.ts +17 -0
  24. package/dist/services/components/hookService.js +45 -0
  25. package/dist/services/components/index.d.ts +41 -0
  26. package/dist/services/components/index.js +126 -0
  27. package/dist/services/components/markdownService.d.ts +39 -0
  28. package/dist/services/components/markdownService.js +147 -0
  29. package/dist/services/components/serverService.d.ts +28 -0
  30. package/dist/services/components/serverService.js +69 -0
  31. package/dist/services/components/skillService.d.ts +48 -0
  32. package/dist/services/components/skillService.js +164 -0
  33. package/dist/services/components/utils.d.ts +23 -0
  34. package/dist/services/components/utils.js +42 -0
  35. package/dist/services/marketplaceActionsService.d.ts +17 -0
  36. package/dist/services/marketplaceActionsService.js +18 -0
  37. package/dist/services/pluginActionsService.d.ts +31 -2
  38. package/dist/services/pluginActionsService.js +65 -6
  39. package/dist/services/pluginService.js +78 -2
  40. package/dist/store/index.d.ts +46 -0
  41. package/dist/store/index.js +47 -0
  42. package/dist/store/slices/marketplaceSlice.d.ts +344 -0
  43. package/dist/store/slices/marketplaceSlice.js +152 -0
  44. package/dist/store/slices/pluginSlice.d.ts +1544 -0
  45. package/dist/store/slices/pluginSlice.js +191 -0
  46. package/dist/store/slices/uiSlice.d.ts +147 -0
  47. package/dist/store/slices/uiSlice.js +126 -0
  48. package/dist/tabs/DiscoverTab.d.ts +8 -2
  49. package/dist/tabs/DiscoverTab.js +2 -2
  50. package/dist/tabs/EnabledTab.d.ts +8 -2
  51. package/dist/tabs/EnabledTab.js +3 -3
  52. package/dist/tabs/ErrorsTab.js +1 -1
  53. package/dist/tabs/InstalledTab.d.ts +8 -2
  54. package/dist/tabs/InstalledTab.js +3 -3
  55. package/dist/tabs/MarketplacesTab.d.ts +15 -2
  56. package/dist/tabs/MarketplacesTab.js +13 -4
  57. package/dist/types/index.d.ts +157 -5
  58. package/package.json +10 -3
@@ -0,0 +1,1544 @@
1
+ /**
2
+ * Plugin state slice for plugin data and operations
3
+ * Handles plugin list, loading state, selection, and operations
4
+ */
5
+ import { type PayloadAction } from '@reduxjs/toolkit';
6
+ import type { Plugin, PluginError } from '../../types/index.js';
7
+ /**
8
+ * Plugin operation type
9
+ */
10
+ export type PluginOperation = 'idle' | 'installing' | 'uninstalling' | 'updating';
11
+ /**
12
+ * Plugin-specific state
13
+ */
14
+ export interface PluginState {
15
+ plugins: Plugin[];
16
+ errors: PluginError[];
17
+ loading: boolean;
18
+ error: string | null;
19
+ selectedIndex: number;
20
+ operation: PluginOperation;
21
+ operationPluginId: string | null;
22
+ confirmUninstall: boolean;
23
+ confirmUpdateAll: boolean;
24
+ updateProgress: {
25
+ current: number;
26
+ total: number;
27
+ pluginId: string;
28
+ } | null;
29
+ selectedComponentIndex: number;
30
+ }
31
+ /**
32
+ * Plugin slice with reducers for all plugin-related state changes
33
+ */
34
+ export declare const pluginSlice: import("@reduxjs/toolkit").Slice<PluginState, {
35
+ /**
36
+ * Set the plugins list
37
+ */
38
+ setPlugins: (state: {
39
+ plugins: {
40
+ id: string;
41
+ name: string;
42
+ marketplace: string;
43
+ description: string;
44
+ version: string;
45
+ installCount: number;
46
+ isInstalled: boolean;
47
+ isEnabled: boolean;
48
+ installedAt?: string | undefined;
49
+ lastUpdated?: string | undefined;
50
+ category?: string | undefined;
51
+ tags?: string[] | undefined;
52
+ author?: {
53
+ name: string;
54
+ email?: string | undefined;
55
+ } | undefined;
56
+ homepage?: string | undefined;
57
+ isLocal?: boolean | undefined;
58
+ gitCommitSha?: string | undefined;
59
+ components?: {
60
+ skills?: number | undefined;
61
+ commands?: number | undefined;
62
+ agents?: number | undefined;
63
+ hooks?: boolean | undefined;
64
+ mcpServers?: number | undefined;
65
+ lspServers?: number | undefined;
66
+ } | undefined;
67
+ componentsDetailed?: {
68
+ skills?: {
69
+ name: string;
70
+ description?: string | undefined;
71
+ type: import("../../types/index.js").ComponentType;
72
+ }[] | undefined;
73
+ commands?: {
74
+ name: string;
75
+ description?: string | undefined;
76
+ type: import("../../types/index.js").ComponentType;
77
+ }[] | undefined;
78
+ agents?: {
79
+ name: string;
80
+ description?: string | undefined;
81
+ type: import("../../types/index.js").ComponentType;
82
+ }[] | undefined;
83
+ hooks?: string[] | undefined;
84
+ mcpServers?: string[] | undefined;
85
+ lspServers?: string[] | undefined;
86
+ } | undefined;
87
+ }[];
88
+ errors: {
89
+ pluginId: string;
90
+ type: "installation" | "runtime" | "config";
91
+ message: string;
92
+ timestamp: string;
93
+ details?: string | undefined;
94
+ }[];
95
+ loading: boolean;
96
+ error: string | null;
97
+ selectedIndex: number;
98
+ operation: PluginOperation;
99
+ operationPluginId: string | null;
100
+ confirmUninstall: boolean;
101
+ confirmUpdateAll: boolean;
102
+ updateProgress: {
103
+ current: number;
104
+ total: number;
105
+ pluginId: string;
106
+ } | null;
107
+ selectedComponentIndex: number;
108
+ }, action: PayloadAction<Plugin[]>) => void;
109
+ /**
110
+ * Set plugin errors
111
+ */
112
+ setErrors: (state: {
113
+ plugins: {
114
+ id: string;
115
+ name: string;
116
+ marketplace: string;
117
+ description: string;
118
+ version: string;
119
+ installCount: number;
120
+ isInstalled: boolean;
121
+ isEnabled: boolean;
122
+ installedAt?: string | undefined;
123
+ lastUpdated?: string | undefined;
124
+ category?: string | undefined;
125
+ tags?: string[] | undefined;
126
+ author?: {
127
+ name: string;
128
+ email?: string | undefined;
129
+ } | undefined;
130
+ homepage?: string | undefined;
131
+ isLocal?: boolean | undefined;
132
+ gitCommitSha?: string | undefined;
133
+ components?: {
134
+ skills?: number | undefined;
135
+ commands?: number | undefined;
136
+ agents?: number | undefined;
137
+ hooks?: boolean | undefined;
138
+ mcpServers?: number | undefined;
139
+ lspServers?: number | undefined;
140
+ } | undefined;
141
+ componentsDetailed?: {
142
+ skills?: {
143
+ name: string;
144
+ description?: string | undefined;
145
+ type: import("../../types/index.js").ComponentType;
146
+ }[] | undefined;
147
+ commands?: {
148
+ name: string;
149
+ description?: string | undefined;
150
+ type: import("../../types/index.js").ComponentType;
151
+ }[] | undefined;
152
+ agents?: {
153
+ name: string;
154
+ description?: string | undefined;
155
+ type: import("../../types/index.js").ComponentType;
156
+ }[] | undefined;
157
+ hooks?: string[] | undefined;
158
+ mcpServers?: string[] | undefined;
159
+ lspServers?: string[] | undefined;
160
+ } | undefined;
161
+ }[];
162
+ errors: {
163
+ pluginId: string;
164
+ type: "installation" | "runtime" | "config";
165
+ message: string;
166
+ timestamp: string;
167
+ details?: string | undefined;
168
+ }[];
169
+ loading: boolean;
170
+ error: string | null;
171
+ selectedIndex: number;
172
+ operation: PluginOperation;
173
+ operationPluginId: string | null;
174
+ confirmUninstall: boolean;
175
+ confirmUpdateAll: boolean;
176
+ updateProgress: {
177
+ current: number;
178
+ total: number;
179
+ pluginId: string;
180
+ } | null;
181
+ selectedComponentIndex: number;
182
+ }, action: PayloadAction<PluginError[]>) => void;
183
+ /**
184
+ * Set loading state
185
+ */
186
+ setLoading: (state: {
187
+ plugins: {
188
+ id: string;
189
+ name: string;
190
+ marketplace: string;
191
+ description: string;
192
+ version: string;
193
+ installCount: number;
194
+ isInstalled: boolean;
195
+ isEnabled: boolean;
196
+ installedAt?: string | undefined;
197
+ lastUpdated?: string | undefined;
198
+ category?: string | undefined;
199
+ tags?: string[] | undefined;
200
+ author?: {
201
+ name: string;
202
+ email?: string | undefined;
203
+ } | undefined;
204
+ homepage?: string | undefined;
205
+ isLocal?: boolean | undefined;
206
+ gitCommitSha?: string | undefined;
207
+ components?: {
208
+ skills?: number | undefined;
209
+ commands?: number | undefined;
210
+ agents?: number | undefined;
211
+ hooks?: boolean | undefined;
212
+ mcpServers?: number | undefined;
213
+ lspServers?: number | undefined;
214
+ } | undefined;
215
+ componentsDetailed?: {
216
+ skills?: {
217
+ name: string;
218
+ description?: string | undefined;
219
+ type: import("../../types/index.js").ComponentType;
220
+ }[] | undefined;
221
+ commands?: {
222
+ name: string;
223
+ description?: string | undefined;
224
+ type: import("../../types/index.js").ComponentType;
225
+ }[] | undefined;
226
+ agents?: {
227
+ name: string;
228
+ description?: string | undefined;
229
+ type: import("../../types/index.js").ComponentType;
230
+ }[] | undefined;
231
+ hooks?: string[] | undefined;
232
+ mcpServers?: string[] | undefined;
233
+ lspServers?: string[] | undefined;
234
+ } | undefined;
235
+ }[];
236
+ errors: {
237
+ pluginId: string;
238
+ type: "installation" | "runtime" | "config";
239
+ message: string;
240
+ timestamp: string;
241
+ details?: string | undefined;
242
+ }[];
243
+ loading: boolean;
244
+ error: string | null;
245
+ selectedIndex: number;
246
+ operation: PluginOperation;
247
+ operationPluginId: string | null;
248
+ confirmUninstall: boolean;
249
+ confirmUpdateAll: boolean;
250
+ updateProgress: {
251
+ current: number;
252
+ total: number;
253
+ pluginId: string;
254
+ } | null;
255
+ selectedComponentIndex: number;
256
+ }, action: PayloadAction<boolean>) => void;
257
+ /**
258
+ * Set error message
259
+ */
260
+ setError: (state: {
261
+ plugins: {
262
+ id: string;
263
+ name: string;
264
+ marketplace: string;
265
+ description: string;
266
+ version: string;
267
+ installCount: number;
268
+ isInstalled: boolean;
269
+ isEnabled: boolean;
270
+ installedAt?: string | undefined;
271
+ lastUpdated?: string | undefined;
272
+ category?: string | undefined;
273
+ tags?: string[] | undefined;
274
+ author?: {
275
+ name: string;
276
+ email?: string | undefined;
277
+ } | undefined;
278
+ homepage?: string | undefined;
279
+ isLocal?: boolean | undefined;
280
+ gitCommitSha?: string | undefined;
281
+ components?: {
282
+ skills?: number | undefined;
283
+ commands?: number | undefined;
284
+ agents?: number | undefined;
285
+ hooks?: boolean | undefined;
286
+ mcpServers?: number | undefined;
287
+ lspServers?: number | undefined;
288
+ } | undefined;
289
+ componentsDetailed?: {
290
+ skills?: {
291
+ name: string;
292
+ description?: string | undefined;
293
+ type: import("../../types/index.js").ComponentType;
294
+ }[] | undefined;
295
+ commands?: {
296
+ name: string;
297
+ description?: string | undefined;
298
+ type: import("../../types/index.js").ComponentType;
299
+ }[] | undefined;
300
+ agents?: {
301
+ name: string;
302
+ description?: string | undefined;
303
+ type: import("../../types/index.js").ComponentType;
304
+ }[] | undefined;
305
+ hooks?: string[] | undefined;
306
+ mcpServers?: string[] | undefined;
307
+ lspServers?: string[] | undefined;
308
+ } | undefined;
309
+ }[];
310
+ errors: {
311
+ pluginId: string;
312
+ type: "installation" | "runtime" | "config";
313
+ message: string;
314
+ timestamp: string;
315
+ details?: string | undefined;
316
+ }[];
317
+ loading: boolean;
318
+ error: string | null;
319
+ selectedIndex: number;
320
+ operation: PluginOperation;
321
+ operationPluginId: string | null;
322
+ confirmUninstall: boolean;
323
+ confirmUpdateAll: boolean;
324
+ updateProgress: {
325
+ current: number;
326
+ total: number;
327
+ pluginId: string;
328
+ } | null;
329
+ selectedComponentIndex: number;
330
+ }, action: PayloadAction<string | null>) => void;
331
+ /**
332
+ * Set selected plugin index
333
+ */
334
+ setSelectedIndex: (state: {
335
+ plugins: {
336
+ id: string;
337
+ name: string;
338
+ marketplace: string;
339
+ description: string;
340
+ version: string;
341
+ installCount: number;
342
+ isInstalled: boolean;
343
+ isEnabled: boolean;
344
+ installedAt?: string | undefined;
345
+ lastUpdated?: string | undefined;
346
+ category?: string | undefined;
347
+ tags?: string[] | undefined;
348
+ author?: {
349
+ name: string;
350
+ email?: string | undefined;
351
+ } | undefined;
352
+ homepage?: string | undefined;
353
+ isLocal?: boolean | undefined;
354
+ gitCommitSha?: string | undefined;
355
+ components?: {
356
+ skills?: number | undefined;
357
+ commands?: number | undefined;
358
+ agents?: number | undefined;
359
+ hooks?: boolean | undefined;
360
+ mcpServers?: number | undefined;
361
+ lspServers?: number | undefined;
362
+ } | undefined;
363
+ componentsDetailed?: {
364
+ skills?: {
365
+ name: string;
366
+ description?: string | undefined;
367
+ type: import("../../types/index.js").ComponentType;
368
+ }[] | undefined;
369
+ commands?: {
370
+ name: string;
371
+ description?: string | undefined;
372
+ type: import("../../types/index.js").ComponentType;
373
+ }[] | undefined;
374
+ agents?: {
375
+ name: string;
376
+ description?: string | undefined;
377
+ type: import("../../types/index.js").ComponentType;
378
+ }[] | undefined;
379
+ hooks?: string[] | undefined;
380
+ mcpServers?: string[] | undefined;
381
+ lspServers?: string[] | undefined;
382
+ } | undefined;
383
+ }[];
384
+ errors: {
385
+ pluginId: string;
386
+ type: "installation" | "runtime" | "config";
387
+ message: string;
388
+ timestamp: string;
389
+ details?: string | undefined;
390
+ }[];
391
+ loading: boolean;
392
+ error: string | null;
393
+ selectedIndex: number;
394
+ operation: PluginOperation;
395
+ operationPluginId: string | null;
396
+ confirmUninstall: boolean;
397
+ confirmUpdateAll: boolean;
398
+ updateProgress: {
399
+ current: number;
400
+ total: number;
401
+ pluginId: string;
402
+ } | null;
403
+ selectedComponentIndex: number;
404
+ }, action: PayloadAction<number>) => void;
405
+ /**
406
+ * Move selection up or down
407
+ */
408
+ moveSelection: (state: {
409
+ plugins: {
410
+ id: string;
411
+ name: string;
412
+ marketplace: string;
413
+ description: string;
414
+ version: string;
415
+ installCount: number;
416
+ isInstalled: boolean;
417
+ isEnabled: boolean;
418
+ installedAt?: string | undefined;
419
+ lastUpdated?: string | undefined;
420
+ category?: string | undefined;
421
+ tags?: string[] | undefined;
422
+ author?: {
423
+ name: string;
424
+ email?: string | undefined;
425
+ } | undefined;
426
+ homepage?: string | undefined;
427
+ isLocal?: boolean | undefined;
428
+ gitCommitSha?: string | undefined;
429
+ components?: {
430
+ skills?: number | undefined;
431
+ commands?: number | undefined;
432
+ agents?: number | undefined;
433
+ hooks?: boolean | undefined;
434
+ mcpServers?: number | undefined;
435
+ lspServers?: number | undefined;
436
+ } | undefined;
437
+ componentsDetailed?: {
438
+ skills?: {
439
+ name: string;
440
+ description?: string | undefined;
441
+ type: import("../../types/index.js").ComponentType;
442
+ }[] | undefined;
443
+ commands?: {
444
+ name: string;
445
+ description?: string | undefined;
446
+ type: import("../../types/index.js").ComponentType;
447
+ }[] | undefined;
448
+ agents?: {
449
+ name: string;
450
+ description?: string | undefined;
451
+ type: import("../../types/index.js").ComponentType;
452
+ }[] | undefined;
453
+ hooks?: string[] | undefined;
454
+ mcpServers?: string[] | undefined;
455
+ lspServers?: string[] | undefined;
456
+ } | undefined;
457
+ }[];
458
+ errors: {
459
+ pluginId: string;
460
+ type: "installation" | "runtime" | "config";
461
+ message: string;
462
+ timestamp: string;
463
+ details?: string | undefined;
464
+ }[];
465
+ loading: boolean;
466
+ error: string | null;
467
+ selectedIndex: number;
468
+ operation: PluginOperation;
469
+ operationPluginId: string | null;
470
+ confirmUninstall: boolean;
471
+ confirmUpdateAll: boolean;
472
+ updateProgress: {
473
+ current: number;
474
+ total: number;
475
+ pluginId: string;
476
+ } | null;
477
+ selectedComponentIndex: number;
478
+ }, action: PayloadAction<{
479
+ direction: "up" | "down";
480
+ maxIndex: number;
481
+ }>) => void;
482
+ /**
483
+ * Toggle plugin enabled state
484
+ */
485
+ togglePluginEnabled: (state: {
486
+ plugins: {
487
+ id: string;
488
+ name: string;
489
+ marketplace: string;
490
+ description: string;
491
+ version: string;
492
+ installCount: number;
493
+ isInstalled: boolean;
494
+ isEnabled: boolean;
495
+ installedAt?: string | undefined;
496
+ lastUpdated?: string | undefined;
497
+ category?: string | undefined;
498
+ tags?: string[] | undefined;
499
+ author?: {
500
+ name: string;
501
+ email?: string | undefined;
502
+ } | undefined;
503
+ homepage?: string | undefined;
504
+ isLocal?: boolean | undefined;
505
+ gitCommitSha?: string | undefined;
506
+ components?: {
507
+ skills?: number | undefined;
508
+ commands?: number | undefined;
509
+ agents?: number | undefined;
510
+ hooks?: boolean | undefined;
511
+ mcpServers?: number | undefined;
512
+ lspServers?: number | undefined;
513
+ } | undefined;
514
+ componentsDetailed?: {
515
+ skills?: {
516
+ name: string;
517
+ description?: string | undefined;
518
+ type: import("../../types/index.js").ComponentType;
519
+ }[] | undefined;
520
+ commands?: {
521
+ name: string;
522
+ description?: string | undefined;
523
+ type: import("../../types/index.js").ComponentType;
524
+ }[] | undefined;
525
+ agents?: {
526
+ name: string;
527
+ description?: string | undefined;
528
+ type: import("../../types/index.js").ComponentType;
529
+ }[] | undefined;
530
+ hooks?: string[] | undefined;
531
+ mcpServers?: string[] | undefined;
532
+ lspServers?: string[] | undefined;
533
+ } | undefined;
534
+ }[];
535
+ errors: {
536
+ pluginId: string;
537
+ type: "installation" | "runtime" | "config";
538
+ message: string;
539
+ timestamp: string;
540
+ details?: string | undefined;
541
+ }[];
542
+ loading: boolean;
543
+ error: string | null;
544
+ selectedIndex: number;
545
+ operation: PluginOperation;
546
+ operationPluginId: string | null;
547
+ confirmUninstall: boolean;
548
+ confirmUpdateAll: boolean;
549
+ updateProgress: {
550
+ current: number;
551
+ total: number;
552
+ pluginId: string;
553
+ } | null;
554
+ selectedComponentIndex: number;
555
+ }, action: PayloadAction<string>) => void;
556
+ /**
557
+ * Update a single plugin
558
+ */
559
+ updatePlugin: (state: {
560
+ plugins: {
561
+ id: string;
562
+ name: string;
563
+ marketplace: string;
564
+ description: string;
565
+ version: string;
566
+ installCount: number;
567
+ isInstalled: boolean;
568
+ isEnabled: boolean;
569
+ installedAt?: string | undefined;
570
+ lastUpdated?: string | undefined;
571
+ category?: string | undefined;
572
+ tags?: string[] | undefined;
573
+ author?: {
574
+ name: string;
575
+ email?: string | undefined;
576
+ } | undefined;
577
+ homepage?: string | undefined;
578
+ isLocal?: boolean | undefined;
579
+ gitCommitSha?: string | undefined;
580
+ components?: {
581
+ skills?: number | undefined;
582
+ commands?: number | undefined;
583
+ agents?: number | undefined;
584
+ hooks?: boolean | undefined;
585
+ mcpServers?: number | undefined;
586
+ lspServers?: number | undefined;
587
+ } | undefined;
588
+ componentsDetailed?: {
589
+ skills?: {
590
+ name: string;
591
+ description?: string | undefined;
592
+ type: import("../../types/index.js").ComponentType;
593
+ }[] | undefined;
594
+ commands?: {
595
+ name: string;
596
+ description?: string | undefined;
597
+ type: import("../../types/index.js").ComponentType;
598
+ }[] | undefined;
599
+ agents?: {
600
+ name: string;
601
+ description?: string | undefined;
602
+ type: import("../../types/index.js").ComponentType;
603
+ }[] | undefined;
604
+ hooks?: string[] | undefined;
605
+ mcpServers?: string[] | undefined;
606
+ lspServers?: string[] | undefined;
607
+ } | undefined;
608
+ }[];
609
+ errors: {
610
+ pluginId: string;
611
+ type: "installation" | "runtime" | "config";
612
+ message: string;
613
+ timestamp: string;
614
+ details?: string | undefined;
615
+ }[];
616
+ loading: boolean;
617
+ error: string | null;
618
+ selectedIndex: number;
619
+ operation: PluginOperation;
620
+ operationPluginId: string | null;
621
+ confirmUninstall: boolean;
622
+ confirmUpdateAll: boolean;
623
+ updateProgress: {
624
+ current: number;
625
+ total: number;
626
+ pluginId: string;
627
+ } | null;
628
+ selectedComponentIndex: number;
629
+ }, action: PayloadAction<Plugin>) => void;
630
+ /**
631
+ * Start a plugin operation (install/uninstall)
632
+ */
633
+ startOperation: (state: {
634
+ plugins: {
635
+ id: string;
636
+ name: string;
637
+ marketplace: string;
638
+ description: string;
639
+ version: string;
640
+ installCount: number;
641
+ isInstalled: boolean;
642
+ isEnabled: boolean;
643
+ installedAt?: string | undefined;
644
+ lastUpdated?: string | undefined;
645
+ category?: string | undefined;
646
+ tags?: string[] | undefined;
647
+ author?: {
648
+ name: string;
649
+ email?: string | undefined;
650
+ } | undefined;
651
+ homepage?: string | undefined;
652
+ isLocal?: boolean | undefined;
653
+ gitCommitSha?: string | undefined;
654
+ components?: {
655
+ skills?: number | undefined;
656
+ commands?: number | undefined;
657
+ agents?: number | undefined;
658
+ hooks?: boolean | undefined;
659
+ mcpServers?: number | undefined;
660
+ lspServers?: number | undefined;
661
+ } | undefined;
662
+ componentsDetailed?: {
663
+ skills?: {
664
+ name: string;
665
+ description?: string | undefined;
666
+ type: import("../../types/index.js").ComponentType;
667
+ }[] | undefined;
668
+ commands?: {
669
+ name: string;
670
+ description?: string | undefined;
671
+ type: import("../../types/index.js").ComponentType;
672
+ }[] | undefined;
673
+ agents?: {
674
+ name: string;
675
+ description?: string | undefined;
676
+ type: import("../../types/index.js").ComponentType;
677
+ }[] | undefined;
678
+ hooks?: string[] | undefined;
679
+ mcpServers?: string[] | undefined;
680
+ lspServers?: string[] | undefined;
681
+ } | undefined;
682
+ }[];
683
+ errors: {
684
+ pluginId: string;
685
+ type: "installation" | "runtime" | "config";
686
+ message: string;
687
+ timestamp: string;
688
+ details?: string | undefined;
689
+ }[];
690
+ loading: boolean;
691
+ error: string | null;
692
+ selectedIndex: number;
693
+ operation: PluginOperation;
694
+ operationPluginId: string | null;
695
+ confirmUninstall: boolean;
696
+ confirmUpdateAll: boolean;
697
+ updateProgress: {
698
+ current: number;
699
+ total: number;
700
+ pluginId: string;
701
+ } | null;
702
+ selectedComponentIndex: number;
703
+ }, action: PayloadAction<{
704
+ operation: "installing" | "uninstalling" | "updating";
705
+ pluginId: string;
706
+ }>) => void;
707
+ /**
708
+ * End the current operation
709
+ */
710
+ endOperation: (state: {
711
+ plugins: {
712
+ id: string;
713
+ name: string;
714
+ marketplace: string;
715
+ description: string;
716
+ version: string;
717
+ installCount: number;
718
+ isInstalled: boolean;
719
+ isEnabled: boolean;
720
+ installedAt?: string | undefined;
721
+ lastUpdated?: string | undefined;
722
+ category?: string | undefined;
723
+ tags?: string[] | undefined;
724
+ author?: {
725
+ name: string;
726
+ email?: string | undefined;
727
+ } | undefined;
728
+ homepage?: string | undefined;
729
+ isLocal?: boolean | undefined;
730
+ gitCommitSha?: string | undefined;
731
+ components?: {
732
+ skills?: number | undefined;
733
+ commands?: number | undefined;
734
+ agents?: number | undefined;
735
+ hooks?: boolean | undefined;
736
+ mcpServers?: number | undefined;
737
+ lspServers?: number | undefined;
738
+ } | undefined;
739
+ componentsDetailed?: {
740
+ skills?: {
741
+ name: string;
742
+ description?: string | undefined;
743
+ type: import("../../types/index.js").ComponentType;
744
+ }[] | undefined;
745
+ commands?: {
746
+ name: string;
747
+ description?: string | undefined;
748
+ type: import("../../types/index.js").ComponentType;
749
+ }[] | undefined;
750
+ agents?: {
751
+ name: string;
752
+ description?: string | undefined;
753
+ type: import("../../types/index.js").ComponentType;
754
+ }[] | undefined;
755
+ hooks?: string[] | undefined;
756
+ mcpServers?: string[] | undefined;
757
+ lspServers?: string[] | undefined;
758
+ } | undefined;
759
+ }[];
760
+ errors: {
761
+ pluginId: string;
762
+ type: "installation" | "runtime" | "config";
763
+ message: string;
764
+ timestamp: string;
765
+ details?: string | undefined;
766
+ }[];
767
+ loading: boolean;
768
+ error: string | null;
769
+ selectedIndex: number;
770
+ operation: PluginOperation;
771
+ operationPluginId: string | null;
772
+ confirmUninstall: boolean;
773
+ confirmUpdateAll: boolean;
774
+ updateProgress: {
775
+ current: number;
776
+ total: number;
777
+ pluginId: string;
778
+ } | null;
779
+ selectedComponentIndex: number;
780
+ }) => void;
781
+ /**
782
+ * Show uninstall confirmation dialog
783
+ */
784
+ showConfirmUninstall: (state: {
785
+ plugins: {
786
+ id: string;
787
+ name: string;
788
+ marketplace: string;
789
+ description: string;
790
+ version: string;
791
+ installCount: number;
792
+ isInstalled: boolean;
793
+ isEnabled: boolean;
794
+ installedAt?: string | undefined;
795
+ lastUpdated?: string | undefined;
796
+ category?: string | undefined;
797
+ tags?: string[] | undefined;
798
+ author?: {
799
+ name: string;
800
+ email?: string | undefined;
801
+ } | undefined;
802
+ homepage?: string | undefined;
803
+ isLocal?: boolean | undefined;
804
+ gitCommitSha?: string | undefined;
805
+ components?: {
806
+ skills?: number | undefined;
807
+ commands?: number | undefined;
808
+ agents?: number | undefined;
809
+ hooks?: boolean | undefined;
810
+ mcpServers?: number | undefined;
811
+ lspServers?: number | undefined;
812
+ } | undefined;
813
+ componentsDetailed?: {
814
+ skills?: {
815
+ name: string;
816
+ description?: string | undefined;
817
+ type: import("../../types/index.js").ComponentType;
818
+ }[] | undefined;
819
+ commands?: {
820
+ name: string;
821
+ description?: string | undefined;
822
+ type: import("../../types/index.js").ComponentType;
823
+ }[] | undefined;
824
+ agents?: {
825
+ name: string;
826
+ description?: string | undefined;
827
+ type: import("../../types/index.js").ComponentType;
828
+ }[] | undefined;
829
+ hooks?: string[] | undefined;
830
+ mcpServers?: string[] | undefined;
831
+ lspServers?: string[] | undefined;
832
+ } | undefined;
833
+ }[];
834
+ errors: {
835
+ pluginId: string;
836
+ type: "installation" | "runtime" | "config";
837
+ message: string;
838
+ timestamp: string;
839
+ details?: string | undefined;
840
+ }[];
841
+ loading: boolean;
842
+ error: string | null;
843
+ selectedIndex: number;
844
+ operation: PluginOperation;
845
+ operationPluginId: string | null;
846
+ confirmUninstall: boolean;
847
+ confirmUpdateAll: boolean;
848
+ updateProgress: {
849
+ current: number;
850
+ total: number;
851
+ pluginId: string;
852
+ } | null;
853
+ selectedComponentIndex: number;
854
+ }, action: PayloadAction<string>) => void;
855
+ /**
856
+ * Hide uninstall confirmation dialog
857
+ */
858
+ hideConfirmUninstall: (state: {
859
+ plugins: {
860
+ id: string;
861
+ name: string;
862
+ marketplace: string;
863
+ description: string;
864
+ version: string;
865
+ installCount: number;
866
+ isInstalled: boolean;
867
+ isEnabled: boolean;
868
+ installedAt?: string | undefined;
869
+ lastUpdated?: string | undefined;
870
+ category?: string | undefined;
871
+ tags?: string[] | undefined;
872
+ author?: {
873
+ name: string;
874
+ email?: string | undefined;
875
+ } | undefined;
876
+ homepage?: string | undefined;
877
+ isLocal?: boolean | undefined;
878
+ gitCommitSha?: string | undefined;
879
+ components?: {
880
+ skills?: number | undefined;
881
+ commands?: number | undefined;
882
+ agents?: number | undefined;
883
+ hooks?: boolean | undefined;
884
+ mcpServers?: number | undefined;
885
+ lspServers?: number | undefined;
886
+ } | undefined;
887
+ componentsDetailed?: {
888
+ skills?: {
889
+ name: string;
890
+ description?: string | undefined;
891
+ type: import("../../types/index.js").ComponentType;
892
+ }[] | undefined;
893
+ commands?: {
894
+ name: string;
895
+ description?: string | undefined;
896
+ type: import("../../types/index.js").ComponentType;
897
+ }[] | undefined;
898
+ agents?: {
899
+ name: string;
900
+ description?: string | undefined;
901
+ type: import("../../types/index.js").ComponentType;
902
+ }[] | undefined;
903
+ hooks?: string[] | undefined;
904
+ mcpServers?: string[] | undefined;
905
+ lspServers?: string[] | undefined;
906
+ } | undefined;
907
+ }[];
908
+ errors: {
909
+ pluginId: string;
910
+ type: "installation" | "runtime" | "config";
911
+ message: string;
912
+ timestamp: string;
913
+ details?: string | undefined;
914
+ }[];
915
+ loading: boolean;
916
+ error: string | null;
917
+ selectedIndex: number;
918
+ operation: PluginOperation;
919
+ operationPluginId: string | null;
920
+ confirmUninstall: boolean;
921
+ confirmUpdateAll: boolean;
922
+ updateProgress: {
923
+ current: number;
924
+ total: number;
925
+ pluginId: string;
926
+ } | null;
927
+ selectedComponentIndex: number;
928
+ }) => void;
929
+ /**
930
+ * Show update all confirmation dialog
931
+ */
932
+ showConfirmUpdateAll: (state: {
933
+ plugins: {
934
+ id: string;
935
+ name: string;
936
+ marketplace: string;
937
+ description: string;
938
+ version: string;
939
+ installCount: number;
940
+ isInstalled: boolean;
941
+ isEnabled: boolean;
942
+ installedAt?: string | undefined;
943
+ lastUpdated?: string | undefined;
944
+ category?: string | undefined;
945
+ tags?: string[] | undefined;
946
+ author?: {
947
+ name: string;
948
+ email?: string | undefined;
949
+ } | undefined;
950
+ homepage?: string | undefined;
951
+ isLocal?: boolean | undefined;
952
+ gitCommitSha?: string | undefined;
953
+ components?: {
954
+ skills?: number | undefined;
955
+ commands?: number | undefined;
956
+ agents?: number | undefined;
957
+ hooks?: boolean | undefined;
958
+ mcpServers?: number | undefined;
959
+ lspServers?: number | undefined;
960
+ } | undefined;
961
+ componentsDetailed?: {
962
+ skills?: {
963
+ name: string;
964
+ description?: string | undefined;
965
+ type: import("../../types/index.js").ComponentType;
966
+ }[] | undefined;
967
+ commands?: {
968
+ name: string;
969
+ description?: string | undefined;
970
+ type: import("../../types/index.js").ComponentType;
971
+ }[] | undefined;
972
+ agents?: {
973
+ name: string;
974
+ description?: string | undefined;
975
+ type: import("../../types/index.js").ComponentType;
976
+ }[] | undefined;
977
+ hooks?: string[] | undefined;
978
+ mcpServers?: string[] | undefined;
979
+ lspServers?: string[] | undefined;
980
+ } | undefined;
981
+ }[];
982
+ errors: {
983
+ pluginId: string;
984
+ type: "installation" | "runtime" | "config";
985
+ message: string;
986
+ timestamp: string;
987
+ details?: string | undefined;
988
+ }[];
989
+ loading: boolean;
990
+ error: string | null;
991
+ selectedIndex: number;
992
+ operation: PluginOperation;
993
+ operationPluginId: string | null;
994
+ confirmUninstall: boolean;
995
+ confirmUpdateAll: boolean;
996
+ updateProgress: {
997
+ current: number;
998
+ total: number;
999
+ pluginId: string;
1000
+ } | null;
1001
+ selectedComponentIndex: number;
1002
+ }) => void;
1003
+ /**
1004
+ * Hide update all confirmation dialog
1005
+ */
1006
+ hideConfirmUpdateAll: (state: {
1007
+ plugins: {
1008
+ id: string;
1009
+ name: string;
1010
+ marketplace: string;
1011
+ description: string;
1012
+ version: string;
1013
+ installCount: number;
1014
+ isInstalled: boolean;
1015
+ isEnabled: boolean;
1016
+ installedAt?: string | undefined;
1017
+ lastUpdated?: string | undefined;
1018
+ category?: string | undefined;
1019
+ tags?: string[] | undefined;
1020
+ author?: {
1021
+ name: string;
1022
+ email?: string | undefined;
1023
+ } | undefined;
1024
+ homepage?: string | undefined;
1025
+ isLocal?: boolean | undefined;
1026
+ gitCommitSha?: string | undefined;
1027
+ components?: {
1028
+ skills?: number | undefined;
1029
+ commands?: number | undefined;
1030
+ agents?: number | undefined;
1031
+ hooks?: boolean | undefined;
1032
+ mcpServers?: number | undefined;
1033
+ lspServers?: number | undefined;
1034
+ } | undefined;
1035
+ componentsDetailed?: {
1036
+ skills?: {
1037
+ name: string;
1038
+ description?: string | undefined;
1039
+ type: import("../../types/index.js").ComponentType;
1040
+ }[] | undefined;
1041
+ commands?: {
1042
+ name: string;
1043
+ description?: string | undefined;
1044
+ type: import("../../types/index.js").ComponentType;
1045
+ }[] | undefined;
1046
+ agents?: {
1047
+ name: string;
1048
+ description?: string | undefined;
1049
+ type: import("../../types/index.js").ComponentType;
1050
+ }[] | undefined;
1051
+ hooks?: string[] | undefined;
1052
+ mcpServers?: string[] | undefined;
1053
+ lspServers?: string[] | undefined;
1054
+ } | undefined;
1055
+ }[];
1056
+ errors: {
1057
+ pluginId: string;
1058
+ type: "installation" | "runtime" | "config";
1059
+ message: string;
1060
+ timestamp: string;
1061
+ details?: string | undefined;
1062
+ }[];
1063
+ loading: boolean;
1064
+ error: string | null;
1065
+ selectedIndex: number;
1066
+ operation: PluginOperation;
1067
+ operationPluginId: string | null;
1068
+ confirmUninstall: boolean;
1069
+ confirmUpdateAll: boolean;
1070
+ updateProgress: {
1071
+ current: number;
1072
+ total: number;
1073
+ pluginId: string;
1074
+ } | null;
1075
+ selectedComponentIndex: number;
1076
+ }) => void;
1077
+ /**
1078
+ * Set bulk update progress
1079
+ */
1080
+ setUpdateProgress: (state: {
1081
+ plugins: {
1082
+ id: string;
1083
+ name: string;
1084
+ marketplace: string;
1085
+ description: string;
1086
+ version: string;
1087
+ installCount: number;
1088
+ isInstalled: boolean;
1089
+ isEnabled: boolean;
1090
+ installedAt?: string | undefined;
1091
+ lastUpdated?: string | undefined;
1092
+ category?: string | undefined;
1093
+ tags?: string[] | undefined;
1094
+ author?: {
1095
+ name: string;
1096
+ email?: string | undefined;
1097
+ } | undefined;
1098
+ homepage?: string | undefined;
1099
+ isLocal?: boolean | undefined;
1100
+ gitCommitSha?: string | undefined;
1101
+ components?: {
1102
+ skills?: number | undefined;
1103
+ commands?: number | undefined;
1104
+ agents?: number | undefined;
1105
+ hooks?: boolean | undefined;
1106
+ mcpServers?: number | undefined;
1107
+ lspServers?: number | undefined;
1108
+ } | undefined;
1109
+ componentsDetailed?: {
1110
+ skills?: {
1111
+ name: string;
1112
+ description?: string | undefined;
1113
+ type: import("../../types/index.js").ComponentType;
1114
+ }[] | undefined;
1115
+ commands?: {
1116
+ name: string;
1117
+ description?: string | undefined;
1118
+ type: import("../../types/index.js").ComponentType;
1119
+ }[] | undefined;
1120
+ agents?: {
1121
+ name: string;
1122
+ description?: string | undefined;
1123
+ type: import("../../types/index.js").ComponentType;
1124
+ }[] | undefined;
1125
+ hooks?: string[] | undefined;
1126
+ mcpServers?: string[] | undefined;
1127
+ lspServers?: string[] | undefined;
1128
+ } | undefined;
1129
+ }[];
1130
+ errors: {
1131
+ pluginId: string;
1132
+ type: "installation" | "runtime" | "config";
1133
+ message: string;
1134
+ timestamp: string;
1135
+ details?: string | undefined;
1136
+ }[];
1137
+ loading: boolean;
1138
+ error: string | null;
1139
+ selectedIndex: number;
1140
+ operation: PluginOperation;
1141
+ operationPluginId: string | null;
1142
+ confirmUninstall: boolean;
1143
+ confirmUpdateAll: boolean;
1144
+ updateProgress: {
1145
+ current: number;
1146
+ total: number;
1147
+ pluginId: string;
1148
+ } | null;
1149
+ selectedComponentIndex: number;
1150
+ }, action: PayloadAction<{
1151
+ current: number;
1152
+ total: number;
1153
+ pluginId: string;
1154
+ }>) => void;
1155
+ /**
1156
+ * Clear bulk update progress
1157
+ */
1158
+ clearUpdateProgress: (state: {
1159
+ plugins: {
1160
+ id: string;
1161
+ name: string;
1162
+ marketplace: string;
1163
+ description: string;
1164
+ version: string;
1165
+ installCount: number;
1166
+ isInstalled: boolean;
1167
+ isEnabled: boolean;
1168
+ installedAt?: string | undefined;
1169
+ lastUpdated?: string | undefined;
1170
+ category?: string | undefined;
1171
+ tags?: string[] | undefined;
1172
+ author?: {
1173
+ name: string;
1174
+ email?: string | undefined;
1175
+ } | undefined;
1176
+ homepage?: string | undefined;
1177
+ isLocal?: boolean | undefined;
1178
+ gitCommitSha?: string | undefined;
1179
+ components?: {
1180
+ skills?: number | undefined;
1181
+ commands?: number | undefined;
1182
+ agents?: number | undefined;
1183
+ hooks?: boolean | undefined;
1184
+ mcpServers?: number | undefined;
1185
+ lspServers?: number | undefined;
1186
+ } | undefined;
1187
+ componentsDetailed?: {
1188
+ skills?: {
1189
+ name: string;
1190
+ description?: string | undefined;
1191
+ type: import("../../types/index.js").ComponentType;
1192
+ }[] | undefined;
1193
+ commands?: {
1194
+ name: string;
1195
+ description?: string | undefined;
1196
+ type: import("../../types/index.js").ComponentType;
1197
+ }[] | undefined;
1198
+ agents?: {
1199
+ name: string;
1200
+ description?: string | undefined;
1201
+ type: import("../../types/index.js").ComponentType;
1202
+ }[] | undefined;
1203
+ hooks?: string[] | undefined;
1204
+ mcpServers?: string[] | undefined;
1205
+ lspServers?: string[] | undefined;
1206
+ } | undefined;
1207
+ }[];
1208
+ errors: {
1209
+ pluginId: string;
1210
+ type: "installation" | "runtime" | "config";
1211
+ message: string;
1212
+ timestamp: string;
1213
+ details?: string | undefined;
1214
+ }[];
1215
+ loading: boolean;
1216
+ error: string | null;
1217
+ selectedIndex: number;
1218
+ operation: PluginOperation;
1219
+ operationPluginId: string | null;
1220
+ confirmUninstall: boolean;
1221
+ confirmUpdateAll: boolean;
1222
+ updateProgress: {
1223
+ current: number;
1224
+ total: number;
1225
+ pluginId: string;
1226
+ } | null;
1227
+ selectedComponentIndex: number;
1228
+ }) => void;
1229
+ /**
1230
+ * Set selected component index for component focus mode
1231
+ */
1232
+ setComponentIndex: (state: {
1233
+ plugins: {
1234
+ id: string;
1235
+ name: string;
1236
+ marketplace: string;
1237
+ description: string;
1238
+ version: string;
1239
+ installCount: number;
1240
+ isInstalled: boolean;
1241
+ isEnabled: boolean;
1242
+ installedAt?: string | undefined;
1243
+ lastUpdated?: string | undefined;
1244
+ category?: string | undefined;
1245
+ tags?: string[] | undefined;
1246
+ author?: {
1247
+ name: string;
1248
+ email?: string | undefined;
1249
+ } | undefined;
1250
+ homepage?: string | undefined;
1251
+ isLocal?: boolean | undefined;
1252
+ gitCommitSha?: string | undefined;
1253
+ components?: {
1254
+ skills?: number | undefined;
1255
+ commands?: number | undefined;
1256
+ agents?: number | undefined;
1257
+ hooks?: boolean | undefined;
1258
+ mcpServers?: number | undefined;
1259
+ lspServers?: number | undefined;
1260
+ } | undefined;
1261
+ componentsDetailed?: {
1262
+ skills?: {
1263
+ name: string;
1264
+ description?: string | undefined;
1265
+ type: import("../../types/index.js").ComponentType;
1266
+ }[] | undefined;
1267
+ commands?: {
1268
+ name: string;
1269
+ description?: string | undefined;
1270
+ type: import("../../types/index.js").ComponentType;
1271
+ }[] | undefined;
1272
+ agents?: {
1273
+ name: string;
1274
+ description?: string | undefined;
1275
+ type: import("../../types/index.js").ComponentType;
1276
+ }[] | undefined;
1277
+ hooks?: string[] | undefined;
1278
+ mcpServers?: string[] | undefined;
1279
+ lspServers?: string[] | undefined;
1280
+ } | undefined;
1281
+ }[];
1282
+ errors: {
1283
+ pluginId: string;
1284
+ type: "installation" | "runtime" | "config";
1285
+ message: string;
1286
+ timestamp: string;
1287
+ details?: string | undefined;
1288
+ }[];
1289
+ loading: boolean;
1290
+ error: string | null;
1291
+ selectedIndex: number;
1292
+ operation: PluginOperation;
1293
+ operationPluginId: string | null;
1294
+ confirmUninstall: boolean;
1295
+ confirmUpdateAll: boolean;
1296
+ updateProgress: {
1297
+ current: number;
1298
+ total: number;
1299
+ pluginId: string;
1300
+ } | null;
1301
+ selectedComponentIndex: number;
1302
+ }, action: PayloadAction<number>) => void;
1303
+ /**
1304
+ * Move component selection up or down
1305
+ */
1306
+ moveComponentSelection: (state: {
1307
+ plugins: {
1308
+ id: string;
1309
+ name: string;
1310
+ marketplace: string;
1311
+ description: string;
1312
+ version: string;
1313
+ installCount: number;
1314
+ isInstalled: boolean;
1315
+ isEnabled: boolean;
1316
+ installedAt?: string | undefined;
1317
+ lastUpdated?: string | undefined;
1318
+ category?: string | undefined;
1319
+ tags?: string[] | undefined;
1320
+ author?: {
1321
+ name: string;
1322
+ email?: string | undefined;
1323
+ } | undefined;
1324
+ homepage?: string | undefined;
1325
+ isLocal?: boolean | undefined;
1326
+ gitCommitSha?: string | undefined;
1327
+ components?: {
1328
+ skills?: number | undefined;
1329
+ commands?: number | undefined;
1330
+ agents?: number | undefined;
1331
+ hooks?: boolean | undefined;
1332
+ mcpServers?: number | undefined;
1333
+ lspServers?: number | undefined;
1334
+ } | undefined;
1335
+ componentsDetailed?: {
1336
+ skills?: {
1337
+ name: string;
1338
+ description?: string | undefined;
1339
+ type: import("../../types/index.js").ComponentType;
1340
+ }[] | undefined;
1341
+ commands?: {
1342
+ name: string;
1343
+ description?: string | undefined;
1344
+ type: import("../../types/index.js").ComponentType;
1345
+ }[] | undefined;
1346
+ agents?: {
1347
+ name: string;
1348
+ description?: string | undefined;
1349
+ type: import("../../types/index.js").ComponentType;
1350
+ }[] | undefined;
1351
+ hooks?: string[] | undefined;
1352
+ mcpServers?: string[] | undefined;
1353
+ lspServers?: string[] | undefined;
1354
+ } | undefined;
1355
+ }[];
1356
+ errors: {
1357
+ pluginId: string;
1358
+ type: "installation" | "runtime" | "config";
1359
+ message: string;
1360
+ timestamp: string;
1361
+ details?: string | undefined;
1362
+ }[];
1363
+ loading: boolean;
1364
+ error: string | null;
1365
+ selectedIndex: number;
1366
+ operation: PluginOperation;
1367
+ operationPluginId: string | null;
1368
+ confirmUninstall: boolean;
1369
+ confirmUpdateAll: boolean;
1370
+ updateProgress: {
1371
+ current: number;
1372
+ total: number;
1373
+ pluginId: string;
1374
+ } | null;
1375
+ selectedComponentIndex: number;
1376
+ }, action: PayloadAction<{
1377
+ direction: "up" | "down";
1378
+ maxIndex: number;
1379
+ }>) => void;
1380
+ /**
1381
+ * Reset component index when entering component mode
1382
+ */
1383
+ enterComponentMode: (state: {
1384
+ plugins: {
1385
+ id: string;
1386
+ name: string;
1387
+ marketplace: string;
1388
+ description: string;
1389
+ version: string;
1390
+ installCount: number;
1391
+ isInstalled: boolean;
1392
+ isEnabled: boolean;
1393
+ installedAt?: string | undefined;
1394
+ lastUpdated?: string | undefined;
1395
+ category?: string | undefined;
1396
+ tags?: string[] | undefined;
1397
+ author?: {
1398
+ name: string;
1399
+ email?: string | undefined;
1400
+ } | undefined;
1401
+ homepage?: string | undefined;
1402
+ isLocal?: boolean | undefined;
1403
+ gitCommitSha?: string | undefined;
1404
+ components?: {
1405
+ skills?: number | undefined;
1406
+ commands?: number | undefined;
1407
+ agents?: number | undefined;
1408
+ hooks?: boolean | undefined;
1409
+ mcpServers?: number | undefined;
1410
+ lspServers?: number | undefined;
1411
+ } | undefined;
1412
+ componentsDetailed?: {
1413
+ skills?: {
1414
+ name: string;
1415
+ description?: string | undefined;
1416
+ type: import("../../types/index.js").ComponentType;
1417
+ }[] | undefined;
1418
+ commands?: {
1419
+ name: string;
1420
+ description?: string | undefined;
1421
+ type: import("../../types/index.js").ComponentType;
1422
+ }[] | undefined;
1423
+ agents?: {
1424
+ name: string;
1425
+ description?: string | undefined;
1426
+ type: import("../../types/index.js").ComponentType;
1427
+ }[] | undefined;
1428
+ hooks?: string[] | undefined;
1429
+ mcpServers?: string[] | undefined;
1430
+ lspServers?: string[] | undefined;
1431
+ } | undefined;
1432
+ }[];
1433
+ errors: {
1434
+ pluginId: string;
1435
+ type: "installation" | "runtime" | "config";
1436
+ message: string;
1437
+ timestamp: string;
1438
+ details?: string | undefined;
1439
+ }[];
1440
+ loading: boolean;
1441
+ error: string | null;
1442
+ selectedIndex: number;
1443
+ operation: PluginOperation;
1444
+ operationPluginId: string | null;
1445
+ confirmUninstall: boolean;
1446
+ confirmUpdateAll: boolean;
1447
+ updateProgress: {
1448
+ current: number;
1449
+ total: number;
1450
+ pluginId: string;
1451
+ } | null;
1452
+ selectedComponentIndex: number;
1453
+ }) => void;
1454
+ /**
1455
+ * Reset component index when exiting component mode
1456
+ */
1457
+ exitComponentMode: (state: {
1458
+ plugins: {
1459
+ id: string;
1460
+ name: string;
1461
+ marketplace: string;
1462
+ description: string;
1463
+ version: string;
1464
+ installCount: number;
1465
+ isInstalled: boolean;
1466
+ isEnabled: boolean;
1467
+ installedAt?: string | undefined;
1468
+ lastUpdated?: string | undefined;
1469
+ category?: string | undefined;
1470
+ tags?: string[] | undefined;
1471
+ author?: {
1472
+ name: string;
1473
+ email?: string | undefined;
1474
+ } | undefined;
1475
+ homepage?: string | undefined;
1476
+ isLocal?: boolean | undefined;
1477
+ gitCommitSha?: string | undefined;
1478
+ components?: {
1479
+ skills?: number | undefined;
1480
+ commands?: number | undefined;
1481
+ agents?: number | undefined;
1482
+ hooks?: boolean | undefined;
1483
+ mcpServers?: number | undefined;
1484
+ lspServers?: number | undefined;
1485
+ } | undefined;
1486
+ componentsDetailed?: {
1487
+ skills?: {
1488
+ name: string;
1489
+ description?: string | undefined;
1490
+ type: import("../../types/index.js").ComponentType;
1491
+ }[] | undefined;
1492
+ commands?: {
1493
+ name: string;
1494
+ description?: string | undefined;
1495
+ type: import("../../types/index.js").ComponentType;
1496
+ }[] | undefined;
1497
+ agents?: {
1498
+ name: string;
1499
+ description?: string | undefined;
1500
+ type: import("../../types/index.js").ComponentType;
1501
+ }[] | undefined;
1502
+ hooks?: string[] | undefined;
1503
+ mcpServers?: string[] | undefined;
1504
+ lspServers?: string[] | undefined;
1505
+ } | undefined;
1506
+ }[];
1507
+ errors: {
1508
+ pluginId: string;
1509
+ type: "installation" | "runtime" | "config";
1510
+ message: string;
1511
+ timestamp: string;
1512
+ details?: string | undefined;
1513
+ }[];
1514
+ loading: boolean;
1515
+ error: string | null;
1516
+ selectedIndex: number;
1517
+ operation: PluginOperation;
1518
+ operationPluginId: string | null;
1519
+ confirmUninstall: boolean;
1520
+ confirmUpdateAll: boolean;
1521
+ updateProgress: {
1522
+ current: number;
1523
+ total: number;
1524
+ pluginId: string;
1525
+ } | null;
1526
+ selectedComponentIndex: number;
1527
+ }) => void;
1528
+ }, "plugins", "plugins", import("@reduxjs/toolkit").SliceSelectors<PluginState>>;
1529
+ export declare const setPlugins: import("@reduxjs/toolkit").ActionCreatorWithPayload<Plugin[], "plugins/setPlugins">, setErrors: import("@reduxjs/toolkit").ActionCreatorWithPayload<PluginError[], "plugins/setErrors">, setLoading: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "plugins/setLoading">, setError: import("@reduxjs/toolkit").ActionCreatorWithPayload<string | null, "plugins/setError">, setSelectedIndex: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "plugins/setSelectedIndex">, moveSelection: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
1530
+ direction: "up" | "down";
1531
+ maxIndex: number;
1532
+ }, "plugins/moveSelection">, togglePluginEnabled: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "plugins/togglePluginEnabled">, updatePlugin: import("@reduxjs/toolkit").ActionCreatorWithPayload<Plugin, "plugins/updatePlugin">, startOperation: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
1533
+ operation: "installing" | "uninstalling" | "updating";
1534
+ pluginId: string;
1535
+ }, "plugins/startOperation">, endOperation: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"plugins/endOperation">, showConfirmUninstall: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "plugins/showConfirmUninstall">, hideConfirmUninstall: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"plugins/hideConfirmUninstall">, showConfirmUpdateAll: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"plugins/showConfirmUpdateAll">, hideConfirmUpdateAll: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"plugins/hideConfirmUpdateAll">, setUpdateProgress: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
1536
+ current: number;
1537
+ total: number;
1538
+ pluginId: string;
1539
+ }, "plugins/setUpdateProgress">, clearUpdateProgress: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"plugins/clearUpdateProgress">, setComponentIndex: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "plugins/setComponentIndex">, moveComponentSelection: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
1540
+ direction: "up" | "down";
1541
+ maxIndex: number;
1542
+ }, "plugins/moveComponentSelection">, enterComponentMode: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"plugins/enterComponentMode">, exitComponentMode: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"plugins/exitComponentMode">;
1543
+ declare const _default: import("@reduxjs/toolkit").Reducer<PluginState>;
1544
+ export default _default;