claudeup 0.3.0 → 0.6.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.
- package/package.json +23 -12
- package/dist/data/cli-tools.d.ts +0 -13
- package/dist/data/cli-tools.d.ts.map +0 -1
- package/dist/data/cli-tools.js +0 -113
- package/dist/data/cli-tools.js.map +0 -1
- package/dist/data/marketplaces.d.ts +0 -4
- package/dist/data/marketplaces.d.ts.map +0 -1
- package/dist/data/marketplaces.js +0 -26
- package/dist/data/marketplaces.js.map +0 -1
- package/dist/data/mcp-servers.d.ts +0 -8
- package/dist/data/mcp-servers.d.ts.map +0 -1
- package/dist/data/mcp-servers.js +0 -421
- package/dist/data/mcp-servers.js.map +0 -1
- package/dist/data/statuslines.d.ts +0 -10
- package/dist/data/statuslines.d.ts.map +0 -1
- package/dist/data/statuslines.js +0 -160
- package/dist/data/statuslines.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/services/claude-settings.d.ts +0 -46
- package/dist/services/claude-settings.d.ts.map +0 -1
- package/dist/services/claude-settings.js +0 -248
- package/dist/services/claude-settings.js.map +0 -1
- package/dist/services/mcp-registry.d.ts +0 -10
- package/dist/services/mcp-registry.d.ts.map +0 -1
- package/dist/services/mcp-registry.js +0 -88
- package/dist/services/mcp-registry.js.map +0 -1
- package/dist/services/plugin-manager.d.ts +0 -23
- package/dist/services/plugin-manager.d.ts.map +0 -1
- package/dist/services/plugin-manager.js +0 -151
- package/dist/services/plugin-manager.js.map +0 -1
- package/dist/types/index.d.ts +0 -83
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -2
- package/dist/types/index.js.map +0 -1
- package/dist/ui/app.d.ts +0 -38
- package/dist/ui/app.d.ts.map +0 -1
- package/dist/ui/app.js +0 -553
- package/dist/ui/app.js.map +0 -1
- package/dist/ui/screens/cli-tools.d.ts +0 -4
- package/dist/ui/screens/cli-tools.d.ts.map +0 -1
- package/dist/ui/screens/cli-tools.js +0 -331
- package/dist/ui/screens/cli-tools.js.map +0 -1
- package/dist/ui/screens/main-menu.d.ts +0 -3
- package/dist/ui/screens/main-menu.d.ts.map +0 -1
- package/dist/ui/screens/main-menu.js +0 -110
- package/dist/ui/screens/main-menu.js.map +0 -1
- package/dist/ui/screens/marketplace.d.ts +0 -3
- package/dist/ui/screens/marketplace.d.ts.map +0 -1
- package/dist/ui/screens/marketplace.js +0 -132
- package/dist/ui/screens/marketplace.js.map +0 -1
- package/dist/ui/screens/mcp-registry.d.ts +0 -10
- package/dist/ui/screens/mcp-registry.d.ts.map +0 -1
- package/dist/ui/screens/mcp-registry.js +0 -310
- package/dist/ui/screens/mcp-registry.js.map +0 -1
- package/dist/ui/screens/mcp-setup.d.ts +0 -4
- package/dist/ui/screens/mcp-setup.d.ts.map +0 -1
- package/dist/ui/screens/mcp-setup.js +0 -673
- package/dist/ui/screens/mcp-setup.js.map +0 -1
- package/dist/ui/screens/plugins.d.ts +0 -3
- package/dist/ui/screens/plugins.d.ts.map +0 -1
- package/dist/ui/screens/plugins.js +0 -449
- package/dist/ui/screens/plugins.js.map +0 -1
- package/dist/ui/screens/statusline.d.ts +0 -5
- package/dist/ui/screens/statusline.d.ts.map +0 -1
- package/dist/ui/screens/statusline.js +0 -235
- package/dist/ui/screens/statusline.js.map +0 -1
|
@@ -1,235 +0,0 @@
|
|
|
1
|
-
import blessed from 'neo-blessed';
|
|
2
|
-
import { createHeader, createFooter, showMessage, showInput } from '../app.js';
|
|
3
|
-
import { statusLineCategories } from '../../data/statuslines.js';
|
|
4
|
-
import { setStatusLine, getStatusLine, setGlobalStatusLine, getGlobalStatusLine, getEffectiveStatusLine, } from '../../services/claude-settings.js';
|
|
5
|
-
export async function createStatusLineScreen(state, initialScope = 'project') {
|
|
6
|
-
createHeader(state, 'Status Line Configuration');
|
|
7
|
-
let currentScope = initialScope;
|
|
8
|
-
const projectStatusLine = await getStatusLine(state.projectPath);
|
|
9
|
-
const globalStatusLine = await getGlobalStatusLine();
|
|
10
|
-
const effective = await getEffectiveStatusLine(state.projectPath);
|
|
11
|
-
const getCurrentStatusLine = () => {
|
|
12
|
-
return currentScope === 'project' ? projectStatusLine : globalStatusLine;
|
|
13
|
-
};
|
|
14
|
-
// Scope indicator
|
|
15
|
-
const scopeBox = blessed.box({
|
|
16
|
-
parent: state.screen,
|
|
17
|
-
top: 3,
|
|
18
|
-
left: 2,
|
|
19
|
-
width: '100%-4',
|
|
20
|
-
height: 3,
|
|
21
|
-
tags: true,
|
|
22
|
-
border: {
|
|
23
|
-
type: 'line',
|
|
24
|
-
},
|
|
25
|
-
style: {
|
|
26
|
-
border: {
|
|
27
|
-
fg: 'cyan',
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
});
|
|
31
|
-
const updateScopeBox = () => {
|
|
32
|
-
const projectLabel = currentScope === 'project'
|
|
33
|
-
? '{bold}{cyan-fg}[P] 📁 Project{/cyan-fg}{/bold}'
|
|
34
|
-
: '{gray-fg}[P] 📁 Project{/gray-fg}';
|
|
35
|
-
const globalLabel = currentScope === 'global'
|
|
36
|
-
? '{bold}{cyan-fg}[G] 🌍 Global{/cyan-fg}{/bold}'
|
|
37
|
-
: '{gray-fg}[G] 🌍 Global{/gray-fg}';
|
|
38
|
-
const projectStatus = projectStatusLine ? '{green-fg}✓{/green-fg}' : '{gray-fg}○{/gray-fg}';
|
|
39
|
-
const globalStatus = globalStatusLine ? '{green-fg}✓{/green-fg}' : '{gray-fg}○{/gray-fg}';
|
|
40
|
-
scopeBox.setContent(` ${projectLabel} ${projectStatus} ${globalLabel} ${globalStatus} ` +
|
|
41
|
-
`{gray-fg}│{/gray-fg} Active: {yellow-fg}${effective.source}{/yellow-fg}`);
|
|
42
|
-
};
|
|
43
|
-
updateScopeBox();
|
|
44
|
-
// Info box
|
|
45
|
-
blessed.box({
|
|
46
|
-
parent: state.screen,
|
|
47
|
-
top: 6,
|
|
48
|
-
left: 2,
|
|
49
|
-
width: '100%-4',
|
|
50
|
-
height: 2,
|
|
51
|
-
content: `{gray-fg}Current ${currentScope}: {/gray-fg}{bold}${getCurrentStatusLine() || '(not set)'}{/bold}`,
|
|
52
|
-
tags: true,
|
|
53
|
-
});
|
|
54
|
-
const buildListItems = () => {
|
|
55
|
-
const currentForScope = getCurrentStatusLine();
|
|
56
|
-
const items = [];
|
|
57
|
-
for (const category of statusLineCategories) {
|
|
58
|
-
// Add category header
|
|
59
|
-
items.push({
|
|
60
|
-
label: `{${category.color}-fg}{bold}${category.name}{/bold}{/${category.color}-fg}`,
|
|
61
|
-
isHeader: true,
|
|
62
|
-
});
|
|
63
|
-
// Add presets in this category
|
|
64
|
-
for (const preset of category.presets) {
|
|
65
|
-
const isActive = currentForScope === preset.template;
|
|
66
|
-
const status = isActive ? '{green-fg}✓{/green-fg}' : ' ';
|
|
67
|
-
items.push({
|
|
68
|
-
label: ` ${status} ${preset.name} {gray-fg}- ${preset.description}{/gray-fg}`,
|
|
69
|
-
preset,
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
// Add custom option at the end
|
|
74
|
-
items.push({
|
|
75
|
-
label: '{cyan-fg}{bold}+ Custom Status Line{/bold}{/cyan-fg}',
|
|
76
|
-
isCustom: true,
|
|
77
|
-
});
|
|
78
|
-
return items;
|
|
79
|
-
};
|
|
80
|
-
const listItems = buildListItems();
|
|
81
|
-
const list = blessed.list({
|
|
82
|
-
parent: state.screen,
|
|
83
|
-
top: 9,
|
|
84
|
-
left: 2,
|
|
85
|
-
width: '100%-4',
|
|
86
|
-
height: '50%-6',
|
|
87
|
-
items: listItems.map((item) => item.label),
|
|
88
|
-
keys: true,
|
|
89
|
-
vi: true,
|
|
90
|
-
mouse: true,
|
|
91
|
-
tags: true,
|
|
92
|
-
scrollable: true,
|
|
93
|
-
border: {
|
|
94
|
-
type: 'line',
|
|
95
|
-
},
|
|
96
|
-
style: {
|
|
97
|
-
selected: {
|
|
98
|
-
bg: 'blue',
|
|
99
|
-
fg: 'white',
|
|
100
|
-
},
|
|
101
|
-
border: {
|
|
102
|
-
fg: 'cyan',
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
|
-
scrollbar: {
|
|
106
|
-
ch: '|',
|
|
107
|
-
style: {
|
|
108
|
-
bg: 'gray',
|
|
109
|
-
},
|
|
110
|
-
},
|
|
111
|
-
label: ' Themes ',
|
|
112
|
-
});
|
|
113
|
-
// Preview box - positioned at the bottom
|
|
114
|
-
const previewBox = blessed.box({
|
|
115
|
-
parent: state.screen,
|
|
116
|
-
top: '50%+4',
|
|
117
|
-
left: 2,
|
|
118
|
-
width: '100%-4',
|
|
119
|
-
height: '50%-6',
|
|
120
|
-
content: '',
|
|
121
|
-
tags: true,
|
|
122
|
-
border: {
|
|
123
|
-
type: 'line',
|
|
124
|
-
},
|
|
125
|
-
label: ' Preview ',
|
|
126
|
-
style: {
|
|
127
|
-
border: {
|
|
128
|
-
fg: 'gray',
|
|
129
|
-
},
|
|
130
|
-
},
|
|
131
|
-
});
|
|
132
|
-
// Update preview on selection change
|
|
133
|
-
const updatePreview = () => {
|
|
134
|
-
const selected = list.selected;
|
|
135
|
-
const item = listItems[selected];
|
|
136
|
-
if (item?.isHeader) {
|
|
137
|
-
previewBox.setContent('{gray-fg}Select a preset below{/gray-fg}');
|
|
138
|
-
state.screen.render();
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
if (item?.preset) {
|
|
142
|
-
// Build colorful preview with highlighted values
|
|
143
|
-
const example = item.preset.template
|
|
144
|
-
.replace('{model}', '{green-fg}claude-sonnet-4{/green-fg}')
|
|
145
|
-
.replace('{model_short}', '{green-fg}sonnet{/green-fg}')
|
|
146
|
-
.replace('{cost}', '{yellow-fg}0.42{/yellow-fg}')
|
|
147
|
-
.replace('{cwd}', '{blue-fg}~/myapp{/blue-fg}')
|
|
148
|
-
.replace('{git_branch}', '{magenta-fg}main{/magenta-fg}')
|
|
149
|
-
.replace('{input_tokens}', '{cyan-fg}1.2k{/cyan-fg}')
|
|
150
|
-
.replace('{output_tokens}', '{cyan-fg}850{/cyan-fg}')
|
|
151
|
-
.replace('{session_duration}', '{red-fg}12m{/red-fg}');
|
|
152
|
-
const content = `{bold}{cyan-fg}${item.preset.name}{/cyan-fg}{/bold}\n` +
|
|
153
|
-
`{gray-fg}${item.preset.description}{/gray-fg}\n\n` +
|
|
154
|
-
`{yellow-fg}{bold}Preview:{/bold}{/yellow-fg}\n` +
|
|
155
|
-
`{white-fg}${example}{/white-fg}\n\n` +
|
|
156
|
-
`{gray-fg}Template: ${item.preset.template}{/gray-fg}`;
|
|
157
|
-
previewBox.setContent(content);
|
|
158
|
-
}
|
|
159
|
-
else if (item?.isCustom) {
|
|
160
|
-
previewBox.setContent(`{bold}{cyan-fg}+ Custom Status Line{/cyan-fg}{/bold}\n\n` +
|
|
161
|
-
`{white-fg}Create your own unique status line!{/white-fg}\n\n` +
|
|
162
|
-
`{yellow-fg}{bold}Available variables:{/bold}{/yellow-fg}\n\n` +
|
|
163
|
-
`{green-fg}{model}{/green-fg} Model name\n` +
|
|
164
|
-
`{green-fg}{model_short}{/green-fg} Short name\n` +
|
|
165
|
-
`{yellow-fg}{cost}{/yellow-fg} Session cost\n` +
|
|
166
|
-
`{blue-fg}{cwd}{/blue-fg} Working directory\n` +
|
|
167
|
-
`{magenta-fg}{git_branch}{/magenta-fg} Git branch\n` +
|
|
168
|
-
`{cyan-fg}{input_tokens}{/cyan-fg} Input tokens\n` +
|
|
169
|
-
`{cyan-fg}{output_tokens}{/cyan-fg} Output tokens\n` +
|
|
170
|
-
`{red-fg}{session_duration}{/red-fg} Session duration`);
|
|
171
|
-
}
|
|
172
|
-
state.screen.render();
|
|
173
|
-
};
|
|
174
|
-
list.on('select item', updatePreview);
|
|
175
|
-
updatePreview();
|
|
176
|
-
// Save function based on current scope
|
|
177
|
-
const saveStatusLine = async (template) => {
|
|
178
|
-
if (currentScope === 'global') {
|
|
179
|
-
await setGlobalStatusLine(template);
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
await setStatusLine(template, state.projectPath);
|
|
183
|
-
}
|
|
184
|
-
};
|
|
185
|
-
// Handle selection
|
|
186
|
-
list.on('select', async (_item, index) => {
|
|
187
|
-
const selected = listItems[index];
|
|
188
|
-
if (!selected || selected.isHeader)
|
|
189
|
-
return;
|
|
190
|
-
const scopeLabel = currentScope === 'global' ? '🌍 Global' : '📁 Project';
|
|
191
|
-
if (selected.isCustom) {
|
|
192
|
-
// Custom status line
|
|
193
|
-
const template = await showInput(state, `Custom Status Line (${scopeLabel})`, 'Enter template (use {model}, {cost}, etc.):', getCurrentStatusLine() || '');
|
|
194
|
-
if (template !== null) {
|
|
195
|
-
await saveStatusLine(template);
|
|
196
|
-
await showMessage(state, 'Saved', `Custom status line saved to ${scopeLabel}.\n\nRestart Claude Code to apply changes.`, 'success');
|
|
197
|
-
createStatusLineScreen(state, currentScope);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
else if (selected.preset) {
|
|
201
|
-
// Apply preset
|
|
202
|
-
await saveStatusLine(selected.preset.template);
|
|
203
|
-
await showMessage(state, 'Applied', `"${selected.preset.name}" applied to ${scopeLabel}.\n\nRestart Claude Code to apply changes.`, 'success');
|
|
204
|
-
createStatusLineScreen(state, currentScope);
|
|
205
|
-
}
|
|
206
|
-
});
|
|
207
|
-
// Toggle scope with P and G keys - disabled during search
|
|
208
|
-
state.screen.key(['p'], () => {
|
|
209
|
-
if (state.isSearching)
|
|
210
|
-
return;
|
|
211
|
-
if (currentScope !== 'project') {
|
|
212
|
-
createStatusLineScreen(state, 'project');
|
|
213
|
-
}
|
|
214
|
-
});
|
|
215
|
-
state.screen.key(['g'], () => {
|
|
216
|
-
if (state.isSearching)
|
|
217
|
-
return;
|
|
218
|
-
if (currentScope !== 'global') {
|
|
219
|
-
createStatusLineScreen(state, 'global');
|
|
220
|
-
}
|
|
221
|
-
});
|
|
222
|
-
// Reset to default - disabled during search
|
|
223
|
-
state.screen.key(['r'], async () => {
|
|
224
|
-
if (state.isSearching)
|
|
225
|
-
return;
|
|
226
|
-
const scopeLabel = currentScope === 'global' ? '🌍 Global' : '📁 Project';
|
|
227
|
-
await saveStatusLine('');
|
|
228
|
-
await showMessage(state, 'Reset', `${scopeLabel} status line has been cleared.`, 'success');
|
|
229
|
-
createStatusLineScreen(state, currentScope);
|
|
230
|
-
});
|
|
231
|
-
createFooter(state, '↑↓ Navigate │ Enter Apply │ P Project │ G Global │ r Reset │ Esc Back');
|
|
232
|
-
list.focus();
|
|
233
|
-
state.screen.render();
|
|
234
|
-
}
|
|
235
|
-
//# sourceMappingURL=statusline.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"statusline.js","sourceRoot":"","sources":["../../../src/ui/screens/statusline.ts"],"names":[],"mappings":"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"}
|