claudeup 0.6.0 → 0.6.1

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 (72) hide show
  1. package/dist/data/cli-tools.d.ts +13 -0
  2. package/dist/data/cli-tools.d.ts.map +1 -0
  3. package/dist/data/cli-tools.js +124 -0
  4. package/dist/data/cli-tools.js.map +1 -0
  5. package/dist/data/marketplaces.d.ts +4 -0
  6. package/dist/data/marketplaces.d.ts.map +1 -0
  7. package/dist/data/marketplaces.js +26 -0
  8. package/dist/data/marketplaces.js.map +1 -0
  9. package/dist/data/mcp-servers.d.ts +8 -0
  10. package/dist/data/mcp-servers.d.ts.map +1 -0
  11. package/dist/data/mcp-servers.js +421 -0
  12. package/dist/data/mcp-servers.js.map +1 -0
  13. package/dist/data/statuslines.d.ts +10 -0
  14. package/dist/data/statuslines.d.ts.map +1 -0
  15. package/dist/data/statuslines.js +160 -0
  16. package/dist/data/statuslines.js.map +1 -0
  17. package/dist/index.d.ts +3 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/services/claude-settings.d.ts +49 -0
  21. package/dist/services/claude-settings.d.ts.map +1 -0
  22. package/dist/services/claude-settings.js +299 -0
  23. package/dist/services/claude-settings.js.map +1 -0
  24. package/dist/services/mcp-registry.d.ts +10 -0
  25. package/dist/services/mcp-registry.d.ts.map +1 -0
  26. package/dist/services/mcp-registry.js +88 -0
  27. package/dist/services/mcp-registry.js.map +1 -0
  28. package/dist/services/plugin-manager.d.ts +23 -0
  29. package/dist/services/plugin-manager.d.ts.map +1 -0
  30. package/dist/services/plugin-manager.js +151 -0
  31. package/dist/services/plugin-manager.js.map +1 -0
  32. package/dist/types/index.d.ts +86 -0
  33. package/dist/types/index.d.ts.map +1 -0
  34. package/dist/types/index.js +2 -0
  35. package/dist/types/index.js.map +1 -0
  36. package/dist/ui/app.d.ts +38 -0
  37. package/dist/ui/app.d.ts.map +1 -0
  38. package/dist/ui/app.js +583 -0
  39. package/dist/ui/app.js.map +1 -0
  40. package/dist/ui/screens/cli-tools.d.ts +4 -0
  41. package/dist/ui/screens/cli-tools.d.ts.map +1 -0
  42. package/dist/ui/screens/cli-tools.js +369 -0
  43. package/dist/ui/screens/cli-tools.js.map +1 -0
  44. package/dist/ui/screens/env-vars.d.ts +3 -0
  45. package/dist/ui/screens/env-vars.d.ts.map +1 -0
  46. package/dist/ui/screens/env-vars.js +119 -0
  47. package/dist/ui/screens/env-vars.js.map +1 -0
  48. package/dist/ui/screens/main-menu.d.ts +3 -0
  49. package/dist/ui/screens/main-menu.d.ts.map +1 -0
  50. package/dist/ui/screens/main-menu.js +110 -0
  51. package/dist/ui/screens/main-menu.js.map +1 -0
  52. package/dist/ui/screens/marketplace.d.ts +3 -0
  53. package/dist/ui/screens/marketplace.d.ts.map +1 -0
  54. package/dist/ui/screens/marketplace.js +132 -0
  55. package/dist/ui/screens/marketplace.js.map +1 -0
  56. package/dist/ui/screens/mcp-registry.d.ts +10 -0
  57. package/dist/ui/screens/mcp-registry.d.ts.map +1 -0
  58. package/dist/ui/screens/mcp-registry.js +310 -0
  59. package/dist/ui/screens/mcp-registry.js.map +1 -0
  60. package/dist/ui/screens/mcp-setup.d.ts +4 -0
  61. package/dist/ui/screens/mcp-setup.d.ts.map +1 -0
  62. package/dist/ui/screens/mcp-setup.js +492 -0
  63. package/dist/ui/screens/mcp-setup.js.map +1 -0
  64. package/dist/ui/screens/plugins.d.ts +3 -0
  65. package/dist/ui/screens/plugins.d.ts.map +1 -0
  66. package/dist/ui/screens/plugins.js +443 -0
  67. package/dist/ui/screens/plugins.js.map +1 -0
  68. package/dist/ui/screens/statusline.d.ts +5 -0
  69. package/dist/ui/screens/statusline.d.ts.map +1 -0
  70. package/dist/ui/screens/statusline.js +235 -0
  71. package/dist/ui/screens/statusline.js.map +1 -0
  72. package/package.json +2 -2
