claude-scope 0.8.46 → 0.8.48
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/dist/claude-scope.cjs +201 -169
- package/package.json +1 -1
package/dist/claude-scope.cjs
CHANGED
|
@@ -4298,6 +4298,40 @@ var init_duration_widget = __esm({
|
|
|
4298
4298
|
}
|
|
4299
4299
|
});
|
|
4300
4300
|
|
|
4301
|
+
// src/widgets/empty-line-widget.ts
|
|
4302
|
+
var EmptyLineWidget;
|
|
4303
|
+
var init_empty_line_widget = __esm({
|
|
4304
|
+
"src/widgets/empty-line-widget.ts"() {
|
|
4305
|
+
"use strict";
|
|
4306
|
+
init_widget_types();
|
|
4307
|
+
init_stdin_data_widget();
|
|
4308
|
+
EmptyLineWidget = class extends StdinDataWidget {
|
|
4309
|
+
id = "empty-line";
|
|
4310
|
+
metadata = createWidgetMetadata(
|
|
4311
|
+
"Empty Line",
|
|
4312
|
+
"Empty line separator",
|
|
4313
|
+
"1.0.0",
|
|
4314
|
+
"claude-scope",
|
|
4315
|
+
5
|
|
4316
|
+
// Sixth line (0-indexed)
|
|
4317
|
+
);
|
|
4318
|
+
/**
|
|
4319
|
+
* All styles return the same value (Braille Pattern Blank).
|
|
4320
|
+
* This method exists for API consistency with other widgets.
|
|
4321
|
+
*/
|
|
4322
|
+
setStyle(_style) {
|
|
4323
|
+
}
|
|
4324
|
+
/**
|
|
4325
|
+
* Return Braille Pattern Blank to create a visible empty separator line.
|
|
4326
|
+
* U+2800 occupies cell width but appears blank, ensuring the line renders.
|
|
4327
|
+
*/
|
|
4328
|
+
renderWithData(_data, _context) {
|
|
4329
|
+
return "\u2800";
|
|
4330
|
+
}
|
|
4331
|
+
};
|
|
4332
|
+
}
|
|
4333
|
+
});
|
|
4334
|
+
|
|
4301
4335
|
// src/providers/git-provider.ts
|
|
4302
4336
|
function createGit(cwd) {
|
|
4303
4337
|
return new NativeGit(cwd);
|
|
@@ -4866,6 +4900,128 @@ var init_model_widget = __esm({
|
|
|
4866
4900
|
}
|
|
4867
4901
|
});
|
|
4868
4902
|
|
|
4903
|
+
// src/widgets/sysmon/styles.ts
|
|
4904
|
+
function formatGB(gb) {
|
|
4905
|
+
if (gb < 1) {
|
|
4906
|
+
return `${Math.round(gb * 1024)}MB`;
|
|
4907
|
+
}
|
|
4908
|
+
const formatted = gb.toFixed(1);
|
|
4909
|
+
return formatted.endsWith(".0") ? `${formatted.slice(0, -2)}GB` : `${formatted}GB`;
|
|
4910
|
+
}
|
|
4911
|
+
function formatMB(mb) {
|
|
4912
|
+
if (mb < 0.1) {
|
|
4913
|
+
const kb = mb * 1024;
|
|
4914
|
+
const formatted2 = kb.toFixed(1);
|
|
4915
|
+
return formatted2.endsWith(".0") ? `${formatted2.slice(0, -2)}KB` : `${formatted2}KB`;
|
|
4916
|
+
}
|
|
4917
|
+
const formatted = mb.toFixed(1);
|
|
4918
|
+
return formatted.endsWith(".0") ? `${formatted.slice(0, -2)}MB` : `${formatted}MB`;
|
|
4919
|
+
}
|
|
4920
|
+
var sysmonStyles;
|
|
4921
|
+
var init_styles13 = __esm({
|
|
4922
|
+
"src/widgets/sysmon/styles.ts"() {
|
|
4923
|
+
"use strict";
|
|
4924
|
+
init_colors();
|
|
4925
|
+
sysmonStyles = {
|
|
4926
|
+
balanced: (data, colors2) => {
|
|
4927
|
+
const cpu = colors2 ? colorize(`CPU ${data.cpu.percent}%`, colors2.cpu) : `CPU ${data.cpu.percent}%`;
|
|
4928
|
+
const ram = colors2 ? colorize(`RAM ${formatGB(data.memory.used)}`, colors2.ram) : `RAM ${formatGB(data.memory.used)}`;
|
|
4929
|
+
const disk = colors2 ? colorize(`Disk ${data.disk.percent}%`, colors2.disk) : `Disk ${data.disk.percent}%`;
|
|
4930
|
+
const net = colors2 ? colorize(`Net \u2193${formatMB(data.network.rxSec)}/s`, colors2.network) : `Net \u2193${formatMB(data.network.rxSec)}/s`;
|
|
4931
|
+
const sep = colors2 ? colorize("|", colors2.separator) : "|";
|
|
4932
|
+
return `${cpu} ${sep} ${ram} ${sep} ${disk} ${sep} ${net}`;
|
|
4933
|
+
},
|
|
4934
|
+
compact: (data, colors2) => {
|
|
4935
|
+
const cpu = colors2 ? colorize(`CPU${data.cpu.percent}%`, colors2.cpu) : `CPU${data.cpu.percent}%`;
|
|
4936
|
+
const ram = colors2 ? colorize(`RAM${formatGB(data.memory.used)}`, colors2.ram) : `RAM${formatGB(data.memory.used)}`;
|
|
4937
|
+
const disk = colors2 ? colorize(`D${data.disk.percent}%`, colors2.disk) : `D${data.disk.percent}%`;
|
|
4938
|
+
const net = colors2 ? colorize(`\u2193${formatMB(data.network.rxSec)}/s`, colors2.network) : `\u2193${formatMB(data.network.rxSec)}/s`;
|
|
4939
|
+
return `${cpu} ${ram} ${disk} ${net}`;
|
|
4940
|
+
},
|
|
4941
|
+
playful: (data, colors2) => {
|
|
4942
|
+
const cpu = colors2 ? colorize(`${data.cpu.percent}%`, colors2.cpu) : `${data.cpu.percent}%`;
|
|
4943
|
+
const ram = colors2 ? colorize(formatGB(data.memory.used), colors2.ram) : formatGB(data.memory.used);
|
|
4944
|
+
const disk = colors2 ? colorize(`${data.disk.percent}%`, colors2.disk) : `${data.disk.percent}%`;
|
|
4945
|
+
const net = colors2 ? colorize(`\u2193${formatMB(data.network.rxSec)}/s`, colors2.network) : `\u2193${formatMB(data.network.rxSec)}/s`;
|
|
4946
|
+
const sep = colors2 ? colorize("|", colors2.separator) : "|";
|
|
4947
|
+
return `\u{1F5A5}\uFE0F ${cpu} ${sep} \u{1F4BE} ${ram} ${sep} \u{1F4BF} ${disk} ${sep} \u{1F310} ${net}`;
|
|
4948
|
+
},
|
|
4949
|
+
verbose: (data, colors2) => {
|
|
4950
|
+
const cpu = colors2 ? colorize(`CPU: ${data.cpu.percent}%`, colors2.cpu) : `CPU: ${data.cpu.percent}%`;
|
|
4951
|
+
const ram = colors2 ? colorize(`RAM: ${formatGB(data.memory.used)}/${formatGB(data.memory.total)}`, colors2.ram) : `RAM: ${formatGB(data.memory.used)}/${formatGB(data.memory.total)}`;
|
|
4952
|
+
const disk = colors2 ? colorize(`Disk: ${formatGB(data.disk.used)}/${formatGB(data.disk.total)}`, colors2.disk) : `Disk: ${formatGB(data.disk.used)}/${formatGB(data.disk.total)}`;
|
|
4953
|
+
const net = colors2 ? colorize(
|
|
4954
|
+
`Net: \u2193${formatMB(data.network.rxSec)}/s \u2191${formatMB(data.network.txSec)}/s`,
|
|
4955
|
+
colors2.network
|
|
4956
|
+
) : `Net: \u2193${formatMB(data.network.rxSec)}/s \u2191${formatMB(data.network.txSec)}/s`;
|
|
4957
|
+
return `${cpu} | ${ram} | ${disk} | ${net}`;
|
|
4958
|
+
}
|
|
4959
|
+
};
|
|
4960
|
+
}
|
|
4961
|
+
});
|
|
4962
|
+
|
|
4963
|
+
// src/widgets/sysmon-widget.ts
|
|
4964
|
+
var SysmonWidget;
|
|
4965
|
+
var init_sysmon_widget = __esm({
|
|
4966
|
+
"src/widgets/sysmon-widget.ts"() {
|
|
4967
|
+
"use strict";
|
|
4968
|
+
init_style_types();
|
|
4969
|
+
init_widget_types();
|
|
4970
|
+
init_theme();
|
|
4971
|
+
init_styles13();
|
|
4972
|
+
SysmonWidget = class {
|
|
4973
|
+
id = "sysmon";
|
|
4974
|
+
metadata = createWidgetMetadata(
|
|
4975
|
+
"Sysmon",
|
|
4976
|
+
"System monitoring: CPU, RAM, Disk, Network metrics",
|
|
4977
|
+
"1.0.0",
|
|
4978
|
+
"claude-scope",
|
|
4979
|
+
2
|
|
4980
|
+
// Default to line 2
|
|
4981
|
+
);
|
|
4982
|
+
colors;
|
|
4983
|
+
provider;
|
|
4984
|
+
styleFn = sysmonStyles.balanced;
|
|
4985
|
+
enabled = true;
|
|
4986
|
+
_lineOverride;
|
|
4987
|
+
constructor(colors2, provider) {
|
|
4988
|
+
this.colors = colors2 ?? DEFAULT_THEME;
|
|
4989
|
+
this.provider = provider ?? null;
|
|
4990
|
+
}
|
|
4991
|
+
async initialize(context) {
|
|
4992
|
+
this.enabled = context.config?.enabled !== false;
|
|
4993
|
+
}
|
|
4994
|
+
async render(_context) {
|
|
4995
|
+
if (!this.provider || !this.isEnabled()) {
|
|
4996
|
+
return null;
|
|
4997
|
+
}
|
|
4998
|
+
const metrics = await this.provider.getMetrics();
|
|
4999
|
+
if (!metrics) {
|
|
5000
|
+
return null;
|
|
5001
|
+
}
|
|
5002
|
+
return this.styleFn(metrics, this.colors.sysmon);
|
|
5003
|
+
}
|
|
5004
|
+
async update(_data) {
|
|
5005
|
+
}
|
|
5006
|
+
isEnabled() {
|
|
5007
|
+
return this.enabled && this.provider !== null;
|
|
5008
|
+
}
|
|
5009
|
+
setStyle(style = DEFAULT_WIDGET_STYLE) {
|
|
5010
|
+
const fn = sysmonStyles[style];
|
|
5011
|
+
if (fn) {
|
|
5012
|
+
this.styleFn = fn;
|
|
5013
|
+
}
|
|
5014
|
+
}
|
|
5015
|
+
setLine(line) {
|
|
5016
|
+
this._lineOverride = line;
|
|
5017
|
+
}
|
|
5018
|
+
getLine() {
|
|
5019
|
+
return this._lineOverride ?? this.metadata.line ?? 0;
|
|
5020
|
+
}
|
|
5021
|
+
};
|
|
5022
|
+
}
|
|
5023
|
+
});
|
|
5024
|
+
|
|
4869
5025
|
// src/cli/commands/quick-config/demo-data.ts
|
|
4870
5026
|
function createDemoData() {
|
|
4871
5027
|
return {
|
|
@@ -4907,6 +5063,21 @@ function createDemoData() {
|
|
|
4907
5063
|
}
|
|
4908
5064
|
};
|
|
4909
5065
|
}
|
|
5066
|
+
function createMockSystemProvider() {
|
|
5067
|
+
const demoMetrics = {
|
|
5068
|
+
cpu: { percent: 42 },
|
|
5069
|
+
memory: { used: 8.2, total: 16, percent: 51 },
|
|
5070
|
+
disk: { used: 120, total: 256, percent: 47 },
|
|
5071
|
+
network: { rxSec: 2.4, txSec: 0.8 }
|
|
5072
|
+
};
|
|
5073
|
+
return {
|
|
5074
|
+
getMetrics: async () => demoMetrics,
|
|
5075
|
+
startUpdate: () => {
|
|
5076
|
+
},
|
|
5077
|
+
stopUpdate: () => {
|
|
5078
|
+
}
|
|
5079
|
+
};
|
|
5080
|
+
}
|
|
4910
5081
|
var init_demo_data = __esm({
|
|
4911
5082
|
"src/cli/commands/quick-config/demo-data.ts"() {
|
|
4912
5083
|
"use strict";
|
|
@@ -4979,6 +5150,14 @@ async function registerWidgetsFromConfig(registry, config, style, themeName) {
|
|
|
4979
5150
|
const w = new DockerWidget(themeColors);
|
|
4980
5151
|
w.setStyle(s);
|
|
4981
5152
|
return w;
|
|
5153
|
+
},
|
|
5154
|
+
sysmon: (s) => {
|
|
5155
|
+
const w = new SysmonWidget(themeColors, createMockSystemProvider());
|
|
5156
|
+
w.setStyle(s);
|
|
5157
|
+
return w;
|
|
5158
|
+
},
|
|
5159
|
+
"empty-line": () => {
|
|
5160
|
+
return new EmptyLineWidget();
|
|
4982
5161
|
}
|
|
4983
5162
|
};
|
|
4984
5163
|
for (const [lineNum, widgets] of Object.entries(config.lines)) {
|
|
@@ -5029,10 +5208,12 @@ var init_layout_preview = __esm({
|
|
|
5029
5208
|
init_dev_server_widget();
|
|
5030
5209
|
init_docker_widget();
|
|
5031
5210
|
init_duration_widget();
|
|
5211
|
+
init_empty_line_widget();
|
|
5032
5212
|
init_git_tag_widget();
|
|
5033
5213
|
init_git_widget();
|
|
5034
5214
|
init_lines_widget();
|
|
5035
5215
|
init_model_widget();
|
|
5216
|
+
init_sysmon_widget();
|
|
5036
5217
|
init_demo_data();
|
|
5037
5218
|
}
|
|
5038
5219
|
});
|
|
@@ -7823,24 +8004,7 @@ __export(select_with_preview_exports, {
|
|
|
7823
8004
|
async function generatePreviews(choices, style, themeName) {
|
|
7824
8005
|
const previews = [];
|
|
7825
8006
|
const isStyleSelection = choices.length >= 3 && choices.every((c) => isQuickConfigStyle(c.value));
|
|
7826
|
-
const availableThemes =
|
|
7827
|
-
"catppuccin-mocha",
|
|
7828
|
-
// AVAILABLE_THEMES[0]
|
|
7829
|
-
"cyberpunk-neon",
|
|
7830
|
-
// AVAILABLE_THEMES[1]
|
|
7831
|
-
"dracula",
|
|
7832
|
-
// AVAILABLE_THEMES[2]
|
|
7833
|
-
"dusty-sage",
|
|
7834
|
-
// AVAILABLE_THEMES[3]
|
|
7835
|
-
"github-dark-dimmed",
|
|
7836
|
-
// AVAILABLE_THEMES[4]
|
|
7837
|
-
"gray",
|
|
7838
|
-
// AVAILABLE_THEMES[5] - was missing!
|
|
7839
|
-
"monokai",
|
|
7840
|
-
// AVAILABLE_THEMES[6]
|
|
7841
|
-
"muted-gray"
|
|
7842
|
-
// AVAILABLE_THEMES[7] - was missing!
|
|
7843
|
-
];
|
|
8007
|
+
const availableThemes = AVAILABLE_THEMES.slice(0, 8).map((t) => t.name);
|
|
7844
8008
|
const isThemeSelection = choices.some((c) => isThemeName(c.value, availableThemes));
|
|
7845
8009
|
for (const choice of choices) {
|
|
7846
8010
|
try {
|
|
@@ -7925,6 +8089,7 @@ var init_select_with_preview = __esm({
|
|
|
7925
8089
|
"src/cli/commands/quick-config/select-with-preview.ts"() {
|
|
7926
8090
|
"use strict";
|
|
7927
8091
|
init_esm3();
|
|
8092
|
+
init_theme();
|
|
7928
8093
|
init_layout_preview();
|
|
7929
8094
|
selectWithPreview = createPrompt(selectWithPreviewImpl);
|
|
7930
8095
|
}
|
|
@@ -25974,6 +26139,7 @@ function generateBalancedLayout(style, themeName) {
|
|
|
25974
26139
|
return {
|
|
25975
26140
|
version: "1.0.0",
|
|
25976
26141
|
$aiDocs: "https://github.com/YuriNachos/claude-scope/blob/main/AI-CONFIG-GUIDE.md",
|
|
26142
|
+
theme: themeName,
|
|
25977
26143
|
lines: {
|
|
25978
26144
|
"0": [
|
|
25979
26145
|
{
|
|
@@ -26016,7 +26182,7 @@ function generateBalancedLayout(style, themeName) {
|
|
|
26016
26182
|
{
|
|
26017
26183
|
id: "git-tag",
|
|
26018
26184
|
style,
|
|
26019
|
-
colors: {
|
|
26185
|
+
colors: { branch: theme.git.branch, changes: theme.git.changes }
|
|
26020
26186
|
},
|
|
26021
26187
|
{
|
|
26022
26188
|
id: "cache-metrics",
|
|
@@ -26032,7 +26198,7 @@ function generateBalancedLayout(style, themeName) {
|
|
|
26032
26198
|
{
|
|
26033
26199
|
id: "config-count",
|
|
26034
26200
|
style,
|
|
26035
|
-
colors: {
|
|
26201
|
+
colors: { label: theme.configCount.label, separator: theme.configCount.separator }
|
|
26036
26202
|
}
|
|
26037
26203
|
]
|
|
26038
26204
|
}
|
|
@@ -26043,6 +26209,7 @@ function generateCompactLayout(style, themeName) {
|
|
|
26043
26209
|
return {
|
|
26044
26210
|
version: "1.0.0",
|
|
26045
26211
|
$aiDocs: "https://github.com/YuriNachos/claude-scope/blob/main/AI-CONFIG-GUIDE.md",
|
|
26212
|
+
theme: themeName,
|
|
26046
26213
|
lines: {
|
|
26047
26214
|
"0": [
|
|
26048
26215
|
{
|
|
@@ -26084,6 +26251,7 @@ function generateRichLayout(style, themeName) {
|
|
|
26084
26251
|
return {
|
|
26085
26252
|
version: "1.0.0",
|
|
26086
26253
|
$aiDocs: "https://github.com/YuriNachos/claude-scope/blob/main/AI-CONFIG-GUIDE.md",
|
|
26254
|
+
theme: themeName,
|
|
26087
26255
|
lines: {
|
|
26088
26256
|
"0": [
|
|
26089
26257
|
{
|
|
@@ -26126,7 +26294,7 @@ function generateRichLayout(style, themeName) {
|
|
|
26126
26294
|
{
|
|
26127
26295
|
id: "git-tag",
|
|
26128
26296
|
style,
|
|
26129
|
-
colors: {
|
|
26297
|
+
colors: { branch: theme.git.branch, changes: theme.git.changes }
|
|
26130
26298
|
},
|
|
26131
26299
|
{
|
|
26132
26300
|
id: "cache-metrics",
|
|
@@ -26142,7 +26310,7 @@ function generateRichLayout(style, themeName) {
|
|
|
26142
26310
|
{
|
|
26143
26311
|
id: "config-count",
|
|
26144
26312
|
style,
|
|
26145
|
-
colors: {
|
|
26313
|
+
colors: { label: theme.configCount.label, separator: theme.configCount.separator }
|
|
26146
26314
|
}
|
|
26147
26315
|
],
|
|
26148
26316
|
"2": [
|
|
@@ -26258,7 +26426,7 @@ async function selectLayout() {
|
|
|
26258
26426
|
},
|
|
26259
26427
|
{
|
|
26260
26428
|
name: "Rich",
|
|
26261
|
-
description: "
|
|
26429
|
+
description: "5 lines: Core metrics + Git/Cache + Dev/Docker/Tools + Sysmon",
|
|
26262
26430
|
value: "rich",
|
|
26263
26431
|
getConfig: (s, t) => generateRichLayout(s, t)
|
|
26264
26432
|
}
|
|
@@ -26497,119 +26665,7 @@ init_git_tag_widget();
|
|
|
26497
26665
|
init_git_widget();
|
|
26498
26666
|
init_lines_widget();
|
|
26499
26667
|
init_model_widget();
|
|
26500
|
-
|
|
26501
|
-
// src/widgets/sysmon-widget.ts
|
|
26502
|
-
init_style_types();
|
|
26503
|
-
init_widget_types();
|
|
26504
|
-
init_theme();
|
|
26505
|
-
|
|
26506
|
-
// src/widgets/sysmon/styles.ts
|
|
26507
|
-
init_colors();
|
|
26508
|
-
function formatGB(gb) {
|
|
26509
|
-
if (gb < 1) {
|
|
26510
|
-
return `${Math.round(gb * 1024)}MB`;
|
|
26511
|
-
}
|
|
26512
|
-
const formatted = gb.toFixed(1);
|
|
26513
|
-
return formatted.endsWith(".0") ? `${formatted.slice(0, -2)}GB` : `${formatted}GB`;
|
|
26514
|
-
}
|
|
26515
|
-
function formatMB(mb) {
|
|
26516
|
-
if (mb < 0.1) {
|
|
26517
|
-
const kb = mb * 1024;
|
|
26518
|
-
const formatted2 = kb.toFixed(1);
|
|
26519
|
-
return formatted2.endsWith(".0") ? `${formatted2.slice(0, -2)}KB` : `${formatted2}KB`;
|
|
26520
|
-
}
|
|
26521
|
-
const formatted = mb.toFixed(1);
|
|
26522
|
-
return formatted.endsWith(".0") ? `${formatted.slice(0, -2)}MB` : `${formatted}MB`;
|
|
26523
|
-
}
|
|
26524
|
-
var sysmonStyles = {
|
|
26525
|
-
balanced: (data, colors2) => {
|
|
26526
|
-
const cpu = colors2 ? colorize(`CPU ${data.cpu.percent}%`, colors2.cpu) : `CPU ${data.cpu.percent}%`;
|
|
26527
|
-
const ram = colors2 ? colorize(`RAM ${formatGB(data.memory.used)}`, colors2.ram) : `RAM ${formatGB(data.memory.used)}`;
|
|
26528
|
-
const disk = colors2 ? colorize(`Disk ${data.disk.percent}%`, colors2.disk) : `Disk ${data.disk.percent}%`;
|
|
26529
|
-
const net = colors2 ? colorize(`Net \u2193${formatMB(data.network.rxSec)}/s`, colors2.network) : `Net \u2193${formatMB(data.network.rxSec)}/s`;
|
|
26530
|
-
const sep = colors2 ? colorize("|", colors2.separator) : "|";
|
|
26531
|
-
return `${cpu} ${sep} ${ram} ${sep} ${disk} ${sep} ${net}`;
|
|
26532
|
-
},
|
|
26533
|
-
compact: (data, colors2) => {
|
|
26534
|
-
const cpu = colors2 ? colorize(`CPU${data.cpu.percent}%`, colors2.cpu) : `CPU${data.cpu.percent}%`;
|
|
26535
|
-
const ram = colors2 ? colorize(`RAM${formatGB(data.memory.used)}`, colors2.ram) : `RAM${formatGB(data.memory.used)}`;
|
|
26536
|
-
const disk = colors2 ? colorize(`D${data.disk.percent}%`, colors2.disk) : `D${data.disk.percent}%`;
|
|
26537
|
-
const net = colors2 ? colorize(`\u2193${formatMB(data.network.rxSec)}/s`, colors2.network) : `\u2193${formatMB(data.network.rxSec)}/s`;
|
|
26538
|
-
return `${cpu} ${ram} ${disk} ${net}`;
|
|
26539
|
-
},
|
|
26540
|
-
playful: (data, colors2) => {
|
|
26541
|
-
const cpu = colors2 ? colorize(`${data.cpu.percent}%`, colors2.cpu) : `${data.cpu.percent}%`;
|
|
26542
|
-
const ram = colors2 ? colorize(formatGB(data.memory.used), colors2.ram) : formatGB(data.memory.used);
|
|
26543
|
-
const disk = colors2 ? colorize(`${data.disk.percent}%`, colors2.disk) : `${data.disk.percent}%`;
|
|
26544
|
-
const net = colors2 ? colorize(`\u2193${formatMB(data.network.rxSec)}/s`, colors2.network) : `\u2193${formatMB(data.network.rxSec)}/s`;
|
|
26545
|
-
const sep = colors2 ? colorize("|", colors2.separator) : "|";
|
|
26546
|
-
return `\u{1F5A5}\uFE0F ${cpu} ${sep} \u{1F4BE} ${ram} ${sep} \u{1F4BF} ${disk} ${sep} \u{1F310} ${net}`;
|
|
26547
|
-
},
|
|
26548
|
-
verbose: (data, colors2) => {
|
|
26549
|
-
const cpu = colors2 ? colorize(`CPU: ${data.cpu.percent}%`, colors2.cpu) : `CPU: ${data.cpu.percent}%`;
|
|
26550
|
-
const ram = colors2 ? colorize(`RAM: ${formatGB(data.memory.used)}/${formatGB(data.memory.total)}`, colors2.ram) : `RAM: ${formatGB(data.memory.used)}/${formatGB(data.memory.total)}`;
|
|
26551
|
-
const disk = colors2 ? colorize(`Disk: ${formatGB(data.disk.used)}/${formatGB(data.disk.total)}`, colors2.disk) : `Disk: ${formatGB(data.disk.used)}/${formatGB(data.disk.total)}`;
|
|
26552
|
-
const net = colors2 ? colorize(
|
|
26553
|
-
`Net: \u2193${formatMB(data.network.rxSec)}/s \u2191${formatMB(data.network.txSec)}/s`,
|
|
26554
|
-
colors2.network
|
|
26555
|
-
) : `Net: \u2193${formatMB(data.network.rxSec)}/s \u2191${formatMB(data.network.txSec)}/s`;
|
|
26556
|
-
return `${cpu} | ${ram} | ${disk} | ${net}`;
|
|
26557
|
-
}
|
|
26558
|
-
};
|
|
26559
|
-
|
|
26560
|
-
// src/widgets/sysmon-widget.ts
|
|
26561
|
-
var SysmonWidget = class {
|
|
26562
|
-
id = "sysmon";
|
|
26563
|
-
metadata = createWidgetMetadata(
|
|
26564
|
-
"Sysmon",
|
|
26565
|
-
"System monitoring: CPU, RAM, Disk, Network metrics",
|
|
26566
|
-
"1.0.0",
|
|
26567
|
-
"claude-scope",
|
|
26568
|
-
2
|
|
26569
|
-
// Default to line 2
|
|
26570
|
-
);
|
|
26571
|
-
colors;
|
|
26572
|
-
provider;
|
|
26573
|
-
styleFn = sysmonStyles.balanced;
|
|
26574
|
-
enabled = true;
|
|
26575
|
-
_lineOverride;
|
|
26576
|
-
constructor(colors2, provider) {
|
|
26577
|
-
this.colors = colors2 ?? DEFAULT_THEME;
|
|
26578
|
-
this.provider = provider ?? null;
|
|
26579
|
-
}
|
|
26580
|
-
async initialize(context) {
|
|
26581
|
-
this.enabled = context.config?.enabled !== false;
|
|
26582
|
-
}
|
|
26583
|
-
async render(_context) {
|
|
26584
|
-
if (!this.provider || !this.isEnabled()) {
|
|
26585
|
-
return null;
|
|
26586
|
-
}
|
|
26587
|
-
const metrics = await this.provider.getMetrics();
|
|
26588
|
-
if (!metrics) {
|
|
26589
|
-
return null;
|
|
26590
|
-
}
|
|
26591
|
-
return this.styleFn(metrics, this.colors.sysmon);
|
|
26592
|
-
}
|
|
26593
|
-
async update(_data) {
|
|
26594
|
-
}
|
|
26595
|
-
isEnabled() {
|
|
26596
|
-
return this.enabled && this.provider !== null;
|
|
26597
|
-
}
|
|
26598
|
-
setStyle(style = DEFAULT_WIDGET_STYLE) {
|
|
26599
|
-
const fn = sysmonStyles[style];
|
|
26600
|
-
if (fn) {
|
|
26601
|
-
this.styleFn = fn;
|
|
26602
|
-
}
|
|
26603
|
-
}
|
|
26604
|
-
setLine(line) {
|
|
26605
|
-
this._lineOverride = line;
|
|
26606
|
-
}
|
|
26607
|
-
getLine() {
|
|
26608
|
-
return this._lineOverride ?? this.metadata.line ?? 0;
|
|
26609
|
-
}
|
|
26610
|
-
};
|
|
26611
|
-
|
|
26612
|
-
// src/cli/commands/quick-config/preview.ts
|
|
26668
|
+
init_sysmon_widget();
|
|
26613
26669
|
init_demo_data();
|
|
26614
26670
|
|
|
26615
26671
|
// src/cli/commands/quick-config/index.ts
|
|
@@ -26662,7 +26718,7 @@ async function ensureDefaultConfig() {
|
|
|
26662
26718
|
if (!(0, import_node_fs3.existsSync)(configDir)) {
|
|
26663
26719
|
(0, import_node_fs3.mkdirSync)(configDir, { recursive: true });
|
|
26664
26720
|
}
|
|
26665
|
-
const defaultConfig = generateRichLayout("balanced", "
|
|
26721
|
+
const defaultConfig = generateRichLayout("balanced", "monokai");
|
|
26666
26722
|
(0, import_node_fs3.writeFileSync)(configPath, JSON.stringify(defaultConfig, null, 2), "utf-8");
|
|
26667
26723
|
}
|
|
26668
26724
|
|
|
@@ -26686,7 +26742,8 @@ async function loadWidgetConfig() {
|
|
|
26686
26742
|
return null;
|
|
26687
26743
|
}
|
|
26688
26744
|
return {
|
|
26689
|
-
lines: config.lines
|
|
26745
|
+
lines: config.lines,
|
|
26746
|
+
theme: config.theme
|
|
26690
26747
|
};
|
|
26691
26748
|
} catch (error) {
|
|
26692
26749
|
const errorMsg = error instanceof Error ? error.message : "Unknown error";
|
|
@@ -26905,36 +26962,7 @@ init_docker_widget();
|
|
|
26905
26962
|
|
|
26906
26963
|
// src/core/widget-factory.ts
|
|
26907
26964
|
init_duration_widget();
|
|
26908
|
-
|
|
26909
|
-
// src/widgets/empty-line-widget.ts
|
|
26910
|
-
init_widget_types();
|
|
26911
|
-
init_stdin_data_widget();
|
|
26912
|
-
var EmptyLineWidget = class extends StdinDataWidget {
|
|
26913
|
-
id = "empty-line";
|
|
26914
|
-
metadata = createWidgetMetadata(
|
|
26915
|
-
"Empty Line",
|
|
26916
|
-
"Empty line separator",
|
|
26917
|
-
"1.0.0",
|
|
26918
|
-
"claude-scope",
|
|
26919
|
-
5
|
|
26920
|
-
// Sixth line (0-indexed)
|
|
26921
|
-
);
|
|
26922
|
-
/**
|
|
26923
|
-
* All styles return the same value (Braille Pattern Blank).
|
|
26924
|
-
* This method exists for API consistency with other widgets.
|
|
26925
|
-
*/
|
|
26926
|
-
setStyle(_style) {
|
|
26927
|
-
}
|
|
26928
|
-
/**
|
|
26929
|
-
* Return Braille Pattern Blank to create a visible empty separator line.
|
|
26930
|
-
* U+2800 occupies cell width but appears blank, ensuring the line renders.
|
|
26931
|
-
*/
|
|
26932
|
-
renderWithData(_data, _context) {
|
|
26933
|
-
return "\u2800";
|
|
26934
|
-
}
|
|
26935
|
-
};
|
|
26936
|
-
|
|
26937
|
-
// src/core/widget-factory.ts
|
|
26965
|
+
init_empty_line_widget();
|
|
26938
26966
|
init_git_tag_widget();
|
|
26939
26967
|
init_git_widget();
|
|
26940
26968
|
init_lines_widget();
|
|
@@ -27586,6 +27614,7 @@ var PokerWidget = class extends StdinDataWidget {
|
|
|
27586
27614
|
};
|
|
27587
27615
|
|
|
27588
27616
|
// src/core/widget-factory.ts
|
|
27617
|
+
init_sysmon_widget();
|
|
27589
27618
|
var WidgetFactory = class {
|
|
27590
27619
|
transcriptProvider;
|
|
27591
27620
|
systemProvider;
|
|
@@ -27845,6 +27874,7 @@ var StdinProvider = class {
|
|
|
27845
27874
|
};
|
|
27846
27875
|
|
|
27847
27876
|
// src/index.ts
|
|
27877
|
+
init_theme();
|
|
27848
27878
|
async function readStdin() {
|
|
27849
27879
|
const chunks = [];
|
|
27850
27880
|
for await (const chunk of process.stdin) {
|
|
@@ -27876,7 +27906,9 @@ async function main() {
|
|
|
27876
27906
|
const stdinData = await provider.parse(stdin);
|
|
27877
27907
|
const registry = new WidgetRegistry();
|
|
27878
27908
|
const widgetConfig = await loadWidgetConfig();
|
|
27879
|
-
const
|
|
27909
|
+
const themeName = widgetConfig?.theme ?? "monokai";
|
|
27910
|
+
const themeColors = getThemeByName(themeName).colors;
|
|
27911
|
+
const factory = new WidgetFactory(themeColors);
|
|
27880
27912
|
if (widgetConfig) {
|
|
27881
27913
|
for (const [lineNum, widgets] of Object.entries(widgetConfig.lines)) {
|
|
27882
27914
|
for (const widgetConfigItem of widgets) {
|