claudeup 0.6.2 → 1.0.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 (209) hide show
  1. package/bin/claudeup.js +1 -1
  2. package/dist/data/marketplaces.d.ts +2 -0
  3. package/dist/data/marketplaces.d.ts.map +1 -1
  4. package/dist/data/marketplaces.js +51 -8
  5. package/dist/data/marketplaces.js.map +1 -1
  6. package/dist/data/mcp-servers.d.ts.map +1 -1
  7. package/dist/data/mcp-servers.js +82 -0
  8. package/dist/data/mcp-servers.js.map +1 -1
  9. package/dist/index.js +8 -5
  10. package/dist/index.js.map +1 -1
  11. package/dist/main.d.ts +3 -0
  12. package/dist/main.d.ts.map +1 -0
  13. package/dist/main.js +79 -0
  14. package/dist/main.js.map +1 -0
  15. package/dist/services/claude-settings.d.ts +8 -1
  16. package/dist/services/claude-settings.d.ts.map +1 -1
  17. package/dist/services/claude-settings.js +79 -0
  18. package/dist/services/claude-settings.js.map +1 -1
  19. package/dist/services/local-marketplace.d.ts +76 -0
  20. package/dist/services/local-marketplace.d.ts.map +1 -0
  21. package/dist/services/local-marketplace.js +340 -0
  22. package/dist/services/local-marketplace.js.map +1 -0
  23. package/dist/services/plugin-manager.d.ts +39 -2
  24. package/dist/services/plugin-manager.d.ts.map +1 -1
  25. package/dist/services/plugin-manager.js +259 -9
  26. package/dist/services/plugin-manager.js.map +1 -1
  27. package/dist/types/index.d.ts +6 -1
  28. package/dist/types/index.d.ts.map +1 -1
  29. package/dist/ui/InkApp.d.ts +5 -0
  30. package/dist/ui/InkApp.d.ts.map +1 -0
  31. package/dist/ui/InkApp.js +175 -0
  32. package/dist/ui/InkApp.js.map +1 -0
  33. package/dist/ui/components/CategoryHeader.d.ts +16 -0
  34. package/dist/ui/components/CategoryHeader.d.ts.map +1 -0
  35. package/dist/ui/components/CategoryHeader.js +11 -0
  36. package/dist/ui/components/CategoryHeader.js.map +1 -0
  37. package/dist/ui/components/ScrollableList.d.ts +16 -0
  38. package/dist/ui/components/ScrollableList.d.ts.map +1 -0
  39. package/dist/ui/components/ScrollableList.js +35 -0
  40. package/dist/ui/components/ScrollableList.js.map +1 -0
  41. package/dist/ui/components/SearchInput.d.ts +18 -0
  42. package/dist/ui/components/SearchInput.d.ts.map +1 -0
  43. package/dist/ui/components/SearchInput.js +30 -0
  44. package/dist/ui/components/SearchInput.js.map +1 -0
  45. package/dist/ui/components/TabBar.d.ts +8 -0
  46. package/dist/ui/components/TabBar.d.ts.map +1 -0
  47. package/dist/ui/components/TabBar.js +18 -0
  48. package/dist/ui/components/TabBar.js.map +1 -0
  49. package/dist/ui/components/layout/Footer.d.ts +14 -0
  50. package/dist/ui/components/layout/Footer.d.ts.map +1 -0
  51. package/dist/ui/components/layout/Footer.js +23 -0
  52. package/dist/ui/components/layout/Footer.js.map +1 -0
  53. package/dist/ui/components/layout/Header.d.ts +4 -0
  54. package/dist/ui/components/layout/Header.d.ts.map +1 -0
  55. package/dist/ui/components/layout/Header.js +25 -0
  56. package/dist/ui/components/layout/Header.js.map +1 -0
  57. package/dist/ui/components/layout/Panel.d.ts +22 -0
  58. package/dist/ui/components/layout/Panel.d.ts.map +1 -0
  59. package/dist/ui/components/layout/Panel.js +8 -0
  60. package/dist/ui/components/layout/Panel.js.map +1 -0
  61. package/dist/ui/components/layout/ProgressBar.d.ts +12 -0
  62. package/dist/ui/components/layout/ProgressBar.d.ts.map +1 -0
  63. package/dist/ui/components/layout/ProgressBar.js +16 -0
  64. package/dist/ui/components/layout/ProgressBar.js.map +1 -0
  65. package/dist/ui/components/layout/ScopeTabs.d.ts +12 -0
  66. package/dist/ui/components/layout/ScopeTabs.d.ts.map +1 -0
  67. package/dist/ui/components/layout/ScopeTabs.js +8 -0
  68. package/dist/ui/components/layout/ScopeTabs.js.map +1 -0
  69. package/dist/ui/components/layout/ScreenLayout.d.ts +30 -0
  70. package/dist/ui/components/layout/ScreenLayout.d.ts.map +1 -0
  71. package/dist/ui/components/layout/ScreenLayout.js +23 -0
  72. package/dist/ui/components/layout/ScreenLayout.js.map +1 -0
  73. package/dist/ui/components/layout/index.d.ts +7 -0
  74. package/dist/ui/components/layout/index.d.ts.map +1 -0
  75. package/dist/ui/components/layout/index.js +7 -0
  76. package/dist/ui/components/layout/index.js.map +1 -0
  77. package/dist/ui/components/modals/ConfirmModal.d.ts +14 -0
  78. package/dist/ui/components/modals/ConfirmModal.d.ts.map +1 -0
  79. package/dist/ui/components/modals/ConfirmModal.js +15 -0
  80. package/dist/ui/components/modals/ConfirmModal.js.map +1 -0
  81. package/dist/ui/components/modals/InputModal.d.ts +16 -0
  82. package/dist/ui/components/modals/InputModal.d.ts.map +1 -0
  83. package/dist/ui/components/modals/InputModal.js +23 -0
  84. package/dist/ui/components/modals/InputModal.js.map +1 -0
  85. package/dist/ui/components/modals/LoadingModal.d.ts +8 -0
  86. package/dist/ui/components/modals/LoadingModal.d.ts.map +1 -0
  87. package/dist/ui/components/modals/LoadingModal.js +8 -0
  88. package/dist/ui/components/modals/LoadingModal.js.map +1 -0
  89. package/dist/ui/components/modals/MessageModal.d.ts +14 -0
  90. package/dist/ui/components/modals/MessageModal.d.ts.map +1 -0
  91. package/dist/ui/components/modals/MessageModal.js +17 -0
  92. package/dist/ui/components/modals/MessageModal.js.map +1 -0
  93. package/dist/ui/components/modals/ModalContainer.d.ts +7 -0
  94. package/dist/ui/components/modals/ModalContainer.d.ts.map +1 -0
  95. package/dist/ui/components/modals/ModalContainer.js +38 -0
  96. package/dist/ui/components/modals/ModalContainer.js.map +1 -0
  97. package/dist/ui/components/modals/SelectModal.d.ts +17 -0
  98. package/dist/ui/components/modals/SelectModal.d.ts.map +1 -0
  99. package/dist/ui/components/modals/SelectModal.js +33 -0
  100. package/dist/ui/components/modals/SelectModal.js.map +1 -0
  101. package/dist/ui/components/modals/index.d.ts +7 -0
  102. package/dist/ui/components/modals/index.d.ts.map +1 -0
  103. package/dist/ui/components/modals/index.js +7 -0
  104. package/dist/ui/components/modals/index.js.map +1 -0
  105. package/dist/ui/hooks/index.d.ts +3 -0
  106. package/dist/ui/hooks/index.d.ts.map +1 -0
  107. package/dist/ui/hooks/index.js +3 -0
  108. package/dist/ui/hooks/index.js.map +1 -0
  109. package/dist/ui/hooks/useAsyncData.d.ts +40 -0
  110. package/dist/ui/hooks/useAsyncData.d.ts.map +1 -0
  111. package/dist/ui/hooks/useAsyncData.js +78 -0
  112. package/dist/ui/hooks/useAsyncData.js.map +1 -0
  113. package/dist/ui/hooks/useKeyboardNavigation.d.ts +27 -0
  114. package/dist/ui/hooks/useKeyboardNavigation.d.ts.map +1 -0
  115. package/dist/ui/hooks/useKeyboardNavigation.js +82 -0
  116. package/dist/ui/hooks/useKeyboardNavigation.js.map +1 -0
  117. package/dist/ui/screens/CliToolsScreen.d.ts +4 -0
  118. package/dist/ui/screens/CliToolsScreen.d.ts.map +1 -0
  119. package/dist/ui/screens/CliToolsScreen.js +268 -0
  120. package/dist/ui/screens/CliToolsScreen.js.map +1 -0
  121. package/dist/ui/screens/EnvVarsScreen.d.ts +4 -0
  122. package/dist/ui/screens/EnvVarsScreen.d.ts.map +1 -0
  123. package/dist/ui/screens/EnvVarsScreen.js +145 -0
  124. package/dist/ui/screens/EnvVarsScreen.js.map +1 -0
  125. package/dist/ui/screens/McpRegistryScreen.d.ts +4 -0
  126. package/dist/ui/screens/McpRegistryScreen.d.ts.map +1 -0
  127. package/dist/ui/screens/McpRegistryScreen.js +226 -0
  128. package/dist/ui/screens/McpRegistryScreen.js.map +1 -0
  129. package/dist/ui/screens/McpScreen.d.ts +4 -0
  130. package/dist/ui/screens/McpScreen.d.ts.map +1 -0
  131. package/dist/ui/screens/McpScreen.js +222 -0
  132. package/dist/ui/screens/McpScreen.js.map +1 -0
  133. package/dist/ui/screens/ModelSelectorScreen.d.ts +4 -0
  134. package/dist/ui/screens/ModelSelectorScreen.d.ts.map +1 -0
  135. package/dist/ui/screens/ModelSelectorScreen.js +143 -0
  136. package/dist/ui/screens/ModelSelectorScreen.js.map +1 -0
  137. package/dist/ui/screens/PluginsScreen.d.ts +4 -0
  138. package/dist/ui/screens/PluginsScreen.d.ts.map +1 -0
  139. package/dist/ui/screens/PluginsScreen.js +747 -0
  140. package/dist/ui/screens/PluginsScreen.js.map +1 -0
  141. package/dist/ui/screens/StatusLineScreen.d.ts +4 -0
  142. package/dist/ui/screens/StatusLineScreen.d.ts.map +1 -0
  143. package/dist/ui/screens/StatusLineScreen.js +197 -0
  144. package/dist/ui/screens/StatusLineScreen.js.map +1 -0
  145. package/dist/ui/screens/index.d.ts +8 -0
  146. package/dist/ui/screens/index.d.ts.map +1 -0
  147. package/dist/ui/screens/index.js +8 -0
  148. package/dist/ui/screens/index.js.map +1 -0
  149. package/dist/ui/state/AppContext.d.ts +40 -0
  150. package/dist/ui/state/AppContext.d.ts.map +1 -0
  151. package/dist/ui/state/AppContext.js +162 -0
  152. package/dist/ui/state/AppContext.js.map +1 -0
  153. package/dist/ui/state/DimensionsContext.d.ts +25 -0
  154. package/dist/ui/state/DimensionsContext.d.ts.map +1 -0
  155. package/dist/ui/state/DimensionsContext.js +68 -0
  156. package/dist/ui/state/DimensionsContext.js.map +1 -0
  157. package/dist/ui/state/reducer.d.ts +4 -0
  158. package/dist/ui/state/reducer.d.ts.map +1 -0
  159. package/dist/ui/state/reducer.js +412 -0
  160. package/dist/ui/state/reducer.js.map +1 -0
  161. package/dist/ui/state/types.d.ts +266 -0
  162. package/dist/ui/state/types.d.ts.map +1 -0
  163. package/dist/ui/state/types.js +2 -0
  164. package/dist/ui/state/types.js.map +1 -0
  165. package/dist/utils/fuzzy-search.d.ts +33 -0
  166. package/dist/utils/fuzzy-search.d.ts.map +1 -0
  167. package/dist/utils/fuzzy-search.js +102 -0
  168. package/dist/utils/fuzzy-search.js.map +1 -0
  169. package/dist/utils/string-utils.d.ts +24 -0
  170. package/dist/utils/string-utils.d.ts.map +1 -0
  171. package/dist/utils/string-utils.js +62 -0
  172. package/dist/utils/string-utils.js.map +1 -0
  173. package/package.json +24 -8
  174. package/dist/ui/app.d.ts +0 -38
  175. package/dist/ui/app.d.ts.map +0 -1
  176. package/dist/ui/app.js +0 -590
  177. package/dist/ui/app.js.map +0 -1
  178. package/dist/ui/screens/cli-tools.d.ts +0 -4
  179. package/dist/ui/screens/cli-tools.d.ts.map +0 -1
  180. package/dist/ui/screens/cli-tools.js +0 -369
  181. package/dist/ui/screens/cli-tools.js.map +0 -1
  182. package/dist/ui/screens/env-vars.d.ts +0 -3
  183. package/dist/ui/screens/env-vars.d.ts.map +0 -1
  184. package/dist/ui/screens/env-vars.js +0 -119
  185. package/dist/ui/screens/env-vars.js.map +0 -1
  186. package/dist/ui/screens/main-menu.d.ts +0 -3
  187. package/dist/ui/screens/main-menu.d.ts.map +0 -1
  188. package/dist/ui/screens/main-menu.js +0 -110
  189. package/dist/ui/screens/main-menu.js.map +0 -1
  190. package/dist/ui/screens/marketplace.d.ts +0 -3
  191. package/dist/ui/screens/marketplace.d.ts.map +0 -1
  192. package/dist/ui/screens/marketplace.js +0 -132
  193. package/dist/ui/screens/marketplace.js.map +0 -1
  194. package/dist/ui/screens/mcp-registry.d.ts +0 -10
  195. package/dist/ui/screens/mcp-registry.d.ts.map +0 -1
  196. package/dist/ui/screens/mcp-registry.js +0 -310
  197. package/dist/ui/screens/mcp-registry.js.map +0 -1
  198. package/dist/ui/screens/mcp-setup.d.ts +0 -4
  199. package/dist/ui/screens/mcp-setup.d.ts.map +0 -1
  200. package/dist/ui/screens/mcp-setup.js +0 -492
  201. package/dist/ui/screens/mcp-setup.js.map +0 -1
  202. package/dist/ui/screens/plugins.d.ts +0 -3
  203. package/dist/ui/screens/plugins.d.ts.map +0 -1
  204. package/dist/ui/screens/plugins.js +0 -443
  205. package/dist/ui/screens/plugins.js.map +0 -1
  206. package/dist/ui/screens/statusline.d.ts +0 -5
  207. package/dist/ui/screens/statusline.d.ts.map +0 -1
  208. package/dist/ui/screens/statusline.js +0 -235
  209. package/dist/ui/screens/statusline.js.map +0 -1
