lumira 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -23,7 +23,7 @@ const defaultDeps = {
23
23
  parseTranscript: (path) => parseTranscript(path),
24
24
  getTokenSpeed: (ctx) => getTokenSpeed(ctx),
25
25
  getMemoryInfo: () => getMemoryInfo(),
26
- getGsdInfo: (session) => getGsdInfo(session),
26
+ getGsdInfo: (cwd) => getGsdInfo(cwd),
27
27
  getMcpInfo: (cwd) => getMcpInfo(cwd),
28
28
  getTermCols: () => getTermCols(),
29
29
  };
@@ -39,7 +39,7 @@ export async function main(overrides = {}) {
39
39
  ]);
40
40
  const tokenSpeed = deps.getTokenSpeed(input.context_window);
41
41
  const memory = deps.getMemoryInfo();
42
- const gsd = config.gsd ? deps.getGsdInfo(input.session_id) : null;
42
+ const gsd = config.gsd ? deps.getGsdInfo(cwd) : null;
43
43
  const mcp = deps.getMcpInfo(cwd);
44
44
  const rawCols = deps.getTermCols();
45
45
  const isTTY = !!(process.stdout.columns || process.stderr.columns);
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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"}
@@ -1,2 +1,22 @@
1
1
  import type { GsdInfo } from '../types.js';
2
- export declare function getGsdInfo(session: string, claudeDir?: string): GsdInfo | null;
2
+ interface GsdState {
3
+ status?: string;
4
+ milestone?: string;
5
+ milestoneName?: string;
6
+ phaseNum?: string;
7
+ phaseTotal?: string;
8
+ phaseName?: string;
9
+ }
10
+ /**
11
+ * Parse .planning/STATE.md: YAML frontmatter + `Phase: N of M (name)` line.
12
+ * Mirrors the format produced by the GSD CLI (get-shit-done >= 1.x).
13
+ */
14
+ export declare function parseStateMd(content: string): GsdState;
15
+ export interface GsdInfoOptions {
16
+ /** Per-runtime claude config dir (holds `cache/gsd-update-check.json` in old GSD). */
17
+ claudeDir?: string;
18
+ /** Tool-agnostic shared cache file path. Overridable for tests. */
19
+ sharedCacheFile?: string;
20
+ }
21
+ export declare function getGsdInfo(cwd: string, opts?: GsdInfoOptions): GsdInfo | null;
22
+ export {};
@@ -1,35 +1,120 @@
1
- import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs';
2
- import { join, resolve } from 'node:path';
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { join, dirname, resolve } from 'node:path';
3
3
  import { homedir } from 'node:os';
4
4
  import { sanitizeTermString } from '../normalize.js';
