lumira 0.1.0 → 0.2.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 (50) hide show
  1. package/dist/config.js +91 -11
  2. package/dist/config.js.map +1 -1
  3. package/dist/index.js +24 -5
  4. package/dist/index.js.map +1 -1
  5. package/dist/installer.js +15 -5
  6. package/dist/installer.js.map +1 -1
  7. package/dist/parsers/git.js +4 -4
  8. package/dist/parsers/git.js.map +1 -1
  9. package/dist/parsers/mcp.d.ts +6 -0
  10. package/dist/parsers/mcp.js +35 -0
  11. package/dist/parsers/mcp.js.map +1 -0
  12. package/dist/parsers/transcript.js +7 -8
  13. package/dist/parsers/transcript.js.map +1 -1
  14. package/dist/render/colors.d.ts +1 -1
  15. package/dist/render/colors.js +18 -3
  16. package/dist/render/colors.js.map +1 -1
  17. package/dist/render/icons.d.ts +25 -19
  18. package/dist/render/icons.js +58 -10
  19. package/dist/render/icons.js.map +1 -1
  20. package/dist/render/index.js +11 -10
  21. package/dist/render/index.js.map +1 -1
  22. package/dist/render/line1.d.ts +2 -2
  23. package/dist/render/line1.js +9 -22
  24. package/dist/render/line1.js.map +1 -1
  25. package/dist/render/line2.d.ts +3 -2
  26. package/dist/render/line2.js +38 -24
  27. package/dist/render/line2.js.map +1 -1
  28. package/dist/render/line3.d.ts +2 -2
  29. package/dist/render/line3.js +10 -13
  30. package/dist/render/line3.js.map +1 -1
  31. package/dist/render/line4.d.ts +2 -2
  32. package/dist/render/line4.js +4 -4
  33. package/dist/render/line4.js.map +1 -1
  34. package/dist/render/minimal.d.ts +3 -3
  35. package/dist/render/minimal.js +9 -30
  36. package/dist/render/minimal.js.map +1 -1
  37. package/dist/render/shared.d.ts +14 -0
  38. package/dist/render/shared.js +43 -0
  39. package/dist/render/shared.js.map +1 -0
  40. package/dist/themes.d.ts +19 -0
  41. package/dist/themes.js +67 -0
  42. package/dist/themes.js.map +1 -0
  43. package/dist/types.d.ts +31 -1
  44. package/dist/types.js +3 -0
  45. package/dist/types.js.map +1 -1
  46. package/dist/utils/cache.js +13 -3
  47. package/dist/utils/cache.js.map +1 -1
  48. package/dist/utils/terminal.js +1 -3
  49. package/dist/utils/terminal.js.map +1 -1
  50. package/package.json +1 -1
package/dist/config.js CHANGED
@@ -15,28 +15,108 @@ export function loadConfig(configDir = join(homedir(), '.config', 'lumira')) {
15
15
  }
16
16
  }
