claude-scope 0.8.48 → 0.9.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 (3) hide show
  1. package/README.md +137 -177
  2. package/dist/claude-scope.cjs +749 -507
  3. package/package.json +1 -1
@@ -152,6 +152,10 @@ function createThemeColors(params) {
152
152
  configCount: {
153
153
  label: params.configCountLabel ?? semantic.info,
154
154
  separator: params.configCountSeparator ?? base.muted
155
+ },
156
+ cwd: {
157
+ name: params.cwdName ?? params.branch,
158
+ separator: params.cwdSeparator ?? params.duration
155
159
  }
156
160
  };
157
161
  }
@@ -1992,17 +1996,17 @@ var init_stdin_data_widget = __esm({
1992
1996
  });
1993
1997
 
1994
1998
  // src/widgets/active-tools/styles.ts
1995
- function truncatePath(path2) {
1996
- if (path2.length <= 30) {
1997
- return path2;
1999
+ function truncatePath(path3) {
2000
+ if (path3.length <= 30) {
2001
+ return path3;
1998
2002
  }
1999
- const parts = path2.split("/");
2003
+ const parts = path3.split("/");
2000
2004
  return ".../" + parts[parts.length - 1];
2001
2005
  }
2002
- function formatTool(name, target, colors2) {
2003
- const nameStr = colorize(name, colors2.tools.name);
2006
+ function formatTool(name, target, colors3) {
2007
+ const nameStr = colorize(name, colors3.tools.name);
2004
2008
  if (target) {
2005
- const targetStr = colorize(": " + truncatePath(target), colors2.tools.target);
2009
+ const targetStr = colorize(": " + truncatePath(target), colors3.tools.target);
2006
2010
  return nameStr + targetStr;
2007
2011
  }
2008
2012
  return nameStr;
@@ -2100,6 +2104,10 @@ function getDefaultColors() {
2100
2104
  configCount: {
2101
2105
  label: "\x1B[36m",
2102
2106
  separator: "\x1B[90m"
2107
+ },
2108
+ cwd: {
2109
+ name: "\x1B[36m",
2110
+ separator: "\x1B[90m"
2103
2111
  }
2104
2112
  };
2105
2113
  }
@@ -2115,9 +2123,9 @@ var init_styles = __esm({
2115
2123
  * - Only completed: "Tools: 6"
2116
2124
  * - No symbols, just text format
2117
2125
  */
2118
- balanced: (data, colors2) => {
2126
+ balanced: (data, colors3) => {
2119
2127
  const parts = [];
2120
- const c = colors2 ?? getDefaultColors();
2128
+ const c = colors3 ?? getDefaultColors();
2121
2129
  const allToolNames = /* @__PURE__ */ new Set();
2122
2130
  for (const tool of data.running) {
2123
2131
  allToolNames.add(tool.name);
@@ -2158,9 +2166,9 @@ var init_styles = __esm({
2158
2166
  /**
2159
2167
  * compact: [ToolName] format for all tools
2160
2168
  */
2161
- compact: (data, colors2) => {
2169
+ compact: (data, colors3) => {
2162
2170
  const parts = [];
2163
- const c = colors2 ?? getDefaultColors();
2171
+ const c = colors3 ?? getDefaultColors();
2164
2172
  for (const tool of data.running) {
2165
2173
  parts.push("[" + colorize(tool.name, c.tools.name) + "]");
2166
2174
  }
@@ -2175,19 +2183,19 @@ var init_styles = __esm({
2175
2183
  /**
2176
2184
  * minimal: Same as compact
2177
2185
  */
2178
- minimal: (data, colors2) => {
2186
+ minimal: (data, colors3) => {
2179
2187
  const compactStyle = activeToolsStyles.compact;
2180
2188
  if (!compactStyle) return "";
2181
- return compactStyle(data, colors2);
2189
+ return compactStyle(data, colors3);
2182
2190
  },
2183
2191
  /**
2184
2192
  * playful: Emojis (📖✏️✨🔄🔍📁) with tool counts (like balanced but more fun)
2185
2193
  * - Shows running + completed counts like balanced style
2186
2194
  * - Uses emojis instead of text labels for a more playful look
2187
2195
  */
2188
- playful: (data, colors2) => {
2196
+ playful: (data, colors3) => {
2189
2197
  const parts = [];
2190
- const c = colors2 ?? getDefaultColors();
2198
+ const c = colors3 ?? getDefaultColors();
2191
2199
  const emojis = {
2192
2200
  Read: "\u{1F4D6}",
2193
2201
  Write: "\u270F\uFE0F",
@@ -2237,9 +2245,9 @@ var init_styles = __esm({
2237
2245
  /**
2238
2246
  * verbose: Full text labels "Running:" and "Completed:"
2239
2247
  */
2240
- verbose: (data, colors2) => {
2248
+ verbose: (data, colors3) => {
2241
2249
  const parts = [];
2242
- const c = colors2 ?? getDefaultColors();
2250
+ const c = colors3 ?? getDefaultColors();
2243
2251
  for (const tool of data.running) {
2244
2252
  const label = colorize("Running:", c.tools.running);
2245
2253
  parts.push(label + " " + formatTool(tool.name, tool.target, c));
@@ -2258,8 +2266,8 @@ var init_styles = __esm({
2258
2266
  /**
2259
2267
  * labeled: "Tools:" prefix with all tools
2260
2268
  */
2261
- labeled: (data, colors2) => {
2262
- const c = colors2 ?? getDefaultColors();
2269
+ labeled: (data, colors3) => {
2270
+ const c = colors3 ?? getDefaultColors();
2263
2271
  const allTools = [
2264
2272
  ...data.running.map((t) => {
2265
2273
  const indicator = colorize("\u25D0", c.tools.running);
@@ -2274,15 +2282,15 @@ var init_styles = __esm({
2274
2282
  if (allTools.length === 0) {
2275
2283
  return "";
2276
2284
  }
2277
- const prefix = colors2 ? colorize("Tools:", c.semantic.info) : "Tools:";
2285
+ const prefix = colors3 ? colorize("Tools:", c.semantic.info) : "Tools:";
2278
2286
  return prefix + ": " + allTools.join(" | ");
2279
2287
  },
2280
2288
  /**
2281
2289
  * indicator: ● bullet indicators
2282
2290
  */
2283
- indicator: (data, colors2) => {
2291
+ indicator: (data, colors3) => {
2284
2292
  const parts = [];
2285
- const c = colors2 ?? getDefaultColors();
2293
+ const c = colors3 ?? getDefaultColors();
2286
2294
  for (const tool of data.running) {
2287
2295
  const bullet = colorize("\u25CF", c.semantic.info);
2288
2296
  parts.push(bullet + " " + formatTool(tool.name, tool.target, c));
@@ -2309,9 +2317,9 @@ var init_active_tools_widget = __esm({
2309
2317
  init_stdin_data_widget();
2310
2318
  init_styles();
2311
2319
  ActiveToolsWidget = class extends StdinDataWidget {
2312
- constructor(colors2, transcriptProvider) {
2320
+ constructor(colors3, transcriptProvider) {
2313
2321
  super();
2314
- this.colors = colors2;
2322
+ this.colors = colors3;
2315
2323
  this.transcriptProvider = transcriptProvider;
2316
2324
  }
2317
2325
  id = "active-tools";
@@ -2803,13 +2811,13 @@ function formatCurrency(usd) {
2803
2811
  }
2804
2812
  return `$${usd.toFixed(2)}`;
2805
2813
  }
2806
- function getCacheColor(hitRate, colors2) {
2814
+ function getCacheColor(hitRate, colors3) {
2807
2815
  if (hitRate > 70) {
2808
- return colors2.cache.high;
2816
+ return colors3.cache.high;
2809
2817
  } else if (hitRate >= 40) {
2810
- return colors2.cache.medium;
2818
+ return colors3.cache.medium;
2811
2819
  } else {
2812
- return colors2.cache.low;
2820
+ return colors3.cache.low;
2813
2821
  }
2814
2822
  }
2815
2823
  var cacheMetricsStyles;
@@ -2821,20 +2829,20 @@ var init_styles2 = __esm({
2821
2829
  /**
2822
2830
  * balanced: 35.0k cache with color coding
2823
2831
  */
2824
- balanced: (data, colors2) => {
2832
+ balanced: (data, colors3) => {
2825
2833
  const { cacheRead, hitRate } = data;
2826
- const color = colors2 ? getCacheColor(hitRate, colors2) : "";
2834
+ const color = colors3 ? getCacheColor(hitRate, colors3) : "";
2827
2835
  const amount = color ? `${color}${formatK(cacheRead)} cache` : `${formatK(cacheRead)} cache`;
2828
2836
  return amount;
2829
2837
  },
2830
2838
  /**
2831
2839
  * compact: Cache: 35.0k
2832
2840
  */
2833
- compact: (data, colors2) => {
2841
+ compact: (data, colors3) => {
2834
2842
  const { cacheRead } = data;
2835
2843
  const amount = formatK(cacheRead);
2836
- if (colors2) {
2837
- return `${colors2.cache.read}Cache: ${amount}`;
2844
+ if (colors3) {
2845
+ return `${colors3.cache.read}Cache: ${amount}`;
2838
2846
  }
2839
2847
  return `Cache: ${amount}`;
2840
2848
  },
@@ -2849,37 +2857,37 @@ var init_styles2 = __esm({
2849
2857
  /**
2850
2858
  * verbose: Cache: 35.0k | $0.03 saved
2851
2859
  */
2852
- verbose: (data, colors2) => {
2860
+ verbose: (data, colors3) => {
2853
2861
  const { cacheRead, savings } = data;
2854
2862
  const amount = formatK(cacheRead);
2855
- const saved = colors2 ? `${colors2.cache.write}${formatCurrency(savings)} saved` : `${formatCurrency(savings)} saved`;
2863
+ const saved = colors3 ? `${colors3.cache.write}${formatCurrency(savings)} saved` : `${formatCurrency(savings)} saved`;
2856
2864
  return `Cache: ${amount} | ${saved}`;
2857
2865
  },
2858
2866
  /**
2859
2867
  * labeled: Cache: 35.0k | $0.03 saved
2860
2868
  */
2861
- labeled: (data, colors2) => {
2869
+ labeled: (data, colors3) => {
2862
2870
  const { cacheRead, savings } = data;
2863
2871
  const amount = formatK(cacheRead);
2864
- const saved = colors2 ? `${colors2.cache.write}${formatCurrency(savings)} saved` : `${formatCurrency(savings)} saved`;
2872
+ const saved = colors3 ? `${colors3.cache.write}${formatCurrency(savings)} saved` : `${formatCurrency(savings)} saved`;
2865
2873
  return `Cache: ${amount} | ${saved}`;
2866
2874
  },
2867
2875
  /**
2868
2876
  * indicator: ● 35.0k cache with color coding
2869
2877
  */
2870
- indicator: (data, colors2) => {
2878
+ indicator: (data, colors3) => {
2871
2879
  const { cacheRead, hitRate } = data;
2872
- const color = colors2 ? getCacheColor(hitRate, colors2) : "";
2880
+ const color = colors3 ? getCacheColor(hitRate, colors3) : "";
2873
2881
  const amount = color ? `${color}${formatK(cacheRead)} cache` : `${formatK(cacheRead)} cache`;
2874
2882
  return `\u25CF ${amount}`;
2875
2883
  },
2876
2884
  /**
2877
2885
  * breakdown: Single-line with Hit: and Write: breakdown
2878
2886
  */
2879
- breakdown: (data, colors2) => {
2887
+ breakdown: (data, colors3) => {
2880
2888
  const { cacheRead, cacheWrite, savings } = data;
2881
2889
  const amount = formatK(cacheRead);
2882
- const saved = colors2 ? `${colors2.cache.write}${formatCurrency(savings)} saved` : `${formatCurrency(savings)} saved`;
2890
+ const saved = colors3 ? `${colors3.cache.write}${formatCurrency(savings)} saved` : `${formatCurrency(savings)} saved`;
2883
2891
  const read = formatK(cacheRead);
2884
2892
  const write = formatK(cacheWrite);
2885
2893
  return `\u{1F4BE} ${amount} cache | Hit: ${read}, Write: ${write} | ${saved}`;
@@ -2919,9 +2927,9 @@ var init_cache_metrics_widget = __esm({
2919
2927
  // Cache parsed usage within render cycle
2920
2928
  cachedCumulativeCache;
2921
2929
  // Cumulative cache for session
2922
- constructor(colors2) {
2930
+ constructor(colors3) {
2923
2931
  super();
2924
- this.colors = colors2 ?? DEFAULT_THEME;
2932
+ this.colors = colors3 ?? DEFAULT_THEME;
2925
2933
  this.cacheManager = new CacheManager();
2926
2934
  this.usageParser = new UsageParser();
2927
2935
  }
@@ -3238,93 +3246,93 @@ var init_styles3 = __esm({
3238
3246
  "use strict";
3239
3247
  init_colors();
3240
3248
  configCountStyles = {
3241
- balanced: (data, colors2) => {
3249
+ balanced: (data, colors3) => {
3242
3250
  const { claudeMdCount, rulesCount, mcpCount, hooksCount } = data;
3243
3251
  const parts = [];
3244
3252
  if (claudeMdCount > 0) {
3245
- const label = colors2 ? colorize("CLAUDE.md", colors2.label) : "CLAUDE.md";
3253
+ const label = colors3 ? colorize("CLAUDE.md", colors3.label) : "CLAUDE.md";
3246
3254
  parts.push(`${label}:${claudeMdCount}`);
3247
3255
  }
3248
3256
  if (rulesCount > 0) {
3249
- const label = colors2 ? colorize("rules", colors2.label) : "rules";
3257
+ const label = colors3 ? colorize("rules", colors3.label) : "rules";
3250
3258
  parts.push(`${label}:${rulesCount}`);
3251
3259
  }
3252
3260
  if (mcpCount > 0) {
3253
- const label = colors2 ? colorize("MCPs", colors2.label) : "MCPs";
3261
+ const label = colors3 ? colorize("MCPs", colors3.label) : "MCPs";
3254
3262
  parts.push(`${label}:${mcpCount}`);
3255
3263
  }
3256
3264
  if (hooksCount > 0) {
3257
- const label = colors2 ? colorize("hooks", colors2.label) : "hooks";
3265
+ const label = colors3 ? colorize("hooks", colors3.label) : "hooks";
3258
3266
  parts.push(`${label}:${hooksCount}`);
3259
3267
  }
3260
- const sep = colors2 ? colorize(" \u2502 ", colors2.separator) : " \u2502 ";
3268
+ const sep = colors3 ? colorize(" \u2502 ", colors3.separator) : " \u2502 ";
3261
3269
  return parts.join(sep);
3262
3270
  },
3263
- compact: (data, colors2) => {
3271
+ compact: (data, colors3) => {
3264
3272
  const { claudeMdCount, rulesCount, mcpCount, hooksCount } = data;
3265
3273
  const parts = [];
3266
3274
  if (claudeMdCount > 0) {
3267
- const text = colors2 ? colorize(`${claudeMdCount} docs`, colors2.label) : `${claudeMdCount} docs`;
3275
+ const text = colors3 ? colorize(`${claudeMdCount} docs`, colors3.label) : `${claudeMdCount} docs`;
3268
3276
  parts.push(text);
3269
3277
  }
3270
3278
  if (rulesCount > 0) {
3271
- const text = colors2 ? colorize(`${rulesCount} rules`, colors2.label) : `${rulesCount} rules`;
3279
+ const text = colors3 ? colorize(`${rulesCount} rules`, colors3.label) : `${rulesCount} rules`;
3272
3280
  parts.push(text);
3273
3281
  }
3274
3282
  if (mcpCount > 0) {
3275
- const text = colors2 ? colorize(`${mcpCount} MCPs`, colors2.label) : `${mcpCount} MCPs`;
3283
+ const text = colors3 ? colorize(`${mcpCount} MCPs`, colors3.label) : `${mcpCount} MCPs`;
3276
3284
  parts.push(text);
3277
3285
  }
3278
3286
  if (hooksCount > 0) {
3279
3287
  const hookLabel = hooksCount === 1 ? "hook" : "hooks";
3280
- const text = colors2 ? colorize(`${hooksCount} ${hookLabel}`, colors2.label) : `${hooksCount} ${hookLabel}`;
3288
+ const text = colors3 ? colorize(`${hooksCount} ${hookLabel}`, colors3.label) : `${hooksCount} ${hookLabel}`;
3281
3289
  parts.push(text);
3282
3290
  }
3283
- const sep = colors2 ? colorize(" \u2502 ", colors2.separator) : " \u2502 ";
3291
+ const sep = colors3 ? colorize(" \u2502 ", colors3.separator) : " \u2502 ";
3284
3292
  return parts.join(sep);
3285
3293
  },
3286
- playful: (data, colors2) => {
3294
+ playful: (data, colors3) => {
3287
3295
  const { claudeMdCount, rulesCount, mcpCount, hooksCount } = data;
3288
3296
  const parts = [];
3289
3297
  if (claudeMdCount > 0) {
3290
- const text = colors2 ? colorize(`CLAUDE.md:${claudeMdCount}`, colors2.label) : `CLAUDE.md:${claudeMdCount}`;
3298
+ const text = colors3 ? colorize(`CLAUDE.md:${claudeMdCount}`, colors3.label) : `CLAUDE.md:${claudeMdCount}`;
3291
3299
  parts.push(`\u{1F4C4} ${text}`);
3292
3300
  }
3293
3301
  if (rulesCount > 0) {
3294
- const text = colors2 ? colorize(`rules:${rulesCount}`, colors2.label) : `rules:${rulesCount}`;
3302
+ const text = colors3 ? colorize(`rules:${rulesCount}`, colors3.label) : `rules:${rulesCount}`;
3295
3303
  parts.push(`\u{1F4DC} ${text}`);
3296
3304
  }
3297
3305
  if (mcpCount > 0) {
3298
- const text = colors2 ? colorize(`MCPs:${mcpCount}`, colors2.label) : `MCPs:${mcpCount}`;
3306
+ const text = colors3 ? colorize(`MCPs:${mcpCount}`, colors3.label) : `MCPs:${mcpCount}`;
3299
3307
  parts.push(`\u{1F50C} ${text}`);
3300
3308
  }
3301
3309
  if (hooksCount > 0) {
3302
- const text = colors2 ? colorize(`hooks:${hooksCount}`, colors2.label) : `hooks:${hooksCount}`;
3310
+ const text = colors3 ? colorize(`hooks:${hooksCount}`, colors3.label) : `hooks:${hooksCount}`;
3303
3311
  parts.push(`\u{1FA9D} ${text}`);
3304
3312
  }
3305
- const sep = colors2 ? colorize(" \u2502 ", colors2.separator) : " \u2502 ";
3313
+ const sep = colors3 ? colorize(" \u2502 ", colors3.separator) : " \u2502 ";
3306
3314
  return parts.join(sep);
3307
3315
  },
3308
- verbose: (data, colors2) => {
3316
+ verbose: (data, colors3) => {
3309
3317
  const { claudeMdCount, rulesCount, mcpCount, hooksCount } = data;
3310
3318
  const parts = [];
3311
3319
  if (claudeMdCount > 0) {
3312
- const text = colors2 ? colorize(`${claudeMdCount} CLAUDE.md`, colors2.label) : `${claudeMdCount} CLAUDE.md`;
3320
+ const text = colors3 ? colorize(`${claudeMdCount} CLAUDE.md`, colors3.label) : `${claudeMdCount} CLAUDE.md`;
3313
3321
  parts.push(text);
3314
3322
  }
3315
3323
  if (rulesCount > 0) {
3316
- const text = colors2 ? colorize(`${rulesCount} rules`, colors2.label) : `${rulesCount} rules`;
3324
+ const text = colors3 ? colorize(`${rulesCount} rules`, colors3.label) : `${rulesCount} rules`;
3317
3325
  parts.push(text);
3318
3326
  }
3319
3327
  if (mcpCount > 0) {
3320
- const text = colors2 ? colorize(`${mcpCount} MCP servers`, colors2.label) : `${mcpCount} MCP servers`;
3328
+ const text = colors3 ? colorize(`${mcpCount} MCP servers`, colors3.label) : `${mcpCount} MCP servers`;
3321
3329
  parts.push(text);
3322
3330
  }
3323
3331
  if (hooksCount > 0) {
3324
- const text = colors2 ? colorize(`${hooksCount} hooks`, colors2.label) : `${hooksCount} hooks`;
3332
+ const text = colors3 ? colorize(`${hooksCount} hooks`, colors3.label) : `${hooksCount} hooks`;
3325
3333
  parts.push(text);
3326
3334
  }
3327
- const sep = colors2 ? colorize(" \u2502 ", colors2.separator) : " \u2502 ";
3335
+ const sep = colors3 ? colorize(" \u2502 ", colors3.separator) : " \u2502 ";
3328
3336
  return parts.join(sep);
3329
3337
  }
3330
3338
  };
@@ -3357,9 +3365,9 @@ var init_config_count_widget = __esm({
3357
3365
  enabled = true;
3358
3366
  styleFn = configCountStyles.balanced;
3359
3367
  _lineOverride;
3360
- constructor(configProvider, colors2) {
3368
+ constructor(configProvider, colors3) {
3361
3369
  this.configProvider = configProvider ?? new ConfigProvider();
3362
- this.colors = colors2 ?? DEFAULT_THEME;
3370
+ this.colors = colors3 ?? DEFAULT_THEME;
3363
3371
  }
3364
3372
  setStyle(style = DEFAULT_WIDGET_STYLE) {
3365
3373
  const fn = configCountStyles[style];
@@ -3424,14 +3432,14 @@ var init_style_utils = __esm({
3424
3432
  });
3425
3433
 
3426
3434
  // src/widgets/context/styles.ts
3427
- function getContextColor(percent, colors2) {
3435
+ function getContextColor(percent, colors3) {
3428
3436
  const clampedPercent = Math.max(0, Math.min(100, percent));
3429
3437
  if (clampedPercent < 50) {
3430
- return colors2.low;
3438
+ return colors3.low;
3431
3439
  } else if (clampedPercent < 80) {
3432
- return colors2.medium;
3440
+ return colors3.medium;
3433
3441
  } else {
3434
- return colors2.high;
3442
+ return colors3.high;
3435
3443
  }
3436
3444
  }
3437
3445
  var contextStyles;
@@ -3441,48 +3449,48 @@ var init_styles4 = __esm({
3441
3449
  init_colors();
3442
3450
  init_style_utils();
3443
3451
  contextStyles = {
3444
- balanced: (data, colors2) => {
3452
+ balanced: (data, colors3) => {
3445
3453
  const bar = progressBar(data.percent, 10);
3446
3454
  const output = `[${bar}] ${data.percent}%`;
3447
- if (!colors2) return output;
3448
- return colorize(output, getContextColor(data.percent, colors2));
3455
+ if (!colors3) return output;
3456
+ return colorize(output, getContextColor(data.percent, colors3));
3449
3457
  },
3450
- compact: (data, colors2) => {
3458
+ compact: (data, colors3) => {
3451
3459
  const output = `${data.percent}%`;
3452
- if (!colors2) return output;
3453
- return colorize(output, getContextColor(data.percent, colors2));
3460
+ if (!colors3) return output;
3461
+ return colorize(output, getContextColor(data.percent, colors3));
3454
3462
  },
3455
- playful: (data, colors2) => {
3463
+ playful: (data, colors3) => {
3456
3464
  const bar = progressBar(data.percent, 10);
3457
3465
  const output = `\u{1F9E0} [${bar}] ${data.percent}%`;
3458
- if (!colors2) return output;
3459
- return `\u{1F9E0} ${colorize(`[${bar}] ${data.percent}%`, getContextColor(data.percent, colors2))}`;
3466
+ if (!colors3) return output;
3467
+ return `\u{1F9E0} ${colorize(`[${bar}] ${data.percent}%`, getContextColor(data.percent, colors3))}`;
3460
3468
  },
3461
- verbose: (data, colors2) => {
3469
+ verbose: (data, colors3) => {
3462
3470
  const usedFormatted = data.used.toLocaleString();
3463
3471
  const maxFormatted = data.contextWindowSize.toLocaleString();
3464
3472
  const output = `${usedFormatted} / ${maxFormatted} tokens (${data.percent}%)`;
3465
- if (!colors2) return output;
3466
- return colorize(output, getContextColor(data.percent, colors2));
3473
+ if (!colors3) return output;
3474
+ return colorize(output, getContextColor(data.percent, colors3));
3467
3475
  },
3468
- symbolic: (data, colors2) => {
3476
+ symbolic: (data, colors3) => {
3469
3477
  const filled = Math.round(data.percent / 100 * 5);
3470
3478
  const empty = 5 - filled;
3471
3479
  const output = `${"\u25AE".repeat(filled)}${"\u25AF".repeat(empty)} ${data.percent}%`;
3472
- if (!colors2) return output;
3473
- return colorize(output, getContextColor(data.percent, colors2));
3480
+ if (!colors3) return output;
3481
+ return colorize(output, getContextColor(data.percent, colors3));
3474
3482
  },
3475
- "compact-verbose": (data, colors2) => {
3483
+ "compact-verbose": (data, colors3) => {
3476
3484
  const usedK = data.used >= 1e3 ? `${Math.floor(data.used / 1e3)}K` : data.used.toString();
3477
3485
  const maxK = data.contextWindowSize >= 1e3 ? `${Math.floor(data.contextWindowSize / 1e3)}K` : data.contextWindowSize.toString();
3478
3486
  const output = `${data.percent}% (${usedK}/${maxK})`;
3479
- if (!colors2) return output;
3480
- return colorize(output, getContextColor(data.percent, colors2));
3487
+ if (!colors3) return output;
3488
+ return colorize(output, getContextColor(data.percent, colors3));
3481
3489
  },
3482
- indicator: (data, colors2) => {
3490
+ indicator: (data, colors3) => {
3483
3491
  const output = `\u25CF ${data.percent}%`;
3484
- if (!colors2) return output;
3485
- return colorize(output, getContextColor(data.percent, colors2));
3492
+ if (!colors3) return output;
3493
+ return colorize(output, getContextColor(data.percent, colors3));
3486
3494
  }
3487
3495
  };
3488
3496
  }
@@ -3517,9 +3525,9 @@ var init_context_widget = __esm({
3517
3525
  lastSessionId;
3518
3526
  cachedUsage;
3519
3527
  // Cache parsed usage within render cycle
3520
- constructor(colors2) {
3528
+ constructor(colors3) {
3521
3529
  super();
3522
- this.colors = colors2 ?? DEFAULT_THEME;
3530
+ this.colors = colors3 ?? DEFAULT_THEME;
3523
3531
  this.cacheManager = new CacheManager();
3524
3532
  this.usageParser = new UsageParser();
3525
3533
  }
@@ -3611,11 +3619,11 @@ var init_context_widget = __esm({
3611
3619
  });
3612
3620
 
3613
3621
  // src/widgets/cost/styles.ts
3614
- function balancedStyle(data, colors2) {
3622
+ function balancedStyle(data, colors3) {
3615
3623
  const formatted = formatCostUSD(data.costUsd);
3616
- if (!colors2) return formatted;
3624
+ if (!colors3) return formatted;
3617
3625
  const amountStr = data.costUsd.toFixed(2);
3618
- return colorize("$", colors2.currency) + colorize(amountStr, colors2.amount);
3626
+ return colorize("$", colors3.currency) + colorize(amountStr, colors3.amount);
3619
3627
  }
3620
3628
  var costStyles;
3621
3629
  var init_styles5 = __esm({
@@ -3627,25 +3635,25 @@ var init_styles5 = __esm({
3627
3635
  costStyles = {
3628
3636
  balanced: balancedStyle,
3629
3637
  compact: balancedStyle,
3630
- playful: (data, colors2) => {
3638
+ playful: (data, colors3) => {
3631
3639
  const formatted = formatCostUSD(data.costUsd);
3632
- if (!colors2) return `\u{1F4B0} ${formatted}`;
3640
+ if (!colors3) return `\u{1F4B0} ${formatted}`;
3633
3641
  const amountStr = data.costUsd.toFixed(2);
3634
- const colored = colorize("$", colors2.currency) + colorize(amountStr, colors2.amount);
3642
+ const colored = colorize("$", colors3.currency) + colorize(amountStr, colors3.amount);
3635
3643
  return `\u{1F4B0} ${colored}`;
3636
3644
  },
3637
- labeled: (data, colors2) => {
3645
+ labeled: (data, colors3) => {
3638
3646
  const formatted = formatCostUSD(data.costUsd);
3639
- if (!colors2) return withLabel("Cost", formatted);
3647
+ if (!colors3) return withLabel("Cost", formatted);
3640
3648
  const amountStr = data.costUsd.toFixed(2);
3641
- const colored = colorize("$", colors2.currency) + colorize(amountStr, colors2.amount);
3649
+ const colored = colorize("$", colors3.currency) + colorize(amountStr, colors3.amount);
3642
3650
  return withLabel("Cost", colored);
3643
3651
  },
3644
- indicator: (data, colors2) => {
3652
+ indicator: (data, colors3) => {
3645
3653
  const formatted = formatCostUSD(data.costUsd);
3646
- if (!colors2) return withIndicator(formatted);
3654
+ if (!colors3) return withIndicator(formatted);
3647
3655
  const amountStr = data.costUsd.toFixed(2);
3648
- const colored = colorize("$", colors2.currency) + colorize(amountStr, colors2.amount);
3656
+ const colored = colorize("$", colors3.currency) + colorize(amountStr, colors3.amount);
3649
3657
  return withIndicator(colored);
3650
3658
  }
3651
3659
  };
@@ -3674,9 +3682,9 @@ var init_cost_widget = __esm({
3674
3682
  );
3675
3683
  colors;
3676
3684
  styleFn = costStyles.balanced;
3677
- constructor(colors2) {
3685
+ constructor(colors3) {
3678
3686
  super();
3679
- this.colors = colors2 ?? DEFAULT_THEME;
3687
+ this.colors = colors3 ?? DEFAULT_THEME;
3680
3688
  }
3681
3689
  setStyle(style = DEFAULT_WIDGET_STYLE) {
3682
3690
  const fn = costStyles[style];
@@ -3836,49 +3844,49 @@ var init_styles6 = __esm({
3836
3844
  "use strict";
3837
3845
  init_colors();
3838
3846
  devServerStyles = {
3839
- balanced: (data, colors2) => {
3847
+ balanced: (data, colors3) => {
3840
3848
  if (!data.server) return "";
3841
3849
  const { name, icon, isRunning, isBuilding } = data.server;
3842
3850
  const status = isRunning ? "running" : isBuilding ? "building" : "stopped";
3843
- const coloredName = colors2 ? colorize(name, colors2.name) : name;
3844
- const coloredStatus = colors2 ? colorize(`(${status})`, colors2.status) : `(${status})`;
3851
+ const coloredName = colors3 ? colorize(name, colors3.name) : name;
3852
+ const coloredStatus = colors3 ? colorize(`(${status})`, colors3.status) : `(${status})`;
3845
3853
  return `${icon} ${coloredName} ${coloredStatus}`;
3846
3854
  },
3847
- compact: (data, colors2) => {
3855
+ compact: (data, colors3) => {
3848
3856
  if (!data.server) return "";
3849
3857
  const { name, icon, isRunning, isBuilding } = data.server;
3850
3858
  const statusIcon = isRunning ? "\u{1F680}" : isBuilding ? "\u{1F528}" : "\u{1F4A4}";
3851
- const coloredName = colors2 ? colorize(name, colors2.name) : name;
3859
+ const coloredName = colors3 ? colorize(name, colors3.name) : name;
3852
3860
  return `${icon} ${coloredName} ${statusIcon}`;
3853
3861
  },
3854
- playful: (data, colors2) => {
3862
+ playful: (data, colors3) => {
3855
3863
  if (!data.server) return "";
3856
3864
  const { name, isRunning, isBuilding } = data.server;
3857
3865
  const emoji = isRunning ? "\u{1F3C3}" : isBuilding ? "\u{1F528}" : "\u{1F4A4}";
3858
- const coloredName = colors2 ? colorize(name, colors2.name) : name;
3866
+ const coloredName = colors3 ? colorize(name, colors3.name) : name;
3859
3867
  return `${emoji} ${coloredName}`;
3860
3868
  },
3861
- verbose: (data, colors2) => {
3869
+ verbose: (data, colors3) => {
3862
3870
  if (!data.server) return "";
3863
3871
  const { name, isRunning, isBuilding } = data.server;
3864
3872
  const status = isRunning ? "running" : isBuilding ? "building" : "stopped";
3865
- const label = colors2 ? colorize("Dev Server:", colors2.label) : "Dev Server:";
3866
- const coloredName = colors2 ? colorize(name, colors2.name) : name;
3867
- const coloredStatus = colors2 ? colorize(`(${status})`, colors2.status) : `(${status})`;
3873
+ const label = colors3 ? colorize("Dev Server:", colors3.label) : "Dev Server:";
3874
+ const coloredName = colors3 ? colorize(name, colors3.name) : name;
3875
+ const coloredStatus = colors3 ? colorize(`(${status})`, colors3.status) : `(${status})`;
3868
3876
  return `${label} ${coloredName} ${coloredStatus}`;
3869
3877
  },
3870
- labeled: (data, colors2) => {
3878
+ labeled: (data, colors3) => {
3871
3879
  if (!data.server) return "";
3872
3880
  const { name, icon, isRunning } = data.server;
3873
3881
  const status = isRunning ? "\u{1F7E2}" : "\u{1F534}";
3874
- const label = colors2 ? colorize("Server:", colors2.label) : "Server:";
3875
- const coloredName = colors2 ? colorize(name, colors2.name) : name;
3882
+ const label = colors3 ? colorize("Server:", colors3.label) : "Server:";
3883
+ const coloredName = colors3 ? colorize(name, colors3.name) : name;
3876
3884
  return `${label} ${icon} ${coloredName} ${status}`;
3877
3885
  },
3878
- indicator: (data, colors2) => {
3886
+ indicator: (data, colors3) => {
3879
3887
  if (!data.server) return "";
3880
3888
  const { name, icon } = data.server;
3881
- const coloredName = colors2 ? colorize(name, colors2.name) : name;
3889
+ const coloredName = colors3 ? colorize(name, colors3.name) : name;
3882
3890
  return `\u25CF ${icon} ${coloredName}`;
3883
3891
  }
3884
3892
  };
@@ -3912,8 +3920,8 @@ var init_dev_server_widget = __esm({
3912
3920
  cwd = null;
3913
3921
  portDetector;
3914
3922
  processDetector;
3915
- constructor(colors2) {
3916
- this.colors = colors2 ?? DEFAULT_THEME;
3923
+ constructor(colors3) {
3924
+ this.colors = colors3 ?? DEFAULT_THEME;
3917
3925
  this.portDetector = new PortDetector();
3918
3926
  this.processDetector = new ProcessDetector();
3919
3927
  }
@@ -4009,61 +4017,61 @@ var init_styles7 = __esm({
4009
4017
  "use strict";
4010
4018
  init_colors();
4011
4019
  dockerStyles = {
4012
- balanced: (data, colors2) => {
4020
+ balanced: (data, colors3) => {
4013
4021
  const { running, total } = data.status;
4014
4022
  if (running === 0) return "";
4015
4023
  const status = running > 0 ? "\u{1F7E2}" : "\u26AA";
4016
4024
  const count = total > running ? `${running}/${total}` : `${running}`;
4017
- const label = colors2 ? colorize("Docker:", colors2.label) : "Docker:";
4018
- const coloredCount = colors2 ? colorize(count, colors2.count) : count;
4025
+ const label = colors3 ? colorize("Docker:", colors3.label) : "Docker:";
4026
+ const coloredCount = colors3 ? colorize(count, colors3.count) : count;
4019
4027
  return `${label} ${coloredCount} ${status}`;
4020
4028
  },
4021
- compact: (data, colors2) => {
4029
+ compact: (data, colors3) => {
4022
4030
  const { running, total } = data.status;
4023
4031
  if (running === 0) return "";
4024
4032
  const count = total > running ? `${running}/${total}` : `${running}`;
4025
- const coloredCount = colors2 ? colorize(count, colors2.count) : count;
4033
+ const coloredCount = colors3 ? colorize(count, colors3.count) : count;
4026
4034
  return `\u{1F433} ${coloredCount}`;
4027
4035
  },
4028
- playful: (data, colors2) => {
4036
+ playful: (data, colors3) => {
4029
4037
  const { running, total } = data.status;
4030
4038
  if (running === 0) return "\u{1F433} Docker: \u{1F4A4}";
4031
4039
  const status = running > 0 ? "\u{1F7E2}" : "\u26AA";
4032
4040
  const count = total > running ? `${running}/${total}` : `${running}`;
4033
- const label = colors2 ? colorize("Docker:", colors2.label) : "Docker:";
4034
- const coloredCount = colors2 ? colorize(count, colors2.count) : count;
4041
+ const label = colors3 ? colorize("Docker:", colors3.label) : "Docker:";
4042
+ const coloredCount = colors3 ? colorize(count, colors3.count) : count;
4035
4043
  return `\u{1F433} ${label} ${coloredCount} ${status}`;
4036
4044
  },
4037
- verbose: (data, colors2) => {
4045
+ verbose: (data, colors3) => {
4038
4046
  const { running, total } = data.status;
4039
4047
  if (running === 0) {
4040
- const label2 = colors2 ? colorize("Docker:", colors2.label) : "Docker:";
4048
+ const label2 = colors3 ? colorize("Docker:", colors3.label) : "Docker:";
4041
4049
  return `${label2} no containers running`;
4042
4050
  }
4043
- const label = colors2 ? colorize("Docker:", colors2.label) : "Docker:";
4044
- const coloredRunning = colors2 ? colorize(String(running), colors2.count) : String(running);
4051
+ const label = colors3 ? colorize("Docker:", colors3.label) : "Docker:";
4052
+ const coloredRunning = colors3 ? colorize(String(running), colors3.count) : String(running);
4045
4053
  return `${label} ${coloredRunning} running${total > running ? ` / ${total} total` : ""}`;
4046
4054
  },
4047
- labeled: (data, colors2) => {
4055
+ labeled: (data, colors3) => {
4048
4056
  const { running, total } = data.status;
4049
4057
  if (running === 0) {
4050
- const label2 = colors2 ? colorize("Docker:", colors2.label) : "Docker:";
4058
+ const label2 = colors3 ? colorize("Docker:", colors3.label) : "Docker:";
4051
4059
  return `${label2} --`;
4052
4060
  }
4053
4061
  const count = total > running ? `${running}/${total}` : `${running}`;
4054
- const label = colors2 ? colorize("Docker:", colors2.label) : "Docker:";
4055
- const coloredCount = colors2 ? colorize(count, colors2.count) : count;
4062
+ const label = colors3 ? colorize("Docker:", colors3.label) : "Docker:";
4063
+ const coloredCount = colors3 ? colorize(count, colors3.count) : count;
4056
4064
  return `${label} ${coloredCount}`;
4057
4065
  },
4058
- indicator: (data, colors2) => {
4066
+ indicator: (data, colors3) => {
4059
4067
  const { running, total } = data.status;
4060
4068
  if (running === 0) {
4061
- const label2 = colors2 ? colorize("Docker:", colors2.label) : "Docker:";
4069
+ const label2 = colors3 ? colorize("Docker:", colors3.label) : "Docker:";
4062
4070
  return `\u25CF ${label2} --`;
4063
4071
  }
4064
4072
  const count = total > running ? `${running}/${total}` : `${running}`;
4065
- const label = colors2 ? colorize("Docker:", colors2.label) : "Docker:";
4066
- const coloredCount = colors2 ? colorize(count, colors2.count) : count;
4073
+ const label = colors3 ? colorize("Docker:", colors3.label) : "Docker:";
4074
+ const coloredCount = colors3 ? colorize(count, colors3.count) : count;
4067
4075
  return `\u25CF ${label} ${coloredCount}`;
4068
4076
  }
4069
4077
  };
@@ -4098,8 +4106,8 @@ var init_docker_widget = __esm({
4098
4106
  cachedStatus = null;
4099
4107
  lastCheck = 0;
4100
4108
  CACHE_TTL = 5e3;
4101
- constructor(colors2) {
4102
- this.colors = colors2 ?? DEFAULT_THEME;
4109
+ constructor(colors3) {
4110
+ this.colors = colors3 ?? DEFAULT_THEME;
4103
4111
  }
4104
4112
  setStyle(style = DEFAULT_WIDGET_STYLE) {
4105
4113
  const fn = dockerStyles[style];
@@ -4158,8 +4166,8 @@ var init_docker_widget = __esm({
4158
4166
  });
4159
4167
 
4160
4168
  // src/widgets/duration/styles.ts
4161
- function formatDurationWithColors(ms, colors2) {
4162
- if (ms <= 0) return colorize("0s", colors2.value);
4169
+ function formatDurationWithColors(ms, colors3) {
4170
+ if (ms <= 0) return colorize("0s", colors3.value);
4163
4171
  const totalSeconds = Math.floor(ms / 1e3);
4164
4172
  const hours = Math.floor(totalSeconds / 3600);
4165
4173
  const minutes = Math.floor(totalSeconds % 3600 / 60);
@@ -4167,17 +4175,17 @@ function formatDurationWithColors(ms, colors2) {
4167
4175
  const parts = [];
4168
4176
  if (hours > 0) {
4169
4177
  parts.push(
4170
- colorize(`${hours}`, colors2.value) + colorize("h", colors2.unit),
4171
- colorize(`${minutes}`, colors2.value) + colorize("m", colors2.unit),
4172
- colorize(`${seconds}`, colors2.value) + colorize("s", colors2.unit)
4178
+ colorize(`${hours}`, colors3.value) + colorize("h", colors3.unit),
4179
+ colorize(`${minutes}`, colors3.value) + colorize("m", colors3.unit),
4180
+ colorize(`${seconds}`, colors3.value) + colorize("s", colors3.unit)
4173
4181
  );
4174
4182
  } else if (minutes > 0) {
4175
4183
  parts.push(
4176
- colorize(`${minutes}`, colors2.value) + colorize("m", colors2.unit),
4177
- colorize(`${seconds}`, colors2.value) + colorize("s", colors2.unit)
4184
+ colorize(`${minutes}`, colors3.value) + colorize("m", colors3.unit),
4185
+ colorize(`${seconds}`, colors3.value) + colorize("s", colors3.unit)
4178
4186
  );
4179
4187
  } else {
4180
- parts.push(colorize(`${seconds}`, colors2.value) + colorize("s", colors2.unit));
4188
+ parts.push(colorize(`${seconds}`, colors3.value) + colorize("s", colors3.unit));
4181
4189
  }
4182
4190
  return parts.join(" ");
4183
4191
  }
@@ -4189,32 +4197,32 @@ var init_styles8 = __esm({
4189
4197
  init_formatters();
4190
4198
  init_style_utils();
4191
4199
  durationStyles = {
4192
- balanced: (data, colors2) => {
4200
+ balanced: (data, colors3) => {
4193
4201
  const formatted = formatDuration(data.durationMs);
4194
- if (!colors2) return formatted;
4195
- return formatDurationWithColors(data.durationMs, colors2);
4202
+ if (!colors3) return formatted;
4203
+ return formatDurationWithColors(data.durationMs, colors3);
4196
4204
  },
4197
- compact: (data, colors2) => {
4205
+ compact: (data, colors3) => {
4198
4206
  const totalSeconds = Math.floor(data.durationMs / 1e3);
4199
4207
  const hours = Math.floor(totalSeconds / 3600);
4200
4208
  const minutes = Math.floor(totalSeconds % 3600 / 60);
4201
- if (!colors2) {
4209
+ if (!colors3) {
4202
4210
  if (hours > 0) {
4203
4211
  return `${hours}h${minutes}m`;
4204
4212
  }
4205
4213
  return `${minutes}m`;
4206
4214
  }
4207
4215
  if (hours > 0) {
4208
- return colorize(`${hours}`, colors2.value) + colorize("h", colors2.unit) + colorize(`${minutes}`, colors2.value) + colorize("m", colors2.unit);
4216
+ return colorize(`${hours}`, colors3.value) + colorize("h", colors3.unit) + colorize(`${minutes}`, colors3.value) + colorize("m", colors3.unit);
4209
4217
  }
4210
- return colorize(`${minutes}`, colors2.value) + colorize("m", colors2.unit);
4218
+ return colorize(`${minutes}`, colors3.value) + colorize("m", colors3.unit);
4211
4219
  },
4212
- playful: (data, colors2) => {
4220
+ playful: (data, colors3) => {
4213
4221
  const totalSeconds = Math.floor(data.durationMs / 1e3);
4214
4222
  const hours = Math.floor(totalSeconds / 3600);
4215
4223
  const minutes = Math.floor(totalSeconds % 3600 / 60);
4216
4224
  const seconds = totalSeconds % 60;
4217
- if (!colors2) {
4225
+ if (!colors3) {
4218
4226
  if (hours > 0) {
4219
4227
  return `\u231B ${hours}h ${minutes}m ${seconds}s`;
4220
4228
  }
@@ -4224,30 +4232,30 @@ var init_styles8 = __esm({
4224
4232
  return `\u231B ${seconds}s`;
4225
4233
  }
4226
4234
  if (hours > 0) {
4227
- const colored = colorize(`${hours}`, colors2.value) + colorize("h", colors2.unit) + colorize(` ${minutes}`, colors2.value) + colorize("m", colors2.unit) + colorize(` ${seconds}`, colors2.value) + colorize("s", colors2.unit);
4235
+ const colored = colorize(`${hours}`, colors3.value) + colorize("h", colors3.unit) + colorize(` ${minutes}`, colors3.value) + colorize("m", colors3.unit) + colorize(` ${seconds}`, colors3.value) + colorize("s", colors3.unit);
4228
4236
  return `\u231B ${colored}`;
4229
4237
  }
4230
4238
  if (minutes > 0) {
4231
- const colored = colorize(`${minutes}`, colors2.value) + colorize("m", colors2.unit) + colorize(` ${seconds}`, colors2.value) + colorize("s", colors2.unit);
4239
+ const colored = colorize(`${minutes}`, colors3.value) + colorize("m", colors3.unit) + colorize(` ${seconds}`, colors3.value) + colorize("s", colors3.unit);
4232
4240
  return `\u231B ${colored}`;
4233
4241
  }
4234
- return `\u231B ${colorize(`${seconds}`, colors2.value)}${colorize("s", colors2.unit)}`;
4242
+ return `\u231B ${colorize(`${seconds}`, colors3.value)}${colorize("s", colors3.unit)}`;
4235
4243
  },
4236
- technical: (data, colors2) => {
4244
+ technical: (data, colors3) => {
4237
4245
  const value = `${Math.floor(data.durationMs)}ms`;
4238
- if (!colors2) return value;
4239
- return colorize(`${Math.floor(data.durationMs)}`, colors2.value) + colorize("ms", colors2.unit);
4246
+ if (!colors3) return value;
4247
+ return colorize(`${Math.floor(data.durationMs)}`, colors3.value) + colorize("ms", colors3.unit);
4240
4248
  },
4241
- labeled: (data, colors2) => {
4249
+ labeled: (data, colors3) => {
4242
4250
  const formatted = formatDuration(data.durationMs);
4243
- if (!colors2) return withLabel("Time", formatted);
4244
- const colored = formatDurationWithColors(data.durationMs, colors2);
4251
+ if (!colors3) return withLabel("Time", formatted);
4252
+ const colored = formatDurationWithColors(data.durationMs, colors3);
4245
4253
  return withLabel("Time", colored);
4246
4254
  },
4247
- indicator: (data, colors2) => {
4255
+ indicator: (data, colors3) => {
4248
4256
  const formatted = formatDuration(data.durationMs);
4249
- if (!colors2) return withIndicator(formatted);
4250
- const colored = formatDurationWithColors(data.durationMs, colors2);
4257
+ if (!colors3) return withIndicator(formatted);
4258
+ const colored = formatDurationWithColors(data.durationMs, colors3);
4251
4259
  return withIndicator(colored);
4252
4260
  }
4253
4261
  };
@@ -4276,9 +4284,9 @@ var init_duration_widget = __esm({
4276
4284
  );
4277
4285
  colors;
4278
4286
  styleFn = durationStyles.balanced;
4279
- constructor(colors2) {
4287
+ constructor(colors3) {
4280
4288
  super();
4281
- this.colors = colors2 ?? DEFAULT_THEME;
4289
+ this.colors = colors3 ?? DEFAULT_THEME;
4282
4290
  }
4283
4291
  setStyle(style = DEFAULT_WIDGET_STYLE) {
4284
4292
  const fn = durationStyles[style];
@@ -4403,30 +4411,30 @@ var init_styles9 = __esm({
4403
4411
  init_colors();
4404
4412
  init_style_utils();
4405
4413
  gitTagStyles = {
4406
- balanced: (data, colors2) => {
4407
- if (!colors2) return data.tag;
4408
- return colorize(data.tag, colors2.branch);
4414
+ balanced: (data, colors3) => {
4415
+ if (!colors3) return data.tag;
4416
+ return colorize(data.tag, colors3.branch);
4409
4417
  },
4410
- compact: (data, colors2) => {
4418
+ compact: (data, colors3) => {
4411
4419
  const tag = data.tag.replace(/^v/, "");
4412
- if (!colors2) return tag;
4413
- return colorize(tag, colors2.branch);
4420
+ if (!colors3) return tag;
4421
+ return colorize(tag, colors3.branch);
4414
4422
  },
4415
- playful: (data, colors2) => {
4416
- if (!colors2) return `\u{1F3F7}\uFE0F ${data.tag}`;
4417
- return `\u{1F3F7}\uFE0F ${colorize(data.tag, colors2.branch)}`;
4423
+ playful: (data, colors3) => {
4424
+ if (!colors3) return `\u{1F3F7}\uFE0F ${data.tag}`;
4425
+ return `\u{1F3F7}\uFE0F ${colorize(data.tag, colors3.branch)}`;
4418
4426
  },
4419
- verbose: (data, colors2) => {
4420
- if (!colors2) return `version ${data.tag}`;
4421
- return `version ${colorize(data.tag, colors2.branch)}`;
4427
+ verbose: (data, colors3) => {
4428
+ if (!colors3) return `version ${data.tag}`;
4429
+ return `version ${colorize(data.tag, colors3.branch)}`;
4422
4430
  },
4423
- labeled: (data, colors2) => {
4424
- if (!colors2) return withLabel("Tag", data.tag);
4425
- return withLabel("Tag", colorize(data.tag, colors2.branch));
4431
+ labeled: (data, colors3) => {
4432
+ if (!colors3) return withLabel("Tag", data.tag);
4433
+ return withLabel("Tag", colorize(data.tag, colors3.branch));
4426
4434
  },
4427
- indicator: (data, colors2) => {
4428
- if (!colors2) return withIndicator(data.tag);
4429
- return withIndicator(colorize(data.tag, colors2.branch));
4435
+ indicator: (data, colors3) => {
4436
+ if (!colors3) return withIndicator(data.tag);
4437
+ return withIndicator(colorize(data.tag, colors3.branch));
4430
4438
  }
4431
4439
  };
4432
4440
  }
@@ -4465,9 +4473,9 @@ var init_git_tag_widget = __esm({
4465
4473
  * Tests can inject MockGit factory here
4466
4474
  * @param colors - Optional theme colors
4467
4475
  */
4468
- constructor(gitFactory, colors2) {
4476
+ constructor(gitFactory, colors3) {
4469
4477
  this.gitFactory = gitFactory || createGit;
4470
- this.colors = colors2 ?? DEFAULT_THEME;
4478
+ this.colors = colors3 ?? DEFAULT_THEME;
4471
4479
  }
4472
4480
  setStyle(style = DEFAULT_WIDGET_STYLE) {
4473
4481
  const fn = gitTagStyles[style];
@@ -4520,89 +4528,89 @@ var init_styles10 = __esm({
4520
4528
  init_colors();
4521
4529
  init_style_utils();
4522
4530
  gitStyles = {
4523
- minimal: (data, colors2) => {
4524
- if (!colors2) return data.branch;
4525
- return colorize(data.branch, colors2.branch);
4531
+ minimal: (data, colors3) => {
4532
+ if (!colors3) return data.branch;
4533
+ return colorize(data.branch, colors3.branch);
4526
4534
  },
4527
- balanced: (data, colors2) => {
4535
+ balanced: (data, colors3) => {
4528
4536
  if (data.changes && data.changes.files > 0) {
4529
4537
  const parts = [];
4530
4538
  if (data.changes.insertions > 0) parts.push(`+${data.changes.insertions}`);
4531
4539
  if (data.changes.deletions > 0) parts.push(`-${data.changes.deletions}`);
4532
4540
  if (parts.length > 0) {
4533
- const branch = colors2 ? colorize(data.branch, colors2.branch) : data.branch;
4534
- const changes = colors2 ? colorize(`[${parts.join(" ")}]`, colors2.changes) : `[${parts.join(" ")}]`;
4541
+ const branch = colors3 ? colorize(data.branch, colors3.branch) : data.branch;
4542
+ const changes = colors3 ? colorize(`[${parts.join(" ")}]`, colors3.changes) : `[${parts.join(" ")}]`;
4535
4543
  return `${branch} ${changes}`;
4536
4544
  }
4537
4545
  }
4538
- return colors2 ? colorize(data.branch, colors2.branch) : data.branch;
4546
+ return colors3 ? colorize(data.branch, colors3.branch) : data.branch;
4539
4547
  },
4540
- compact: (data, colors2) => {
4548
+ compact: (data, colors3) => {
4541
4549
  if (data.changes && data.changes.files > 0) {
4542
4550
  const parts = [];
4543
4551
  if (data.changes.insertions > 0) parts.push(`+${data.changes.insertions}`);
4544
4552
  if (data.changes.deletions > 0) parts.push(`-${data.changes.deletions}`);
4545
4553
  if (parts.length > 0) {
4546
- const branch = colors2 ? colorize(data.branch, colors2.branch) : data.branch;
4554
+ const branch = colors3 ? colorize(data.branch, colors3.branch) : data.branch;
4547
4555
  const changesStr = parts.join("/");
4548
4556
  return `${branch} ${changesStr}`;
4549
4557
  }
4550
4558
  }
4551
- return colors2 ? colorize(data.branch, colors2.branch) : data.branch;
4559
+ return colors3 ? colorize(data.branch, colors3.branch) : data.branch;
4552
4560
  },
4553
- playful: (data, colors2) => {
4561
+ playful: (data, colors3) => {
4554
4562
  if (data.changes && data.changes.files > 0) {
4555
4563
  const parts = [];
4556
4564
  if (data.changes.insertions > 0) parts.push(`\u2B06${data.changes.insertions}`);
4557
4565
  if (data.changes.deletions > 0) parts.push(`\u2B07${data.changes.deletions}`);
4558
4566
  if (parts.length > 0) {
4559
- const branch2 = colors2 ? colorize(data.branch, colors2.branch) : data.branch;
4567
+ const branch2 = colors3 ? colorize(data.branch, colors3.branch) : data.branch;
4560
4568
  return `\u{1F500} ${branch2} ${parts.join(" ")}`;
4561
4569
  }
4562
4570
  }
4563
- const branch = colors2 ? colorize(data.branch, colors2.branch) : data.branch;
4571
+ const branch = colors3 ? colorize(data.branch, colors3.branch) : data.branch;
4564
4572
  return `\u{1F500} ${branch}`;
4565
4573
  },
4566
- verbose: (data, colors2) => {
4574
+ verbose: (data, colors3) => {
4567
4575
  if (data.changes && data.changes.files > 0) {
4568
4576
  const parts = [];
4569
4577
  if (data.changes.insertions > 0) parts.push(`+${data.changes.insertions} insertions`);
4570
4578
  if (data.changes.deletions > 0) parts.push(`-${data.changes.deletions} deletions`);
4571
4579
  if (parts.length > 0) {
4572
- const branch2 = colors2 ? colorize(data.branch, colors2.branch) : data.branch;
4573
- const changes = colors2 ? colorize(`[${parts.join(", ")}]`, colors2.changes) : `[${parts.join(", ")}]`;
4580
+ const branch2 = colors3 ? colorize(data.branch, colors3.branch) : data.branch;
4581
+ const changes = colors3 ? colorize(`[${parts.join(", ")}]`, colors3.changes) : `[${parts.join(", ")}]`;
4574
4582
  return `branch: ${branch2} ${changes}`;
4575
4583
  }
4576
4584
  }
4577
- const branch = colors2 ? colorize(data.branch, colors2.branch) : data.branch;
4585
+ const branch = colors3 ? colorize(data.branch, colors3.branch) : data.branch;
4578
4586
  return `branch: ${branch} (HEAD)`;
4579
4587
  },
4580
- labeled: (data, colors2) => {
4588
+ labeled: (data, colors3) => {
4581
4589
  if (data.changes && data.changes.files > 0) {
4582
4590
  const parts = [];
4583
4591
  if (data.changes.insertions > 0) parts.push(`+${data.changes.insertions}`);
4584
4592
  if (data.changes.deletions > 0) parts.push(`-${data.changes.deletions}`);
4585
4593
  if (parts.length > 0) {
4586
- const branch2 = colors2 ? colorize(data.branch, colors2.branch) : data.branch;
4594
+ const branch2 = colors3 ? colorize(data.branch, colors3.branch) : data.branch;
4587
4595
  const changes = `${data.changes.files} files: ${parts.join("/")}`;
4588
4596
  return `Git: ${branch2} [${changes}]`;
4589
4597
  }
4590
4598
  }
4591
- const branch = colors2 ? colorize(data.branch, colors2.branch) : data.branch;
4599
+ const branch = colors3 ? colorize(data.branch, colors3.branch) : data.branch;
4592
4600
  return `Git: ${branch}`;
4593
4601
  },
4594
- indicator: (data, colors2) => {
4602
+ indicator: (data, colors3) => {
4595
4603
  if (data.changes && data.changes.files > 0) {
4596
4604
  const parts = [];
4597
4605
  if (data.changes.insertions > 0) parts.push(`+${data.changes.insertions}`);
4598
4606
  if (data.changes.deletions > 0) parts.push(`-${data.changes.deletions}`);
4599
4607
  if (parts.length > 0) {
4600
- const branch = colors2 ? colorize(data.branch, colors2.branch) : data.branch;
4601
- const changes = colors2 ? colorize(`[${parts.join(" ")}]`, colors2.changes) : `[${parts.join(" ")}]`;
4608
+ const branch = colors3 ? colorize(data.branch, colors3.branch) : data.branch;
4609
+ const changes = colors3 ? colorize(`[${parts.join(" ")}]`, colors3.changes) : `[${parts.join(" ")}]`;
4602
4610
  return `\u25CF ${branch} ${changes}`;
4603
4611
  }
4604
4612
  }
4605
- return withIndicator(colors2 ? colorize(data.branch, colors2.branch) : data.branch);
4613
+ return withIndicator(colors3 ? colorize(data.branch, colors3.branch) : data.branch);
4606
4614
  }
4607
4615
  };
4608
4616
  }
@@ -4641,9 +4649,9 @@ var init_git_widget = __esm({
4641
4649
  * Tests can inject MockGit factory here
4642
4650
  * @param colors - Optional theme colors
4643
4651
  */
4644
- constructor(gitFactory, colors2) {
4652
+ constructor(gitFactory, colors3) {
4645
4653
  this.gitFactory = gitFactory || createGit;
4646
- this.colors = colors2 ?? DEFAULT_THEME;
4654
+ this.colors = colors3 ?? DEFAULT_THEME;
4647
4655
  }
4648
4656
  setStyle(style = DEFAULT_WIDGET_STYLE) {
4649
4657
  const fn = gitStyles[style];
@@ -4713,45 +4721,45 @@ var init_styles11 = __esm({
4713
4721
  init_colors();
4714
4722
  init_style_utils();
4715
4723
  linesStyles = {
4716
- balanced: (data, colors2) => {
4717
- if (!colors2) return `+${data.added}/-${data.removed}`;
4718
- const addedStr = colorize(`+${data.added}`, colors2.added);
4719
- const removedStr = colorize(`-${data.removed}`, colors2.removed);
4724
+ balanced: (data, colors3) => {
4725
+ if (!colors3) return `+${data.added}/-${data.removed}`;
4726
+ const addedStr = colorize(`+${data.added}`, colors3.added);
4727
+ const removedStr = colorize(`-${data.removed}`, colors3.removed);
4720
4728
  return `${addedStr}/${removedStr}`;
4721
4729
  },
4722
- compact: (data, colors2) => {
4723
- if (!colors2) return `+${data.added}-${data.removed}`;
4724
- const addedStr = colorize(`+${data.added}`, colors2.added);
4725
- const removedStr = colorize(`-${data.removed}`, colors2.removed);
4730
+ compact: (data, colors3) => {
4731
+ if (!colors3) return `+${data.added}-${data.removed}`;
4732
+ const addedStr = colorize(`+${data.added}`, colors3.added);
4733
+ const removedStr = colorize(`-${data.removed}`, colors3.removed);
4726
4734
  return `${addedStr}${removedStr}`;
4727
4735
  },
4728
- playful: (data, colors2) => {
4729
- if (!colors2) return `\u2795${data.added} \u2796${data.removed}`;
4730
- const addedStr = colorize(`\u2795${data.added}`, colors2.added);
4731
- const removedStr = colorize(`\u2796${data.removed}`, colors2.removed);
4736
+ playful: (data, colors3) => {
4737
+ if (!colors3) return `\u2795${data.added} \u2796${data.removed}`;
4738
+ const addedStr = colorize(`\u2795${data.added}`, colors3.added);
4739
+ const removedStr = colorize(`\u2796${data.removed}`, colors3.removed);
4732
4740
  return `${addedStr} ${removedStr}`;
4733
4741
  },
4734
- verbose: (data, colors2) => {
4742
+ verbose: (data, colors3) => {
4735
4743
  const parts = [];
4736
4744
  if (data.added > 0) {
4737
4745
  const text = `+${data.added} added`;
4738
- parts.push(colors2 ? colorize(text, colors2.added) : text);
4746
+ parts.push(colors3 ? colorize(text, colors3.added) : text);
4739
4747
  }
4740
4748
  if (data.removed > 0) {
4741
4749
  const text = `-${data.removed} removed`;
4742
- parts.push(colors2 ? colorize(text, colors2.removed) : text);
4750
+ parts.push(colors3 ? colorize(text, colors3.removed) : text);
4743
4751
  }
4744
4752
  return parts.join(", ");
4745
4753
  },
4746
- labeled: (data, colors2) => {
4747
- const addedStr = colors2 ? colorize(`+${data.added}`, colors2.added) : `+${data.added}`;
4748
- const removedStr = colors2 ? colorize(`-${data.removed}`, colors2.removed) : `-${data.removed}`;
4754
+ labeled: (data, colors3) => {
4755
+ const addedStr = colors3 ? colorize(`+${data.added}`, colors3.added) : `+${data.added}`;
4756
+ const removedStr = colors3 ? colorize(`-${data.removed}`, colors3.removed) : `-${data.removed}`;
4749
4757
  const lines = `${addedStr}/${removedStr}`;
4750
4758
  return withLabel("Lines", lines);
4751
4759
  },
4752
- indicator: (data, colors2) => {
4753
- const addedStr = colors2 ? colorize(`+${data.added}`, colors2.added) : `+${data.added}`;
4754
- const removedStr = colors2 ? colorize(`-${data.removed}`, colors2.removed) : `-${data.removed}`;
4760
+ indicator: (data, colors3) => {
4761
+ const addedStr = colors3 ? colorize(`+${data.added}`, colors3.added) : `+${data.added}`;
4762
+ const removedStr = colors3 ? colorize(`-${data.removed}`, colors3.removed) : `-${data.removed}`;
4755
4763
  const lines = `${addedStr}/${removedStr}`;
4756
4764
  return withIndicator(lines);
4757
4765
  }
@@ -4781,9 +4789,9 @@ var init_lines_widget = __esm({
4781
4789
  );
4782
4790
  colors;
4783
4791
  styleFn = linesStyles.balanced;
4784
- constructor(colors2) {
4792
+ constructor(colors3) {
4785
4793
  super();
4786
- this.colors = colors2 ?? DEFAULT_THEME;
4794
+ this.colors = colors3 ?? DEFAULT_THEME;
4787
4795
  }
4788
4796
  setStyle(style = DEFAULT_WIDGET_STYLE) {
4789
4797
  const fn = linesStyles[style];
@@ -4813,42 +4821,42 @@ var init_styles12 = __esm({
4813
4821
  init_colors();
4814
4822
  init_style_utils();
4815
4823
  modelStyles = {
4816
- balanced: (data, colors2) => {
4817
- if (!colors2) return data.displayName;
4818
- return colorize(data.displayName, colors2.name);
4824
+ balanced: (data, colors3) => {
4825
+ if (!colors3) return data.displayName;
4826
+ return colorize(data.displayName, colors3.name);
4819
4827
  },
4820
- compact: (data, colors2) => {
4828
+ compact: (data, colors3) => {
4821
4829
  const shortName = getShortName(data.displayName);
4822
- if (!colors2) return shortName;
4823
- return colorize(shortName, colors2.name);
4830
+ if (!colors3) return shortName;
4831
+ return colorize(shortName, colors3.name);
4824
4832
  },
4825
- playful: (data, colors2) => {
4833
+ playful: (data, colors3) => {
4826
4834
  const shortName = getShortName(data.displayName);
4827
- if (!colors2) return `\u{1F916} ${shortName}`;
4828
- return `\u{1F916} ${colorize(shortName, colors2.name)}`;
4835
+ if (!colors3) return `\u{1F916} ${shortName}`;
4836
+ return `\u{1F916} ${colorize(shortName, colors3.name)}`;
4829
4837
  },
4830
- technical: (data, colors2) => {
4831
- if (!colors2) return data.id;
4838
+ technical: (data, colors3) => {
4839
+ if (!colors3) return data.id;
4832
4840
  const match = data.id.match(/^(.+?)-(\d[\d.]*)$/);
4833
4841
  if (match) {
4834
- return colorize(match[1], colors2.name) + colorize(`-${match[2]}`, colors2.version);
4842
+ return colorize(match[1], colors3.name) + colorize(`-${match[2]}`, colors3.version);
4835
4843
  }
4836
- return colorize(data.id, colors2.name);
4844
+ return colorize(data.id, colors3.name);
4837
4845
  },
4838
- symbolic: (data, colors2) => {
4846
+ symbolic: (data, colors3) => {
4839
4847
  const shortName = getShortName(data.displayName);
4840
- if (!colors2) return `\u25C6 ${shortName}`;
4841
- return `\u25C6 ${colorize(shortName, colors2.name)}`;
4848
+ if (!colors3) return `\u25C6 ${shortName}`;
4849
+ return `\u25C6 ${colorize(shortName, colors3.name)}`;
4842
4850
  },
4843
- labeled: (data, colors2) => {
4851
+ labeled: (data, colors3) => {
4844
4852
  const shortName = getShortName(data.displayName);
4845
- if (!colors2) return withLabel("Model", shortName);
4846
- return withLabel("Model", colorize(shortName, colors2.name));
4853
+ if (!colors3) return withLabel("Model", shortName);
4854
+ return withLabel("Model", colorize(shortName, colors3.name));
4847
4855
  },
4848
- indicator: (data, colors2) => {
4856
+ indicator: (data, colors3) => {
4849
4857
  const shortName = getShortName(data.displayName);
4850
- if (!colors2) return withIndicator(shortName);
4851
- return withIndicator(colorize(shortName, colors2.name));
4858
+ if (!colors3) return withIndicator(shortName);
4859
+ return withIndicator(colorize(shortName, colors3.name));
4852
4860
  }
4853
4861
  };
4854
4862
  }
@@ -4876,9 +4884,9 @@ var init_model_widget = __esm({
4876
4884
  );
4877
4885
  colors;
4878
4886
  styleFn = modelStyles.balanced;
4879
- constructor(colors2) {
4887
+ constructor(colors3) {
4880
4888
  super();
4881
- this.colors = colors2 ?? DEFAULT_THEME;
4889
+ this.colors = colors3 ?? DEFAULT_THEME;
4882
4890
  }
4883
4891
  setStyle(style = DEFAULT_WIDGET_STYLE) {
4884
4892
  const fn = modelStyles[style];
@@ -4923,36 +4931,36 @@ var init_styles13 = __esm({
4923
4931
  "use strict";
4924
4932
  init_colors();
4925
4933
  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) : "|";
4934
+ balanced: (data, colors3) => {
4935
+ const cpu = colors3 ? colorize(`CPU ${data.cpu.percent}%`, colors3.cpu) : `CPU ${data.cpu.percent}%`;
4936
+ const ram = colors3 ? colorize(`RAM ${formatGB(data.memory.used)}`, colors3.ram) : `RAM ${formatGB(data.memory.used)}`;
4937
+ const disk = colors3 ? colorize(`Disk ${data.disk.percent}%`, colors3.disk) : `Disk ${data.disk.percent}%`;
4938
+ const net = colors3 ? colorize(`Net \u2193${formatMB(data.network.rxSec)}/s`, colors3.network) : `Net \u2193${formatMB(data.network.rxSec)}/s`;
4939
+ const sep = colors3 ? colorize("|", colors3.separator) : "|";
4932
4940
  return `${cpu} ${sep} ${ram} ${sep} ${disk} ${sep} ${net}`;
4933
4941
  },
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`;
4942
+ compact: (data, colors3) => {
4943
+ const cpu = colors3 ? colorize(`CPU${data.cpu.percent}%`, colors3.cpu) : `CPU${data.cpu.percent}%`;
4944
+ const ram = colors3 ? colorize(`RAM${formatGB(data.memory.used)}`, colors3.ram) : `RAM${formatGB(data.memory.used)}`;
4945
+ const disk = colors3 ? colorize(`D${data.disk.percent}%`, colors3.disk) : `D${data.disk.percent}%`;
4946
+ const net = colors3 ? colorize(`\u2193${formatMB(data.network.rxSec)}/s`, colors3.network) : `\u2193${formatMB(data.network.rxSec)}/s`;
4939
4947
  return `${cpu} ${ram} ${disk} ${net}`;
4940
4948
  },
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) : "|";
4949
+ playful: (data, colors3) => {
4950
+ const cpu = colors3 ? colorize(`${data.cpu.percent}%`, colors3.cpu) : `${data.cpu.percent}%`;
4951
+ const ram = colors3 ? colorize(formatGB(data.memory.used), colors3.ram) : formatGB(data.memory.used);
4952
+ const disk = colors3 ? colorize(`${data.disk.percent}%`, colors3.disk) : `${data.disk.percent}%`;
4953
+ const net = colors3 ? colorize(`\u2193${formatMB(data.network.rxSec)}/s`, colors3.network) : `\u2193${formatMB(data.network.rxSec)}/s`;
4954
+ const sep = colors3 ? colorize("|", colors3.separator) : "|";
4947
4955
  return `\u{1F5A5}\uFE0F ${cpu} ${sep} \u{1F4BE} ${ram} ${sep} \u{1F4BF} ${disk} ${sep} \u{1F310} ${net}`;
4948
4956
  },
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(
4957
+ verbose: (data, colors3) => {
4958
+ const cpu = colors3 ? colorize(`CPU: ${data.cpu.percent}%`, colors3.cpu) : `CPU: ${data.cpu.percent}%`;
4959
+ const ram = colors3 ? colorize(`RAM: ${formatGB(data.memory.used)}/${formatGB(data.memory.total)}`, colors3.ram) : `RAM: ${formatGB(data.memory.used)}/${formatGB(data.memory.total)}`;
4960
+ const disk = colors3 ? colorize(`Disk: ${formatGB(data.disk.used)}/${formatGB(data.disk.total)}`, colors3.disk) : `Disk: ${formatGB(data.disk.used)}/${formatGB(data.disk.total)}`;
4961
+ const net = colors3 ? colorize(
4954
4962
  `Net: \u2193${formatMB(data.network.rxSec)}/s \u2191${formatMB(data.network.txSec)}/s`,
4955
- colors2.network
4963
+ colors3.network
4956
4964
  ) : `Net: \u2193${formatMB(data.network.rxSec)}/s \u2191${formatMB(data.network.txSec)}/s`;
4957
4965
  return `${cpu} | ${ram} | ${disk} | ${net}`;
4958
4966
  }
@@ -4984,8 +4992,8 @@ var init_sysmon_widget = __esm({
4984
4992
  styleFn = sysmonStyles.balanced;
4985
4993
  enabled = true;
4986
4994
  _lineOverride;
4987
- constructor(colors2, provider) {
4988
- this.colors = colors2 ?? DEFAULT_THEME;
4995
+ constructor(colors3, provider) {
4996
+ this.colors = colors3 ?? DEFAULT_THEME;
4989
4997
  this.provider = provider ?? null;
4990
4998
  }
4991
4999
  async initialize(context) {
@@ -5450,49 +5458,49 @@ var require_yoctocolors_cjs = __commonJS({
5450
5458
  return result2;
5451
5459
  };
5452
5460
  };
5453
- var colors2 = {};
5454
- colors2.reset = format(0, 0);
5455
- colors2.bold = format(1, 22);
5456
- colors2.dim = format(2, 22);
5457
- colors2.italic = format(3, 23);
5458
- colors2.underline = format(4, 24);
5459
- colors2.overline = format(53, 55);
5460
- colors2.inverse = format(7, 27);
5461
- colors2.hidden = format(8, 28);
5462
- colors2.strikethrough = format(9, 29);
5463
- colors2.black = format(30, 39);
5464
- colors2.red = format(31, 39);
5465
- colors2.green = format(32, 39);
5466
- colors2.yellow = format(33, 39);
5467
- colors2.blue = format(34, 39);
5468
- colors2.magenta = format(35, 39);
5469
- colors2.cyan = format(36, 39);
5470
- colors2.white = format(37, 39);
5471
- colors2.gray = format(90, 39);
5472
- colors2.bgBlack = format(40, 49);
5473
- colors2.bgRed = format(41, 49);
5474
- colors2.bgGreen = format(42, 49);
5475
- colors2.bgYellow = format(43, 49);
5476
- colors2.bgBlue = format(44, 49);
5477
- colors2.bgMagenta = format(45, 49);
5478
- colors2.bgCyan = format(46, 49);
5479
- colors2.bgWhite = format(47, 49);
5480
- colors2.bgGray = format(100, 49);
5481
- colors2.redBright = format(91, 39);
5482
- colors2.greenBright = format(92, 39);
5483
- colors2.yellowBright = format(93, 39);
5484
- colors2.blueBright = format(94, 39);
5485
- colors2.magentaBright = format(95, 39);
5486
- colors2.cyanBright = format(96, 39);
5487
- colors2.whiteBright = format(97, 39);
5488
- colors2.bgRedBright = format(101, 49);
5489
- colors2.bgGreenBright = format(102, 49);
5490
- colors2.bgYellowBright = format(103, 49);
5491
- colors2.bgBlueBright = format(104, 49);
5492
- colors2.bgMagentaBright = format(105, 49);
5493
- colors2.bgCyanBright = format(106, 49);
5494
- colors2.bgWhiteBright = format(107, 49);
5495
- module2.exports = colors2;
5461
+ var colors3 = {};
5462
+ colors3.reset = format(0, 0);
5463
+ colors3.bold = format(1, 22);
5464
+ colors3.dim = format(2, 22);
5465
+ colors3.italic = format(3, 23);
5466
+ colors3.underline = format(4, 24);
5467
+ colors3.overline = format(53, 55);
5468
+ colors3.inverse = format(7, 27);
5469
+ colors3.hidden = format(8, 28);
5470
+ colors3.strikethrough = format(9, 29);
5471
+ colors3.black = format(30, 39);
5472
+ colors3.red = format(31, 39);
5473
+ colors3.green = format(32, 39);
5474
+ colors3.yellow = format(33, 39);
5475
+ colors3.blue = format(34, 39);
5476
+ colors3.magenta = format(35, 39);
5477
+ colors3.cyan = format(36, 39);
5478
+ colors3.white = format(37, 39);
5479
+ colors3.gray = format(90, 39);
5480
+ colors3.bgBlack = format(40, 49);
5481
+ colors3.bgRed = format(41, 49);
5482
+ colors3.bgGreen = format(42, 49);
5483
+ colors3.bgYellow = format(43, 49);
5484
+ colors3.bgBlue = format(44, 49);
5485
+ colors3.bgMagenta = format(45, 49);
5486
+ colors3.bgCyan = format(46, 49);
5487
+ colors3.bgWhite = format(47, 49);
5488
+ colors3.bgGray = format(100, 49);
5489
+ colors3.redBright = format(91, 39);
5490
+ colors3.greenBright = format(92, 39);
5491
+ colors3.yellowBright = format(93, 39);
5492
+ colors3.blueBright = format(94, 39);
5493
+ colors3.magentaBright = format(95, 39);
5494
+ colors3.cyanBright = format(96, 39);
5495
+ colors3.whiteBright = format(97, 39);
5496
+ colors3.bgRedBright = format(101, 49);
5497
+ colors3.bgGreenBright = format(102, 49);
5498
+ colors3.bgYellowBright = format(103, 49);
5499
+ colors3.bgBlueBright = format(104, 49);
5500
+ colors3.bgMagentaBright = format(105, 49);
5501
+ colors3.bgCyanBright = format(106, 49);
5502
+ colors3.bgWhiteBright = format(107, 49);
5503
+ module2.exports = colors3;
5496
5504
  }
5497
5505
  });
5498
5506
 
@@ -6896,15 +6904,15 @@ var require_route = __commonJS({
6896
6904
  };
6897
6905
  }
6898
6906
  function wrapConversion(toModel, graph) {
6899
- const path2 = [graph[toModel].parent, toModel];
6907
+ const path3 = [graph[toModel].parent, toModel];
6900
6908
  let fn = conversions[graph[toModel].parent][toModel];
6901
6909
  let cur = graph[toModel].parent;
6902
6910
  while (graph[cur].parent) {
6903
- path2.unshift(graph[cur].parent);
6911
+ path3.unshift(graph[cur].parent);
6904
6912
  fn = link(conversions[graph[cur].parent][cur], fn);
6905
6913
  cur = graph[cur].parent;
6906
6914
  }
6907
- fn.conversion = path2;
6915
+ fn.conversion = path3;
6908
6916
  return fn;
6909
6917
  }
6910
6918
  module2.exports = function(fromModel) {
@@ -8206,9 +8214,9 @@ var require_package = __commonJS({
8206
8214
  var require_util = __commonJS({
8207
8215
  "node_modules/systeminformation/lib/util.js"(exports2) {
8208
8216
  "use strict";
8209
- var os2 = require("os");
8210
- var fs2 = require("fs");
8211
- var path2 = require("path");
8217
+ var os3 = require("os");
8218
+ var fs3 = require("fs");
8219
+ var path3 = require("path");
8212
8220
  var spawn = require("child_process").spawn;
8213
8221
  var exec = require("child_process").exec;
8214
8222
  var execSync = require("child_process").execSync;
@@ -8313,7 +8321,7 @@ var require_util = __commonJS({
8313
8321
  }
8314
8322
  function cores() {
8315
8323
  if (_cores === 0) {
8316
- _cores = os2.cpus().length;
8324
+ _cores = os3.cpus().length;
8317
8325
  }
8318
8326
  return _cores;
8319
8327
  }
@@ -8504,7 +8512,7 @@ var require_util = __commonJS({
8504
8512
  _powerShell = "powershell.exe";
8505
8513
  if (_windows) {
8506
8514
  const defaultPath = `${WINDIR}\\system32\\WindowsPowerShell\\v1.0\\powershell.exe`;
8507
- if (fs2.existsSync(defaultPath)) {
8515
+ if (fs3.existsSync(defaultPath)) {
8508
8516
  _powerShell = defaultPath;
8509
8517
  }
8510
8518
  }
@@ -8574,7 +8582,7 @@ var require_util = __commonJS({
8574
8582
  function powerShellRelease() {
8575
8583
  try {
8576
8584
  if (_psChild) {
8577
- _psChild.stdin.write("exit" + os2.EOL);
8585
+ _psChild.stdin.write("exit" + os3.EOL);
8578
8586
  _psChild.stdin.end();
8579
8587
  }
8580
8588
  } catch {
@@ -8601,7 +8609,7 @@ var require_util = __commonJS({
8601
8609
  });
8602
8610
  try {
8603
8611
  if (_psChild && _psChild.pid) {
8604
- _psChild.stdin.write(_psToUTF8 + "echo " + _psCmdStart + id + _psIdSeperator + "; " + os2.EOL + cmd + os2.EOL + "echo " + _psCmdSeperator + os2.EOL);
8612
+ _psChild.stdin.write(_psToUTF8 + "echo " + _psCmdStart + id + _psIdSeperator + "; " + os3.EOL + cmd + os3.EOL + "echo " + _psCmdSeperator + os3.EOL);
8605
8613
  }
8606
8614
  } catch {
8607
8615
  resolve("");
@@ -8613,7 +8621,7 @@ var require_util = __commonJS({
8613
8621
  return new Promise((resolve) => {
8614
8622
  process.nextTick(() => {
8615
8623
  try {
8616
- const osVersion = os2.release().split(".").map(Number);
8624
+ const osVersion = os3.release().split(".").map(Number);
8617
8625
  const spanOptions = osVersion[0] < 10 ? ["-NoProfile", "-NoLogo", "-InputFormat", "Text", "-NoExit", "-ExecutionPolicy", "Unrestricted", "-Command", "-"] : ["-NoProfile", "-NoLogo", "-InputFormat", "Text", "-ExecutionPolicy", "Unrestricted", "-Command", cmd];
8618
8626
  const child = spawn(_powerShell, spanOptions, {
8619
8627
  stdio: "pipe",
@@ -8645,8 +8653,8 @@ var require_util = __commonJS({
8645
8653
  });
8646
8654
  if (osVersion[0] < 10) {
8647
8655
  try {
8648
- child.stdin.write(_psToUTF8 + cmd + os2.EOL);
8649
- child.stdin.write("exit" + os2.EOL);
8656
+ child.stdin.write(_psToUTF8 + cmd + os3.EOL);
8657
+ child.stdin.write("exit" + os3.EOL);
8650
8658
  child.stdin.end();
8651
8659
  } catch {
8652
8660
  child.kill();
@@ -8760,7 +8768,7 @@ var require_util = __commonJS({
8760
8768
  cpuinfo = _rpi_cpuinfo;
8761
8769
  } else if (cpuinfo === void 0) {
8762
8770
  try {
8763
- cpuinfo = fs2.readFileSync("/proc/cpuinfo", { encoding: "utf8" }).toString().split("\n");
8771
+ cpuinfo = fs3.readFileSync("/proc/cpuinfo", { encoding: "utf8" }).toString().split("\n");
8764
8772
  _rpi_cpuinfo = cpuinfo;
8765
8773
  } catch {
8766
8774
  return false;
@@ -8773,7 +8781,7 @@ var require_util = __commonJS({
8773
8781
  function isRaspbian() {
8774
8782
  let osrelease = [];
8775
8783
  try {
8776
- osrelease = fs2.readFileSync("/etc/os-release", { encoding: "utf8" }).toString().split("\n");
8784
+ osrelease = fs3.readFileSync("/etc/os-release", { encoding: "utf8" }).toString().split("\n");
8777
8785
  } catch {
8778
8786
  return false;
8779
8787
  }
@@ -8791,9 +8799,9 @@ var require_util = __commonJS({
8791
8799
  });
8792
8800
  }
8793
8801
  function darwinXcodeExists() {
8794
- const cmdLineToolsExists = fs2.existsSync("/Library/Developer/CommandLineTools/usr/bin/");
8795
- const xcodeAppExists = fs2.existsSync("/Applications/Xcode.app/Contents/Developer/Tools");
8796
- const xcodeExists = fs2.existsSync("/Library/Developer/Xcode/");
8802
+ const cmdLineToolsExists = fs3.existsSync("/Library/Developer/CommandLineTools/usr/bin/");
8803
+ const xcodeAppExists = fs3.existsSync("/Applications/Xcode.app/Contents/Developer/Tools");
8804
+ const xcodeExists = fs3.existsSync("/Library/Developer/Xcode/");
8797
8805
  return cmdLineToolsExists || xcodeExists || xcodeAppExists;
8798
8806
  }
8799
8807
  function nanoSeconds() {
@@ -8911,9 +8919,9 @@ var require_util = __commonJS({
8911
8919
  return ("00000000" + parseInt(hex, 16).toString(2)).substr(-8);
8912
8920
  }
8913
8921
  function getFilesInPath(source) {
8914
- const lstatSync = fs2.lstatSync;
8915
- const readdirSync = fs2.readdirSync;
8916
- const join5 = path2.join;
8922
+ const lstatSync = fs3.lstatSync;
8923
+ const readdirSync = fs3.readdirSync;
8924
+ const join6 = path3.join;
8917
8925
  function isDirectory(source2) {
8918
8926
  return lstatSync(source2).isDirectory();
8919
8927
  }
@@ -8922,12 +8930,12 @@ var require_util = __commonJS({
8922
8930
  }
8923
8931
  function getDirectories(source2) {
8924
8932
  return readdirSync(source2).map((name) => {
8925
- return join5(source2, name);
8933
+ return join6(source2, name);
8926
8934
  }).filter(isDirectory);
8927
8935
  }
8928
8936
  function getFiles(source2) {
8929
8937
  return readdirSync(source2).map((name) => {
8930
- return join5(source2, name);
8938
+ return join6(source2, name);
8931
8939
  }).filter(isFile);
8932
8940
  }
8933
8941
  function getFilesRecursively(source2) {
@@ -8943,7 +8951,7 @@ var require_util = __commonJS({
8943
8951
  return [];
8944
8952
  }
8945
8953
  }
8946
- if (fs2.existsSync(source)) {
8954
+ if (fs3.existsSync(source)) {
8947
8955
  return getFilesRecursively(source);
8948
8956
  } else {
8949
8957
  return [];
@@ -9146,7 +9154,7 @@ var require_util = __commonJS({
9146
9154
  cpuinfo = _rpi_cpuinfo;
9147
9155
  } else {
9148
9156
  try {
9149
- cpuinfo = fs2.readFileSync("/proc/cpuinfo", { encoding: "utf8" }).toString().split("\n");
9157
+ cpuinfo = fs3.readFileSync("/proc/cpuinfo", { encoding: "utf8" }).toString().split("\n");
9150
9158
  _rpi_cpuinfo = cpuinfo;
9151
9159
  } catch {
9152
9160
  return false;
@@ -10714,8 +10722,8 @@ var require_util = __commonJS({
10714
10722
  var require_osinfo = __commonJS({
10715
10723
  "node_modules/systeminformation/lib/osinfo.js"(exports2) {
10716
10724
  "use strict";
10717
- var os2 = require("os");
10718
- var fs2 = require("fs");
10725
+ var os3 = require("os");
10726
+ var fs3 = require("fs");
10719
10727
  var util = require_util();
10720
10728
  var exec = require("child_process").exec;
10721
10729
  var execSync = require("child_process").execSync;
@@ -10737,14 +10745,14 @@ var require_osinfo = __commonJS({
10737
10745
  }
10738
10746
  const result2 = {
10739
10747
  current: Date.now(),
10740
- uptime: os2.uptime(),
10748
+ uptime: os3.uptime(),
10741
10749
  timezone: t.length >= 7 ? t[5] : "",
10742
10750
  timezoneName
10743
10751
  };
10744
10752
  if (_darwin || _linux) {
10745
10753
  try {
10746
10754
  const stdout = execSync("date +%Z && date +%z && ls -l /etc/localtime 2>/dev/null", util.execOptsLinux);
10747
- const lines = stdout.toString().split(os2.EOL);
10755
+ const lines = stdout.toString().split(os3.EOL);
10748
10756
  if (lines.length > 3 && !lines[0]) {
10749
10757
  lines.shift();
10750
10758
  }
@@ -10754,7 +10762,7 @@ var require_osinfo = __commonJS({
10754
10762
  }
10755
10763
  return {
10756
10764
  current: Date.now(),
10757
- uptime: os2.uptime(),
10765
+ uptime: os3.uptime(),
10758
10766
  timezone: lines[1] ? timezone + lines[1] : timezone,
10759
10767
  timezoneName: lines[2] && lines[2].indexOf("/zoneinfo/") > 0 ? lines[2].split("/zoneinfo/")[1] || "" : ""
10760
10768
  };
@@ -10873,11 +10881,11 @@ var require_osinfo = __commonJS({
10873
10881
  return "";
10874
10882
  }
10875
10883
  function getFQDN() {
10876
- let fqdn = os2.hostname;
10884
+ let fqdn = os3.hostname;
10877
10885
  if (_linux || _darwin) {
10878
10886
  try {
10879
10887
  const stdout = execSync("hostname -f 2>/dev/null", util.execOptsLinux);
10880
- fqdn = stdout.toString().split(os2.EOL)[0];
10888
+ fqdn = stdout.toString().split(os3.EOL)[0];
10881
10889
  } catch {
10882
10890
  util.noop();
10883
10891
  }
@@ -10885,7 +10893,7 @@ var require_osinfo = __commonJS({
10885
10893
  if (_freebsd || _openbsd || _netbsd) {
10886
10894
  try {
10887
10895
  const stdout = execSync("hostname 2>/dev/null");
10888
- fqdn = stdout.toString().split(os2.EOL)[0];
10896
+ fqdn = stdout.toString().split(os3.EOL)[0];
10889
10897
  } catch {
10890
10898
  util.noop();
10891
10899
  }
@@ -10893,7 +10901,7 @@ var require_osinfo = __commonJS({
10893
10901
  if (_windows) {
10894
10902
  try {
10895
10903
  const stdout = execSync("echo %COMPUTERNAME%.%USERDNSDOMAIN%", util.execOptsWin);
10896
- fqdn = stdout.toString().replace(".%USERDNSDOMAIN%", "").split(os2.EOL)[0];
10904
+ fqdn = stdout.toString().replace(".%USERDNSDOMAIN%", "").split(os3.EOL)[0];
10897
10905
  } catch {
10898
10906
  util.noop();
10899
10907
  }
@@ -10908,9 +10916,9 @@ var require_osinfo = __commonJS({
10908
10916
  distro: "unknown",
10909
10917
  release: "unknown",
10910
10918
  codename: "",
10911
- kernel: os2.release(),
10912
- arch: os2.arch(),
10913
- hostname: os2.hostname(),
10919
+ kernel: os3.release(),
10920
+ arch: os3.arch(),
10921
+ hostname: os3.hostname(),
10914
10922
  fqdn: getFQDN(),
10915
10923
  codepage: "",
10916
10924
  logofile: "",
@@ -11076,7 +11084,7 @@ var require_osinfo = __commonJS({
11076
11084
  function isUefiLinux() {
11077
11085
  return new Promise((resolve) => {
11078
11086
  process.nextTick(() => {
11079
- fs2.stat("/sys/firmware/efi", (err) => {
11087
+ fs3.stat("/sys/firmware/efi", (err) => {
11080
11088
  if (!err) {
11081
11089
  return resolve(true);
11082
11090
  } else {
@@ -11119,7 +11127,7 @@ var require_osinfo = __commonJS({
11119
11127
  }
11120
11128
  function versions(apps, callback) {
11121
11129
  let versionObject = {
11122
- kernel: os2.release(),
11130
+ kernel: os3.release(),
11123
11131
  apache: "",
11124
11132
  bash: "",
11125
11133
  bun: "",
@@ -11316,7 +11324,7 @@ var require_osinfo = __commonJS({
11316
11324
  }
11317
11325
  if ({}.hasOwnProperty.call(appsObj.versions, "git")) {
11318
11326
  if (_darwin) {
11319
- const gitHomebrewExists = fs2.existsSync("/usr/local/Cellar/git") || fs2.existsSync("/opt/homebrew/bin/git");
11327
+ const gitHomebrewExists = fs3.existsSync("/usr/local/Cellar/git") || fs3.existsSync("/opt/homebrew/bin/git");
11320
11328
  if (util.darwinXcodeExists() || gitHomebrewExists) {
11321
11329
  exec("git --version", (error, stdout) => {
11322
11330
  if (!error) {
@@ -11511,8 +11519,8 @@ var require_osinfo = __commonJS({
11511
11519
  const stdout = execSync("sw_vers");
11512
11520
  const lines = stdout.toString().split("\n");
11513
11521
  const osVersion = util.getValue(lines, "ProductVersion", ":");
11514
- const gitHomebrewExists1 = fs2.existsSync("/usr/local/Cellar/python");
11515
- const gitHomebrewExists2 = fs2.existsSync("/opt/homebrew/bin/python");
11522
+ const gitHomebrewExists1 = fs3.existsSync("/usr/local/Cellar/python");
11523
+ const gitHomebrewExists2 = fs3.existsSync("/opt/homebrew/bin/python");
11516
11524
  if (util.darwinXcodeExists() && util.semverCompare("12.0.1", osVersion) < 0 || gitHomebrewExists1 || gitHomebrewExists2) {
11517
11525
  const cmd2 = gitHomebrewExists1 ? "/usr/local/Cellar/python -V 2>&1" : gitHomebrewExists2 ? "/opt/homebrew/bin/python -V 2>&1" : "python -V 2>&1";
11518
11526
  exec(cmd2, (error, stdout2) => {
@@ -11540,7 +11548,7 @@ var require_osinfo = __commonJS({
11540
11548
  }
11541
11549
  if ({}.hasOwnProperty.call(appsObj.versions, "python3")) {
11542
11550
  if (_darwin) {
11543
- const gitHomebrewExists = fs2.existsSync("/usr/local/Cellar/python3") || fs2.existsSync("/opt/homebrew/bin/python3");
11551
+ const gitHomebrewExists = fs3.existsSync("/usr/local/Cellar/python3") || fs3.existsSync("/opt/homebrew/bin/python3");
11544
11552
  if (util.darwinXcodeExists() || gitHomebrewExists) {
11545
11553
  exec("python3 -V 2>&1", (error, stdout) => {
11546
11554
  if (!error) {
@@ -11564,7 +11572,7 @@ var require_osinfo = __commonJS({
11564
11572
  }
11565
11573
  if ({}.hasOwnProperty.call(appsObj.versions, "pip")) {
11566
11574
  if (_darwin) {
11567
- const gitHomebrewExists = fs2.existsSync("/usr/local/Cellar/pip") || fs2.existsSync("/opt/homebrew/bin/pip");
11575
+ const gitHomebrewExists = fs3.existsSync("/usr/local/Cellar/pip") || fs3.existsSync("/opt/homebrew/bin/pip");
11568
11576
  if (util.darwinXcodeExists() || gitHomebrewExists) {
11569
11577
  exec("pip -V 2>&1", (error, stdout) => {
11570
11578
  if (!error) {
@@ -11590,7 +11598,7 @@ var require_osinfo = __commonJS({
11590
11598
  }
11591
11599
  if ({}.hasOwnProperty.call(appsObj.versions, "pip3")) {
11592
11600
  if (_darwin) {
11593
- const gitHomebrewExists = fs2.existsSync("/usr/local/Cellar/pip3") || fs2.existsSync("/opt/homebrew/bin/pip3");
11601
+ const gitHomebrewExists = fs3.existsSync("/usr/local/Cellar/pip3") || fs3.existsSync("/opt/homebrew/bin/pip3");
11594
11602
  if (util.darwinXcodeExists() || gitHomebrewExists) {
11595
11603
  exec("pip3 -V 2>&1", (error, stdout) => {
11596
11604
  if (!error) {
@@ -11828,7 +11836,7 @@ var require_osinfo = __commonJS({
11828
11836
  function getUniqueMacAdresses() {
11829
11837
  let macs = [];
11830
11838
  try {
11831
- const ifaces = os2.networkInterfaces();
11839
+ const ifaces = os3.networkInterfaces();
11832
11840
  for (let dev in ifaces) {
11833
11841
  if ({}.hasOwnProperty.call(ifaces, dev)) {
11834
11842
  ifaces[dev].forEach((details) => {
@@ -11893,7 +11901,7 @@ echo -n "hardware: "; cat /sys/class/dmi/id/product_uuid 2> /dev/null; echo;`;
11893
11901
  result2.os = util.getValue(lines, "os").toLowerCase();
11894
11902
  result2.hardware = util.getValue(lines, "hardware").toLowerCase();
11895
11903
  if (!result2.hardware) {
11896
- const lines2 = fs2.readFileSync("/proc/cpuinfo", { encoding: "utf8" }).toString().split("\n");
11904
+ const lines2 = fs3.readFileSync("/proc/cpuinfo", { encoding: "utf8" }).toString().split("\n");
11897
11905
  const serial = util.getValue(lines2, "serial");
11898
11906
  result2.hardware = serial || "";
11899
11907
  }
@@ -11949,8 +11957,8 @@ echo -n "hardware: "; cat /sys/class/dmi/id/product_uuid 2> /dev/null; echo;`;
11949
11957
  var require_system = __commonJS({
11950
11958
  "node_modules/systeminformation/lib/system.js"(exports2) {
11951
11959
  "use strict";
11952
- var fs2 = require("fs");
11953
- var os2 = require("os");
11960
+ var fs3 = require("fs");
11961
+ var os3 = require("os");
11954
11962
  var util = require_util();
11955
11963
  var { uuid } = require_osinfo();
11956
11964
  var exec = require("child_process").exec;
@@ -12074,8 +12082,8 @@ var require_system = __commonJS({
12074
12082
  util.noop();
12075
12083
  }
12076
12084
  }
12077
- if (!result2.virtual && (os2.release().toLowerCase().indexOf("microsoft") >= 0 || os2.release().toLowerCase().endsWith("wsl2"))) {
12078
- const kernelVersion = parseFloat(os2.release().toLowerCase());
12085
+ if (!result2.virtual && (os3.release().toLowerCase().indexOf("microsoft") >= 0 || os3.release().toLowerCase().endsWith("wsl2"))) {
12086
+ const kernelVersion = parseFloat(os3.release().toLowerCase());
12079
12087
  result2.virtual = true;
12080
12088
  result2.manufacturer = "Microsoft";
12081
12089
  result2.model = "WSL";
@@ -12104,7 +12112,7 @@ var require_system = __commonJS({
12104
12112
  util.noop();
12105
12113
  }
12106
12114
  }
12107
- if (fs2.existsSync("/.dockerenv") || fs2.existsSync("/.dockerinit")) {
12115
+ if (fs3.existsSync("/.dockerenv") || fs3.existsSync("/.dockerinit")) {
12108
12116
  result2.model = "Docker Container";
12109
12117
  }
12110
12118
  try {
@@ -12132,7 +12140,7 @@ var require_system = __commonJS({
12132
12140
  util.noop();
12133
12141
  }
12134
12142
  if (result2.manufacturer === "" && result2.model === "Computer" && result2.version === "") {
12135
- fs2.readFile("/proc/cpuinfo", (error2, stdout2) => {
12143
+ fs3.readFile("/proc/cpuinfo", (error2, stdout2) => {
12136
12144
  if (!error2) {
12137
12145
  let lines2 = stdout2.toString().split("\n");
12138
12146
  result2.model = util.getValue(lines2, "hardware", ":", true).toUpperCase();
@@ -12485,7 +12493,7 @@ var require_system = __commonJS({
12485
12493
  result2.model = "Raspberry Pi";
12486
12494
  result2.serial = rpi.serial;
12487
12495
  result2.version = rpi.type + " - " + rpi.revision;
12488
- result2.memMax = os2.totalmem();
12496
+ result2.memMax = os3.totalmem();
12489
12497
  result2.memSlots = 0;
12490
12498
  }
12491
12499
  if (callback) {
@@ -12511,9 +12519,9 @@ var require_system = __commonJS({
12511
12519
  }
12512
12520
  devices.shift();
12513
12521
  result2.memSlots = devices.length;
12514
- if (os2.arch() === "arm64") {
12522
+ if (os3.arch() === "arm64") {
12515
12523
  result2.memSlots = 0;
12516
- result2.memMax = os2.totalmem();
12524
+ result2.memMax = os3.totalmem();
12517
12525
  }
12518
12526
  if (callback) {
12519
12527
  callback(result2);
@@ -12530,7 +12538,7 @@ var require_system = __commonJS({
12530
12538
  if (_windows) {
12531
12539
  try {
12532
12540
  const workload = [];
12533
- const win10plus = parseInt(os2.release()) >= 10;
12541
+ const win10plus = parseInt(os3.release()) >= 10;
12534
12542
  const maxCapacityAttribute = win10plus ? "MaxCapacityEx" : "MaxCapacity";
12535
12543
  workload.push(util.powerShell("Get-CimInstance Win32_baseboard | select Model,Manufacturer,Product,Version,SerialNumber,PartNumber,SKU | fl"));
12536
12544
  workload.push(util.powerShell(`Get-CimInstance Win32_physicalmemoryarray | select ${maxCapacityAttribute}, MemoryDevices | fl`));
@@ -12726,10 +12734,10 @@ var require_system = __commonJS({
12726
12734
  var require_cpu = __commonJS({
12727
12735
  "node_modules/systeminformation/lib/cpu.js"(exports2) {
12728
12736
  "use strict";
12729
- var os2 = require("os");
12737
+ var os3 = require("os");
12730
12738
  var exec = require("child_process").exec;
12731
12739
  var execSync = require("child_process").execSync;
12732
- var fs2 = require("fs");
12740
+ var fs3 = require("fs");
12733
12741
  var util = require_util();
12734
12742
  var _platform = process.platform;
12735
12743
  var _linux = _platform === "linux" || _platform === "android";
@@ -13589,7 +13597,7 @@ var require_cpu = __commonJS({
13589
13597
  const countProcessors = util.getValue(lines, "hw.packages");
13590
13598
  const countCores = util.getValue(lines, "hw.physicalcpu_max");
13591
13599
  const countThreads = util.getValue(lines, "hw.ncpu");
13592
- if (os2.arch() === "arm64") {
13600
+ if (os3.arch() === "arm64") {
13593
13601
  result2.socket = "SOC";
13594
13602
  try {
13595
13603
  const clusters = execSync("ioreg -c IOPlatformDevice -d 3 -r | grep cluster-type").toString().split("\n");
@@ -13617,8 +13625,8 @@ var require_cpu = __commonJS({
13617
13625
  if (_linux) {
13618
13626
  let modelline = "";
13619
13627
  let lines = [];
13620
- if (os2.cpus()[0] && os2.cpus()[0].model) {
13621
- modelline = os2.cpus()[0].model;
13628
+ if (os3.cpus()[0] && os3.cpus()[0].model) {
13629
+ modelline = os3.cpus()[0].model;
13622
13630
  }
13623
13631
  exec('export LC_ALL=C; lscpu; echo -n "Governor: "; cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 2>/dev/null; echo; unset LC_ALL', (error, stdout) => {
13624
13632
  if (!error) {
@@ -13686,7 +13694,7 @@ var require_cpu = __commonJS({
13686
13694
  result2.socket = "SOC";
13687
13695
  }
13688
13696
  if (util.getValue(lines, "architecture") === "riscv64") {
13689
- const linesRiscV = fs2.readFileSync("/proc/cpuinfo").toString().split("\n");
13697
+ const linesRiscV = fs3.readFileSync("/proc/cpuinfo").toString().split("\n");
13690
13698
  const uarch = util.getValue(linesRiscV, "uarch") || "";
13691
13699
  if (uarch.indexOf(",") > -1) {
13692
13700
  const split = uarch.split(",");
@@ -13707,8 +13715,8 @@ var require_cpu = __commonJS({
13707
13715
  if (_freebsd || _openbsd || _netbsd) {
13708
13716
  let modelline = "";
13709
13717
  let lines = [];
13710
- if (os2.cpus()[0] && os2.cpus()[0].model) {
13711
- modelline = os2.cpus()[0].model;
13718
+ if (os3.cpus()[0] && os3.cpus()[0].model) {
13719
+ modelline = os3.cpus()[0].model;
13712
13720
  }
13713
13721
  exec("export LC_ALL=C; dmidecode -t 4; dmidecode -t 7 unset LC_ALL", (error, stdout) => {
13714
13722
  let cache = [];
@@ -13868,7 +13876,7 @@ var require_cpu = __commonJS({
13868
13876
  }
13869
13877
  exports2.cpu = cpu;
13870
13878
  function getCpuCurrentSpeedSync() {
13871
- const cpus = os2.cpus();
13879
+ const cpus = os3.cpus();
13872
13880
  let minFreq = 999999999;
13873
13881
  let maxFreq = 0;
13874
13882
  let avgFreq = 0;
@@ -14085,9 +14093,9 @@ var require_cpu = __commonJS({
14085
14093
  return;
14086
14094
  }
14087
14095
  }
14088
- fs2.stat("/sys/class/thermal/thermal_zone0/temp", (err) => {
14096
+ fs3.stat("/sys/class/thermal/thermal_zone0/temp", (err) => {
14089
14097
  if (err === null) {
14090
- fs2.readFile("/sys/class/thermal/thermal_zone0/temp", (error3, stdout3) => {
14098
+ fs3.readFile("/sys/class/thermal/thermal_zone0/temp", (error3, stdout3) => {
14091
14099
  if (!error3) {
14092
14100
  const lines2 = stdout3.toString().split("\n");
14093
14101
  if (lines2.length > 0) {
@@ -14310,7 +14318,7 @@ var require_cpu = __commonJS({
14310
14318
  });
14311
14319
  }
14312
14320
  if (!result2) {
14313
- fs2.readFile("/proc/cpuinfo", (error2, stdout2) => {
14321
+ fs3.readFile("/proc/cpuinfo", (error2, stdout2) => {
14314
14322
  if (!error2) {
14315
14323
  let lines = stdout2.toString().split("\n");
14316
14324
  result2 = util.getValue(lines, "features", ":", true).toLowerCase();
@@ -14563,7 +14571,7 @@ var require_cpu = __commonJS({
14563
14571
  function getLoad() {
14564
14572
  return new Promise((resolve) => {
14565
14573
  process.nextTick(() => {
14566
- const loads = os2.loadavg().map((x) => {
14574
+ const loads = os3.loadavg().map((x) => {
14567
14575
  return x / util.cores();
14568
14576
  });
14569
14577
  const avgLoad = parseFloat(Math.max.apply(Math, loads).toFixed(2));
@@ -14571,7 +14579,7 @@ var require_cpu = __commonJS({
14571
14579
  const now = Date.now() - _current_cpu.ms;
14572
14580
  if (now >= 200) {
14573
14581
  _current_cpu.ms = Date.now();
14574
- const cpus = os2.cpus().map((cpu2) => {
14582
+ const cpus = os3.cpus().map((cpu2) => {
14575
14583
  cpu2.times.steal = 0;
14576
14584
  cpu2.times.guest = 0;
14577
14585
  return cpu2;
@@ -14765,7 +14773,7 @@ var require_cpu = __commonJS({
14765
14773
  function getFullLoad() {
14766
14774
  return new Promise((resolve) => {
14767
14775
  process.nextTick(() => {
14768
- const cpus = os2.cpus();
14776
+ const cpus = os3.cpus();
14769
14777
  let totalUser = 0;
14770
14778
  let totalSystem = 0;
14771
14779
  let totalNice = 0;
@@ -14808,11 +14816,11 @@ var require_cpu = __commonJS({
14808
14816
  var require_memory = __commonJS({
14809
14817
  "node_modules/systeminformation/lib/memory.js"(exports2) {
14810
14818
  "use strict";
14811
- var os2 = require("os");
14819
+ var os3 = require("os");
14812
14820
  var exec = require("child_process").exec;
14813
14821
  var execSync = require("child_process").execSync;
14814
14822
  var util = require_util();
14815
- var fs2 = require("fs");
14823
+ var fs3 = require("fs");
14816
14824
  var _platform = process.platform;
14817
14825
  var _linux = _platform === "linux" || _platform === "android";
14818
14826
  var _darwin = _platform === "darwin";
@@ -14854,12 +14862,12 @@ var require_memory = __commonJS({
14854
14862
  return new Promise((resolve) => {
14855
14863
  process.nextTick(() => {
14856
14864
  let result2 = {
14857
- total: os2.totalmem(),
14858
- free: os2.freemem(),
14859
- used: os2.totalmem() - os2.freemem(),
14860
- active: os2.totalmem() - os2.freemem(),
14865
+ total: os3.totalmem(),
14866
+ free: os3.freemem(),
14867
+ used: os3.totalmem() - os3.freemem(),
14868
+ active: os3.totalmem() - os3.freemem(),
14861
14869
  // temporarily (fallback)
14862
- available: os2.freemem(),
14870
+ available: os3.freemem(),
14863
14871
  // temporarily (fallback)
14864
14872
  buffers: 0,
14865
14873
  cached: 0,
@@ -14874,13 +14882,13 @@ var require_memory = __commonJS({
14874
14882
  };
14875
14883
  if (_linux) {
14876
14884
  try {
14877
- fs2.readFile("/proc/meminfo", function(error, stdout) {
14885
+ fs3.readFile("/proc/meminfo", function(error, stdout) {
14878
14886
  if (!error) {
14879
14887
  const lines = stdout.toString().split("\n");
14880
14888
  result2.total = parseInt(util.getValue(lines, "memtotal"), 10);
14881
- result2.total = result2.total ? result2.total * 1024 : os2.totalmem();
14889
+ result2.total = result2.total ? result2.total * 1024 : os3.totalmem();
14882
14890
  result2.free = parseInt(util.getValue(lines, "memfree"), 10);
14883
- result2.free = result2.free ? result2.free * 1024 : os2.freemem();
14891
+ result2.free = result2.free ? result2.free * 1024 : os3.freemem();
14884
14892
  result2.used = result2.total - result2.free;
14885
14893
  result2.buffers = parseInt(util.getValue(lines, "buffers"), 10);
14886
14894
  result2.buffers = result2.buffers ? result2.buffers * 1024 : 0;
@@ -15102,7 +15110,7 @@ var require_memory = __commonJS({
15102
15110
  }
15103
15111
  if (!result2.length) {
15104
15112
  result2.push({
15105
- size: os2.totalmem(),
15113
+ size: os3.totalmem(),
15106
15114
  bank: "",
15107
15115
  type: "",
15108
15116
  ecc: null,
@@ -15304,7 +15312,7 @@ var require_battery = __commonJS({
15304
15312
  "node_modules/systeminformation/lib/battery.js"(exports2, module2) {
15305
15313
  "use strict";
15306
15314
  var exec = require("child_process").exec;
15307
- var fs2 = require("fs");
15315
+ var fs3 = require("fs");
15308
15316
  var util = require_util();
15309
15317
  var _platform = process.platform;
15310
15318
  var _linux = _platform === "linux" || _platform === "android";
@@ -15356,24 +15364,24 @@ var require_battery = __commonJS({
15356
15364
  };
15357
15365
  if (_linux) {
15358
15366
  let battery_path = "";
15359
- if (fs2.existsSync("/sys/class/power_supply/BAT1/uevent")) {
15367
+ if (fs3.existsSync("/sys/class/power_supply/BAT1/uevent")) {
15360
15368
  battery_path = "/sys/class/power_supply/BAT1/";
15361
- } else if (fs2.existsSync("/sys/class/power_supply/BAT0/uevent")) {
15369
+ } else if (fs3.existsSync("/sys/class/power_supply/BAT0/uevent")) {
15362
15370
  battery_path = "/sys/class/power_supply/BAT0/";
15363
15371
  }
15364
15372
  let acConnected = false;
15365
15373
  let acPath = "";
15366
- if (fs2.existsSync("/sys/class/power_supply/AC/online")) {
15374
+ if (fs3.existsSync("/sys/class/power_supply/AC/online")) {
15367
15375
  acPath = "/sys/class/power_supply/AC/online";
15368
- } else if (fs2.existsSync("/sys/class/power_supply/AC0/online")) {
15376
+ } else if (fs3.existsSync("/sys/class/power_supply/AC0/online")) {
15369
15377
  acPath = "/sys/class/power_supply/AC0/online";
15370
15378
  }
15371
15379
  if (acPath) {
15372
- const file = fs2.readFileSync(acPath);
15380
+ const file = fs3.readFileSync(acPath);
15373
15381
  acConnected = file.toString().trim() === "1";
15374
15382
  }
15375
15383
  if (battery_path) {
15376
- fs2.readFile(battery_path + "uevent", (error, stdout) => {
15384
+ fs3.readFile(battery_path + "uevent", (error, stdout) => {
15377
15385
  if (!error) {
15378
15386
  let lines = stdout.toString().split("\n");
15379
15387
  result2.isCharging = util.getValue(lines, "POWER_SUPPLY_STATUS", "=").toLowerCase() === "charging";
@@ -15595,7 +15603,7 @@ var require_battery = __commonJS({
15595
15603
  var require_graphics = __commonJS({
15596
15604
  "node_modules/systeminformation/lib/graphics.js"(exports2) {
15597
15605
  "use strict";
15598
- var fs2 = require("fs");
15606
+ var fs3 = require("fs");
15599
15607
  var exec = require("child_process").exec;
15600
15608
  var execSync = require("child_process").execSync;
15601
15609
  var util = require_util();
@@ -15959,16 +15967,16 @@ var require_graphics = __commonJS({
15959
15967
  if (_windows) {
15960
15968
  try {
15961
15969
  const basePath = util.WINDIR + String.raw`\System32\DriverStore\FileRepository`;
15962
- const candidateDirs = fs2.readdirSync(basePath).filter((dir) => {
15963
- if (fs2.statSync([basePath, dir].join("/")).isDirectory()) {
15964
- return fs2.readdirSync([basePath, dir].join("/")).includes("nvidia-smi.exe");
15970
+ const candidateDirs = fs3.readdirSync(basePath).filter((dir) => {
15971
+ if (fs3.statSync([basePath, dir].join("/")).isDirectory()) {
15972
+ return fs3.readdirSync([basePath, dir].join("/")).includes("nvidia-smi.exe");
15965
15973
  } else {
15966
15974
  return false;
15967
15975
  }
15968
15976
  });
15969
15977
  const targetDir = candidateDirs.reduce((prevDir, currentDir) => {
15970
- const previousNvidiaSmi = fs2.statSync([basePath, prevDir, "nvidia-smi.exe"].join("/"));
15971
- const currentNvidiaSmi = fs2.statSync([basePath, currentDir, "nvidia-smi.exe"].join("/"));
15978
+ const previousNvidiaSmi = fs3.statSync([basePath, prevDir, "nvidia-smi.exe"].join("/"));
15979
+ const currentNvidiaSmi = fs3.statSync([basePath, currentDir, "nvidia-smi.exe"].join("/"));
15972
15980
  return previousNvidiaSmi.ctimeMs > currentNvidiaSmi.ctimeMs ? prevDir : currentDir;
15973
15981
  });
15974
15982
  if (targetDir) {
@@ -16680,7 +16688,7 @@ var require_filesystem = __commonJS({
16680
16688
  "node_modules/systeminformation/lib/filesystem.js"(exports2) {
16681
16689
  "use strict";
16682
16690
  var util = require_util();
16683
- var fs2 = require("fs");
16691
+ var fs3 = require("fs");
16684
16692
  var exec = require("child_process").exec;
16685
16693
  var execSync = require("child_process").execSync;
16686
16694
  var execPromiseSave = util.promisifySave(require("child_process").exec);
@@ -16701,11 +16709,11 @@ var require_filesystem = __commonJS({
16701
16709
  }
16702
16710
  let macOsDisks = [];
16703
16711
  let osMounts = [];
16704
- function getmacOsFsType(fs3) {
16705
- if (!fs3.startsWith("/")) {
16712
+ function getmacOsFsType(fs4) {
16713
+ if (!fs4.startsWith("/")) {
16706
16714
  return "NFS";
16707
16715
  }
16708
- const parts = fs3.split("/");
16716
+ const parts = fs4.split("/");
16709
16717
  const fsShort = parts[parts.length - 1];
16710
16718
  const macOsDisksSingle = macOsDisks.filter((item) => item.indexOf(fsShort) >= 0);
16711
16719
  if (macOsDisksSingle.length === 1 && macOsDisksSingle[0].indexOf("APFS") >= 0) {
@@ -16713,11 +16721,11 @@ var require_filesystem = __commonJS({
16713
16721
  }
16714
16722
  return "HFS";
16715
16723
  }
16716
- function isLinuxTmpFs(fs3) {
16724
+ function isLinuxTmpFs(fs4) {
16717
16725
  const linuxTmpFileSystems = ["rootfs", "unionfs", "squashfs", "cramfs", "initrd", "initramfs", "devtmpfs", "tmpfs", "udev", "devfs", "specfs", "type", "appimaged"];
16718
16726
  let result2 = false;
16719
16727
  linuxTmpFileSystems.forEach((linuxFs) => {
16720
- if (fs3.toLowerCase().indexOf(linuxFs) >= 0) {
16728
+ if (fs4.toLowerCase().indexOf(linuxFs) >= 0) {
16721
16729
  result2 = true;
16722
16730
  }
16723
16731
  });
@@ -16745,18 +16753,18 @@ var require_filesystem = __commonJS({
16745
16753
  if (line !== "") {
16746
16754
  line = line.replace(/ +/g, " ").split(" ");
16747
16755
  if (line && (line[0].startsWith("/") || line[6] && line[6] === "/" || line[0].indexOf("/") > 0 || line[0].indexOf(":") === 1 || !_darwin && !isLinuxTmpFs(line[1]))) {
16748
- const fs3 = line[0];
16756
+ const fs4 = line[0];
16749
16757
  const fsType = _linux || _freebsd || _openbsd || _netbsd ? line[1] : getmacOsFsType(line[0]);
16750
16758
  const size = parseInt(_linux || _freebsd || _openbsd || _netbsd ? line[2] : line[1], 10) * 1024;
16751
16759
  const used = parseInt(_linux || _freebsd || _openbsd || _netbsd ? line[3] : line[2], 10) * 1024;
16752
16760
  const available = parseInt(_linux || _freebsd || _openbsd || _netbsd ? line[4] : line[3], 10) * 1024;
16753
16761
  const use = parseFloat((100 * (used / (used + available))).toFixed(2));
16754
- const rw = osMounts && Object.keys(osMounts).length > 0 ? osMounts[fs3] || false : null;
16762
+ const rw = osMounts && Object.keys(osMounts).length > 0 ? osMounts[fs4] || false : null;
16755
16763
  line.splice(0, _linux || _freebsd || _openbsd || _netbsd ? 6 : 5);
16756
16764
  const mount = line.join(" ");
16757
- if (!data.find((el) => el.fs === fs3 && el.type === fsType && el.mount === mount)) {
16765
+ if (!data.find((el) => el.fs === fs4 && el.type === fsType && el.mount === mount)) {
16758
16766
  data.push({
16759
- fs: fs3,
16767
+ fs: fs4,
16760
16768
  type: fsType,
16761
16769
  size,
16762
16770
  used,
@@ -16917,7 +16925,7 @@ var require_filesystem = __commonJS({
16917
16925
  });
16918
16926
  }
16919
16927
  if (_linux) {
16920
- fs2.readFile("/proc/sys/fs/file-nr", (error, stdout) => {
16928
+ fs3.readFile("/proc/sys/fs/file-nr", (error, stdout) => {
16921
16929
  if (!error) {
16922
16930
  const lines = stdout.toString().split("\n");
16923
16931
  if (lines[0]) {
@@ -16936,7 +16944,7 @@ var require_filesystem = __commonJS({
16936
16944
  }
16937
16945
  resolve(result2);
16938
16946
  } else {
16939
- fs2.readFile("/proc/sys/fs/file-max", (error2, stdout2) => {
16947
+ fs3.readFile("/proc/sys/fs/file-max", (error2, stdout2) => {
16940
16948
  if (!error2) {
16941
16949
  const lines = stdout2.toString().split("\n");
16942
16950
  if (lines[0]) {
@@ -18202,10 +18210,10 @@ ${BSDName}|"; diskutil info /dev/${BSDName} | grep SMART;`;
18202
18210
  var require_network = __commonJS({
18203
18211
  "node_modules/systeminformation/lib/network.js"(exports2) {
18204
18212
  "use strict";
18205
- var os2 = require("os");
18213
+ var os3 = require("os");
18206
18214
  var exec = require("child_process").exec;
18207
18215
  var execSync = require("child_process").execSync;
18208
- var fs2 = require("fs");
18216
+ var fs3 = require("fs");
18209
18217
  var util = require_util();
18210
18218
  var _platform = process.platform;
18211
18219
  var _linux = _platform === "linux" || _platform === "android";
@@ -18226,7 +18234,7 @@ var require_network = __commonJS({
18226
18234
  let ifacename = "";
18227
18235
  let ifacenameFirst = "";
18228
18236
  try {
18229
- const ifaces = os2.networkInterfaces();
18237
+ const ifaces = os3.networkInterfaces();
18230
18238
  let scopeid = 9999;
18231
18239
  for (let dev in ifaces) {
18232
18240
  if ({}.hasOwnProperty.call(ifaces, dev)) {
@@ -18246,7 +18254,7 @@ var require_network = __commonJS({
18246
18254
  let defaultIp = "";
18247
18255
  const cmd = "netstat -r";
18248
18256
  const result2 = execSync(cmd, util.execOptsWin);
18249
- const lines = result2.toString().split(os2.EOL);
18257
+ const lines = result2.toString().split(os3.EOL);
18250
18258
  lines.forEach((line) => {
18251
18259
  line = line.replace(/\s+/g, " ").trim();
18252
18260
  if (line.indexOf("0.0.0.0 0.0.0.0") > -1 && !/[a-zA-Z]/.test(line)) {
@@ -18879,7 +18887,7 @@ var require_network = __commonJS({
18879
18887
  defaultString = "" + defaultString;
18880
18888
  return new Promise((resolve) => {
18881
18889
  process.nextTick(() => {
18882
- const ifaces = os2.networkInterfaces();
18890
+ const ifaces = os3.networkInterfaces();
18883
18891
  let result2 = [];
18884
18892
  let nics = [];
18885
18893
  let dnsSuffixes = [];
@@ -19456,7 +19464,7 @@ var require_network = __commonJS({
19456
19464
  let cmd, lines, stats;
19457
19465
  if (!_network[ifaceSanitized] || _network[ifaceSanitized] && !_network[ifaceSanitized].ms || _network[ifaceSanitized] && _network[ifaceSanitized].ms && Date.now() - _network[ifaceSanitized].ms >= 500) {
19458
19466
  if (_linux) {
19459
- if (fs2.existsSync("/sys/class/net/" + ifaceSanitized)) {
19467
+ if (fs3.existsSync("/sys/class/net/" + ifaceSanitized)) {
19460
19468
  cmd = "cat /sys/class/net/" + ifaceSanitized + "/operstate; cat /sys/class/net/" + ifaceSanitized + "/statistics/rx_bytes; cat /sys/class/net/" + ifaceSanitized + "/statistics/tx_bytes; cat /sys/class/net/" + ifaceSanitized + "/statistics/rx_dropped; cat /sys/class/net/" + ifaceSanitized + "/statistics/rx_errors; cat /sys/class/net/" + ifaceSanitized + "/statistics/tx_dropped; cat /sys/class/net/" + ifaceSanitized + "/statistics/tx_errors; ";
19461
19469
  exec(cmd, (error, stdout) => {
19462
19470
  if (!error) {
@@ -19949,7 +19957,7 @@ var require_network = __commonJS({
19949
19957
  if (_windows) {
19950
19958
  try {
19951
19959
  exec("netstat -r", util.execOptsWin, (error, stdout) => {
19952
- const lines = stdout.toString().split(os2.EOL);
19960
+ const lines = stdout.toString().split(os3.EOL);
19953
19961
  lines.forEach((line) => {
19954
19962
  line = line.replace(/\s+/g, " ").trim();
19955
19963
  if (line.indexOf("0.0.0.0 0.0.0.0") > -1 && !/[a-zA-Z]/.test(line)) {
@@ -19995,7 +20003,7 @@ var require_network = __commonJS({
19995
20003
  var require_wifi = __commonJS({
19996
20004
  "node_modules/systeminformation/lib/wifi.js"(exports2) {
19997
20005
  "use strict";
19998
- var os2 = require("os");
20006
+ var os3 = require("os");
19999
20007
  var exec = require("child_process").exec;
20000
20008
  var execSync = require("child_process").execSync;
20001
20009
  var util = require_util();
@@ -20217,7 +20225,7 @@ var require_wifi = __commonJS({
20217
20225
  parts.shift();
20218
20226
  parts.forEach((part) => {
20219
20227
  part = "ACTIVE:" + part;
20220
- const lines = part.split(os2.EOL);
20228
+ const lines = part.split(os3.EOL);
20221
20229
  const channel = util.getValue(lines, "CHAN");
20222
20230
  const frequency = util.getValue(lines, "FREQ").toLowerCase().replace("mhz", "").trim();
20223
20231
  const security = util.getValue(lines, "SECURITY").replace("(", "").replace(")", "");
@@ -20441,15 +20449,15 @@ var require_wifi = __commonJS({
20441
20449
  } else if (_windows) {
20442
20450
  const cmd = "netsh wlan show networks mode=Bssid";
20443
20451
  util.powerShell(cmd).then((stdout) => {
20444
- const ssidParts = stdout.toString("utf8").split(os2.EOL + os2.EOL + "SSID ");
20452
+ const ssidParts = stdout.toString("utf8").split(os3.EOL + os3.EOL + "SSID ");
20445
20453
  ssidParts.shift();
20446
20454
  ssidParts.forEach((ssidPart) => {
20447
- const ssidLines = ssidPart.split(os2.EOL);
20455
+ const ssidLines = ssidPart.split(os3.EOL);
20448
20456
  if (ssidLines && ssidLines.length >= 8 && ssidLines[0].indexOf(":") >= 0) {
20449
20457
  const bssidsParts = ssidPart.split(" BSSID");
20450
20458
  bssidsParts.shift();
20451
20459
  bssidsParts.forEach((bssidPart) => {
20452
- const bssidLines = bssidPart.split(os2.EOL);
20460
+ const bssidLines = bssidPart.split(os3.EOL);
20453
20461
  const bssidLine = bssidLines[0].split(":");
20454
20462
  bssidLine.shift();
20455
20463
  const bssid = bssidLine.join(":").trim().toLowerCase();
@@ -20773,9 +20781,9 @@ var require_wifi = __commonJS({
20773
20781
  var require_processes = __commonJS({
20774
20782
  "node_modules/systeminformation/lib/processes.js"(exports2) {
20775
20783
  "use strict";
20776
- var os2 = require("os");
20777
- var fs2 = require("fs");
20778
- var path2 = require("path");
20784
+ var os3 = require("os");
20785
+ var fs3 = require("fs");
20786
+ var path3 = require("path");
20779
20787
  var exec = require("child_process").exec;
20780
20788
  var execSync = require("child_process").execSync;
20781
20789
  var util = require_util();
@@ -21345,7 +21353,7 @@ var require_processes = __commonJS({
21345
21353
  }
21346
21354
  if (firstPos === 1e4 && tmpCommand.indexOf(" ") > -1) {
21347
21355
  const parts = tmpCommand.split(" ");
21348
- if (fs2.existsSync(path2.join(cmdPath, parts[0]))) {
21356
+ if (fs3.existsSync(path3.join(cmdPath, parts[0]))) {
21349
21357
  command = parts.shift();
21350
21358
  params = (parts.join(" ") + " " + tmpParams).trim();
21351
21359
  } else {
@@ -21424,7 +21432,7 @@ var require_processes = __commonJS({
21424
21432
  line = line.trim().replace(/ +/g, " ").replace(/,+/g, ".");
21425
21433
  const parts = line.split(" ");
21426
21434
  const command = parts.slice(9).join(" ");
21427
- const pmem = parseFloat((1 * parseInt(parts[3]) * 1024 / os2.totalmem()).toFixed(1));
21435
+ const pmem = parseFloat((1 * parseInt(parts[3]) * 1024 / os3.totalmem()).toFixed(1));
21428
21436
  const started = parseElapsed(parts[5]);
21429
21437
  result2.push({
21430
21438
  pid: parseInt(parts[0]),
@@ -21627,7 +21635,7 @@ var require_processes = __commonJS({
21627
21635
  cpu: 0,
21628
21636
  cpuu: 0,
21629
21637
  cpus: 0,
21630
- mem: memw / os2.totalmem() * 100,
21638
+ mem: memw / os3.totalmem() * 100,
21631
21639
  priority: element.Priority | null,
21632
21640
  memVsz: element.PageFileUsage || null,
21633
21641
  memRss: Math.floor((element.WorkingSetSize || 0) / 1024),
@@ -21781,7 +21789,7 @@ var require_processes = __commonJS({
21781
21789
  result2.forEach((item) => {
21782
21790
  if (item.proc.toLowerCase() === pname.toLowerCase()) {
21783
21791
  item.pids.push(pid);
21784
- item.mem += mem / os2.totalmem() * 100;
21792
+ item.mem += mem / os3.totalmem() * 100;
21785
21793
  processFound = true;
21786
21794
  }
21787
21795
  });
@@ -21791,7 +21799,7 @@ var require_processes = __commonJS({
21791
21799
  pid,
21792
21800
  pids: [pid],
21793
21801
  cpu: 0,
21794
- mem: mem / os2.totalmem() * 100
21802
+ mem: mem / os3.totalmem() * 100
21795
21803
  });
21796
21804
  }
21797
21805
  }
@@ -23532,7 +23540,7 @@ var require_docker = __commonJS({
23532
23540
  var require_virtualbox = __commonJS({
23533
23541
  "node_modules/systeminformation/lib/virtualbox.js"(exports2) {
23534
23542
  "use strict";
23535
- var os2 = require("os");
23543
+ var os3 = require("os");
23536
23544
  var exec = require("child_process").exec;
23537
23545
  var util = require_util();
23538
23546
  function vboxInfo(callback) {
@@ -23541,10 +23549,10 @@ var require_virtualbox = __commonJS({
23541
23549
  process.nextTick(() => {
23542
23550
  try {
23543
23551
  exec(util.getVboxmanage() + " list vms --long", function(error, stdout) {
23544
- let parts = (os2.EOL + stdout.toString()).split(os2.EOL + "Name:");
23552
+ let parts = (os3.EOL + stdout.toString()).split(os3.EOL + "Name:");
23545
23553
  parts.shift();
23546
23554
  parts.forEach((part) => {
23547
- const lines = ("Name:" + part).split(os2.EOL);
23555
+ const lines = ("Name:" + part).split(os3.EOL);
23548
23556
  const state = util.getValue(lines, "State");
23549
23557
  const running = state.startsWith("running");
23550
23558
  const runningSinceString = running ? state.replace("running (since ", "").replace(")", "").trim() : "";
@@ -25481,10 +25489,10 @@ var require_bluetooth = __commonJS({
25481
25489
  "use strict";
25482
25490
  var exec = require("child_process").exec;
25483
25491
  var execSync = require("child_process").execSync;
25484
- var path2 = require("path");
25492
+ var path3 = require("path");
25485
25493
  var util = require_util();
25486
25494
  var bluetoothVendors = require_bluetoothVendors();
25487
- var fs2 = require("fs");
25495
+ var fs3 = require("fs");
25488
25496
  var _platform = process.platform;
25489
25497
  var _linux = _platform === "linux" || _platform === "android";
25490
25498
  var _darwin = _platform === "darwin";
@@ -25613,12 +25621,12 @@ var require_bluetooth = __commonJS({
25613
25621
  if (_linux) {
25614
25622
  const btFiles = util.getFilesInPath("/var/lib/bluetooth/");
25615
25623
  btFiles.forEach((element) => {
25616
- const filename = path2.basename(element);
25624
+ const filename = path3.basename(element);
25617
25625
  const pathParts = element.split("/");
25618
25626
  const macAddr1 = pathParts.length >= 6 ? pathParts[pathParts.length - 2] : null;
25619
25627
  const macAddr2 = pathParts.length >= 7 ? pathParts[pathParts.length - 3] : null;
25620
25628
  if (filename === "info") {
25621
- const infoFile = fs2.readFileSync(element, { encoding: "utf8" }).split("\n");
25629
+ const infoFile = fs3.readFileSync(element, { encoding: "utf8" }).split("\n");
25622
25630
  result2.push(parseLinuxBluetoothInfo(infoFile, macAddr1, macAddr2));
25623
25631
  }
25624
25632
  });
@@ -26132,6 +26140,11 @@ __export(index_exports, {
26132
26140
  });
26133
26141
  module.exports = __toCommonJS(index_exports);
26134
26142
 
26143
+ // src/cli/commands/install/index.ts
26144
+ var fs2 = __toESM(require("node:fs"), 1);
26145
+ var os2 = __toESM(require("node:os"), 1);
26146
+ var path2 = __toESM(require("node:path"), 1);
26147
+
26135
26148
  // src/config/default-config.ts
26136
26149
  init_theme();
26137
26150
  function generateBalancedLayout(style, themeName) {
@@ -26142,6 +26155,11 @@ function generateBalancedLayout(style, themeName) {
26142
26155
  theme: themeName,
26143
26156
  lines: {
26144
26157
  "0": [
26158
+ {
26159
+ id: "cwd",
26160
+ style,
26161
+ colors: { name: theme.cwd.name, separator: theme.cwd.separator }
26162
+ },
26145
26163
  {
26146
26164
  id: "model",
26147
26165
  style,
@@ -26212,6 +26230,11 @@ function generateCompactLayout(style, themeName) {
26212
26230
  theme: themeName,
26213
26231
  lines: {
26214
26232
  "0": [
26233
+ {
26234
+ id: "cwd",
26235
+ style,
26236
+ colors: { name: theme.cwd.name, separator: theme.cwd.separator }
26237
+ },
26215
26238
  {
26216
26239
  id: "model",
26217
26240
  style,
@@ -26254,6 +26277,11 @@ function generateRichLayout(style, themeName) {
26254
26277
  theme: themeName,
26255
26278
  lines: {
26256
26279
  "0": [
26280
+ {
26281
+ id: "cwd",
26282
+ style,
26283
+ colors: { name: theme.cwd.name, separator: theme.cwd.separator }
26284
+ },
26257
26285
  {
26258
26286
  id: "model",
26259
26287
  style,
@@ -26368,6 +26396,12 @@ function generateRichLayout(style, themeName) {
26368
26396
  };
26369
26397
  }
26370
26398
 
26399
+ // src/cli/commands/quick-config/menu.ts
26400
+ init_theme();
26401
+
26402
+ // src/cli/commands/quick-config/config-writer.ts
26403
+ var import_promises = require("node:fs/promises");
26404
+
26371
26405
  // src/cli/commands/quick-config/config-loader.ts
26372
26406
  var import_node_os = require("node:os");
26373
26407
  var import_node_path = require("node:path");
@@ -26379,7 +26413,6 @@ function getUserConfigPath() {
26379
26413
  }
26380
26414
 
26381
26415
  // src/cli/commands/quick-config/config-writer.ts
26382
- var import_promises = require("node:fs/promises");
26383
26416
  async function saveConfig(config) {
26384
26417
  const configDir = getUserConfigDir();
26385
26418
  const configPath = getUserConfigPath();
@@ -26393,11 +26426,7 @@ async function saveConfig(config) {
26393
26426
  }
26394
26427
  }
26395
26428
 
26396
- // src/cli/commands/quick-config/index.ts
26397
- init_layout_preview();
26398
-
26399
26429
  // src/cli/commands/quick-config/menu.ts
26400
- init_theme();
26401
26430
  init_layout_preview();
26402
26431
  init_select_with_preview();
26403
26432
  function getLayoutGenerator(layout) {
@@ -26562,6 +26591,84 @@ async function runQuickConfigMenu() {
26562
26591
  }
26563
26592
  }
26564
26593
 
26594
+ // src/cli/commands/install/index.ts
26595
+ var colors2 = {
26596
+ reset: "\x1B[0m",
26597
+ green: "\x1B[32m",
26598
+ yellow: "\x1B[33m",
26599
+ blue: "\x1B[34m",
26600
+ cyan: "\x1B[36m",
26601
+ dim: "\x1B[2m",
26602
+ bold: "\x1B[1m"
26603
+ };
26604
+ function getClaudeSettingsPath() {
26605
+ return path2.join(os2.homedir(), ".claude", "settings.json");
26606
+ }
26607
+ function readClaudeSettings(settingsPath) {
26608
+ try {
26609
+ if (fs2.existsSync(settingsPath)) {
26610
+ const content = fs2.readFileSync(settingsPath, "utf-8");
26611
+ return JSON.parse(content);
26612
+ }
26613
+ } catch {
26614
+ }
26615
+ return {};
26616
+ }
26617
+ function ensureDir(dirPath) {
26618
+ if (!fs2.existsSync(dirPath)) {
26619
+ fs2.mkdirSync(dirPath, { recursive: true });
26620
+ }
26621
+ }
26622
+ function formatJson(obj) {
26623
+ return JSON.stringify(obj, null, 2);
26624
+ }
26625
+ function print(message) {
26626
+ console.log(message);
26627
+ }
26628
+ async function handleInstallCommand() {
26629
+ const settingsPath = getClaudeSettingsPath();
26630
+ const claudeDir = path2.dirname(settingsPath);
26631
+ print("");
26632
+ print(`${colors2.bold}${colors2.cyan}claude-scope${colors2.reset} installer`);
26633
+ print(`${colors2.dim}\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500${colors2.reset}`);
26634
+ print("");
26635
+ ensureDir(claudeDir);
26636
+ const settings = readClaudeSettings(settingsPath);
26637
+ const hadExistingStatusLine = !!settings.statusLine;
26638
+ settings.statusLine = {
26639
+ type: "command",
26640
+ command: "npx -y claude-scope@latest",
26641
+ padding: 0
26642
+ };
26643
+ try {
26644
+ fs2.writeFileSync(settingsPath, formatJson(settings), "utf-8");
26645
+ } catch (error) {
26646
+ print(`${colors2.yellow}Error:${colors2.reset} Failed to write settings.json`);
26647
+ print(`${colors2.dim}${error instanceof Error ? error.message : String(error)}${colors2.reset}`);
26648
+ process.exit(1);
26649
+ }
26650
+ if (hadExistingStatusLine) {
26651
+ print(
26652
+ `${colors2.green}\u2713${colors2.reset} Updated statusLine in ${colors2.dim}${settingsPath}${colors2.reset}`
26653
+ );
26654
+ } else {
26655
+ print(
26656
+ `${colors2.green}\u2713${colors2.reset} Added statusLine to ${colors2.dim}${settingsPath}${colors2.reset}`
26657
+ );
26658
+ }
26659
+ print("");
26660
+ print(`${colors2.bold}Now let's customize your statusline:${colors2.reset}`);
26661
+ print("");
26662
+ await runQuickConfigMenu();
26663
+ print("");
26664
+ print(`${colors2.green}\u2713${colors2.reset} Installation complete!`);
26665
+ print(`${colors2.dim}Restart Claude Code to see your new statusline.${colors2.reset}`);
26666
+ print("");
26667
+ }
26668
+
26669
+ // src/cli/commands/quick-config/index.ts
26670
+ init_layout_preview();
26671
+
26565
26672
  // src/cli/commands/quick-config/preview.ts
26566
26673
  init_renderer();
26567
26674
  init_widget_registry();
@@ -26660,6 +26767,132 @@ init_cache_metrics();
26660
26767
  init_config_count_widget();
26661
26768
  init_context_widget();
26662
26769
  init_cost_widget();
26770
+
26771
+ // src/widgets/cwd/cwd-widget.ts
26772
+ init_widget_types();
26773
+ init_theme();
26774
+ init_stdin_data_widget();
26775
+
26776
+ // src/widgets/cwd/styles.ts
26777
+ init_colors();
26778
+ init_style_utils();
26779
+ function shortenPath(path3) {
26780
+ const home = process.env.HOME || "";
26781
+ const result2 = home && path3.startsWith(home) ? "~" + path3.slice(home.length) : path3;
26782
+ const parts = result2.split("/").filter(Boolean);
26783
+ if (parts.length <= 2) return result2;
26784
+ const shortened = parts.map((p, i) => i === parts.length - 1 ? p : p[0] || p);
26785
+ const prefix = result2.startsWith("~") ? "~/" : result2.startsWith("/") ? "/" : "";
26786
+ const startIndex = result2.startsWith("~") ? 1 : 0;
26787
+ return prefix + shortened.slice(startIndex).join("/");
26788
+ }
26789
+ var cwdStyles = {
26790
+ /**
26791
+ * Minimal style (default): shortened path with ~
26792
+ * /Users/demo/projects/claude-scope -> ~/p/claude-scope
26793
+ */
26794
+ minimal: (data, colors3) => {
26795
+ const short = shortenPath(data.fullPath);
26796
+ return colors3 ? colorize(short, colors3.name) : short;
26797
+ },
26798
+ /**
26799
+ * Balanced style: directory name only
26800
+ * /Users/demo/projects/claude-scope -> claude-scope
26801
+ */
26802
+ balanced: (data, colors3) => {
26803
+ return colors3 ? colorize(data.dirName, colors3.name) : data.dirName;
26804
+ },
26805
+ /**
26806
+ * Compact style: same as balanced (directory name only)
26807
+ * /Users/demo/projects/claude-scope -> claude-scope
26808
+ */
26809
+ compact: (data, colors3) => {
26810
+ return colors3 ? colorize(data.dirName, colors3.name) : data.dirName;
26811
+ },
26812
+ /**
26813
+ * Playful style: with folder emoji
26814
+ * /Users/demo/projects/claude-scope -> 📁 claude-scope
26815
+ */
26816
+ playful: (data, colors3) => {
26817
+ const colored = colors3 ? colorize(data.dirName, colors3.name) : data.dirName;
26818
+ return `\u{1F4C1} ${colored}`;
26819
+ },
26820
+ /**
26821
+ * Technical style: full path with colored separators
26822
+ * /Users/demo/projects/claude-scope -> /Users/demo/projects/claude-scope
26823
+ */
26824
+ technical: (data, colors3) => {
26825
+ if (!colors3) return data.fullPath;
26826
+ const parts = data.fullPath.split("/");
26827
+ return parts.map((p, i) => {
26828
+ if (p === "") return "";
26829
+ const color = i === parts.length - 1 ? colors3.name : colors3.separator;
26830
+ return colorize(p, color);
26831
+ }).join(colorize("/", colors3.separator));
26832
+ },
26833
+ /**
26834
+ * Symbolic style: with diamond symbol
26835
+ * /Users/demo/projects/claude-scope -> ◆ claude-scope
26836
+ */
26837
+ symbolic: (data, colors3) => {
26838
+ const colored = colors3 ? colorize(data.dirName, colors3.name) : data.dirName;
26839
+ return `\u25C6 ${colored}`;
26840
+ },
26841
+ /**
26842
+ * Labeled style: with Dir: prefix
26843
+ * /Users/demo/projects/claude-scope -> Dir: claude-scope
26844
+ */
26845
+ labeled: (data, colors3) => {
26846
+ const colored = colors3 ? colorize(data.dirName, colors3.name) : data.dirName;
26847
+ return withLabel("Dir", colored);
26848
+ },
26849
+ /**
26850
+ * Indicator style: with bullet indicator
26851
+ * /Users/demo/projects/claude-scope -> ● claude-scope
26852
+ */
26853
+ indicator: (data, colors3) => {
26854
+ const colored = colors3 ? colorize(data.dirName, colors3.name) : data.dirName;
26855
+ return withIndicator(colored);
26856
+ }
26857
+ };
26858
+
26859
+ // src/widgets/cwd/cwd-widget.ts
26860
+ var CwdWidget = class extends StdinDataWidget {
26861
+ id = "cwd";
26862
+ metadata = createWidgetMetadata(
26863
+ "CWD",
26864
+ "Displays current working directory",
26865
+ "1.0.0",
26866
+ "claude-scope",
26867
+ 0
26868
+ );
26869
+ colors;
26870
+ styleFn = cwdStyles.minimal;
26871
+ constructor(colors3) {
26872
+ super();
26873
+ this.colors = colors3 ?? DEFAULT_THEME;
26874
+ }
26875
+ setStyle(style = "minimal") {
26876
+ const fn = cwdStyles[style];
26877
+ if (fn) {
26878
+ this.styleFn = fn;
26879
+ }
26880
+ }
26881
+ renderWithData(data, _context) {
26882
+ if (!data.cwd) {
26883
+ return null;
26884
+ }
26885
+ const parts = data.cwd.split("/");
26886
+ const dirName = parts[parts.length - 1] || data.cwd;
26887
+ const renderData = {
26888
+ fullPath: data.cwd,
26889
+ dirName
26890
+ };
26891
+ return this.styleFn(renderData, this.colors.cwd);
26892
+ }
26893
+ };
26894
+
26895
+ // src/cli/commands/quick-config/preview.ts
26663
26896
  init_duration_widget();
26664
26897
  init_git_tag_widget();
26665
26898
  init_git_widget();
@@ -26680,6 +26913,9 @@ function parseCommand() {
26680
26913
  if (args[0] === "quick-config") {
26681
26914
  return "quick-config";
26682
26915
  }
26916
+ if (args[0] === "install") {
26917
+ return "install";
26918
+ }
26683
26919
  return "stdin";
26684
26920
  }
26685
26921
  async function routeCommand(command) {
@@ -26687,6 +26923,9 @@ async function routeCommand(command) {
26687
26923
  case "quick-config":
26688
26924
  await handleQuickConfigCommand();
26689
26925
  break;
26926
+ case "install":
26927
+ await handleInstallCommand();
26928
+ break;
26690
26929
  case "stdin":
26691
26930
  throw new Error("stdin mode should be handled by main()");
26692
26931
  default: {
@@ -26779,8 +27018,8 @@ async function loadSystemInformation() {
26779
27018
  var NETWORK_STATS_FILE = "/tmp/claude-scope-network-stats.json";
26780
27019
  async function loadNetworkStats() {
26781
27020
  try {
26782
- const fs2 = await import("node:fs/promises");
26783
- const text = await fs2.readFile(NETWORK_STATS_FILE, "utf-8");
27021
+ const fs3 = await import("node:fs/promises");
27022
+ const text = await fs3.readFile(NETWORK_STATS_FILE, "utf-8");
26784
27023
  const data = JSON.parse(text);
26785
27024
  if (Date.now() - data.lastUpdate > 5 * 60 * 1e3) {
26786
27025
  return /* @__PURE__ */ new Map();
@@ -26809,12 +27048,12 @@ async function saveNetworkStats(stats) {
26809
27048
  return;
26810
27049
  }
26811
27050
  try {
26812
- const fs2 = await import("node:fs/promises");
27051
+ const fs3 = await import("node:fs/promises");
26813
27052
  const data = {
26814
27053
  stats: Object.fromEntries(pendingSaveData),
26815
27054
  lastUpdate: Date.now()
26816
27055
  };
26817
- await fs2.writeFile(NETWORK_STATS_FILE, JSON.stringify(data), "utf-8");
27056
+ await fs3.writeFile(NETWORK_STATS_FILE, JSON.stringify(data), "utf-8");
26818
27057
  } catch {
26819
27058
  } finally {
26820
27059
  pendingSave = null;
@@ -26846,7 +27085,7 @@ var SystemProvider = class {
26846
27085
  return null;
26847
27086
  }
26848
27087
  try {
26849
- const [cpuLoad, mem, fs2, net] = await Promise.all([
27088
+ const [cpuLoad, mem, fs3, net] = await Promise.all([
26850
27089
  si.currentLoad(),
26851
27090
  si.mem(),
26852
27091
  si.fsSize(),
@@ -26858,7 +27097,7 @@ var SystemProvider = class {
26858
27097
  const memUsedGB = mem.active / 1024 / 1024 / 1024;
26859
27098
  const memTotalGB = mem.total / 1024 / 1024 / 1024;
26860
27099
  const memPercent = Math.round(mem.active / mem.total * 100);
26861
- const mainFs = Array.isArray(fs2) ? fs2[0] : fs2;
27100
+ const mainFs = Array.isArray(fs3) ? fs3[0] : fs3;
26862
27101
  const diskUsedGB = mainFs.used / 1024 / 1024 / 1024;
26863
27102
  const diskTotalGB = mainFs.size / 1024 / 1024 / 1024;
26864
27103
  const diskPercent = Math.round(mainFs.use);
@@ -27460,14 +27699,14 @@ function formatCardEmojiByParticipation(cardData, isParticipating) {
27460
27699
  return `${cardText} `;
27461
27700
  }
27462
27701
  }
27463
- function formatHandResult(handResult, colors2) {
27702
+ function formatHandResult(handResult, colors3) {
27464
27703
  if (!handResult) {
27465
27704
  return "\u2014";
27466
27705
  }
27467
27706
  const playerParticipates = handResult.participatingIndices.some((idx) => idx < 2);
27468
27707
  const resultText = !playerParticipates ? `Nothing \u{1F0CF}` : `${handResult.name}! ${handResult.emoji}`;
27469
- if (!colors2) return resultText;
27470
- return colorize(resultText, colors2.result);
27708
+ if (!colors3) return resultText;
27709
+ return colorize(resultText, colors3.result);
27471
27710
  }
27472
27711
  function getHandAbbreviation(handResult) {
27473
27712
  if (!handResult) {
@@ -27476,39 +27715,39 @@ function getHandAbbreviation(handResult) {
27476
27715
  const abbreviation = HAND_ABBREVIATIONS[handResult.name] ?? "\u2014";
27477
27716
  return `${abbreviation} (${handResult.name})`;
27478
27717
  }
27479
- function balancedStyle2(data, colors2) {
27718
+ function balancedStyle2(data, colors3) {
27480
27719
  const { holeCards, boardCards, handResult } = data;
27481
27720
  const participatingSet = new Set(handResult?.participatingIndices || []);
27482
27721
  const handStr = holeCards.map((hc, idx) => formatCardByParticipation(hc, participatingSet.has(idx))).join("");
27483
27722
  const boardStr = boardCards.map((bc, idx) => formatCardByParticipation(bc, participatingSet.has(idx + 2))).join("");
27484
- const labelColor = colors2?.participating ?? lightGray;
27723
+ const labelColor = colors3?.participating ?? lightGray;
27485
27724
  const handLabel = colorize("Hand:", labelColor);
27486
27725
  const boardLabel = colorize("Board:", labelColor);
27487
- return `${handLabel} ${handStr}| ${boardLabel} ${boardStr}\u2192 ${formatHandResult(handResult, colors2)}`;
27726
+ return `${handLabel} ${handStr}| ${boardLabel} ${boardStr}\u2192 ${formatHandResult(handResult, colors3)}`;
27488
27727
  }
27489
27728
  var pokerStyles = {
27490
27729
  balanced: balancedStyle2,
27491
27730
  compact: balancedStyle2,
27492
27731
  playful: balancedStyle2,
27493
- "compact-verbose": (data, colors2) => {
27732
+ "compact-verbose": (data, colors3) => {
27494
27733
  const { holeCards, boardCards, handResult } = data;
27495
27734
  const participatingSet = new Set(handResult?.participatingIndices || []);
27496
27735
  const handStr = holeCards.map((hc, idx) => formatCardCompact(hc, participatingSet.has(idx))).join("");
27497
27736
  const boardStr = boardCards.map((bc, idx) => formatCardCompact(bc, participatingSet.has(idx + 2))).join("");
27498
27737
  const abbreviation = getHandAbbreviation(handResult);
27499
27738
  const result2 = `${handStr}| ${boardStr}\u2192 ${abbreviation}`;
27500
- if (!colors2) return result2;
27501
- return colorize(result2, colors2.result);
27739
+ if (!colors3) return result2;
27740
+ return colorize(result2, colors3.result);
27502
27741
  },
27503
- emoji: (data, colors2) => {
27742
+ emoji: (data, colors3) => {
27504
27743
  const { holeCards, boardCards, handResult } = data;
27505
27744
  const participatingSet = new Set(handResult?.participatingIndices || []);
27506
27745
  const handStr = holeCards.map((hc, idx) => formatCardEmojiByParticipation(hc, participatingSet.has(idx))).join("");
27507
27746
  const boardStr = boardCards.map((bc, idx) => formatCardEmojiByParticipation(bc, participatingSet.has(idx + 2))).join("");
27508
- const labelColor = colors2?.participating ?? lightGray;
27747
+ const labelColor = colors3?.participating ?? lightGray;
27509
27748
  const handLabel = colorize("Hand:", labelColor);
27510
27749
  const boardLabel = colorize("Board:", labelColor);
27511
- return `${handLabel} ${handStr}| ${boardLabel} ${boardStr}\u2192 ${formatHandResult(handResult, colors2)}`;
27750
+ return `${handLabel} ${handStr}| ${boardLabel} ${boardStr}\u2192 ${formatHandResult(handResult, colors3)}`;
27512
27751
  }
27513
27752
  };
27514
27753
 
@@ -27537,9 +27776,9 @@ var PokerWidget = class extends StdinDataWidget {
27537
27776
  this.styleFn = fn;
27538
27777
  }
27539
27778
  }
27540
- constructor(colors2) {
27779
+ constructor(colors3) {
27541
27780
  super();
27542
- this.colors = colors2 ?? DEFAULT_THEME;
27781
+ this.colors = colors3 ?? DEFAULT_THEME;
27543
27782
  }
27544
27783
  /**
27545
27784
  * Generate new poker hand on each update
@@ -27634,6 +27873,8 @@ var WidgetFactory = class {
27634
27873
  */
27635
27874
  createWidget(widgetId) {
27636
27875
  switch (widgetId) {
27876
+ case "cwd":
27877
+ return new CwdWidget(this.theme);
27637
27878
  case "model":
27638
27879
  return new ModelWidget(this.theme);
27639
27880
  case "context":
@@ -27673,6 +27914,7 @@ var WidgetFactory = class {
27673
27914
  */
27674
27915
  getSupportedWidgetIds() {
27675
27916
  return [
27917
+ "cwd",
27676
27918
  "model",
27677
27919
  "context",
27678
27920
  "cost",
@@ -27699,12 +27941,12 @@ init_widget_registry();
27699
27941
  function success(data) {
27700
27942
  return { success: true, data };
27701
27943
  }
27702
- function failure(path2, message, value) {
27703
- return { success: false, error: { path: path2, message, value } };
27944
+ function failure(path3, message, value) {
27945
+ return { success: false, error: { path: path3, message, value } };
27704
27946
  }
27705
27947
  function formatError(error) {
27706
- const path2 = error.path.length > 0 ? error.path.join(".") : "root";
27707
- return `${path2}: ${error.message}`;
27948
+ const path3 = error.path.length > 0 ? error.path.join(".") : "root";
27949
+ return `${path3}: ${error.message}`;
27708
27950
  }
27709
27951
 
27710
27952
  // src/validation/combinators.ts
@@ -27893,7 +28135,7 @@ function applyWidgetConfig(widget, widgetConfig) {
27893
28135
  async function main() {
27894
28136
  try {
27895
28137
  const command = parseCommand();
27896
- if (command === "quick-config") {
28138
+ if (command === "quick-config" || command === "install") {
27897
28139
  await routeCommand(command);
27898
28140
  return "";
27899
28141
  }