@appkit/llamacpp-cli 1.5.0 → 1.7.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 (124) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/MONITORING-ACCURACY-FIX.md +199 -0
  3. package/PER-PROCESS-METRICS.md +190 -0
  4. package/README.md +124 -9
  5. package/dist/cli.js +32 -7
  6. package/dist/cli.js.map +1 -1
  7. package/dist/commands/config.d.ts.map +1 -1
  8. package/dist/commands/config.js +15 -1
  9. package/dist/commands/config.js.map +1 -1
  10. package/dist/commands/create.d.ts.map +1 -1
  11. package/dist/commands/create.js +12 -4
  12. package/dist/commands/create.js.map +1 -1
  13. package/dist/commands/delete.js +12 -10
  14. package/dist/commands/delete.js.map +1 -1
  15. package/dist/commands/logs-all.d.ts +9 -0
  16. package/dist/commands/logs-all.d.ts.map +1 -0
  17. package/dist/commands/logs-all.js +209 -0
  18. package/dist/commands/logs-all.js.map +1 -0
  19. package/dist/commands/logs.d.ts +4 -0
  20. package/dist/commands/logs.d.ts.map +1 -1
  21. package/dist/commands/logs.js +108 -2
  22. package/dist/commands/logs.js.map +1 -1
  23. package/dist/commands/monitor.d.ts.map +1 -1
  24. package/dist/commands/monitor.js +51 -1
  25. package/dist/commands/monitor.js.map +1 -1
  26. package/dist/commands/ps.d.ts +3 -1
  27. package/dist/commands/ps.d.ts.map +1 -1
  28. package/dist/commands/ps.js +75 -5
  29. package/dist/commands/ps.js.map +1 -1
  30. package/dist/commands/rm.d.ts.map +1 -1
  31. package/dist/commands/rm.js +5 -12
  32. package/dist/commands/rm.js.map +1 -1
  33. package/dist/commands/server-show.d.ts.map +1 -1
  34. package/dist/commands/server-show.js +30 -3
  35. package/dist/commands/server-show.js.map +1 -1
  36. package/dist/commands/start.d.ts.map +1 -1
  37. package/dist/commands/start.js +34 -7
  38. package/dist/commands/start.js.map +1 -1
  39. package/dist/commands/stop.js +3 -3
  40. package/dist/commands/stop.js.map +1 -1
  41. package/dist/lib/history-manager.d.ts +46 -0
  42. package/dist/lib/history-manager.d.ts.map +1 -0
  43. package/dist/lib/history-manager.js +157 -0
  44. package/dist/lib/history-manager.js.map +1 -0
  45. package/dist/lib/metrics-aggregator.d.ts +2 -1
  46. package/dist/lib/metrics-aggregator.d.ts.map +1 -1
  47. package/dist/lib/metrics-aggregator.js +15 -4
  48. package/dist/lib/metrics-aggregator.js.map +1 -1
  49. package/dist/lib/system-collector.d.ts +9 -4
  50. package/dist/lib/system-collector.d.ts.map +1 -1
  51. package/dist/lib/system-collector.js +29 -28
  52. package/dist/lib/system-collector.js.map +1 -1
  53. package/dist/tui/HistoricalMonitorApp.d.ts +5 -0
  54. package/dist/tui/HistoricalMonitorApp.d.ts.map +1 -0
  55. package/dist/tui/HistoricalMonitorApp.js +490 -0
  56. package/dist/tui/HistoricalMonitorApp.js.map +1 -0
  57. package/dist/tui/MonitorApp.d.ts.map +1 -1
  58. package/dist/tui/MonitorApp.js +84 -62
  59. package/dist/tui/MonitorApp.js.map +1 -1
  60. package/dist/tui/MultiServerMonitorApp.d.ts +1 -1
  61. package/dist/tui/MultiServerMonitorApp.d.ts.map +1 -1
  62. package/dist/tui/MultiServerMonitorApp.js +293 -77
  63. package/dist/tui/MultiServerMonitorApp.js.map +1 -1
  64. package/dist/types/history-types.d.ts +30 -0
  65. package/dist/types/history-types.d.ts.map +1 -0
  66. package/dist/types/history-types.js +11 -0
  67. package/dist/types/history-types.js.map +1 -0
  68. package/dist/types/monitor-types.d.ts +1 -0
  69. package/dist/types/monitor-types.d.ts.map +1 -1
  70. package/dist/types/server-config.d.ts +1 -0
  71. package/dist/types/server-config.d.ts.map +1 -1
  72. package/dist/types/server-config.js.map +1 -1
  73. package/dist/utils/downsample-utils.d.ts +35 -0
  74. package/dist/utils/downsample-utils.d.ts.map +1 -0
  75. package/dist/utils/downsample-utils.js +107 -0
  76. package/dist/utils/downsample-utils.js.map +1 -0
  77. package/dist/utils/file-utils.d.ts +6 -0
  78. package/dist/utils/file-utils.d.ts.map +1 -1
  79. package/dist/utils/file-utils.js +38 -0
  80. package/dist/utils/file-utils.js.map +1 -1
  81. package/dist/utils/log-utils.d.ts +43 -0
  82. package/dist/utils/log-utils.d.ts.map +1 -0
  83. package/dist/utils/log-utils.js +190 -0
  84. package/dist/utils/log-utils.js.map +1 -0
  85. package/dist/utils/process-utils.d.ts +19 -1
  86. package/dist/utils/process-utils.d.ts.map +1 -1
  87. package/dist/utils/process-utils.js +79 -1
  88. package/dist/utils/process-utils.js.map +1 -1
  89. package/docs/images/.gitkeep +1 -0
  90. package/package.json +3 -1
  91. package/src/cli.ts +32 -7
  92. package/src/commands/config.ts +15 -1
  93. package/src/commands/create.ts +14 -5
  94. package/src/commands/delete.ts +10 -10
  95. package/src/commands/logs-all.ts +251 -0
  96. package/src/commands/logs.ts +138 -2
  97. package/src/commands/monitor.ts +21 -1
  98. package/src/commands/ps.ts +88 -5
  99. package/src/commands/rm.ts +5 -12
  100. package/src/commands/server-show.ts +35 -3
  101. package/src/commands/start.ts +35 -7
  102. package/src/commands/stop.ts +3 -3
  103. package/src/lib/history-manager.ts +172 -0
  104. package/src/lib/metrics-aggregator.ts +18 -5
  105. package/src/lib/system-collector.ts +31 -28
  106. package/src/tui/HistoricalMonitorApp.ts +548 -0
  107. package/src/tui/MonitorApp.ts +89 -64
  108. package/src/tui/MultiServerMonitorApp.ts +348 -103
  109. package/src/types/history-types.ts +39 -0
  110. package/src/types/monitor-types.ts +1 -0
  111. package/src/types/server-config.ts +1 -0
  112. package/src/utils/downsample-utils.ts +128 -0
  113. package/src/utils/file-utils.ts +40 -0
  114. package/src/utils/log-utils.ts +178 -0
  115. package/src/utils/process-utils.ts +85 -1
  116. package/test-load.sh +100 -0
  117. package/dist/tui/components/ErrorState.d.ts +0 -8
  118. package/dist/tui/components/ErrorState.d.ts.map +0 -1
  119. package/dist/tui/components/ErrorState.js +0 -22
  120. package/dist/tui/components/ErrorState.js.map +0 -1
  121. package/dist/tui/components/LoadingState.d.ts +0 -8
  122. package/dist/tui/components/LoadingState.d.ts.map +0 -1
  123. package/dist/tui/components/LoadingState.js +0 -21
  124. package/dist/tui/components/LoadingState.js.map +0 -1