@@ -0,0 +1,443 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../src/ui/screens/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,yBAAyB,EACzB,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,EACvB,+BAA+B,EAC/B,kBAAkB,EAClB,gCAAgC,EAChC,kCAAkC,GACnC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,GAE1B,MAAM,kCAAkC,CAAC;AAU1C,yDAAyD;AACzD,IAAI,YAAY,GAAyB,SAAS,CAAC;AACnD,6DAA6D;AAC7D,IAAI,gBAAgB,GAAG,CAAC,CAAC;AAEzB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAAe;IACvD,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAE/B,MAAM,QAAQ,GAAG,YAAY,KAAK,QAAQ,CAAC;IAE3C,oCAAoC;IACpC,MAAM,sBAAsB,GAAG,QAAQ;QACrC,CAAC,CAAC,MAAM,+BAA+B,EAAE;QACzC,CAAC,CAAC,MAAM,yBAAyB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAEvD,6CAA6C;IAC7C,IAAI,UAAU,GAAiB,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,UAAU,GAAG,QAAQ;YACnB,CAAC,CAAC,MAAM,yBAAyB,EAAE;YACnC,CAAC,CAAC,MAAM,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,8BAA8B;IAChC,CAAC;IAED,+BAA+B;IAC/B,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC7D,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACpE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtB,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,qBAAqB;IACrB,MAAM,SAAS,GAAe,EAAE,CAAC;IAEjC,KAAK,MAAM,WAAW,IAAI,mBAAmB,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;QACzE,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAEjE,qBAAqB;QACrB,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,sBAAsB,CAAC;QACnF,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,OAAO,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QAExF,SAAS,CAAC,IAAI,CAAC;YACb,KAAK,EAAE,GAAG,YAAY,UAAU,WAAW,CAAC,WAAW,UAAU,aAAa,GAAG,WAAW,EAAE;YAC9F,IAAI,EAAE,aAAa;YACnB,WAAW;YACX,kBAAkB,EAAE,SAAS;SAC9B,CAAC,CAAC;QAEH,8CAA8C;QAC9C,IAAI,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,MAAM,GAAG,sBAAsB,CAAC;gBACpC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,MAAM,GAAG,wBAAwB,CAAC;gBACpC,CAAC;qBAAM,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;oBACnC,MAAM,GAAG,0BAA0B,CAAC;gBACtC,CAAC;gBAED,IAAI,cAAc,GAAG,aAAa,MAAM,CAAC,OAAO,YAAY,CAAC;gBAC7D,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACrB,cAAc,GAAG,eAAe,MAAM,CAAC,gBAAgB,OAAO,MAAM,CAAC,OAAO,cAAc,CAAC;gBAC7F,CAAC;qBAAM,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;oBACnC,cAAc,GAAG,cAAc,MAAM,CAAC,gBAAgB,aAAa,CAAC;gBACtE,CAAC;gBAED,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAC;gBAExE,SAAS,CAAC,IAAI,CAAC;oBACb,KAAK,EAAE,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,cAAc,GAAG,WAAW,EAAE;oBACrE,IAAI,EAAE,QAAQ;oBACd,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,SAAS,CAAC,IAAI,CAAC;gBACb,KAAK,EAAE,6CAA6C;gBACpD,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;QACL,CAAC;QAED,kCAAkC;QAClC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,kBAAkB;IAClB,MAAM,UAAU,GAAG,QAAQ;QACzB,CAAC,CAAC,yEAAyE;QAC3E,CAAC,CAAC,oEAAoE,CAAC;IAEzE,2CAA2C;IAC3C,IAAI,gBAAgB,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACzC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO;IACP,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACxB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1C,IAAI,EAAE,IAAI;QACV,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACxB,KAAK,EAAE;YACL,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE;YAC5D,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE;SAC9C;QACD,SAAS,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;QAC7C,KAAK,EAAE,UAAU;KAClB,CAAC,CAAC;IAEH,6BAA6B;IAC7B,8DAA8D;IAC9D,MAAM,OAAO,GAAG,IAAW,CAAC;IAC5B,IAAI,gBAAgB,GAAG,CAAC,IAAI,gBAAgB,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;QAChE,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACrC,CAAC;IAED,eAAe;IACf,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;QAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACxB,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;QACjC,KAAK,EAAE,WAAW;KACnB,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,YAAY,GAAG,GAAS,EAAE;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAkB,CAAC;QACzC,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAEjC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACnC,SAAS,CAAC,UAAU,CAAC,kDAAkD,CAAC,CAAC;YACzE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACpD,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB;gBACxC,CAAC,CAAC,gCAAgC;gBAClC,CAAC,CAAC,gCAAgC,CAAC;YAErC,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACxD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;gBACnC,CAAC,CAAC,yBAAyB,OAAO,CAAC,MAAM,YAAY;gBACrD,CAAC,CAAC,0CAA0C,CAAC;YAE/C,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB;gBACxC,CAAC,CAAC,wCAAwC;gBAC1C,CAAC,CAAC,yCAAyC,CAAC;YAE9C,MAAM,SAAS,GAAG,QAAQ;gBACxB,CAAC,CAAC,oDAAoD;gBACtD,CAAC,CAAC,4BAA4B,KAAK,CAAC,WAAW,aAAa,CAAC;YAE/D,MAAM,OAAO,GAAG;iBACL,EAAE,CAAC,WAAW,oBAAoB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,EAAE;;EAEpG,EAAE,CAAC,WAAW;;uBAEO,UAAU;EAC/B,UAAU;;;sBAGU,EAAE,CAAC,MAAM,CAAC,IAAI;;EAElC,SAAS;;EAET,UAAU;OACL,CAAC,IAAI,EAAE,CAAC;YAET,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAE3B,IAAI,UAAU,GAAG,kCAAkC,CAAC;YACpD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,UAAU,GAAG,gCAAgC,CAAC;YAChD,CAAC;iBAAM,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBACnC,UAAU,GAAG,+CAA+C,CAAC;YAC/D,CAAC;YAED,IAAI,WAAW,GAAG,yBAAyB,MAAM,CAAC,OAAO,EAAE,CAAC;YAC5D,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC5B,WAAW,GAAG,4BAA4B,MAAM,CAAC,gBAAgB,2BAA2B,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC7G,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACrB,WAAW,IAAI,6CAA6C,CAAC;gBAC/D,CAAC;YACH,CAAC;YAED,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC5B,OAAO,GAAG,MAAM,CAAC,OAAO;oBACtB,CAAC,CAAC,oCAAoC;oBACtC,CAAC,CAAC,mCAAmC,CAAC;gBACxC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACrB,OAAO,IAAI,mCAAmC,CAAC;gBACjD,CAAC;gBACD,OAAO,IAAI,kCAAkC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,+CAA+C,CAAC;YAC5D,CAAC;YAED,MAAM,SAAS,GAAG,QAAQ;gBACxB,CAAC,CAAC,wCAAwC;gBAC1C,CAAC,CAAC,mCAAmC,CAAC;YAExC,MAAM,OAAO,GAAG;iBACL,MAAM,CAAC,IAAI;;EAE1B,MAAM,CAAC,WAAW;;uBAEG,UAAU;;EAE/B,WAAW;;mBAEM,MAAM,CAAC,EAAE;EAC1B,SAAS;;EAET,OAAO;OACF,CAAC,IAAI,EAAE,CAAC;YAET,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC,CAAC;IAEF,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QAC1B,gBAAgB,GAAG,IAAI,CAAC,QAAkB,CAAC;QAC3C,YAAY,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAE5B,2BAA2B;IAC3B,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAc,EAAE,KAAa,EAAE,EAAE;QACxD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO;QAEnD,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC5D,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC;YAEhC,IAAI,QAAQ,CAAC,kBAAkB,EAAE,CAAC;gBAChC,kDAAkD;gBAClD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,WAAW,KAAK,CAAC,CAAC;gBACpE,IAAI,CAAC;oBACH,IAAI,QAAQ,EAAE,CAAC;wBACb,MAAM,uBAAuB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBACzC,CAAC;yBAAM,CAAC;wBACN,MAAM,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;oBACtD,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,CAAC;gBACD,MAAM,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,+CAA+C;gBAC/C,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,WAAW,KAAK,CAAC,CAAC;gBAClE,IAAI,CAAC;oBACH,IAAI,QAAQ,EAAE,CAAC;wBACb,MAAM,oBAAoB,CAAC,EAAE,CAAC,CAAC;oBACjC,CAAC;yBAAM,CAAC;wBACN,MAAM,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;oBAC9C,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,CAAC;gBACD,MAAM,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAE/B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,kDAAkD;gBAClD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,YAAY,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;gBACjE,IAAI,CAAC;oBACH,IAAI,QAAQ,EAAE,CAAC;wBACb,MAAM,gCAAgC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;oBACpE,CAAC;yBAAM,CAAC;wBACN,MAAM,0BAA0B,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;oBACjF,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,CAAC;gBACD,MAAM,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACrC,CAAC;iBAAM,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBACnC,sCAAsC;gBACtC,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;gBACjC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;gBAC/F,IAAI,CAAC;oBACH,IAAI,QAAQ,EAAE,CAAC;wBACb,MAAM,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;oBAChD,CAAC;yBAAM,CAAC;wBACN,MAAM,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;oBAC7D,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,CAAC;gBACD,MAAM,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,6BAA6B;gBAC7B,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,cAAc,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;gBACnE,IAAI,CAAC;oBACH,IAAI,QAAQ,EAAE,CAAC;wBACb,MAAM,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;wBAC1C,MAAM,gCAAgC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;oBACpE,CAAC;yBAAM,CAAC;wBACN,MAAM,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;wBACvD,MAAM,0BAA0B,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;oBACjF,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,CAAC;gBACD,MAAM,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,6DAA6D;IAC7D,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE;QACzB,IAAI,KAAK,CAAC,WAAW;YAAE,OAAO;QAC9B,YAAY,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,gBAAgB,GAAG,CAAC,CAAC,CAAC,qCAAqC;QAC3D,MAAM,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,qDAAqD;IACrD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE;QACzB,IAAI,KAAK,CAAC,WAAW;YAAE,OAAO;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAkB,CAAC;QACzC,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAE5D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,sCAAsC;QAChD,CAAC;QAED,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,YAAY,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;QACjE,IAAI,CAAC;YACH,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,gCAAgC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,MAAM,0BAA0B,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,CAAC;QACD,MAAM,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,wDAAwD;IACxD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE;QACzB,IAAI,KAAK,CAAC,WAAW;YAAE,OAAO;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAkB,CAAC;QACzC,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAE5D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC7B,OAAO,CAAC,gCAAgC;QAC1C,CAAC;QAED,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,gBAAgB,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;QACrE,IAAI,CAAC;YACH,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,kCAAkC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;gBACxD,MAAM,4BAA4B,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,CAAC;QACD,MAAM,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,kBAAkB;IAClB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE;QACzB,IAAI,KAAK,CAAC,WAAW;YAAE,OAAO;QAC9B,qBAAqB,EAAE,CAAC;QACxB,MAAM,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,0DAA0D;IAC1D,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE;QACzB,IAAI,KAAK,CAAC,WAAW;YAAE,OAAO;QAC9B,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,iCAAiC;QAC3C,CAAC;QAED,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,YAAY,SAAS,CAAC,MAAM,eAAe,CAAC,CAAC;QAChF,IAAI,CAAC;YACH,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;gBAC/B,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,gCAAgC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBACpE,CAAC;qBAAM,CAAC;oBACN,MAAM,0BAA0B,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,CAAC;QACD,MAAM,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,aAAa;IACb,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE;QACnB,8DAA8D;QAC7D,IAAY,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE;QACnB,8DAA8D;QAC7D,IAAY,CAAC,EAAE,EAAE,CAAC;QACnB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,SAAS,GAAG,QAAQ;QACxB,CAAC,CAAC,qCAAqC;QACvC,CAAC,CAAC,gCAAgC,CAAC;IAErC,OAAO,CAAC,GAAG,CAAC;QACV,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,CAAC;QACT,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,GAAG,SAAS,yGAAyG;QAC9H,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IAEH,YAAY,CAAC,KAAK,EAAE,0FAA0F,CAAC,CAAC;IAEhH,IAAI,CAAC,KAAK,EAAE,CAAC;IACb,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;AACxB,CAAC"}
@@ -0,0 +1,5 @@
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
@@ -0,0 +1 @@
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"}