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.
- package/CHANGELOG.md +14 -0
- package/README.md +6 -0
- package/dist/agents/orchestrator.d.ts.map +1 -1
- package/dist/agents/orchestrator.js +18 -4
- package/dist/agents/orchestrator.js.map +1 -1
- package/dist/index.js +36 -16
- package/dist/index.js.map +1 -1
- package/dist/model.js +2 -2
- package/dist/model.js.map +1 -1
- package/dist/tui/index.d.ts +3 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +294 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/widgets/file-tree.d.ts +3 -0
- package/dist/tui/widgets/file-tree.d.ts.map +1 -0
- package/dist/tui/widgets/file-tree.js +127 -0
- package/dist/tui/widgets/file-tree.js.map +1 -0
- package/dist/tui/widgets/model-select.d.ts +3 -0
- package/dist/tui/widgets/model-select.d.ts.map +1 -0
- package/dist/tui/widgets/model-select.js +69 -0
- package/dist/tui/widgets/model-select.js.map +1 -0
- package/dist/tui/widgets/monitor.d.ts +3 -0
- package/dist/tui/widgets/monitor.d.ts.map +1 -0
- package/dist/tui/widgets/monitor.js +72 -0
- package/dist/tui/widgets/monitor.js.map +1 -0
- package/package.json +3 -1
|
@@ -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.
|
|
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",
|