@@ -8,6 +8,8 @@ const chalk_1 = __importDefault(require("chalk"));
8
8
  const state_manager_1 = require("../lib/state-manager");
9
9
  const launchctl_manager_1 = require("../lib/launchctl-manager");
10
10
  const status_checker_1 = require("../lib/status-checker");
11
+ const file_utils_1 = require("../utils/file-utils");
12
+ const log_utils_1 = require("../utils/log-utils");
11
13
  async function startCommand(identifier) {
12
14
  // Initialize state manager
13
15
  await state_manager_1.stateManager.initialize();
@@ -24,36 +26,61 @@ async function startCommand(identifier) {
24
26
  return;
25
27
  }
26
28
  console.log(chalk_1.default.blue(`▶️ Starting ${server.modelName} (port ${server.port})...`));
27
- // 3. Ensure plist exists (recreate if missing)
29
+ // 3. Auto-rotate logs if they exceed 100MB
30
+ try {
31
+ const result = await (0, log_utils_1.autoRotateIfNeeded)(server.stdoutPath, server.stderrPath, 100);
32
+ if (result.rotated) {
33
+ console.log(chalk_1.default.dim('Auto-rotated large log files:'));
34
+ for (const file of result.files) {
35
+ console.log(chalk_1.default.dim(` → ${file}`));
36
+ }
37
+ }
38
+ }
39
+ catch (error) {
40
+ // Non-fatal, just warn
41
+ console.log(chalk_1.default.yellow(`⚠️ Failed to rotate logs: ${error.message}`));
42
+ }
43
+ // 4. Ensure plist exists (recreate if missing)
28
44
  try {
29
45
  await launchctl_manager_1.launchctlManager.createPlist(server);
30
46
  }
31
47
  catch (error) {
32
48
  // May already exist, that's okay
33
49
  }
34
- // 4. Load service if needed
50
+ // 5. Load service if needed
35
51
  try {
36
52
  await launchctl_manager_1.launchctlManager.loadService(server.plistPath);
37
53
  }
38
54
  catch (error) {
39
55
  // May already be loaded, that's okay
40
56
  }
41
- // 5. Start the service
57
+ // 6. Start the service
42
58
  try {
43
59
  await launchctl_manager_1.launchctlManager.startService(server.label);
44
60
  }
45
61
  catch (error) {
46
62
  throw new Error(`Failed to start service: ${error.message}`);
47
63
  }
48
- // 6. Wait for startup
64
+ // 7. Wait for startup
49
65
  console.log(chalk_1.default.dim('Waiting for server to start...'));
50
66
  const started = await launchctl_manager_1.launchctlManager.waitForServiceStart(server.label, 5000);
51
67
  if (!started) {
52
68
  throw new Error(`Server failed to start. Check logs with: llamacpp server logs ${server.id}`);
53
69
  }
54
- // 7. Update server status
55
- await status_checker_1.statusChecker.updateServerStatus(server);
56
- // 8. Display success
70
+ // 8. Update server status
71
+ let updatedServer = await status_checker_1.statusChecker.updateServerStatus(server);
72
+ // 9. Parse Metal (GPU) memory allocation if not already captured
73
+ if (!updatedServer.metalMemoryMB) {
74
+ console.log(chalk_1.default.dim('Detecting Metal (GPU) memory allocation...'));
75
+ await new Promise(resolve => setTimeout(resolve, 8000)); // 8 second delay
76
+ const metalMemoryMB = await (0, file_utils_1.parseMetalMemoryFromLog)(updatedServer.stderrPath);
77
+ if (metalMemoryMB) {
78
+ updatedServer = { ...updatedServer, metalMemoryMB };
79
+ await state_manager_1.stateManager.saveServerConfig(updatedServer);
80
+ console.log(chalk_1.default.dim(`Metal memory: ${metalMemoryMB.toFixed(0)} MB`));
81
+ }
82
+ }
83
+ // 10. Display success
57
84
  console.log();
58
85
  console.log(chalk_1.default.green('✅ Server started successfully!'));
59
86
  console.log();
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":";;;;;AAKA,oCAmEC;AAxED,kDAA0B;AAC1B,wDAAoD;AACpD,gEAA4D;AAC5D,0DAAsD;AAE/C,KAAK,UAAU,YAAY,CAAC,UAAkB;IACnD,2BAA2B;IAC3B,MAAM,4BAAY,CAAC,UAAU,EAAE,CAAC;IAEhC,+BAA+B;IAC/B,MAAM,MAAM,GAAG,MAAM,4BAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,qBAAqB,UAAU,MAAM;YACnC,oBAAoB;YACpB,wDAAwD,CAC3D,CAAC;IACJ,CAAC;IAED,8BAA8B;IAC9B,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CACV,cAAc,MAAM,CAAC,SAAS,+BAA+B,MAAM,CAAC,IAAI,EAAE,CAC3E,CACF,CAAC;QACF,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,SAAS,UAAU,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;IAErF,+CAA+C;IAC/C,IAAI,CAAC;QACH,MAAM,oCAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iCAAiC;IACnC,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC;QACH,MAAM,oCAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qCAAqC;IACvC,CAAC;IAED,uBAAuB;IACvB,IAAI,CAAC;QACH,MAAM,oCAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,4BAA6B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,sBAAsB;IACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,MAAM,oCAAgB,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAE/E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,iEAAiE,MAAM,CAAC,EAAE,EAAE,CAC7E,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,MAAM,8BAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE/C,qBAAqB;IACrB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,6BAA6B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,mCAAmC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,8BAA8B,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
@@ -20,12 +20,12 @@ async function stopCommand(identifier) {
20
20
  return;
21
21
  }
22
22
  console.log(chalk_1.default.blue(`⏹️ Stopping ${server.modelName} (port ${server.port})...`));
23
- // Stop the service
23
+ // Unload the service (removes from launchd management - won't auto-restart)
24
24
  try {
25
- await launchctl_manager_1.launchctlManager.stopService(server.label);
25
+ await launchctl_manager_1.launchctlManager.unloadService(server.plistPath);
26
26
  }
27
27
  catch (error) {
28
- throw new Error(`Failed to stop service: ${error.message}`);
28
+ throw new Error(`Failed to unload service: ${error.message}`);
29
29
  }
30
30
  // Wait for clean shutdown
31
31
  const stopped = await launchctl_manager_1.launchctlManager.waitForServiceStop(server.label, 5000);
@@ -1 +1 @@
1
- {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":";;;;;AAKA,kCAiCC;AAtCD,kDAA0B;AAC1B,wDAAoD;AACpD,gEAA4D;AAC5D,0DAAsD;AAE/C,KAAK,UAAU,WAAW,CAAC,UAAkB;IAClD,cAAc;IACd,MAAM,MAAM,GAAG,MAAM,4BAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,qBAAqB,UAAU,sBAAsB,CAAC,CAAC;IACzE,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,cAAc,MAAM,CAAC,SAAS,qBAAqB,CAAC,CAAC,CAAC;QAC/E,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,SAAS,UAAU,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;IAErF,mBAAmB;IACnB,IAAI,CAAC;QACH,MAAM,oCAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,2BAA4B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,0BAA0B;IAC1B,MAAM,OAAO,GAAG,MAAM,oCAAgB,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAE9E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,uBAAuB;IACvB,MAAM,8BAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE/C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":";;;;;AAKA,kCAiCC;AAtCD,kDAA0B;AAC1B,wDAAoD;AACpD,gEAA4D;AAC5D,0DAAsD;AAE/C,KAAK,UAAU,WAAW,CAAC,UAAkB;IAClD,cAAc;IACd,MAAM,MAAM,GAAG,MAAM,4BAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,qBAAqB,UAAU,sBAAsB,CAAC,CAAC;IACzE,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,cAAc,MAAM,CAAC,SAAS,qBAAqB,CAAC,CAAC,CAAC;QAC/E,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,SAAS,UAAU,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;IAErF,4EAA4E;IAC5E,IAAI,CAAC;QACH,MAAM,oCAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,6BAA8B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,0BAA0B;IAC1B,MAAM,OAAO,GAAG,MAAM,oCAAgB,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAE9E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,uBAAuB;IACvB,MAAM,8BAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE/C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { ServerMetrics, SystemMetrics } from '../types/monitor-types.js';
2
+ import { HistorySnapshot, TimeWindow } from '../types/history-types.js';
3
+ export declare class HistoryManager {
4
+ private serverId;
5
+ private historyDir;
6
+ private historyPath;
7
+ private readonly MAX_AGE_MS;
8
+ constructor(serverId: string);
9
+ /**
10
+ * Append a new snapshot to history (with auto-pruning)
11
+ */
12
+ appendSnapshot(serverMetrics: ServerMetrics, systemMetrics?: SystemMetrics): Promise<void>;
13
+ /**
14
+ * Load all snapshots within specified time window
15
+ */
16
+ loadHistory(windowHours: number): Promise<HistorySnapshot[]>;
17
+ /**
18
+ * Load history for specific time window type
19
+ */
20
+ loadHistoryByWindow(window: TimeWindow): Promise<HistorySnapshot[]>;
21
+ /**
22
+ * Get file path for server history
23
+ */
24
+ getHistoryPath(): string;
25
+ /**
26
+ * Check if history file exists
27
+ */
28
+ hasHistory(): Promise<boolean>;
29
+ /**
30
+ * Clear all history for server
31
+ */
32
+ clearHistory(): Promise<void>;
33
+ /**
34
+ * Load full history data from file
35
+ */
36
+ private loadHistoryData;
37
+ /**
38
+ * Prune snapshots older than maxAge
39
+ */
40
+ private pruneOldSnapshots;
41
+ /**
42
+ * Filter snapshots by time window
43
+ */
44
+ private filterByTimeWindow;
45
+ }
46
+ //# sourceMappingURL=history-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-manager.d.ts","sourceRoot":"","sources":["../../src/lib/history-manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAe,eAAe,EAAqB,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAExG,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;gBAEtC,QAAQ,EAAE,MAAM;IAM5B;;OAEG;IACG,cAAc,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAmDhG;;OAEG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAsBlE;;OAEG;IACG,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAIzE;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IASpC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAcnC;;OAEG;YACW,eAAe;IAa7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAI3B"}
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HistoryManager = void 0;
4
+ const promises_1 = require("fs/promises");
5
+ const path_1 = require("path");
6
+ const os_1 = require("os");
7
+ const history_types_js_1 = require("../types/history-types.js");
8
+ class HistoryManager {
9
+ constructor(serverId) {
10
+ this.MAX_AGE_MS = 24 * 60 * 60 * 1000; // 24 hours
11
+ this.serverId = serverId;
12
+ this.historyDir = (0, path_1.join)((0, os_1.homedir)(), '.llamacpp', 'history');
13
+ this.historyPath = (0, path_1.join)(this.historyDir, `${serverId}.json`);
14
+ }
15
+ /**
16
+ * Append a new snapshot to history (with auto-pruning)
17
+ */
18
+ async appendSnapshot(serverMetrics, systemMetrics) {
19
+ try {
20
+ // Ensure history directory exists
21
+ await (0, promises_1.mkdir)(this.historyDir, { recursive: true });
22
+ // Load existing history
23
+ const historyData = await this.loadHistoryData();
24
+ // Create new snapshot
25
+ const snapshot = {
26
+ timestamp: Date.now(),
27
+ server: {
28
+ healthy: serverMetrics.healthy,
29
+ uptime: serverMetrics.uptime,
30
+ activeSlots: serverMetrics.activeSlots,
31
+ idleSlots: serverMetrics.idleSlots,
32
+ totalSlots: serverMetrics.totalSlots,
33
+ avgPromptSpeed: serverMetrics.avgPromptSpeed,
34
+ avgGenerateSpeed: serverMetrics.avgGenerateSpeed,
35
+ processMemory: serverMetrics.processMemory,
36
+ processCpuUsage: serverMetrics.processCpuUsage,
37
+ },
38
+ system: systemMetrics ? {
39
+ gpuUsage: systemMetrics.gpuUsage,
40
+ cpuUsage: systemMetrics.cpuUsage,
41
+ aneUsage: systemMetrics.aneUsage,
42
+ temperature: systemMetrics.temperature,
43
+ memoryUsed: systemMetrics.memoryUsed,
44
+ memoryTotal: systemMetrics.memoryTotal,
45
+ } : undefined,
46
+ };
47
+ // Append new snapshot
48
+ historyData.snapshots.push(snapshot);
49
+ // Prune old snapshots (keep only last 24h)
50
+ historyData.snapshots = this.pruneOldSnapshots(historyData.snapshots, this.MAX_AGE_MS);
51
+ // Atomic write: write to temp file in same directory, then rename
52
+ // This prevents read collisions during concurrent access
53
+ // IMPORTANT: temp file MUST be in same directory as destination for rename to work across filesystems
54
+ const tempPath = (0, path_1.join)(this.historyDir, `.${this.serverId}-${Date.now()}.tmp`);
55
+ await (0, promises_1.writeFile)(tempPath, JSON.stringify(historyData, null, 2), 'utf-8');
56
+ await (0, promises_1.rename)(tempPath, this.historyPath);
57
+ }
58
+ catch (error) {
59
+ // Silent failure - don't interrupt monitoring
60
+ // Don't throw - just return silently to avoid polluting console
61
+ return;
62
+ }
63
+ }
64
+ /**
65
+ * Load all snapshots within specified time window
66
+ */
67
+ async loadHistory(windowHours) {
68
+ // Retry logic for file I/O collisions during concurrent read/write
69
+ const maxRetries = 3;
70
+ let lastError = null;
71
+ for (let attempt = 0; attempt < maxRetries; attempt++) {
72
+ try {
73
+ const historyData = await this.loadHistoryData();
74
+ return this.filterByTimeWindow(historyData.snapshots, windowHours);
75
+ }
76
+ catch (error) {
77
+ lastError = error;
78
+ // Wait briefly before retry (exponential backoff)
79
+ if (attempt < maxRetries - 1) {
80
+ await new Promise(resolve => setTimeout(resolve, 50 * Math.pow(2, attempt)));
81
+ }
82
+ }
83
+ }
84
+ // All retries failed - throw error so it can be handled upstream
85
+ throw new Error(`Failed to load history after ${maxRetries} attempts: ${lastError?.message || 'Unknown error'}`);
86
+ }
87
+ /**
88
+ * Load history for specific time window type
89
+ */
90
+ async loadHistoryByWindow(window) {
91
+ return this.loadHistory(history_types_js_1.TIME_WINDOW_HOURS[window]);
92
+ }
93
+ /**
94
+ * Get file path for server history
95
+ */
96
+ getHistoryPath() {
97
+ return this.historyPath;
98
+ }
99
+ /**
100
+ * Check if history file exists
101
+ */
102
+ async hasHistory() {
103
+ try {
104
+ await (0, promises_1.access)(this.historyPath);
105
+ return true;
106
+ }
107
+ catch {
108
+ return false;
109
+ }
110
+ }
111
+ /**
112
+ * Clear all history for server
113
+ */
114
+ async clearHistory() {
115
+ const emptyHistory = {
116
+ serverId: this.serverId,
117
+ snapshots: [],
118
+ };
119
+ await (0, promises_1.mkdir)(this.historyDir, { recursive: true });
120
+ // Atomic write - temp file in same directory as destination
121
+ const tempPath = (0, path_1.join)(this.historyDir, `.${this.serverId}-${Date.now()}.tmp`);
122
+ await (0, promises_1.writeFile)(tempPath, JSON.stringify(emptyHistory, null, 2), 'utf-8');
123
+ await (0, promises_1.rename)(tempPath, this.historyPath);
124
+ }
125
+ /**
126
+ * Load full history data from file
127
+ */
128
+ async loadHistoryData() {
129
+ try {
130
+ const content = await (0, promises_1.readFile)(this.historyPath, 'utf-8');
131
+ return JSON.parse(content);
132
+ }
133
+ catch (error) {
134
+ // File doesn't exist or is corrupted, return empty history
135
+ return {
136
+ serverId: this.serverId,
137
+ snapshots: [],
138
+ };
139
+ }
140
+ }
141
+ /**
142
+ * Prune snapshots older than maxAge
143
+ */
144
+ pruneOldSnapshots(snapshots, maxAgeMs) {
145
+ const cutoff = Date.now() - maxAgeMs;
146
+ return snapshots.filter(s => s.timestamp >= cutoff);
147
+ }
148
+ /**
149
+ * Filter snapshots by time window
150
+ */
151
+ filterByTimeWindow(snapshots, windowHours) {
152
+ const cutoff = Date.now() - (windowHours * 60 * 60 * 1000);
153
+ return snapshots.filter(s => s.timestamp >= cutoff);
154
+ }
155
+ }
156
+ exports.HistoryManager = HistoryManager;
157
+ //# sourceMappingURL=history-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-manager.js","sourceRoot":"","sources":["../../src/lib/history-manager.ts"],"names":[],"mappings":";;;AAAA,0CAAyE;AACzE,+BAA4B;AAC5B,2BAA6B;AAE7B,gEAAwG;AAExG,MAAa,cAAc;IAMzB,YAAY,QAAgB;QAFX,eAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;QAG5D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,aAA4B,EAAE,aAA6B;QAC9E,IAAI,CAAC;YACH,kCAAkC;YAClC,MAAM,IAAA,gBAAK,EAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAElD,wBAAwB;YACxB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAEjD,sBAAsB;YACtB,MAAM,QAAQ,GAAoB;gBAChC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,MAAM,EAAE;oBACN,OAAO,EAAE,aAAa,CAAC,OAAO;oBAC9B,MAAM,EAAE,aAAa,CAAC,MAAM;oBAC5B,WAAW,EAAE,aAAa,CAAC,WAAW;oBACtC,SAAS,EAAE,aAAa,CAAC,SAAS;oBAClC,UAAU,EAAE,aAAa,CAAC,UAAU;oBACpC,cAAc,EAAE,aAAa,CAAC,cAAc;oBAC5C,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;oBAChD,aAAa,EAAE,aAAa,CAAC,aAAa;oBAC1C,eAAe,EAAE,aAAa,CAAC,eAAe;iBAC/C;gBACD,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;oBACtB,QAAQ,EAAE,aAAa,CAAC,QAAQ;oBAChC,QAAQ,EAAE,aAAa,CAAC,QAAQ;oBAChC,QAAQ,EAAE,aAAa,CAAC,QAAQ;oBAChC,WAAW,EAAE,aAAa,CAAC,WAAW;oBACtC,UAAU,EAAE,aAAa,CAAC,UAAU;oBACpC,WAAW,EAAE,aAAa,CAAC,WAAW;iBACvC,CAAC,CAAC,CAAC,SAAS;aACd,CAAC;YAEF,sBAAsB;YACtB,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAErC,2CAA2C;YAC3C,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAEvF,kEAAkE;YAClE,yDAAyD;YACzD,sGAAsG;YACtG,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC9E,MAAM,IAAA,oBAAS,EAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACzE,MAAM,IAAA,iBAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,8CAA8C;YAC9C,gEAAgE;YAChE,OAAO;QACT,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,WAAmB;QACnC,mEAAmE;QACnE,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,IAAI,SAAS,GAAiB,IAAI,CAAC;QAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;gBACjD,OAAO,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,GAAG,KAAc,CAAC;gBAC3B,kDAAkD;gBAClD,IAAI,OAAO,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC;oBAC7B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;QACH,CAAC;QAED,iEAAiE;QACjE,MAAM,IAAI,KAAK,CAAC,gCAAgC,UAAU,cAAc,SAAS,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;IACnH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,MAAkB;QAC1C,OAAO,IAAI,CAAC,WAAW,CAAC,oCAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,MAAM,IAAA,iBAAM,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,YAAY,GAAgB;YAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,EAAE;SACd,CAAC;QAEF,MAAM,IAAA,gBAAK,EAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAElD,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC9E,MAAM,IAAA,oBAAS,EAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC1E,MAAM,IAAA,iBAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe;QAC3B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,2DAA2D;YAC3D,OAAO;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,EAAE;aACd,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,SAA4B,EAAE,QAAgB;QACtE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;QACrC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,SAA4B,EAAE,WAAmB;QAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC3D,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;IACtD,CAAC;CACF;AArKD,wCAqKC"}
@@ -29,8 +29,9 @@ export declare class MetricsAggregator {
29
29
  * Aggregate all server metrics
30
30
  * @param server - Server configuration
31
31
  * @param processMemory - Optional pre-fetched process memory (for batch collection)
32
+ * @param processCpuUsage - Optional pre-fetched process CPU usage (for batch collection)
32
33
  */
33
- collectServerMetrics(server: ServerConfig, processMemory?: number | null): Promise<ServerMetrics>;
34
+ collectServerMetrics(server: ServerConfig, processMemory?: number | null, processCpuUsage?: number | null): Promise<ServerMetrics>;
34
35
  /**
35
36
  * Collect complete monitoring data (server + system metrics)
36
37
  */
@@ -1 +1 @@
1
- {"version":3,"file":"metrics-aggregator.d.ts","sourceRoot":"","sources":["../../src/lib/metrics-aggregator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAY,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAKjF;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAoE;gBAE7E,MAAM,EAAE,YAAY,EAAE,OAAO,GAAE,MAAa;IAOxD;;OAEG;YACW,gBAAgB;IA0B9B;;OAEG;YACW,SAAS;IAKvB;;OAEG;YACW,QAAQ;IAItB;;OAEG;YACW,QAAQ;IAyDtB;;;;OAIG;IACG,oBAAoB,CACxB,MAAM,EAAE,YAAY,EACpB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAC5B,OAAO,CAAC,aAAa,CAAC;IAwFzB;;OAEG;IACG,kBAAkB,CACtB,MAAM,EAAE,YAAY,EACpB,cAAc,GAAE,MAAa,GAC5B,OAAO,CAAC,WAAW,CAAC;CAexB"}
1
+ {"version":3,"file":"metrics-aggregator.d.ts","sourceRoot":"","sources":["../../src/lib/metrics-aggregator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAY,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAKjF;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAoE;gBAE7E,MAAM,EAAE,YAAY,EAAE,OAAO,GAAE,MAAa;IAOxD;;OAEG;YACW,gBAAgB;IA0B9B;;OAEG;YACW,SAAS;IAKvB;;OAEG;YACW,QAAQ;IAItB;;OAEG;YACW,QAAQ;IAyDtB;;;;;OAKG;IACG,oBAAoB,CACxB,MAAM,EAAE,YAAY,EACpB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,OAAO,CAAC,aAAa,CAAC;IAmGzB;;OAEG;IACG,kBAAkB,CACtB,MAAM,EAAE,YAAY,EACpB,cAAc,GAAE,MAAa,GAC5B,OAAO,CAAC,WAAW,CAAC;CAexB"}
@@ -107,8 +107,9 @@ class MetricsAggregator {
107
107
  * Aggregate all server metrics
108
108
  * @param server - Server configuration
109
109
  * @param processMemory - Optional pre-fetched process memory (for batch collection)
110
+ * @param processCpuUsage - Optional pre-fetched process CPU usage (for batch collection)
110
111
  */
111
- async collectServerMetrics(server, processMemory) {
112
+ async collectServerMetrics(server, processMemory, processCpuUsage) {
112
113
  const now = Date.now();
113
114
  // Check basic server status first
114
115
  const status = await status_checker_js_1.statusChecker.checkServer(server);
@@ -139,14 +140,17 @@ class MetricsAggregator {
139
140
  };
140
141
  }
141
142
  // Fetch detailed metrics in parallel
142
- // If processMemory was pre-fetched (batch mode), use it; otherwise fetch individually
143
- const [healthy, props, slots, fetchedMemory] = await Promise.all([
143
+ // If processMemory/CPU were pre-fetched (batch mode), use them; otherwise fetch individually
144
+ const [healthy, props, slots, fetchedMemory, fetchedCpu] = await Promise.all([
144
145
  this.getHealth(),
145
146
  this.getProps(),
146
147
  this.getSlots(),
147
148
  processMemory !== undefined
148
149
  ? Promise.resolve(processMemory)
149
150
  : (server.pid ? (0, process_utils_js_1.getProcessMemory)(server.pid) : Promise.resolve(null)),
151
+ processCpuUsage !== undefined
152
+ ? Promise.resolve(processCpuUsage)
153
+ : (server.pid ? (0, process_utils_js_1.getProcessCpu)(server.pid) : Promise.resolve(null)),
150
154
  ]);
151
155
  // Calculate slot statistics
152
156
  const activeSlots = slots.filter((s) => s.state === 'processing').length;
@@ -160,6 +164,12 @@ class MetricsAggregator {
160
164
  const avgGenerateSpeed = processingSlots.length > 0
161
165
  ? processingSlots.reduce((sum, s) => sum + (s.timings?.predicted_per_second || 0), 0) / processingSlots.length
162
166
  : undefined;
167
+ // Calculate total memory (CPU + Metal GPU memory if available)
168
+ let totalMemory = fetchedMemory ?? undefined;
169
+ if (totalMemory !== undefined && server.metalMemoryMB) {
170
+ // Add Metal memory (convert MB to bytes)
171
+ totalMemory += server.metalMemoryMB * 1024 * 1024;
172
+ }
163
173
  return {
164
174
  server,
165
175
  healthy,
@@ -173,7 +183,8 @@ class MetricsAggregator {
173
183
  slots,
174
184
  avgPromptSpeed,
175
185
  avgGenerateSpeed,
176
- processMemory: fetchedMemory ?? undefined,
186
+ processMemory: totalMemory,
187
+ processCpuUsage: fetchedCpu ?? undefined,
177
188
  timestamp: now,
178
189
  stale: false,
179
190
  };
@@ -1 +1 @@
1
- {"version":3,"file":"metrics-aggregator.js","sourceRoot":"","sources":["../../src/lib/metrics-aggregator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics-aggregator.js","sourceRoot":"","sources":["../../src/lib/metrics-aggregator.ts"],"names":[],"mappings":"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"}
@@ -56,13 +56,18 @@ export declare class SystemCollector {
56
56
  */
57
57
  private parseVmStatOutput;
58
58
  /**
59
- * Collect vm_stat memory metrics
59
+ * Get total system memory from sysctl
60
+ * Returns installed RAM size in bytes
60
61
  */
61
- private getVmStatMetrics;
62
+ private getTotalMemory;
63
+ /**
64
+ * Collect vm_stat memory metrics + total system memory from sysctl
65
+ */
66
+ private getMemoryMetrics;
62
67
  /**
63
68
  * Collect all system metrics
64
- * Attempts macmon first (GPU/CPU/ANE + memory), falls back to vm_stat (memory only)
65
- * Caches results for 1.5s to prevent spawning multiple macmon processes
69
+ * Attempts macmon first (GPU/CPU/ANE), always gets memory from vm_stat + sysctl
70
+ * Caches results for 4s to prevent spawning multiple macmon processes
66
71
  */
67
72
  collectSystemMetrics(): Promise<SystemMetrics>;
68
73
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"system-collector.d.ts","sourceRoot":"","sources":["../../src/lib/system-collector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAa;gBAEnB,UAAU,GAAE,MAAmC;IAK3D;;OAEG;YACW,mBAAmB;IA4BjC;;OAEG;YACW,uBAAuB;IAerC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,eAAe;IAiDvB;;;;OAIG;YACW,gBAAgB;IA2B9B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,iBAAiB;IA6CzB;;OAEG;YACW,gBAAgB;IAa9B;;;;OAIG;IACG,oBAAoB,IAAI,OAAO,CAAC,aAAa,CAAC;IA0BpD;;;OAGG;YACW,sBAAsB;CAkCrC;AAGD,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
1
+ {"version":3,"file":"system-collector.d.ts","sourceRoot":"","sources":["../../src/lib/system-collector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAa;gBAEnB,UAAU,GAAE,MAAmC;IAK3D;;OAEG;YACW,mBAAmB;IA4BjC;;OAEG;YACW,uBAAuB;IAerC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,eAAe;IAiDvB;;;;OAIG;YACW,gBAAgB;IA2B9B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;;OAGG;YACW,cAAc;IAS5B;;OAEG;YACW,gBAAgB;IAmB9B;;;;OAIG;IACG,oBAAoB,IAAI,OAAO,CAAC,aAAa,CAAC;IA0BpD;;;OAGG;YACW,sBAAsB;CAkCrC;AAGD,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
@@ -192,9 +192,6 @@ class SystemCollector {
192
192
  let pagesActive = 0;
193
193
  let pagesWired = 0;
194
194
  let pagesCompressed = 0;
195
- let pagesFree = 0;
196
- let pagesInactive = 0;
197
- let pagesSpeculative = 0;
198
195
  for (const line of lines) {
199
196
  const match = line.match(/Pages (.*?):\s+(\d+)\./);
200
197
  if (match) {
@@ -206,44 +203,48 @@ class SystemCollector {
206
203
  pagesWired = value;
207
204
  else if (name === 'compressed')
208
205
  pagesCompressed = value;
209
- else if (name === 'free')
210
- pagesFree = value;
211
- else if (name === 'inactive')
212
- pagesInactive = value;
213
- else if (name === 'speculative')
214
- pagesSpeculative = value;
215
206
  }
216
207
  }
217
208
  // Calculate used memory (active + wired + compressed)
209
+ // This matches what Activity Monitor and macmon report as "used"
218
210
  const usedPages = pagesActive + pagesWired + pagesCompressed;
219
211
  const memoryUsed = usedPages * pageSize;
220
- // Calculate total memory (used + free + inactive + speculative)
221
- const totalPages = pagesActive +
222
- pagesWired +
223
- pagesCompressed +
224
- pagesFree +
225
- pagesInactive +
226
- pagesSpeculative;
227
- const memoryTotal = totalPages * pageSize;
228
- return { memoryUsed, memoryTotal };
212
+ return { memoryUsed };
229
213
  }
230
214
  /**
231
- * Collect vm_stat memory metrics
215
+ * Get total system memory from sysctl
216
+ * Returns installed RAM size in bytes
232
217
  */
233
- async getVmStatMetrics() {
218
+ async getTotalMemory() {
234
219
  try {
235
- const output = await (0, process_utils_js_1.execCommand)('vm_stat 2>/dev/null');
236
- return this.parseVmStatOutput(output);
220
+ const output = await (0, process_utils_js_1.execCommand)('sysctl -n hw.memsize 2>/dev/null');
221
+ return parseInt(output.trim(), 10) || 0;
237
222
  }
238
223
  catch {
239
- // Fallback to zeros if vm_stat fails
224
+ return 0;
225
+ }
226
+ }
227
+ /**
228
+ * Collect vm_stat memory metrics + total system memory from sysctl
229
+ */
230
+ async getMemoryMetrics() {
231
+ try {
232
+ // Get used memory from vm_stat
233
+ const vmStatOutput = await (0, process_utils_js_1.execCommand)('vm_stat 2>/dev/null');
234
+ const { memoryUsed } = this.parseVmStatOutput(vmStatOutput);
235
+ // Get total installed RAM from sysctl (this is accurate)
236
+ const memoryTotal = await this.getTotalMemory();
237
+ return { memoryUsed, memoryTotal };
238
+ }
239
+ catch {
240
+ // Fallback to zeros if commands fail
240
241
  return { memoryUsed: 0, memoryTotal: 0 };
241
242
  }
242
243
  }
243
244
  /**
244
245
  * Collect all system metrics
245
- * Attempts macmon first (GPU/CPU/ANE + memory), falls back to vm_stat (memory only)
246
- * Caches results for 1.5s to prevent spawning multiple macmon processes
246
+ * Attempts macmon first (GPU/CPU/ANE), always gets memory from vm_stat + sysctl
247
+ * Caches results for 4s to prevent spawning multiple macmon processes
247
248
  */
248
249
  async collectSystemMetrics() {
249
250
  const now = Date.now();
@@ -274,10 +275,10 @@ class SystemCollector {
274
275
  async doCollectSystemMetrics() {
275
276
  const warnings = [];
276
277
  const now = Date.now();
277
- // Try macmon first
278
+ // Try macmon first for GPU/CPU/ANE
278
279
  const macmonMetrics = await this.getMacmonMetrics();
279
- // Always get memory from vm_stat (more reliable than macmon)
280
- const memoryMetrics = await this.getVmStatMetrics();
280
+ // Always get memory from vm_stat + sysctl (accurate total from sysctl)
281
+ const memoryMetrics = await this.getMemoryMetrics();
281
282
  // Determine source and add warnings
282
283
  let source;
283
284
  if (macmonMetrics) {
@@ -1 +1 @@
1
- {"version":3,"file":"system-collector.js","sourceRoot":"","sources":["../../src/lib/system-collector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAA6E;AAG7E;;;GAGG;AACH,MAAa,eAAe;IAW1B,YAAY,aAAqB,0BAA0B;QATnD,oBAAe,GAAmB,IAAI,CAAC;QACvC,sBAAiB,GAAyB,IAAI,CAAC;QAC/C,uBAAkB,GAAW,CAAC,CAAC;QACtB,iBAAY,GAAG,IAAI,CAAC,CAAC,sDAAsD;QACpF,mBAAc,GAAkC,IAAI,CAAC;QACrD,eAAU,GAAW,CAAC,CAAC;QACvB,eAAU,GAAW,CAAC,CAAC;QACvB,eAAU,GAAW,CAAC,CAAC;QAG7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB;QAC/B,IAAI,CAAC;YACH,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,2BAA2B,GAAC,CAAC;YAElE,iEAAiE;YACjE,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,iDAAiD,CAAC,CAAC;gBACpF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,iDAAiD,CAAC,CAAC;gBACpF,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC5C,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACP,2DAA2D;gBAC3D,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,+BAA+B,CAAC,CAAC;gBACjE,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC3C,uDAAuD;gBACvD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;gBAClD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACtD,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;YACxC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,uBAAuB;QACnC,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAW,EAAC,SAAS,IAAI,CAAC,UAAU,cAAc,CAAC,CAAC;YACzE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;QAED,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;OAUG;IACK,eAAe,CAAC,QAAgB;QAMtC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAElC,qEAAqE;YACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS;gBAChD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG;gBACzB,CAAC,CAAC,SAAS,CAAC;YAEd,sDAAsD;YACtD,6CAA6C;YAC7C,uEAAuE;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,UAAU;YACxD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,UAAU;YAExD,IAAI,QAA4B,CAAC;YACjC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;gBACxB,wCAAwC;gBACxC,QAAQ,GAAG,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;YACrG,CAAC;iBAAM,CAAC;gBACN,wDAAwD;gBACxD,QAAQ,GAAG,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;YACjD,CAAC;YAED,wEAAwE;YACxE,2DAA2D;YAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG;gBACnC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,yBAAyB;gBACvE,CAAC,CAAC,CAAC,CAAC;YAEN,yDAAyD;YACzD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;YAEvE,OAAO;gBACL,QAAQ;gBACR,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBAC7C,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBAC7C,WAAW;aACZ,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,gBAAgB;QAM5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACvD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,gDAAgD;YAChD,0CAA0C;YAC1C,uEAAuE;YACvE,MAAM,MAAM,GAAG,MAAM,IAAA,sCAAmB,EAAC,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;YAE1E,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,iBAAiB,CAAC,MAAc;QAItC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,wBAAwB;QAChD,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,gBAAgB,GAAG,CAAC,CAAC;QAEzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACnD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAErC,IAAI,IAAI,KAAK,QAAQ;oBAAE,WAAW,GAAG,KAAK,CAAC;qBACtC,IAAI,IAAI,KAAK,YAAY;oBAAE,UAAU,GAAG,KAAK,CAAC;qBAC9C,IAAI,IAAI,KAAK,YAAY;oBAAE,eAAe,GAAG,KAAK,CAAC;qBACnD,IAAI,IAAI,KAAK,MAAM;oBAAE,SAAS,GAAG,KAAK,CAAC;qBACvC,IAAI,IAAI,KAAK,UAAU;oBAAE,aAAa,GAAG,KAAK,CAAC;qBAC/C,IAAI,IAAI,KAAK,aAAa;oBAAE,gBAAgB,GAAG,KAAK,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,MAAM,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,eAAe,CAAC;QAC7D,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;QAExC,gEAAgE;QAChE,MAAM,UAAU,GACd,WAAW;YACX,UAAU;YACV,eAAe;YACf,SAAS;YACT,aAAa;YACb,gBAAgB,CAAC;QACnB,MAAM,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC;QAE1C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB;QAI5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAW,EAAC,qBAAqB,CAAC,CAAC;YACxD,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;YACrC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,oCAAoC;QACpC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAClF,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;QAED,iDAAiD;QACjD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEpD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;YAC1C,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;YACjC,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;YAC9B,OAAO,OAAO,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,sBAAsB;QAClC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,mBAAmB;QACnB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEpD,6DAA6D;QAC7D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEpD,oCAAoC;QACpC,IAAI,MAAqC,CAAC;QAC1C,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,GAAG,QAAQ,CAAC;QACpB,CAAC;aAAM,IAAI,aAAa,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,GAAG,SAAS,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,MAAM,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACpD,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,aAAa,EAAE,QAAQ;YACjC,QAAQ,EAAE,aAAa,EAAE,QAAQ;YACjC,QAAQ,EAAE,aAAa,EAAE,QAAQ;YACjC,WAAW,EAAE,aAAa,EAAE,WAAW;YACvC,UAAU,EAAE,aAAa,CAAC,UAAU;YACpC,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,SAAS,EAAE,GAAG;YACd,MAAM;YACN,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;SACrD,CAAC;IACJ,CAAC;CACF;AA7SD,0CA6SC;AAED,4BAA4B;AACf,QAAA,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"system-collector.js","sourceRoot":"","sources":["../../src/lib/system-collector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAA6E;AAG7E;;;GAGG;AACH,MAAa,eAAe;IAW1B,YAAY,aAAqB,0BAA0B;QATnD,oBAAe,GAAmB,IAAI,CAAC;QACvC,sBAAiB,GAAyB,IAAI,CAAC;QAC/C,uBAAkB,GAAW,CAAC,CAAC;QACtB,iBAAY,GAAG,IAAI,CAAC,CAAC,sDAAsD;QACpF,mBAAc,GAAkC,IAAI,CAAC;QACrD,eAAU,GAAW,CAAC,CAAC;QACvB,eAAU,GAAW,CAAC,CAAC;QACvB,eAAU,GAAW,CAAC,CAAC;QAG7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB;QAC/B,IAAI,CAAC;YACH,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,2BAA2B,GAAC,CAAC;YAElE,iEAAiE;YACjE,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,iDAAiD,CAAC,CAAC;gBACpF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,iDAAiD,CAAC,CAAC;gBACpF,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC5C,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACP,2DAA2D;gBAC3D,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,+BAA+B,CAAC,CAAC;gBACjE,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC3C,uDAAuD;gBACvD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;gBAClD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACtD,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;YACxC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,uBAAuB;QACnC,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAW,EAAC,SAAS,IAAI,CAAC,UAAU,cAAc,CAAC,CAAC;YACzE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;QAED,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;OAUG;IACK,eAAe,CAAC,QAAgB;QAMtC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAElC,qEAAqE;YACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS;gBAChD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG;gBACzB,CAAC,CAAC,SAAS,CAAC;YAEd,sDAAsD;YACtD,6CAA6C;YAC7C,uEAAuE;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,UAAU;YACxD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,UAAU;YAExD,IAAI,QAA4B,CAAC;YACjC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;gBACxB,wCAAwC;gBACxC,QAAQ,GAAG,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;YACrG,CAAC;iBAAM,CAAC;gBACN,wDAAwD;gBACxD,QAAQ,GAAG,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;YACjD,CAAC;YAED,wEAAwE;YACxE,2DAA2D;YAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG;gBACnC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,yBAAyB;gBACvE,CAAC,CAAC,CAAC,CAAC;YAEN,yDAAyD;YACzD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;YAEvE,OAAO;gBACL,QAAQ;gBACR,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBAC7C,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;gBAC7C,WAAW;aACZ,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,gBAAgB;QAM5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACvD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,gDAAgD;YAChD,0CAA0C;YAC1C,uEAAuE;YACvE,MAAM,MAAM,GAAG,MAAM,IAAA,sCAAmB,EAAC,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;YAE1E,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,iBAAiB,CAAC,MAAc;QAGtC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,wBAAwB;QAChD,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACnD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAErC,IAAI,IAAI,KAAK,QAAQ;oBAAE,WAAW,GAAG,KAAK,CAAC;qBACtC,IAAI,IAAI,KAAK,YAAY;oBAAE,UAAU,GAAG,KAAK,CAAC;qBAC9C,IAAI,IAAI,KAAK,YAAY;oBAAE,eAAe,GAAG,KAAK,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,iEAAiE;QACjE,MAAM,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,eAAe,CAAC;QAC7D,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;QAExC,OAAO,EAAE,UAAU,EAAE,CAAC;IACxB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAW,EAAC,kCAAkC,CAAC,CAAC;YACrE,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB;QAI5B,IAAI,CAAC;YACH,+BAA+B;YAC/B,MAAM,YAAY,GAAG,MAAM,IAAA,8BAAW,EAAC,qBAAqB,CAAC,CAAC;YAC9D,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAE5D,yDAAyD;YACzD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAEhD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;YACrC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,oCAAoC;QACpC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAClF,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;QAED,iDAAiD;QACjD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEpD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;YAC1C,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;YACjC,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;YAC9B,OAAO,OAAO,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,sBAAsB;QAClC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,mCAAmC;QACnC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEpD,uEAAuE;QACvE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEpD,oCAAoC;QACpC,IAAI,MAAqC,CAAC;QAC1C,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,GAAG,QAAQ,CAAC;QACpB,CAAC;aAAM,IAAI,aAAa,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,GAAG,SAAS,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,MAAM,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACpD,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,aAAa,EAAE,QAAQ;YACjC,QAAQ,EAAE,aAAa,EAAE,QAAQ;YACjC,QAAQ,EAAE,aAAa,EAAE,QAAQ;YACjC,WAAW,EAAE,aAAa,EAAE,WAAW;YACvC,UAAU,EAAE,aAAa,CAAC,UAAU;YACpC,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,SAAS,EAAE,GAAG;YACd,MAAM;YACN,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;SACrD,CAAC;IACJ,CAAC;CACF;AAhTD,0CAgTC;AAED,4BAA4B;AACf,QAAA,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import blessed from 'blessed';
2
+ import { ServerConfig } from '../types/server-config.js';
3
+ export declare function createHistoricalUI(screen: blessed.Widgets.Screen, server: ServerConfig, onBack: () => void): Promise<void>;
4
+ export declare function createMultiServerHistoricalUI(screen: blessed.Widgets.Screen, servers: ServerConfig[], _selectedIndex: number, onBack: () => void): Promise<void>;
5
+ //# sourceMappingURL=HistoricalMonitorApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HistoricalMonitorApp.d.ts","sourceRoot":"","sources":["../../src/tui/HistoricalMonitorApp.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAiJzD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAC9B,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,IAAI,GACjB,OAAO,CAAC,IAAI,CAAC,CAiLf;AAGD,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAC9B,OAAO,EAAE,YAAY,EAAE,EACvB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,IAAI,GACjB,OAAO,CAAC,IAAI,CAAC,CAmNf"}