17
17
  function mergeConfig(raw) {
18
- const layout = ['custom', 'minimal', 'auto'].includes(raw.layout) ? raw.layout : DEFAULT_CONFIG.layout;
19
- const display = { ...DEFAULT_DISPLAY };
20
- if (raw.display && typeof raw.display === 'object') {
21
- for (const k of Object.keys(DEFAULT_DISPLAY)) {
22
- if (typeof raw.display[k] === 'boolean')
23
- display[k] = raw.display[k];
24
- }
25
- }
18
+ const layout = ['multiline', 'singleline', 'auto'].includes(raw.layout) ? raw.layout : DEFAULT_CONFIG.layout;
26
19
  const colors = { ...DEFAULT_CONFIG.colors };
27
20
  if (raw.colors && typeof raw.colors === 'object') {
28
21
  const m = raw.colors.mode;
29
22
  if (['auto', 'named', '256', 'truecolor'].includes(m))
30
23
  colors.mode = m;
31
24
  }
32
- return { layout, gsd: typeof raw.gsd === 'boolean' ? raw.gsd : DEFAULT_CONFIG.gsd, display, colors };
25
+ const result = { layout, gsd: typeof raw.gsd === 'boolean' ? raw.gsd : DEFAULT_CONFIG.gsd, display: { ...DEFAULT_DISPLAY }, colors };
26
+ // Apply preset FIRST (sets layout + display defaults)
27
+ const validPresets = ['full', 'balanced', 'minimal'];
28
+ if (validPresets.includes(raw.preset))
29
+ applyPreset(result, raw.preset);
30
+ // Then overlay user's explicit display toggles (user wins over preset)
31
+ if (raw.display && typeof raw.display === 'object') {
32
+ for (const k of Object.keys(DEFAULT_DISPLAY)) {
33
+ if (typeof raw.display[k] === 'boolean')
34
+ result.display[k] = raw.display[k];
35
+ }
36
+ }
37
+ if (typeof raw.theme === 'string' && raw.theme.length > 0)
38
+ result.theme = raw.theme;
39
+ const validIcons = ['nerd', 'emoji', 'none'];
40
+ if (validIcons.includes(raw.icons))
41
+ result.icons = raw.icons;
42
+ return result;
43
+ }
44
+ const PRESET_DEFS = {
45
+ full: {
46
+ layout: 'multiline',
47
+ display: {}, // all defaults (everything on)
48
+ },
49
+ balanced: {
50
+ layout: 'auto',
51
+ display: {
52
+ burnRate: false,
53
+ duration: false,
54
+ tokenSpeed: false,
55
+ linesChanged: false,
56
+ sessionName: false,
57
+ style: false,
58
+ version: false,
59
+ memory: false,
60
+ contextTokens: false,
61
+ cacheMetrics: false,
62
+ },
63
+ },
64
+ minimal: {
65
+ layout: 'singleline',
66
+ display: {
67
+ tokens: false,
68
+ burnRate: false,
69
+ duration: false,
70
+ tokenSpeed: false,
71
+ rateLimits: false,
72
+ tools: false,
73
+ todos: false,
74
+ vim: false,
75
+ effort: false,
76
+ worktree: false,
77
+ agent: false,
78
+ sessionName: false,
79
+ style: false,
80
+ version: false,
81
+ linesChanged: false,
82
+ memory: false,
83
+ contextTokens: false,
84
+ cacheMetrics: false,
85
+ mcp: false,
86
+ },
87
+ },
88
+ };
89
+ function applyPreset(r, preset) {
90
+ const def = PRESET_DEFS[preset];
91
+ r.preset = preset;
92
+ r.layout = def.layout;
93
+ for (const [k, v] of Object.entries(def.display)) {
94
+ r.display[k] = v;
95
+ }
33
96
  }
34
97
  export function mergeCliFlags(config, argv) {
35
98
  const r = { ...config, display: { ...config.display }, colors: { ...config.colors } };
36
- if (argv.includes('--minimal'))
37
- r.layout = 'minimal';
38
99
  if (argv.includes('--gsd'))
39
100
  r.gsd = true;
101
+ // Shorthand flags
102
+ if (argv.includes('--minimal'))
103
+ applyPreset(r, 'minimal');
104
+ if (argv.includes('--balanced'))
105
+ applyPreset(r, 'balanced');
106
+ if (argv.includes('--full'))
107
+ applyPreset(r, 'full');
108
+ for (const arg of argv) {
109
+ const presetMatch = arg.match(/^--preset[= ]?(full|balanced|minimal)$/);
110
+ if (presetMatch) {
111
+ applyPreset(r, presetMatch[1]);
112
+ continue;
113
+ }
114
+ const iconsMatch = arg.match(/^--icons[= ]?(nerd|emoji|none)$/);
115
+ if (iconsMatch) {
116
+ r.icons = iconsMatch[1];
117
+ continue;
118
+ }
119
+ }
40
120
  return r;
41
121
  }
42
122
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,14 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import { fileURLToPath } from 'node:url';
3
+ import { realpathSync } from 'node:fs';
3
4
  import { readStdin as defaultReadStdin } from './stdin.js';
4
5
  import { parseGitStatus } from './parsers/git.js';
5
6
  import { parseTranscript } from './parsers/transcript.js';
6
7
  import { getTokenSpeed } from './parsers/token-speed.js';
7
8
  import { getMemoryInfo } from './parsers/memory.js';
8
9
  import { getGsdInfo } from './parsers/gsd.js';
