daedalus-cli 1.32.2 → 1.33.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.
@@ -0,0 +1,72 @@
1
+ import blessed from 'neo-blessed';
2
+ import os from 'os';
3
+ import pc from 'picocolors';
4
+ function getCpuTimes() {
5
+ const cpus = os.cpus();
6
+ let user = 0, nice = 0, sys = 0, idle = 0, irq = 0;
7
+ for (const cpu of cpus) {
8
+ user += cpu.times.user;
9
+ nice += cpu.times.nice;
10
+ sys += cpu.times.sys;
11
+ idle += cpu.times.idle;
12
+ irq += cpu.times.irq;
13
+ }
14
+ const total = user + nice + sys + idle + irq;
15
+ return { idle, total };
16
+ }
17
+ export function initMonitor(parent) {
18
+ const box = blessed.box({
19
+ parent,
20
+ top: 0,
21
+ left: 0,
22
+ width: '100%',
23
+ height: 6,
24
+ border: { type: 'line' },
25
+ style: {
26
+ border: { fg: 'dim' }
27
+ },
28
+ });
29
+ let lastCpuTimes = getCpuTimes();
30
+ function updateStats() {
31
+ // Memory
32
+ const totalMem = os.totalmem();
33
+ const freeMem = os.freemem();
34
+ const usedMem = totalMem - freeMem;
35
+ const usedGB = (usedMem / (1024 * 1024 * 1024)).toFixed(1);
36
+ const totalGB = (totalMem / (1024 * 1024 * 1024)).toFixed(1);
37
+ const memPercent = Math.round((usedMem / totalMem) * 100);
38
+ // CPU
39
+ const currentCpu = getCpuTimes();
40
+ const idleDiff = currentCpu.idle - lastCpuTimes.idle;
41
+ const totalDiff = currentCpu.total - lastCpuTimes.total;
42
+ lastCpuTimes = currentCpu;
43
+ let cpuPercent = 0;
44
+ if (totalDiff > 0) {
45
+ cpuPercent = Math.round((1 - idleDiff / totalDiff) * 100);
46
+ }
47
+ cpuPercent = Math.min(100, Math.max(0, cpuPercent));
48
+ // Render bar progress
49
+ const getProgressBar = (pct, colorFn) => {
50
+ const filled = Math.round(pct / 10);
51
+ const empty = 10 - filled;
52
+ return colorFn('█'.repeat(filled)) + pc.dim('░'.repeat(empty));
53
+ };
54
+ box.setContent(pc.bold(' SYSTEM MONITOR\n\n') +
55
+ ` Memory: ${usedGB}G/${totalGB}G (${memPercent}%)\n` +
56
+ ` [ ${getProgressBar(memPercent, pc.cyan)} ]\n\n` +
57
+ ` CPU Usage: ${cpuPercent}%\n` +
58
+ ` [ ${getProgressBar(cpuPercent, pc.magenta)} ]`);
59
+ if (box.screen) {
60
+ box.screen.render();
61
+ }
62
+ }
63
+ // Initial update and interval
64
+ updateStats();
65
+ const interval = setInterval(updateStats, 1000);
66
+ // Stop interval when the box is detached or screen destroyed
67
+ box.on('destroy', () => {
68
+ clearInterval(interval);
69
+ });
70
+ return box;
71
+ }
72
+ //# sourceMappingURL=monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../../src/tui/widgets/monitor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "daedalus-cli",
3
- "version": "1.32.2",
3
+ "version": "1.33.0",
4
4
  "description": "Local-first AI coding CLI with embedded model router, multi-agent orchestration, and codebase indexing",
5
5
  "type": "module",
6
6
  "bin": {
@@ -55,6 +55,7 @@
55
55
  "better-sqlite3": "^12.10.0",
56
56
  "cli-highlight": "^2.1.11",
57
57
  "diff": "^7.0.0",
58
+ "neo-blessed": "^0.2.0",
58
59
  "openai": "^4.85.4",
59
60
  "picocolors": "^1.1.1",
60
61
  "puppeteer-core": "^25.1.0",
@@ -67,6 +68,7 @@
67
68
  "@semantic-release/github": "^11.0.6",
68
69
  "@semantic-release/npm": "^12.0.2",
69
70
  "@types/better-sqlite3": "^7.6.13",
71
+ "@types/blessed": "^0.1.27",
70
72
  "@types/diff": "^6.0.0",
71
73
  "@types/node": "^22.15.3",
72
74
  "conventional-changelog-conventionalcommits": "^8.0.0",