@@ -1,443 +0,0 @@
1
- import blessed from 'neo-blessed';
2
- import { createHeader, createFooter, showLoading, navigateTo } from '../app.js';
3
- import { defaultMarketplaces } from '../../data/marketplaces.js';
4
- import { addMarketplace, removeMarketplace, getConfiguredMarketplaces, enablePlugin, addGlobalMarketplace, removeGlobalMarketplace, getGlobalConfiguredMarketplaces, enableGlobalPlugin, saveGlobalInstalledPluginVersion, removeGlobalInstalledPluginVersion, } from '../../services/claude-settings.js';
5
- import { saveInstalledPluginVersion, removeInstalledPluginVersion, clearMarketplaceCache, getAvailablePlugins, getGlobalAvailablePlugins, } from '../../services/plugin-manager.js';
6
- // Track current scope - persists across screen refreshes
7
- let currentScope = 'project';
8
- // Track current selection - persists across screen refreshes
9
- let currentSelection = 0;
10
- export async function createPluginsScreen(state) {
11
- createHeader(state, 'Plugins');
12
- const isGlobal = currentScope === 'global';
13
- // Fetch marketplaces based on scope
14
- const configuredMarketplaces = isGlobal
15
- ? await getGlobalConfiguredMarketplaces()
16
- : await getConfiguredMarketplaces(state.projectPath);
17
- // Fetch all available plugins based on scope
18
- let allPlugins = [];
19
- try {
20
- allPlugins = isGlobal
21
- ? await getGlobalAvailablePlugins()
22
- : await getAvailablePlugins(state.projectPath);
23
- }
24
- catch {
25
- // Continue with empty plugins
26
- }
27
- // Group plugins by marketplace
28
- const pluginsByMarketplace = new Map();
29
- for (const plugin of allPlugins) {
30
- const existing = pluginsByMarketplace.get(plugin.marketplace) || [];
31
- existing.push(plugin);
32
- pluginsByMarketplace.set(plugin.marketplace, existing);
33
- }
34
- // Build unified list
35
- const listItems = [];
36
- for (const marketplace of defaultMarketplaces) {
37
- const isEnabled = configuredMarketplaces[marketplace.name] !== undefined;
38
- const plugins = pluginsByMarketplace.get(marketplace.name) || [];
39
- // Marketplace header
40
- const enabledBadge = isEnabled ? '{green-fg}✓{/green-fg}' : '{gray-fg}○{/gray-fg}';
41
- const officialBadge = marketplace.official ? ' {cyan-fg}[Official]{/cyan-fg}' : '';
42
- const pluginCount = plugins.length > 0 ? ` {gray-fg}(${plugins.length}){/gray-fg}` : '';
43
- listItems.push({
44
- label: `${enabledBadge} {bold}${marketplace.displayName}{/bold}${officialBadge}${pluginCount}`,
45
- type: 'marketplace',
46
- marketplace,
47
- marketplaceEnabled: isEnabled,
48
- });
49
- // Plugins under this marketplace (if enabled)
50
- if (isEnabled && plugins.length > 0) {
51
- for (const plugin of plugins) {
52
- let status = '{gray-fg}○{/gray-fg}';
53
- if (plugin.enabled) {
54
- status = '{green-fg}●{/green-fg}';
55
- }
56
- else if (plugin.installedVersion) {
57
- status = '{yellow-fg}●{/yellow-fg}';
58
- }
59
- let versionDisplay = `{gray-fg}v${plugin.version}{/gray-fg}`;
60
- if (plugin.hasUpdate) {
61
- versionDisplay = `{yellow-fg}v${plugin.installedVersion} → v${plugin.version}{/yellow-fg}`;
62
- }
63
- else if (plugin.installedVersion) {
64
- versionDisplay = `{green-fg}v${plugin.installedVersion}{/green-fg}`;
65
- }
66
- const updateBadge = plugin.hasUpdate ? ' {yellow-fg}⬆{/yellow-fg}' : '';
67
- listItems.push({
68
- label: ` ${status} ${plugin.name} ${versionDisplay}${updateBadge}`,
69
- type: 'plugin',
70
- plugin,
71
- });
72
- }
73
- }
74
- else if (isEnabled) {
75
- listItems.push({
76
- label: ' {gray-fg}No plugins available{/gray-fg}',
77
- type: 'empty',
78
- });
79
- }
80
- // Empty line between marketplaces
81
- listItems.push({ label: '', type: 'empty' });
82
- }
83
- // Scope indicator
84
- const scopeLabel = isGlobal
85
- ? ' {magenta-fg}{bold}[GLOBAL]{/bold}{/magenta-fg} Marketplaces & Plugins '
86
- : ' {cyan-fg}{bold}[PROJECT]{/bold}{/cyan-fg} Marketplaces & Plugins ';
87
- // Ensure currentSelection is within bounds
88
- if (currentSelection >= listItems.length) {
89
- currentSelection = Math.max(0, listItems.length - 1);
90
- }
91
- // List
92
- const list = blessed.list({
93
- parent: state.screen,
94
- top: 3,
95
- left: 2,
96
- width: '50%-2',
97
- height: '100%-5',
98
- items: listItems.map((item) => item.label),
99
- keys: true,
100
- vi: false,
101
- mouse: true,
102
- tags: true,
103
- scrollable: true,
104
- border: { type: 'line' },
105
- style: {
106
- selected: { bg: isGlobal ? 'magenta' : 'blue', fg: 'white' },
107
- border: { fg: isGlobal ? 'magenta' : 'gray' },
108
- },
109
- scrollbar: { ch: '│', style: { bg: 'gray' } },
110
- label: scopeLabel,
111
- });
112
- // Restore selection position
113
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
114
- const listAny = list;
115
- if (currentSelection > 0 && currentSelection < listItems.length) {
116
- listAny.select(currentSelection);
117
- listAny.scrollTo(currentSelection);
118
- }
119
- // Detail panel
120
- const detailBox = blessed.box({
121
- parent: state.screen,
122
- top: 3,
123
- right: 2,
124
- width: '50%-2',
125
- height: '100%-5',
126
- content: '',
127
- tags: true,
128
- border: { type: 'line' },
129
- style: { border: { fg: 'gray' } },
130
- label: ' Details ',
131
- });
132
- // Update detail panel
133
- const updateDetail = () => {
134
- const selected = list.selected;
135
- const item = listItems[selected];
136
- if (!item || item.type === 'empty') {
137
- detailBox.setContent('{gray-fg}Select an item to see details{/gray-fg}');
138
- state.screen.render();
139
- return;
140
- }
141
- if (item.type === 'marketplace' && item.marketplace) {
142
- const mp = item.marketplace;
143
- const statusText = item.marketplaceEnabled
144
- ? '{green-fg}● Enabled{/green-fg}'
145
- : '{gray-fg}○ Not added{/gray-fg}';
146
- const plugins = pluginsByMarketplace.get(mp.name) || [];
147
- const pluginInfo = plugins.length > 0
148
- ? `{bold}Plugins:{/bold} ${plugins.length} available`
149
- : '{gray-fg}Enable to see plugins{/gray-fg}';
150
- const actionText = item.marketplaceEnabled
151
- ? '{red-fg}Press Enter to remove{/red-fg}'
152
- : '{green-fg}Press Enter to add{/green-fg}';
153
- const scopeInfo = isGlobal
154
- ? '{magenta-fg}Scope: Global (~/.claude){/magenta-fg}'
155
- : `{cyan-fg}Scope: Project (${state.projectPath}){/cyan-fg}`;
156
- const content = `
157
- {bold}{cyan-fg}${mp.displayName}{/cyan-fg}{/bold}${mp.official ? ' {cyan-fg}[Official]{/cyan-fg}' : ''}
158
-
159
- ${mp.description}
160
-
161
- {bold}Status:{/bold} ${statusText}
162
- ${pluginInfo}
163
-
164
- {bold}Source:{/bold}
165
- {gray-fg}github.com/${mp.source.repo}{/gray-fg}
166
-
167
- ${scopeInfo}
168
-
169
- ${actionText}
170
- `.trim();
171
- detailBox.setContent(content);
172
- }
173
- else if (item.type === 'plugin' && item.plugin) {
174
- const plugin = item.plugin;
175
- let statusText = '{gray-fg}Not installed{/gray-fg}';
176
- if (plugin.enabled) {
177
- statusText = '{green-fg}● Enabled{/green-fg}';
178
- }
179
- else if (plugin.installedVersion) {
180
- statusText = '{yellow-fg}● Installed (disabled){/yellow-fg}';
181
- }
182
- let versionInfo = `{bold}Latest:{/bold} v${plugin.version}`;
183
- if (plugin.installedVersion) {
184
- versionInfo = `{bold}Installed:{/bold} v${plugin.installedVersion}\n{bold}Latest:{/bold} v${plugin.version}`;
185
- if (plugin.hasUpdate) {
186
- versionInfo += '\n{yellow-fg}⬆ Update available{/yellow-fg}';
187
- }
188
- }
189
- let actions = '';
190
- if (plugin.installedVersion) {
191
- actions = plugin.enabled
192
- ? '{cyan-fg}[Enter]{/cyan-fg} Disable'
193
- : '{cyan-fg}[Enter]{/cyan-fg} Enable';
194
- if (plugin.hasUpdate) {
195
- actions += ' {green-fg}[u]{/green-fg} Update';
196
- }
197
- actions += ' {red-fg}[d]{/red-fg} Uninstall';
198
- }
199
- else {
200
- actions = '{green-fg}[Enter]{/green-fg} Install & Enable';
201
- }
202
- const scopeInfo = isGlobal
203
- ? '{magenta-fg}Scope: Global{/magenta-fg}'
204
- : '{cyan-fg}Scope: Project{/cyan-fg}';
205
- const content = `
206
- {bold}{cyan-fg}${plugin.name}{/cyan-fg}{/bold}
207
-
208
- ${plugin.description}
209
-
210
- {bold}Status:{/bold} ${statusText}
211
-
212
- ${versionInfo}
213
-
214
- {bold}ID:{/bold} ${plugin.id}
215
- ${scopeInfo}
216
-
217
- ${actions}
218
- `.trim();
219
- detailBox.setContent(content);
220
- }
221
- state.screen.render();
222
- };
223
- list.on('select item', () => {
224
- currentSelection = list.selected;
225
- updateDetail();
226
- });
227
- setTimeout(updateDetail, 0);
228
- // Handle selection (Enter)
229
- list.on('select', async (_item, index) => {
230
- const selected = listItems[index];
231
- if (!selected || selected.type === 'empty')
232
- return;
233
- if (selected.type === 'marketplace' && selected.marketplace) {
234
- const mp = selected.marketplace;
235
- if (selected.marketplaceEnabled) {
236
- // Remove marketplace - immediate, no confirmation
237
- const loading = showLoading(state, `Removing ${mp.displayName}...`);
238
- try {
239
- if (isGlobal) {
240
- await removeGlobalMarketplace(mp.name);
241
- }
242
- else {
243
- await removeMarketplace(mp.name, state.projectPath);
244
- }
245
- }
246
- finally {
247
- loading.stop();
248
- }
249
- await navigateTo(state, 'plugins');
250
- }
251
- else {
252
- // Add marketplace - immediate, no confirmation
253
- const loading = showLoading(state, `Adding ${mp.displayName}...`);
254
- try {
255
- if (isGlobal) {
256
- await addGlobalMarketplace(mp);
257
- }
258
- else {
259
- await addMarketplace(mp, state.projectPath);
260
- }
261
- }
262
- finally {
263
- loading.stop();
264
- }
265
- await navigateTo(state, 'plugins');
266
- }
267
- }
268
- else if (selected.type === 'plugin' && selected.plugin) {
269
- const plugin = selected.plugin;
270
- if (plugin.hasUpdate) {
271
- // Update plugin - immediate when update available
272
- const loading = showLoading(state, `Updating ${plugin.name}...`);
273
- try {
274
- if (isGlobal) {
275
- await saveGlobalInstalledPluginVersion(plugin.id, plugin.version);
276
- }
277
- else {
278
- await saveInstalledPluginVersion(plugin.id, plugin.version, state.projectPath);
279
- }
280
- }
281
- finally {
282
- loading.stop();
283
- }
284
- await navigateTo(state, 'plugins');
285
- }
286
- else if (plugin.installedVersion) {
287
- // Toggle enabled/disabled - immediate
288
- const newState = !plugin.enabled;
289
- const loading = showLoading(state, `${newState ? 'Enabling' : 'Disabling'} ${plugin.name}...`);
290
- try {
291
- if (isGlobal) {
292
- await enableGlobalPlugin(plugin.id, newState);
293
- }
294
- else {
295
- await enablePlugin(plugin.id, newState, state.projectPath);
296
- }
297
- }
298
- finally {
299
- loading.stop();
300
- }
301
- await navigateTo(state, 'plugins');
302
- }
303
- else {
304
- // Install plugin - immediate
305
- const loading = showLoading(state, `Installing ${plugin.name}...`);
306
- try {
307
- if (isGlobal) {
308
- await enableGlobalPlugin(plugin.id, true);
309
- await saveGlobalInstalledPluginVersion(plugin.id, plugin.version);
310
- }
311
- else {
312
- await enablePlugin(plugin.id, true, state.projectPath);
313
- await saveInstalledPluginVersion(plugin.id, plugin.version, state.projectPath);
314
- }
315
- }
316
- finally {
317
- loading.stop();
318
- }
319
- await navigateTo(state, 'plugins');
320
- }
321
- }
322
- });
323
- // Toggle scope (g key) - don't clear cache, just switch view
324
- list.key(['g'], async () => {
325
- if (state.isSearching)
326
- return;
327
- currentScope = currentScope === 'project' ? 'global' : 'project';
328
- currentSelection = 0; // Reset selection when scope changes
329
- await navigateTo(state, 'plugins');
330
- });
331
- // Update plugin (u key) - immediate, no confirmation
332
- list.key(['u'], async () => {
333
- if (state.isSearching)
334
- return;
335
- const selected = list.selected;
336
- const item = listItems[selected];
337
- if (!item || item.type !== 'plugin' || !item.plugin)
338
- return;
339
- const plugin = item.plugin;
340
- if (!plugin.hasUpdate) {
341
- return; // Silent no-op if no update available
342
- }
343
- const loading = showLoading(state, `Updating ${plugin.name}...`);
344
- try {
345
- if (isGlobal) {
346
- await saveGlobalInstalledPluginVersion(plugin.id, plugin.version);
347
- }
348
- else {
349
- await saveInstalledPluginVersion(plugin.id, plugin.version, state.projectPath);
350
- }
351
- }
352
- finally {
353
- loading.stop();
354
- }
355
- await navigateTo(state, 'plugins');
356
- });
357
- // Uninstall plugin (d key) - immediate, no confirmation
358
- list.key(['d'], async () => {
359
- if (state.isSearching)
360
- return;
361
- const selected = list.selected;
362
- const item = listItems[selected];
363
- if (!item || item.type !== 'plugin' || !item.plugin)
364
- return;
365
- const plugin = item.plugin;
366
- if (!plugin.installedVersion) {
367
- return; // Silent no-op if not installed
368
- }
369
- const loading = showLoading(state, `Uninstalling ${plugin.name}...`);
370
- try {
371
- if (isGlobal) {
372
- await removeGlobalInstalledPluginVersion(plugin.id);
373
- }
374
- else {
375
- await enablePlugin(plugin.id, false, state.projectPath);
376
- await removeInstalledPluginVersion(plugin.id, state.projectPath);
377
- }
378
- }
379
- finally {
380
- loading.stop();
381
- }
382
- await navigateTo(state, 'plugins');
383
- });
384
- // Refresh (r key)
385
- list.key(['r'], async () => {
386
- if (state.isSearching)
387
- return;
388
- clearMarketplaceCache();
389
- await navigateTo(state, 'plugins');
390
- });
391
- // Update all plugins (a key) - immediate, no confirmation
392
- list.key(['a'], async () => {
393
- if (state.isSearching)
394
- return;
395
- const updatable = allPlugins.filter((p) => p.hasUpdate);
396
- if (updatable.length === 0) {
397
- return; // Silent no-op if all up-to-date
398
- }
399
- const loading = showLoading(state, `Updating ${updatable.length} plugin(s)...`);
400
- try {
401
- for (const plugin of updatable) {
402
- if (isGlobal) {
403
- await saveGlobalInstalledPluginVersion(plugin.id, plugin.version);
404
- }
405
- else {
406
- await saveInstalledPluginVersion(plugin.id, plugin.version, state.projectPath);
407
- }
408
- }
409
- }
410
- finally {
411
- loading.stop();
412
- }
413
- await navigateTo(state, 'plugins');
414
- });
415
- // Navigation
416
- list.key(['j'], () => {
417
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
418
- list.down();
419
- state.screen.render();
420
- });
421
- list.key(['k'], () => {
422
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
423
- list.up();
424
- state.screen.render();
425
- });
426
- // Legend with scope indicator
427
- const scopeText = isGlobal
428
- ? '{magenta-fg}[g] Global{/magenta-fg}'
429
- : '{cyan-fg}[g] Project{/cyan-fg}';
430
- blessed.box({
431
- parent: state.screen,
432
- bottom: 1,
433
- right: 2,
434
- width: 60,
435
- height: 1,
436
- content: `${scopeText} {green-fg}●{/green-fg} Enabled {yellow-fg}●{/yellow-fg} Disabled {gray-fg}○{/gray-fg} Not installed`,
437
- tags: true,
438
- });
439
- createFooter(state, '↑↓ Navigate │ Enter Toggle │ g Scope │ u Update │ d Uninstall │ a Update All │ r Refresh');
440
- list.focus();
441
- state.screen.render();
442
- }
443
- //# sourceMappingURL=plugins.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../src/ui/screens/plugins.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import type { AppState } from '../app.js';
2
- type Scope = 'project' | 'global';
3
- export declare function createStatusLineScreen(state: AppState, initialScope?: Scope): Promise<void>;
4
- export {};
5
- //# sourceMappingURL=statusline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"statusline.d.ts","sourceRoot":"","sources":["../../../src/ui/screens/statusline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAY1C,KAAK,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;AAElC,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,GAAE,KAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8R5G"}