5
- export function getGsdInfo(session, claudeDir = join(process.env['CLAUDE_CONFIG_DIR'] || join(homedir(), '.claude'))) {
6
- let updateAvailable = false;
7
- let currentTask;
8
- const cacheFile = join(claudeDir, 'cache', 'gsd-update-check.json');
9
- if (existsSync(cacheFile)) {
5
+ // Max directory levels to walk upward looking for .planning/STATE.md
6
+ const STATE_WALK_MAX = 10;
7
+ /**
8
+ * Parse .planning/STATE.md: YAML frontmatter + `Phase: N of M (name)` line.
9
+ * Mirrors the format produced by the GSD CLI (get-shit-done >= 1.x).
10
+ */
11
+ export function parseStateMd(content) {
12
+ const state = {};
13
+ const fmMatch = content.match(/^---\n([\s\S]*?)\n---/);
14
+ if (fmMatch) {
15
+ for (const line of fmMatch[1].split('\n')) {
16
+ const m = line.match(/^(\w+):\s*(.+)/);
17
+ if (!m)
18
+ continue;
19
+ const [, key, val] = m;
20
+ const v = val.trim().replace(/^["']|["']$/g, '');
21
+ if (v === 'null')
22
+ continue;
23
+ if (key === 'status')
24
+ state.status = v;
25
+ else if (key === 'milestone')
26
+ state.milestone = v;
27
+ else if (key === 'milestone_name')
28
+ state.milestoneName = v;
29
+ }
30
+ }
31
+ const phaseMatch = content.match(/^Phase:\s*(\d+)\s+of\s+(\d+)(?:\s+\(([^)]+)\))?/m);
32
+ if (phaseMatch) {
33
+ state.phaseNum = phaseMatch[1];
34
+ state.phaseTotal = phaseMatch[2];
35
+ state.phaseName = phaseMatch[3];
36
+ }
37
+ else if (!state.status) {
38
+ // Fallback: parse body Status line when frontmatter is absent
39
+ const bodyStatus = content.match(/^Status:\s*(.+)/m);
40
+ if (bodyStatus) {
41
+ const raw = bodyStatus[1].trim().toLowerCase();
42
+ if (raw.includes('ready to plan') || raw.includes('planning'))
43
+ state.status = 'planning';
44
+ else if (raw.includes('execut'))
45
+ state.status = 'executing';
46
+ else if (raw.includes('complet') || raw.includes('archived'))
47
+ state.status = 'complete';
48
+ }
49
+ }
50
+ return state;
51
+ }
52
+ /** Walk up from `cwd` looking for `.planning/STATE.md`; stop at home or filesystem root. */
53
+ function findStateMd(cwd) {
54
+ const home = homedir();
55
+ let current = resolve(cwd);
56
+ for (let i = 0; i < STATE_WALK_MAX; i++) {
57
+ const candidate = join(current, '.planning', 'STATE.md');
58
+ if (existsSync(candidate))
59
+ return candidate;
60
+ const parent = dirname(current);
61
+ if (parent === current || current === home)
62
+ break;
63
+ current = parent;
64
+ }
65
+ return null;
66
+ }
67
+ /** Format a GSD state into a compact status string: `milestone · status · phase`. */
68
+ function formatState(s) {
69
+ const parts = [];
70
+ if (s.milestone || s.milestoneName) {
71
+ const ver = s.milestone ?? '';
72
+ const name = s.milestoneName && s.milestoneName !== 'milestone' ? s.milestoneName : '';
73
+ const ms = [ver, name].filter(Boolean).join(' ');
74
+ if (ms)
75
+ parts.push(ms);
76
+ }
77
+ if (s.status)
78
+ parts.push(s.status);
79
+ if (s.phaseNum && s.phaseTotal) {
80
+ const phase = s.phaseName ? `${s.phaseName} (${s.phaseNum}/${s.phaseTotal})` : `ph ${s.phaseNum}/${s.phaseTotal}`;
81
+ parts.push(phase);
82
+ }
83
+ return parts.join(' · ');
84
+ }
85
+ /**
86
+ * Read GSD update-check cache. Checks the shared tool-agnostic cache first
87
+ * (`~/.cache/gsd/`, introduced by GSD #1421), then falls back to the legacy
88
+ * per-runtime location (`~/.claude/cache/`) for older GSD installs.
89
+ */
90
+ function readUpdateCache(sharedCacheFile, legacyCacheFile) {
91
+ for (const file of [sharedCacheFile, legacyCacheFile]) {
92
+ if (!existsSync(file))
93
+ continue;
10
94
  try {
11
- if (JSON.parse(readFileSync(cacheFile, 'utf8')).update_available)
12
- updateAvailable = true;
95
+ const parsed = JSON.parse(readFileSync(file, 'utf8'));
96
+ if (parsed.update_available)
97
+ return true;
13
98
  }
14
- catch { }
99
+ catch { /* ignore malformed */ }
15
100
  }
16
- const todosDir = join(claudeDir, 'todos');
17
- if (session && existsSync(todosDir)) {
101
+ return false;
102
+ }
103
+ export function getGsdInfo(cwd, opts = {}) {
104
+ const claudeDir = opts.claudeDir ?? process.env['CLAUDE_CONFIG_DIR'] ?? join(homedir(), '.claude');
105
+ const sharedCacheFile = opts.sharedCacheFile ?? join(homedir(), '.cache', 'gsd', 'gsd-update-check.json');
106
+ const legacyCacheFile = join(claudeDir, 'cache', 'gsd-update-check.json');
107
+ const updateAvailable = readUpdateCache(sharedCacheFile, legacyCacheFile);
108
+ let currentTask;
109
+ const stateFile = findStateMd(cwd || process.cwd());
110
+ if (stateFile) {
18
111
  try {
19
- const sanitized = (session || '').replace(/[^\w-]/g, '');
20
- const files = readdirSync(todosDir).filter(f => f.startsWith(sanitized) && f.includes('-agent-') && f.endsWith('.json'))
21
- .map(f => ({ name: f, mtime: statSync(join(todosDir, f)).mtime })).sort((a, b) => b.mtime.getTime() - a.mtime.getTime());
22
- if (files.length > 0) {
23
- const todoPath = join(todosDir, files[0].name);
24
- if (!resolve(todoPath).startsWith(resolve(todosDir)))
25
- return null;
26
- const todos = JSON.parse(readFileSync(resolve(todoPath), 'utf8'));
27
- const ip = todos.find((t) => t.status === 'in_progress');
28
- if (ip?.activeForm)
29
- currentTask = sanitizeTermString(String(ip.activeForm));
30
- }
112
+ const state = parseStateMd(readFileSync(stateFile, 'utf8'));
113
+ const formatted = formatState(state);
114
+ if (formatted)
115
+ currentTask = sanitizeTermString(formatted);
31
116
  }
32
- catch { }
117
+ catch { /* ignore */ }
33
118
  }
34
119
  if (!updateAvailable && !currentTask)
35
120
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"gsd.js","sourceRoot":"","sources":["../../src/parsers/gsd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gsd.js","sourceRoot":"","sources":["../../src/parsers/gsd.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,12 @@ export function createColors(mode, theme) {
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') {
14
+ // Theme overrides: applied for both truecolor and 256-color modes.
15
+ // `resolveTheme` projects the palette's RGB values to 256-color indices when
16
+ // mode is '256', and returns null for 'named' mode (named ANSI has only 8
17
+ // base hues — not enough fidelity to honour a theme accurately, so we fall
18
+ // back to built-in defaults instead of approximating with wrong colors).
19
+ if (theme && (mode === 'truecolor' || mode === '256')) {
16
20
  return {
17
21
  ...named,
18
22
  cyan: wrap(theme.cyan), magenta: wrap(theme.magenta),
@@ -1 +1 @@
1
- {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/render/colors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/render/colors.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,10 @@ export function renderMinimal(ctx, c) {
33
33
  }
34
34
  // Context bar
35
35
  if (display.contextBar) {
36
- parts.push(buildContextBar(input.context.usedPercentage, c, { segments: 10, iconSet: icons }));
36
+ // `showHint: false` the minimal preset targets tight single-line terminals,
37
+ // where the /compact hint's ~10 trailing chars pushes truncation earlier. Users
38
+ // on minimal can still read the blinking skull icon as an at-risk signal.
39
+ parts.push(buildContextBar(input.context.usedPercentage, c, { segments: 10, iconSet: icons, showHint: false }));
37
40
  }
38
41
  // Only add these if cols >= 60
39
42
  if (cols >= 60) {
@@ -1 +1 @@
1
- {"version":3,"file":"minimal.js","sourceRoot":"","sources":["../../src/render/minimal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"minimal.js","sourceRoot":"","sources":["../../src/render/minimal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE9G,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,MAAM,UAAU,aAAa,CAAC,GAAkB,EAAE,CAAS;IACzD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAC1F,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,YAAY;IACZ,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACtB,IAAI,OAAO,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,SAAS;IACT,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC;IACjD,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QACtE,IAAI,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;QAC7D,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC7C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS,IAAI,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IAED,QAAQ;IACR,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,cAAc;IACd,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,8EAA8E;QAC9E,gFAAgF;QAChF,0EAA0E;QAC1E,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;IAED,+BAA+B;IAC/B,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;QACf,SAAS;QACT,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;YACpC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YACtC,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,IAAI,QAAQ,GAAG,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5D,IAAI,SAAS,GAAG,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC9D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,qBAAqB;QACrB,IAAI,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,yBAAyB;QACzB,IAAI,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,cAAc;QACd,IAAI,OAAO,CAAC,UAAU,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,QAAQ,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,gBAAgB;QAChB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;YAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC;YACnC,IAAI,KAAK,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAElD,QAAQ;QACR,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,UAAU;QACV,IAAI,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,mBAAmB;QACnB,IAAI,GAAG,EAAE,WAAW,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,WAAW;QACX,IAAI,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,QAAQ;QACR,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEzC,mCAAmC;IACnC,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/B,IAAI,EAAE;QAAE,OAAO,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;IACpC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -9,6 +9,8 @@ export interface ContextBarOpts {
9
9
  segments?: number;
10
10
  showIcons?: boolean;
11
11
  iconSet?: IconSet;
12
+ /** When true (default), append an actionable hint like `/compact?` at high fill. */
13
+ showHint?: boolean;
12
14
  }
13
15
  export declare function buildContextBar(pct: number, c: Colors, opts?: ContextBarOpts): string;
14
16
  export declare function formatGitChanges(git: GitStatus, c: Colors): string[];
@@ -13,6 +13,7 @@ export function getModelName(model) {
13
13
  export function buildContextBar(pct, c, opts) {
14
14
  const segments = opts?.segments ?? 20;
15
15
  const showIcons = opts?.showIcons ?? true;
16
+ const showHint = opts?.showHint ?? true;
16
17
  const ic = opts?.iconSet ?? NERD_ICONS;
17
18
  const filled = Math.round((pct / 100) * segments);
18
19
  const colorFn = c[getContextColor(pct)];
@@ -24,8 +25,17 @@ export function buildContextBar(pct, c, opts) {
24
25
  else if (pct >= 65)
25
26
  icon = c.orange(ic.fire);
26
27
  }
28
+ // Actionable hint at high fill — nudges the user to reclaim context before
29
+ // the session stalls. Thresholds align with the color/icon tiers above.
30
+ let hint = '';
31
+ if (showHint) {
32
+ if (pct >= 90)
33
+ hint = ' ' + c.red('/compact!');
34
+ else if (pct >= 80)
35
+ hint = ' ' + c.dim('/compact?');
36
+ }
27
37
  const pctStr = colorFn(`${pct < 10 ? pct.toFixed(1) : pct.toFixed(0)}%`);
28
- return `${bar} ${pctStr}${icon ? ' ' + icon : ''}`;
38
+ return `${bar} ${pctStr}${icon ? ' ' + icon : ''}${hint}`;
29
39
  }
30
40
  export function formatGitChanges(git, c) {
31
41
  const parts = [];
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/render/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/render/shared.ts"],"names":[],"mappings":"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"}
package/dist/themes.d.ts CHANGED
@@ -1,8 +1,10 @@
1
1
  import type { ColorMode } from './render/colors.js';
2
2
  /**
3
- * A theme defines truecolor overrides for each named color.
4
- * At runtime, if the user selects a theme AND their terminal supports
5
- * truecolor/256, these values replace the defaults in createColors.
3
+ * A theme defines truecolor RGB values for each named color.
4
+ * At runtime:
5
+ * - truecolor terminals get the exact RGB via `\x1b[38;2;r;g;bm`
6
+ * - 256-color terminals get the nearest xterm 256-color index via `\x1b[38;5;Nm`
7
+ * - named-ANSI terminals fall back to defaults (themes are not applied)
6
8
  */
7
9
  export interface ThemePalette {
8
10
  cyan: string;
@@ -14,6 +16,8 @@ export interface ThemePalette {
14
16
  brightBlue: string;
15
17
  gray: string;
16
18
  }
19
+ /** Project a truecolor-only palette to 256-color escapes. */
20
+ export declare function downgradePaletteTo256(p: ThemePalette): ThemePalette;
17
21
  export declare const THEMES: Record<string, ThemePalette>;
18
22
  export declare function getThemeNames(): string[];
19
23
  export declare function resolveTheme(name: string | undefined, mode: ColorMode): ThemePalette | null;
package/dist/themes.js CHANGED
@@ -1,6 +1,49 @@
1
1
  function rgb(r, g, b) {
2
2
  return `\x1b[38;2;${r};${g};${b}m`;
3
3
  }
4
+ /** Parse a truecolor escape `\x1b[38;2;R;G;Bm` back into RGB components. */
5
+ function parseRgb(escape) {
6
+ const m = escape.match(/^\x1b\[38;2;(\d+);(\d+);(\d+)m$/);
7
+ if (!m)
8
+ return null;
9
+ return { r: parseInt(m[1], 10), g: parseInt(m[2], 10), b: parseInt(m[3], 10) };
10
+ }
11
+ /**
12
+ * Convert an RGB triple to the nearest xterm 256-color index (0..255).
13
+ * Uses the standard 6×6×6 color cube (indices 16..231) plus grayscale ramp
14
+ * (232..255). Algorithm follows Chalk/ansi-styles conventions.
15
+ */
16
+ function rgbTo256(r, g, b) {
17
+ // Grayscale shortcut when r≈g≈b
18
+ if (r === g && g === b) {
19
+ if (r < 8)
20
+ return 16;
21
+ if (r > 248)
22
+ return 231;
23
+ return Math.round((r - 8) / 247 * 24) + 232;
24
+ }
25
+ const cube = (v) => Math.round(v / 255 * 5);
26
+ return 16 + 36 * cube(r) + 6 * cube(g) + cube(b);
27
+ }
28
+ function rgbEscapeTo256(escape) {
29
+ const c = parseRgb(escape);
30
+ if (!c)
31
+ return escape;
32
+ return `\x1b[38;5;${rgbTo256(c.r, c.g, c.b)}m`;
33
+ }
34
+ /** Project a truecolor-only palette to 256-color escapes. */
35
+ export function downgradePaletteTo256(p) {
36
+ return {
37
+ cyan: rgbEscapeTo256(p.cyan),
38
+ magenta: rgbEscapeTo256(p.magenta),
39
+ yellow: rgbEscapeTo256(p.yellow),
40
+ green: rgbEscapeTo256(p.green),
41
+ orange: rgbEscapeTo256(p.orange),
42
+ red: rgbEscapeTo256(p.red),
43
+ brightBlue: rgbEscapeTo256(p.brightBlue),
44
+ gray: rgbEscapeTo256(p.gray),
45
+ };
46
+ }
4
47
  export const THEMES = {
5
48
  dracula: {
6
49
  cyan: rgb(139, 233, 253),
@@ -52,6 +95,26 @@ export const THEMES = {
52
95
  brightBlue: rgb(102, 217, 239),
53
96
  gray: rgb(117, 113, 94),
54
97
  },
98
+ gruvbox: {
99
+ cyan: rgb(131, 165, 152),
100
+ magenta: rgb(211, 134, 155),
101
+ yellow: rgb(215, 153, 33),
102
+ green: rgb(152, 151, 26),
103
+ orange: rgb(214, 93, 14),
104
+ red: rgb(204, 36, 29),
105
+ brightBlue: rgb(69, 133, 136),
106
+ gray: rgb(146, 131, 116),
107
+ },
108
+ solarized: {
109
+ cyan: rgb(42, 161, 152),
110
+ magenta: rgb(211, 54, 130),
111
+ yellow: rgb(181, 137, 0),
112
+ green: rgb(133, 153, 0),
113
+ orange: rgb(203, 75, 22),
114
+ red: rgb(220, 50, 47),
115
+ brightBlue: rgb(38, 139, 210),
116
+ gray: rgb(101, 123, 131),
117
+ },
55
118
  };
56
119
  export function getThemeNames() {
57
120
  return Object.keys(THEMES);
@@ -59,9 +122,17 @@ export function getThemeNames() {
59
122
  export function resolveTheme(name, mode) {
60
123
  if (!name)
61
124
  return null;
62
- // Themes only apply in truecolor mode — they use RGB values
63
- if (mode !== 'truecolor')
125
+ const base = THEMES[name.toLowerCase()];
126
+ if (!base)
64
127
  return null;
65
- return THEMES[name.toLowerCase()] ?? null;
128
+ // Truecolor terminals get the exact palette; 256-color terminals get a
129
+ // nearest-index projection. Named-ANSI terminals cannot represent arbitrary
130
+ // palettes — fall back to built-in defaults rather than lying with mismatched
131
+ // named colors (only 8 base hues available).
132
+ if (mode === 'truecolor')
133
+ return base;
134
+ if (mode === '256')
135
+ return downgradePaletteTo256(base);
136
+ return null;
66
137
  }
67
138
  //# sourceMappingURL=themes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"themes.js","sourceRoot":"","sources":["../src/themes.ts"],"names":[],"mappings":"AAkBA,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IAC1C,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAiC;IAClD,OAAO,EAAE;QACP,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACxB,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC3B,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC1B,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;QACxB,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC1B,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;QACrB,UAAU,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC9B,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;KACxB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACxB,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC3B,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC1B,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACzB,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC1B,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;QACtB,UAAU,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC9B,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;KACvB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACxB,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC3B,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC1B,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACzB,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC1B,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACvB,UAAU,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC9B,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;KACvB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACxB,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC3B,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC1B,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACzB,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC1B,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACvB,UAAU,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC9B,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;KACzB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QACxB,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;QAC1B,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC1B,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACzB,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;QACtB,UAAU,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;QAC9B,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;KACxB;CACF,CAAC;AAEF,MAAM,UAAU,aAAa;IAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAwB,EAAE,IAAe;IACpE,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,4DAA4D;IAC5D,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"themes.js","sourceRoot":"","sources":["../src/themes.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -177,7 +177,7 @@ export interface Dependencies {
177
177
  parseTranscript: (path: string) => Promise<TranscriptData>;
178
178
  getTokenSpeed: (contextWindow: ClaudeCodeInput['context_window']) => number | null;
179
179
  getMemoryInfo: () => MemoryInfo | null;
180
- getGsdInfo: (session: string) => GsdInfo | null;
180
+ getGsdInfo: (cwd: string) => GsdInfo | null;
181
181
  getMcpInfo: (cwd: string) => McpInfo | null;
182
182
  getTermCols: () => number;
183
183
  loadConfig?: () => HudConfig;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lumira",
3
- "version": "0.3.2",
3
+ "version": "0.4.0",
4
4
  "description": "lumira — real-time statusline for Claude Code",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",