10
+ import { getMcpInfo } from './parsers/mcp.js';
9
11
  import { getTermCols, getLayoutCols } from './utils/terminal.js';
10
12
  import { loadConfig, mergeCliFlags } from './config.js';
11
13
  import { render } from './render/index.js';
14
+ import { resolveIcons } from './render/icons.js';
12
15
  import { install, uninstall } from './installer.js';
13
16
  import { EMPTY_TRANSCRIPT } from './types.js';
14
17
  const defaultDeps = {
@@ -18,11 +21,13 @@ const defaultDeps = {
18
21
  getTokenSpeed: (ctx) => getTokenSpeed(ctx),
19
22
  getMemoryInfo: () => getMemoryInfo(),
20
23
  getGsdInfo: (session) => getGsdInfo(session),
24
+ getMcpInfo: (cwd) => getMcpInfo(cwd),
21
25
  getTermCols: () => getTermCols(),
22
26
  };
23
27
  export async function main(overrides = {}) {
24
28
  const deps = { ...defaultDeps, ...overrides };
25
- const config = mergeCliFlags(loadConfig(), process.argv);
29
+ const configLoader = deps.loadConfig ?? loadConfig;
30
+ const config = mergeCliFlags(configLoader(), process.argv);
26
31
  const input = await deps.readStdin();
27
32
  const cwd = input.cwd || input.workspace?.current_dir || process.cwd();
28
33
  const [git, transcript] = await Promise.all([
@@ -32,14 +37,28 @@ export async function main(overrides = {}) {
32
37
  const tokenSpeed = deps.getTokenSpeed(input.context_window);
33
38
  const memory = deps.getMemoryInfo();
34
39
  const gsd = config.gsd ? deps.getGsdInfo(input.session_id) : null;
40
+ const mcp = deps.getMcpInfo(cwd);
35
41
  const rawCols = deps.getTermCols();
36
42
  const isTTY = !!(process.stdout.columns || process.stderr.columns);
37
43
  const cols = getLayoutCols(rawCols, isTTY);
38
- return render({ input, git, transcript, tokenSpeed, memory, gsd, cols, config });
44
+ const icons = resolveIcons(config.icons);
45
+ return render({ input, git, transcript, tokenSpeed, memory, gsd, mcp, cols, config, icons });
39
46
  }
40
- // Run when invoked directly
41
- const __filename = fileURLToPath(import.meta.url);
42
- if (process.argv[1] && (__filename === process.argv[1] || __filename === process.argv[1] + '.js')) {
47
+ // Run when invoked directly.
48
+ // Resolve through realpath to handle npx symlinks.
49
+ function isDirectRun() {
50
+ if (!process.argv[1])
51
+ return false;
52
+ try {
53
+ const self = realpathSync(fileURLToPath(import.meta.url)).replace(/\.js$/, '');
54
+ const invoked = realpathSync(process.argv[1]).replace(/\.js$/, '');
55
+ return self === invoked;
56
+ }
57
+ catch {
58
+ return false;
59
+ }
60
+ }
61
+ if (isDirectRun()) {
43
62
  const cmd = process.argv[2];
44
63
  if (cmd === 'install') {
45
64
  install().then(o => process.stdout.write(o)).catch(e => process.stderr.write(`Install error: ${e.message}\n`));
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/installer.js CHANGED
@@ -84,11 +84,21 @@ export function uninstall(opts = {}) {
84
84
  return lines.join('\n') + '\n';
85
85
  }
86
86
  if (existsSync(backupPath)) {
87
- copyFileSync(backupPath, settingsPath);
88
- unlinkSync(backupPath);
89
- lines.push(ok('Restored previous settings from backup'));
90
- lines.push(`\n Restart Claude Code to apply changes.\n`);
91
- return lines.join('\n') + '\n';
87
+ try {
88
+ JSON.parse(readFileSync(backupPath, 'utf8'));
89
+ copyFileSync(backupPath, settingsPath);
90
+ unlinkSync(backupPath);
91
+ lines.push(ok('Restored previous settings from backup'));
92
+ lines.push(`\n Restart Claude Code to apply changes.\n`);
93
+ return lines.join('\n') + '\n';
94
+ }
95
+ catch {
96
+ lines.push(warn('Backup file is corrupt — skipping restore'));
97
+ try {
98
+ unlinkSync(backupPath);
99
+ }
100
+ catch { }
101
+ }
92
102
  }
93
103
  try {
94
104
  const settings = JSON.parse(readFileSync(settingsPath, 'utf8'));
@@ -1 +1 @@
1
- {"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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"}
@@ -19,10 +19,10 @@ export async function parseGitStatus(cwd, exec = safeExec) {
19
19
  const status = await exec('git', ['status', '--porcelain'], { cwd, timeoutMs: 2000 });
20
20
  if (status) {
21
21
  const lines = status.split('\n').filter(Boolean);
22
- // staged: index status is A/D/R/C/T (not space, not ?, not M which shows as modified)
23
- result.staged = lines.filter(l => l[0] !== ' ' && l[0] !== '?' && l[0] !== 'M').length;
24
- // modified: M in index (col 0) or worktree (col 1)
25
- result.modified = lines.filter(l => l[0] === 'M' || l[1] === 'M').length;
22
+ // staged: any non-space, non-? in col 0 means something is in the index
23
+ result.staged = lines.filter(l => l[0] !== ' ' && l[0] !== '?').length;
24
+ // modified: worktree changes (col 1 = M or D)
25
+ result.modified = lines.filter(l => l[1] === 'M' || l[1] === 'D').length;
26
26
  result.untracked = lines.filter(l => l.startsWith('??')).length;
27
27
  }
28
28
  writeTtlCache(key, result, tmpdir());
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/parsers/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAoB,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B,SAAS,QAAQ,CAAC,GAAW;IAC3B,OAAO,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAW,EAAE,OAAe,QAAQ;IACvE,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAG,YAAY,CAAY,GAAG,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC;IACrE,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClG,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,MAAM,GAAc,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAC3E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjD,sFAAsF;QACtF,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACvF,mDAAmD;QACnD,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACzE,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAClE,CAAC;IAED,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACrC,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/parsers/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAoB,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B,SAAS,QAAQ,CAAC,GAAW;IAC3B,OAAO,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAW,EAAE,OAAe,QAAQ;IACvE,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAG,YAAY,CAAY,GAAG,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC;IACrE,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClG,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,MAAM,GAAc,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAC3E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjD,wEAAwE;QACxE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACvE,8CAA8C;QAC9C,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;QACzE,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAClE,CAAC;IAED,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACrC,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { McpInfo } from '../types.js';
2
+ /**
3
+ * Read MCP server configurations from .mcp.json files.
4
+ * Checks both cwd and ~/.claude/ for server definitions.
5
+ */
6
+ export declare function getMcpInfo(cwd: string): McpInfo | null;
@@ -0,0 +1,35 @@
1
+ import { readFileSync, existsSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { homedir } from 'node:os';
4
+ /**
5
+ * Read MCP server configurations from .mcp.json files.
6
+ * Checks both cwd and ~/.claude/ for server definitions.
7
+ */
8
+ export function getMcpInfo(cwd) {
9
+ const servers = [];
10
+ const paths = [
11
+ join(cwd, '.mcp.json'),
12
+ join(homedir(), '.claude', '.mcp.json'),
13
+ ];
14
+ for (const p of paths) {
15
+ if (!existsSync(p))
16
+ continue;
17
+ try {
18
+ const raw = JSON.parse(readFileSync(p, 'utf8'));
19
+ const mcpServers = raw?.mcpServers ?? {};
20
+ for (const name of Object.keys(mcpServers)) {
21
+ // Avoid duplicates if same server in both files
22
+ if (servers.some(s => s.name === name))
23
+ continue;
24
+ servers.push({ name, status: 'ok' });
25
+ }
26
+ }
27
+ catch {
28
+ // Malformed JSON — skip
29
+ }
30
+ }
31
+ if (servers.length === 0)
32
+ return null;
33
+ return { servers };
34
+ }
35
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/parsers/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,MAAM,OAAO,GAAoB,EAAE,CAAC;IAEpC,MAAM,KAAK,GAAG;QACZ,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC;QACtB,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC;KACxC,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,SAAS;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YAChD,MAAM,UAAU,GAAG,GAAG,EAAE,UAAU,IAAI,EAAE,CAAC;YACzC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3C,gDAAgD;gBAChD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;oBAAE,SAAS;gBACjD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC"}
@@ -4,9 +4,7 @@ import { resolve } from 'node:path';
4
4
  import { homedir, tmpdir } from 'node:os';
5
5
  import { EMPTY_TRANSCRIPT } from '../types.js';
6
6
  import { isMtimeFresh, getMtimeState } from '../utils/cache.js';
7
- let cachedResult = null;
8
- let cachedMtime = null;
9
- let cachedPath = null;
7
+ const transcriptCache = new Map();
10
8
  const MAX_LINES = 50_000;
11
9
  export function normalizeTodoStatus(status) {
12
10
  if (!status)
@@ -44,8 +42,9 @@ export async function parseTranscript(transcriptPath) {
44
42
  if (!resolved.startsWith(homedir()) && !resolved.startsWith(tmpdir()))
45
43
  return result;
46
44
  const currentMtime = getMtimeState(transcriptPath);
47
- if (currentMtime && cachedPath === transcriptPath && cachedMtime && isMtimeFresh(transcriptPath, cachedMtime) && cachedResult) {
48
- return cachedResult;
45
+ const cached = transcriptCache.get(resolved);
46
+ if (currentMtime && cached && isMtimeFresh(transcriptPath, cached.mtime)) {
47
+ return cached.result;
49
48
  }
50
49
  const toolMap = new Map();
51
50
  const agentMap = new Map();
@@ -140,9 +139,9 @@ export async function parseTranscript(transcriptPath) {
140
139
  result.agents = Array.from(agentMap.values()).slice(-10);
141
140
  result.todos = todos;
142
141
  result.thinkingEffort = thinkingEffort;
143
- cachedResult = result;
144
- cachedMtime = currentMtime;
145
- cachedPath = transcriptPath;
142
+ if (currentMtime) {
143
+ transcriptCache.set(resolved, { result, mtime: currentMtime });
144
+ }
146
145
  return result;
147
146
  }
148
147
  //# sourceMappingURL=transcript.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../src/parsers/transcript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../src/parsers/transcript.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export interface Colors {
13
13
  dim: (s: string) => string;
14
14
  bold: (s: string) => string;
15
15
  }
16
- export declare function createColors(mode: ColorMode): Colors;
16
+ export declare function createColors(mode: ColorMode, theme?: import('../themes.js').ThemePalette | null): Colors;
17
17
  export declare function stripAnsi(str: string): string;
18
18
  export declare function detectColorMode(): ColorMode;
19
19
  export declare function getContextColor(pct: number): ColorName;
@@ -1,5 +1,5 @@
1
1
  const RST = '\x1b[0m';
2
- export function createColors(mode) {
2
+ export function createColors(mode, theme) {
3
3
  const wrap = (code) => (s) => `${code}${s}${RST}`;
4
4
  // Named ANSI colors as default — respects terminal theme (like the original JS).
5
5
  // Only orange uses 256-color (no named ANSI equivalent).
@@ -11,6 +11,16 @@ export function createColors(mode) {
11
11
  blinkRed: wrap('\x1b[5;31m'), gray: wrap('\x1b[90m'),
12
12
  brightBlue: wrap('\x1b[94m'), dim: wrap('\x1b[2m'), bold: wrap('\x1b[1m'),
13
13
  };
14
+ // Theme overrides (truecolor only — resolveTheme returns null otherwise)
15
+ if (theme && mode === 'truecolor') {
16
+ return {
17
+ ...named,
18
+ cyan: wrap(theme.cyan), magenta: wrap(theme.magenta),
19
+ yellow: wrap(theme.yellow), green: wrap(theme.green),
20
+ orange: wrap(theme.orange), red: wrap(theme.red),
21
+ brightBlue: wrap(theme.brightBlue), gray: wrap(theme.gray),
22
+ };
23
+ }
14
24
  if (mode === 'truecolor') {
15
25
  return {
16
26
  ...named,
@@ -34,8 +44,13 @@ export function stripAnsi(str) {
34
44
  return str.replace(/\x1b\[\??[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\x1b[()][AB012]/g, '');
35
45
  }
36
46
  export function detectColorMode() {
37
- // Default to named ANSI — respects terminal theme colors.
38
- // Only upgrade if user explicitly sets colors.mode in config.
47
+ const colorterm = (process.env['COLORTERM'] ?? '').toLowerCase();
48
+ if (colorterm === 'truecolor' || colorterm === '24bit')
49
+ return 'truecolor';
50
+ const term = process.env['TERM'] ?? '';
51
+ const termProgram = process.env['TERM_PROGRAM'] ?? '';
52
+ if (term.endsWith('-256color') || termProgram === 'iTerm.app' || termProgram === 'Hyper')
53
+ return '256';
39
54
  return 'named';
40
55
  }
41
56
  export function getContextColor(pct) {
@@ -1 +1 @@
1
- {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/render/colors.ts"],"names":[],"mappings":"AAGA,MAAM,GAAG,GAAG,SAAS,CAAC;AAgBtB,MAAM,UAAU,YAAY,CAAC,IAAe;IAC1C,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;IAElE,iFAAiF;IACjF,yDAAyD;IACzD,mEAAmE;IACnE,MAAM,KAAK,GAAW;QACpB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;QACjD,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC;QACjD,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC;QACrD,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;QACpD,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;KAC1E,CAAC;IAEF,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,OAAO;YACL,GAAG,KAAK;YACR,IAAI,EAAE,IAAI,CAAC,sBAAsB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC;YACzE,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC;YACvE,MAAM,EAAE,IAAI,CAAC,sBAAsB,CAAC;YACpC,UAAU,EAAE,IAAI,CAAC,wBAAwB,CAAC;SAC3C,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO;YACL,GAAG,KAAK;YACR,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC;YAC5D,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC;YAC5D,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC;SACnC,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,GAAG,CAAC,OAAO,CAAC,8DAA8D,EAAE,EAAE,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,0DAA0D;IAC1D,8DAA8D;IAC9D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,IAAI,GAAG,GAAG,EAAE;QAAE,OAAO,OAAO,CAAC;IAC7B,IAAI,GAAG,GAAG,EAAE;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,GAAG,GAAG,EAAE;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,IAAI,GAAG,GAAG,EAAE;QAAE,OAAO,OAAO,CAAC;IAC7B,IAAI,GAAG,GAAG,EAAE;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,GAAG,GAAG,EAAE;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/render/colors.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,25 @@
1
- export declare const ICONS: {
2
- readonly model: "";
3
- readonly branch: "";
4
- readonly folder: "";
5
- readonly fire: "";
6
- readonly skull: "";
7
- readonly comment: "";
8
- readonly clock: "";
9
- readonly bolt: "";
10
- readonly tree: "";
11
- readonly cubes: "";
12
- readonly hammer: "";
13
- readonly warning: "";
14
- readonly barFull: "█";
15
- readonly barEmpty: "░";
16
- readonly ellipsis: "…";
17
- readonly dash: "—";
18
- readonly checkmark: "✓";
19
- };
1
+ export interface IconSet {
2
+ model: string;
3
+ branch: string;
4
+ folder: string;
5
+ fire: string;
6
+ skull: string;
7
+ comment: string;
8
+ clock: string;
9
+ bolt: string;
10
+ tree: string;
11
+ cubes: string;
12
+ hammer: string;
13
+ warning: string;
14
+ barFull: string;
15
+ barEmpty: string;
16
+ ellipsis: string;
17
+ dash: string;
18
+ checkmark: string;
19
+ }
20
+ export declare const NERD_ICONS: IconSet;
21
+ export declare const EMOJI_ICONS: IconSet;
22
+ export declare const NO_ICONS: IconSet;
23
+ /** Resolve icon set from config value */
24
+ export declare function resolveIcons(mode?: 'nerd' | 'emoji' | 'none'): IconSet;
25
+ export declare const ICONS: IconSet;
@@ -1,20 +1,68 @@
1
- export const ICONS = {
1
+ export const NERD_ICONS = {
2
2
  model: '\uEE0D', // fa-robot
3
3
  branch: '\uE725', // dev-git-branch
4
4
  folder: '\uF07C', // fa-folder-open
5
- fire: '\uF06D', // fa-fire (context 65-79%)
6
- skull: '\uEE15', // fa-skull (context >=80%)
7
- comment: '\uF075', // fa-comment (tokens)
8
- clock: '\uF017', // fa-clock (duration)
9
- bolt: '\uF0E7', // fa-bolt (token speed, rate limits)
10
- tree: '\uF1BB', // fa-tree (worktree)
11
- cubes: '\uF1B3', // fa-cubes (agent)
12
- hammer: '\uEEFF', // fa-hammer (GSD task)
13
- warning: '\uF071', // fa-warning (GSD update)
5
+ fire: '\uF06D', // fa-fire
6
+ skull: '\uEE15', // fa-skull
7
+ comment: '\uF075', // fa-comment
8
+ clock: '\uF017', // fa-clock
9
+ bolt: '\uF0E7', // fa-bolt
10
+ tree: '\uF1BB', // fa-tree
11
+ cubes: '\uF1B3', // fa-cubes
12
+ hammer: '\uEEFF', // fa-hammer
13
+ warning: '\uF071', // fa-warning
14
14
  barFull: '\u2588', // block full
15
15
  barEmpty: '\u2591', // block light
16
16
  ellipsis: '\u2026', // ...
17
17
  dash: '\u2014', // em-dash
18
18
  checkmark: '\u2713', // checkmark
19
19
  };
20
+ export const EMOJI_ICONS = {
21
+ model: '\u{1F916}', // 🤖
22
+ branch: '\u{1F33F}', // 🌿
23
+ folder: '\u{1F4C2}', // 📂
24
+ fire: '\u{1F525}', // 🔥
25
+ skull: '\u{1F480}', // 💀
26
+ comment: '\u{1F4AC}', // 💬
27
+ clock: '\u{23F1}\uFE0F', // ⏱️
28
+ bolt: '\u26A1', // ⚡
29
+ tree: '\u{1F332}', // 🌲
30
+ cubes: '\u{1F4E6}', // 📦
31
+ hammer: '\u{1F528}', // 🔨
32
+ warning: '\u26A0\uFE0F', // ⚠️
33
+ barFull: '\u2588',
34
+ barEmpty: '\u2591',
35
+ ellipsis: '\u2026',
36
+ dash: '\u2014',
37
+ checkmark: '\u2705', // ✅
38
+ };
39
+ export const NO_ICONS = {
40
+ model: '',
41
+ branch: '',
42
+ folder: '',
43
+ fire: '!',
44
+ skull: '!!',
45
+ comment: '',
46
+ clock: '',
47
+ bolt: '',
48
+ tree: '',
49
+ cubes: '',
50
+ hammer: '',
51
+ warning: '!',
52
+ barFull: '\u2588',
53
+ barEmpty: '\u2591',
54
+ ellipsis: '\u2026',
55
+ dash: '\u2014',
56
+ checkmark: '\u2713',
57
+ };
58
+ /** Resolve icon set from config value */
59
+ export function resolveIcons(mode) {
60
+ if (mode === 'emoji')
61
+ return EMOJI_ICONS;
62
+ if (mode === 'none')
63
+ return NO_ICONS;
64
+ return NERD_ICONS;
65
+ }
66
+ // Backward compat — default export is nerd icons
67
+ export const ICONS = NERD_ICONS;
20
68
  //# sourceMappingURL=icons.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/render/icons.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,KAAK,EAAK,QAAQ,EAAG,WAAW;IAChC,MAAM,EAAI,QAAQ,EAAG,iBAAiB;IACtC,MAAM,EAAI,QAAQ,EAAG,iBAAiB;IACtC,IAAI,EAAM,QAAQ,EAAG,2BAA2B;IAChD,KAAK,EAAK,QAAQ,EAAG,2BAA2B;IAChD,OAAO,EAAG,QAAQ,EAAG,sBAAsB;IAC3C,KAAK,EAAK,QAAQ,EAAG,sBAAsB;IAC3C,IAAI,EAAM,QAAQ,EAAG,qCAAqC;IAC1D,IAAI,EAAM,QAAQ,EAAG,qBAAqB;IAC1C,KAAK,EAAK,QAAQ,EAAG,mBAAmB;IACxC,MAAM,EAAI,QAAQ,EAAG,uBAAuB;IAC5C,OAAO,EAAG,QAAQ,EAAG,0BAA0B;IAC/C,OAAO,EAAG,QAAQ,EAAG,aAAa;IAClC,QAAQ,EAAE,QAAQ,EAAG,cAAc;IACnC,QAAQ,EAAE,QAAQ,EAAG,MAAM;IAC3B,IAAI,EAAM,QAAQ,EAAG,UAAU;IAC/B,SAAS,EAAE,QAAQ,EAAE,YAAY;CACzB,CAAC"}
1
+ {"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/render/icons.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAC,MAAM,UAAU,GAAY;IACjC,KAAK,EAAM,QAAQ,EAAG,WAAW;IACjC,MAAM,EAAK,QAAQ,EAAG,iBAAiB;IACvC,MAAM,EAAK,QAAQ,EAAG,iBAAiB;IACvC,IAAI,EAAO,QAAQ,EAAG,UAAU;IAChC,KAAK,EAAM,QAAQ,EAAG,WAAW;IACjC,OAAO,EAAI,QAAQ,EAAG,aAAa;IACnC,KAAK,EAAM,QAAQ,EAAG,WAAW;IACjC,IAAI,EAAO,QAAQ,EAAG,UAAU;IAChC,IAAI,EAAO,QAAQ,EAAG,UAAU;IAChC,KAAK,EAAM,QAAQ,EAAG,WAAW;IACjC,MAAM,EAAK,QAAQ,EAAG,YAAY;IAClC,OAAO,EAAI,QAAQ,EAAG,aAAa;IACnC,OAAO,EAAI,QAAQ,EAAG,aAAa;IACnC,QAAQ,EAAG,QAAQ,EAAG,cAAc;IACpC,QAAQ,EAAG,QAAQ,EAAG,MAAM;IAC5B,IAAI,EAAO,QAAQ,EAAG,UAAU;IAChC,SAAS,EAAE,QAAQ,EAAG,YAAY;CACnC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAY;IAClC,KAAK,EAAM,WAAW,EAAE,KAAK;IAC7B,MAAM,EAAK,WAAW,EAAE,KAAK;IAC7B,MAAM,EAAK,WAAW,EAAE,KAAK;IAC7B,IAAI,EAAO,WAAW,EAAE,KAAK;IAC7B,KAAK,EAAM,WAAW,EAAE,KAAK;IAC7B,OAAO,EAAI,WAAW,EAAE,KAAK;IAC7B,KAAK,EAAM,gBAAgB,EAAG,KAAK;IACnC,IAAI,EAAO,QAAQ,EAAK,IAAI;IAC5B,IAAI,EAAO,WAAW,EAAE,KAAK;IAC7B,KAAK,EAAM,WAAW,EAAE,KAAK;IAC7B,MAAM,EAAK,WAAW,EAAE,KAAK;IAC7B,OAAO,EAAI,cAAc,EAAI,KAAK;IAClC,OAAO,EAAI,QAAQ;IACnB,QAAQ,EAAG,QAAQ;IACnB,QAAQ,EAAG,QAAQ;IACnB,IAAI,EAAO,QAAQ;IACnB,SAAS,EAAE,QAAQ,EAAK,IAAI;CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAY;IAC/B,KAAK,EAAM,EAAE;IACb,MAAM,EAAK,EAAE;IACb,MAAM,EAAK,EAAE;IACb,IAAI,EAAO,GAAG;IACd,KAAK,EAAM,IAAI;IACf,OAAO,EAAI,EAAE;IACb,KAAK,EAAM,EAAE;IACb,IAAI,EAAO,EAAE;IACb,IAAI,EAAO,EAAE;IACb,KAAK,EAAM,EAAE;IACb,MAAM,EAAK,EAAE;IACb,OAAO,EAAI,GAAG;IACd,OAAO,EAAI,QAAQ;IACnB,QAAQ,EAAG,QAAQ;IACnB,QAAQ,EAAG,QAAQ;IACnB,IAAI,EAAO,QAAQ;IACnB,SAAS,EAAE,QAAQ;CACpB,CAAC;AAEF,yCAAyC;AACzC,MAAM,UAAU,YAAY,CAAC,IAAgC;IAC3D,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,WAAW,CAAC;IACzC,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,QAAQ,CAAC;IACrC,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,iDAAiD;AACjD,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAAC"}