@edenapp/sdk 0.5.1 → 0.6.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 (131) hide show
  1. package/dist/app-frame/frame-injector.js +6 -6
  2. package/dist/app-frame/frame-injector.js.map +3 -3
  3. package/dist/apps/prebuilt/com.eden.calculator/dist/assets/{index-B2YDTw7g.js → index-ombNmWuy.js} +1 -1
  4. package/dist/apps/prebuilt/com.eden.calculator/dist/index.html +1 -1
  5. package/dist/apps/prebuilt/com.eden.context-menu/dist/assets/{index-DUrqfNSi.js → index-B-ks_-b3.js} +1 -1
  6. package/dist/apps/prebuilt/com.eden.context-menu/dist/index.html +1 -1
  7. package/dist/apps/prebuilt/com.eden.editor/dist/assets/{editor.main-ABqnr99W.js → editor.main-ShXWZzLt.js} +3 -3
  8. package/dist/apps/prebuilt/com.eden.editor/dist/assets/{html-D6jh0yEa.js → html-BllhhjiQ.js} +1 -1
  9. package/dist/apps/prebuilt/com.eden.editor/dist/assets/{index-DAFnO6GB.js → index-DMisGu94.js} +2 -2
  10. package/dist/apps/prebuilt/com.eden.editor/dist/assets/{javascript-NUFioPTH.js → javascript-DmMyWycA.js} +1 -1
  11. package/dist/apps/prebuilt/com.eden.editor/dist/assets/{jsonMode-BprisSQ5.js → jsonMode-crhwfqKw.js} +1 -1
  12. package/dist/apps/prebuilt/com.eden.editor/dist/assets/{typescript-qUrrOs_e.js → typescript-B_1zjGZb.js} +1 -1
  13. package/dist/apps/prebuilt/com.eden.editor/dist/assets/{yaml-Xk-V_ilV.js → yaml-y53-55Ta.js} +1 -1
  14. package/dist/apps/prebuilt/com.eden.editor/dist/index.html +1 -1
  15. package/dist/apps/prebuilt/com.eden.eveshell/dist/assets/index-B-bahmO2.js +1 -0
  16. package/dist/apps/prebuilt/com.eden.eveshell/dist/index.html +1 -1
  17. package/dist/apps/prebuilt/com.eden.eveshell/manifest.json +9 -1
  18. package/dist/apps/prebuilt/com.eden.eveshell/package.json +1 -0
  19. package/dist/apps/prebuilt/com.eden.example.hello/backend/node_modules/.bin/tsc +2 -2
  20. package/dist/apps/prebuilt/com.eden.example.hello/backend/node_modules/.bin/tsserver +2 -2
  21. package/dist/apps/prebuilt/com.eden.example.hello/backend/node_modules/@edenapp/types/AppManifest.d.ts +9 -3
  22. package/dist/apps/prebuilt/com.eden.example.hello/backend/node_modules/@edenapp/types/CHANGELOG.md +14 -0
  23. package/dist/apps/prebuilt/com.eden.example.hello/backend/node_modules/@edenapp/types/ProcessMetrics.d.ts +127 -0
  24. package/dist/apps/prebuilt/com.eden.example.hello/backend/node_modules/@edenapp/types/commands.generated.d.ts +91 -15
  25. package/dist/apps/prebuilt/com.eden.example.hello/backend/node_modules/@edenapp/types/global.d.ts +8 -3
  26. package/dist/apps/prebuilt/com.eden.example.hello/backend/node_modules/@edenapp/types/index.d.ts +1 -0
  27. package/dist/apps/prebuilt/com.eden.example.hello/backend/node_modules/@edenapp/types/package.json +2 -2
  28. package/dist/apps/prebuilt/com.eden.example.hello/backend/tsconfig.json +2 -12
  29. package/dist/apps/prebuilt/com.eden.example.hello/frontend/dist/assets/index-BeQINwbz.js +1 -0
  30. package/dist/apps/prebuilt/com.eden.example.hello/frontend/dist/index.html +1 -1
  31. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/.bin/tsc +2 -2
  32. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/.bin/tsserver +2 -2
  33. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/.bin/vite +2 -2
  34. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/@edenapp/types/AppManifest.d.ts +9 -3
  35. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/@edenapp/types/CHANGELOG.md +14 -0
  36. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/@edenapp/types/ProcessMetrics.d.ts +127 -0
  37. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/@edenapp/types/commands.generated.d.ts +91 -15
  38. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/@edenapp/types/global.d.ts +8 -3
  39. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/@edenapp/types/index.d.ts +1 -0
  40. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/@edenapp/types/package.json +2 -2
  41. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/vite/node_modules/.bin/esbuild +3 -3
  42. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/vite/node_modules/.bin/rollup +4 -4
  43. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/vite/node_modules/.bin/yaml +4 -4
  44. package/dist/apps/prebuilt/com.eden.example.hello/frontend/tsconfig.json +1 -13
  45. package/dist/apps/prebuilt/com.eden.files/dist/assets/index-BT-jTYkQ.js +1 -0
  46. package/dist/apps/prebuilt/com.eden.files/dist/index.html +1 -1
  47. package/dist/apps/prebuilt/com.eden.files/package.json +4 -2
  48. package/dist/apps/prebuilt/com.eden.installer/dist/assets/{index-SmzSXaXF.js → index-czaxJQQE.js} +1 -1
  49. package/dist/apps/prebuilt/com.eden.installer/dist/index.html +1 -1
  50. package/dist/apps/prebuilt/com.eden.login/dist/assets/{index-DyI95N2f.js → index-C72VINOP.js} +1 -1
  51. package/dist/apps/prebuilt/com.eden.login/dist/index.html +1 -1
  52. package/dist/apps/prebuilt/com.eden.process-manager/dist/assets/index-C2Cw_EOR.css +1 -0
  53. package/dist/apps/prebuilt/com.eden.process-manager/dist/assets/index-x5Xb2Uoa.js +1 -0
  54. package/dist/apps/prebuilt/com.eden.process-manager/dist/index.html +13 -0
  55. package/dist/apps/prebuilt/com.eden.process-manager/icon.svg +13 -0
  56. package/dist/apps/prebuilt/com.eden.process-manager/index.html +12 -0
  57. package/dist/apps/prebuilt/com.eden.process-manager/manifest.json +31 -0
  58. package/dist/apps/prebuilt/com.eden.process-manager/package.json +20 -0
  59. package/dist/apps/prebuilt/com.eden.settings/dist/assets/{index-CHDYDKgf.js → index-CCa_wWrX.js} +1 -1
  60. package/dist/apps/prebuilt/com.eden.settings/dist/index.html +1 -1
  61. package/dist/apps/prebuilt/com.eden.toaster/dist/assets/{index-C4cVyh7j.js → index-b5EUNXyn.js} +2 -2
  62. package/dist/apps/prebuilt/com.eden.toaster/dist/index.html +1 -1
  63. package/dist/apps/prebuilt/com.eden.users/dist/assets/{index-CmyGIH5F.js → index-CSvwpgyK.js} +1 -1
  64. package/dist/apps/prebuilt/com.eden.users/dist/index.html +1 -1
  65. package/dist/edencss/eden.css +1 -1
  66. package/dist/filesystem/FilesystemHandler.d.ts +15 -0
  67. package/dist/filesystem/FilesystemHandler.d.ts.map +1 -1
  68. package/dist/filesystem/FilesystemHandler.js +25 -0
  69. package/dist/filesystem/FilesystemHandler.js.map +1 -1
  70. package/dist/filesystem/FilesystemManager.d.ts +9 -0
  71. package/dist/filesystem/FilesystemManager.d.ts.map +1 -1
  72. package/dist/filesystem/FilesystemManager.js +33 -0
  73. package/dist/filesystem/FilesystemManager.js.map +1 -1
  74. package/dist/generated/runtime.d.ts.map +1 -1
  75. package/dist/generated/runtime.js +9 -1
  76. package/dist/generated/runtime.js.map +1 -1
  77. package/dist/process-manager/ProcessHandler.d.ts +26 -1
  78. package/dist/process-manager/ProcessHandler.d.ts.map +1 -1
  79. package/dist/process-manager/ProcessHandler.js +41 -3
  80. package/dist/process-manager/ProcessHandler.js.map +1 -1
  81. package/dist/process-manager/ProcessManager.d.ts +11 -1
  82. package/dist/process-manager/ProcessManager.d.ts.map +1 -1
  83. package/dist/process-manager/ProcessManager.js +18 -0
  84. package/dist/process-manager/ProcessManager.js.map +1 -1
  85. package/dist/process-manager/ProcessMetricsCollector.d.ts +31 -0
  86. package/dist/process-manager/ProcessMetricsCollector.d.ts.map +1 -0
  87. package/dist/process-manager/ProcessMetricsCollector.js +219 -0
  88. package/dist/process-manager/ProcessMetricsCollector.js.map +1 -0
  89. package/dist/process-manager/ProcessMetricsCollector.test.d.ts +2 -0
  90. package/dist/process-manager/ProcessMetricsCollector.test.d.ts.map +1 -0
  91. package/dist/process-manager/ProcessMetricsCollector.test.js +194 -0
  92. package/dist/process-manager/ProcessMetricsCollector.test.js.map +1 -0
  93. package/dist/view-manager/ViewCreator.d.ts.map +1 -1
  94. package/dist/view-manager/ViewCreator.js +2 -1
  95. package/dist/view-manager/ViewCreator.js.map +1 -1
  96. package/dist/view-manager/ViewHandler.d.ts +67 -20
  97. package/dist/view-manager/ViewHandler.d.ts.map +1 -1
  98. package/dist/view-manager/ViewHandler.js +204 -122
  99. package/dist/view-manager/ViewHandler.js.map +1 -1
  100. package/dist/view-manager/viewLifecycle.d.ts.map +1 -1
  101. package/dist/view-manager/viewLifecycle.js +5 -0
  102. package/dist/view-manager/viewLifecycle.js.map +1 -1
  103. package/edencss/README.md +29 -194
  104. package/edencss/components/avatar.css +1 -1
  105. package/edencss/components/inputs.css +1 -1
  106. package/edencss/components/sidebar.css +2 -2
  107. package/edencss/utilities.css +17 -14
  108. package/package.json +9 -4
  109. package/dist/apps/prebuilt/com.eden.eveshell/dist/assets/index-CEfffVHu.js +0 -1
  110. package/dist/apps/prebuilt/com.eden.example.hello/frontend/dist/assets/index-D4bTq3-Q.js +0 -1
  111. package/dist/apps/prebuilt/com.eden.files/dist/assets/index-CoRuEUrw.js +0 -1
  112. package/dist/main.d.ts +0 -2
  113. package/dist/main.d.ts.map +0 -1
  114. package/dist/main.js +0 -15
  115. package/dist/main.js.map +0 -1
  116. package/dist/view-manager/DevToolsManager.d.ts +0 -29
  117. package/dist/view-manager/DevToolsManager.d.ts.map +0 -1
  118. package/dist/view-manager/DevToolsManager.js +0 -88
  119. package/dist/view-manager/DevToolsManager.js.map +0 -1
  120. package/dist/view-manager/LayoutCalculator.d.ts +0 -49
  121. package/dist/view-manager/LayoutCalculator.d.ts.map +0 -1
  122. package/dist/view-manager/LayoutCalculator.js +0 -94
  123. package/dist/view-manager/LayoutCalculator.js.map +0 -1
  124. package/dist/view-manager/TilingManager.d.ts +0 -61
  125. package/dist/view-manager/TilingManager.d.ts.map +0 -1
  126. package/dist/view-manager/TilingManager.js +0 -142
  127. package/dist/view-manager/TilingManager.js.map +0 -1
  128. package/dist/view-manager/ViewLifecycle.d.ts +0 -66
  129. package/dist/view-manager/ViewLifecycle.d.ts.map +0 -1
  130. package/dist/view-manager/ViewLifecycle.js +0 -142
  131. package/dist/view-manager/ViewLifecycle.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import type { AppInstance, EdenConfig } from "@edenapp/types";
1
+ import type { AppInstance, EdenConfig, ProcessMetricsSnapshot } from "@edenapp/types";
2
2
  import { AppChannelManager } from "../appbus/AppChannelManager";
3
3
  import { CommandRegistry, EdenEmitter, IPCBridge } from "../ipc";
4
4
  import { PackageManager } from "../package-manager/PackageManager";
@@ -37,6 +37,7 @@ export declare class ProcessManager extends EdenEmitter<ProcessNamespaceEvents>
37
37
  private userManager;
38
38
  private runningApps;
39
39
  private processHandler;
40
+ private processMetrics;
40
41
  private loginAppId?;
41
42
  constructor(backendManager: BackendManager, viewManager: ViewManager, ipcBridge: IPCBridge, packageManager: PackageManager, appChannelManager: AppChannelManager, userManager: UserManager, config: EdenConfig, commandRegistry: CommandRegistry);
42
43
  /**
@@ -70,6 +71,15 @@ export declare class ProcessManager extends EdenEmitter<ProcessNamespaceEvents>
70
71
  * Get app instance
71
72
  */
72
73
  getAppInstance(appId: string): AppInstance | undefined;
74
+ /**
75
+ * Return a process metrics snapshot for running Eden apps.
76
+ *
77
+ * CPU percentages are interval-based values supplied by Electron. To avoid
78
+ * concurrent callers resetting each other's sampling window, the main process
79
+ * owns a shared sampler with a fixed cadence and can keep it alive for slower
80
+ * polling clients.
81
+ */
82
+ getMetrics(showHidden?: boolean, pollingTimeoutMs?: number, waitForAccurateCpu?: boolean): Promise<ProcessMetricsSnapshot>;
73
83
  /**
74
84
  * Sync running app IDs with the IPC bridge
75
85
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ProcessManager.d.ts","sourceRoot":"","sources":["../../src/process-manager/ProcessManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAiB,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEhF,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;GAEG;AACH,UAAU,sBAAsB;IAC9B,QAAQ,EAAE;QAAE,QAAQ,EAAE,WAAW,CAAA;KAAE,CAAC;IACpC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC;IACrC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAED;;;;GAIG;AACH,qBAGa,cAAe,SAAQ,WAAW,CAAC,sBAAsB,CAAC;IAM3C,OAAO,CAAC,cAAc;IACzB,OAAO,CAAC,WAAW;IAEhB,OAAO,CAAC,cAAc;IACnB,OAAO,CAAC,iBAAiB;IAC/B,OAAO,CAAC,WAAW;IAV1C,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,UAAU,CAAC,CAAS;gBAGM,cAAc,EAAE,cAAc,EACjC,WAAW,EAAE,WAAW,EAClC,SAAS,EAAE,SAAS,EACP,cAAc,EAAE,cAAc,EAC3B,iBAAiB,EAAE,iBAAiB,EAC1C,WAAW,EAAE,WAAW,EAC/B,MAAM,EAAE,UAAU,EACf,eAAe,EAAE,eAAe;IAa3D;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwC1B,OAAO,CAAC,uBAAuB;IAY/B;;OAEG;IACG,SAAS,CACb,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAChE,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAiFnE;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B3C;;;OAGG;IACH,cAAc,CAAC,UAAU,GAAE,OAAe,GAAG,WAAW,EAAE;IAY1D;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAItD;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAQtB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAyBrB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB/B;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAyB/B,eAAe;IAW7B,OAAO,CAAC,UAAU;CAGnB"}
1
+ {"version":3,"file":"ProcessManager.d.ts","sourceRoot":"","sources":["../../src/process-manager/ProcessManager.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ const UserManager_1 = require("../user/UserManager");
23
23
  const ViewManager_1 = require("../view-manager/ViewManager");
24
24
  const BackendManager_1 = require("./BackendManager");
25
25
  const ProcessHandler_1 = require("./ProcessHandler");
26
+ const ProcessMetricsCollector_1 = require("./ProcessMetricsCollector");
26
27
  /**
27
28
  * ProcessManager
28
29
  *
@@ -36,6 +37,7 @@ let ProcessManager = class ProcessManager extends ipc_1.EdenEmitter {
36
37
  userManager;
37
38
  runningApps = new Map();
38
39
  processHandler;
40
+ processMetrics;
39
41
  loginAppId;
40
42
  constructor(backendManager, viewManager, ipcBridge, packageManager, appChannelManager, userManager, config, commandRegistry) {
41
43
  super(ipcBridge);
@@ -45,6 +47,11 @@ let ProcessManager = class ProcessManager extends ipc_1.EdenEmitter {
45
47
  this.appChannelManager = appChannelManager;
46
48
  this.userManager = userManager;
47
49
  this.loginAppId = config.loginAppId;
50
+ this.processMetrics = new ProcessMetricsCollector_1.ProcessMetricsCollector({
51
+ backendManager: this.backendManager,
52
+ viewManager: this.viewManager,
53
+ getRunningApps: (showHidden) => this.getRunningApps(showHidden),
54
+ });
48
55
  this.setupEventHandlers();
49
56
  this.setupUserAccessHandlers();
50
57
  // Create and register handler
@@ -201,6 +208,17 @@ let ProcessManager = class ProcessManager extends ipc_1.EdenEmitter {
201
208
  getAppInstance(appId) {
202
209
  return this.runningApps.get(appId);
203
210
  }
211
+ /**
212
+ * Return a process metrics snapshot for running Eden apps.
213
+ *
214
+ * CPU percentages are interval-based values supplied by Electron. To avoid
215
+ * concurrent callers resetting each other's sampling window, the main process
216
+ * owns a shared sampler with a fixed cadence and can keep it alive for slower
217
+ * polling clients.
218
+ */
219
+ async getMetrics(showHidden = false, pollingTimeoutMs, waitForAccurateCpu = true) {
220
+ return await this.processMetrics.getMetrics(showHidden, pollingTimeoutMs, waitForAccurateCpu);
221
+ }
204
222
  /**
205
223
  * Sync running app IDs with the IPC bridge
206
224
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ProcessManager.js","sourceRoot":"","sources":["../../src/process-manager/ProcessManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProcessManager.js","sourceRoot":"","sources":["../../src/process-manager/ProcessManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { AppInstance, ProcessMetricsSnapshot } from "@edenapp/types";
2
+ import type { ViewManager } from "../view-manager/ViewManager";
3
+ import type { BackendManager } from "./BackendManager";
4
+ interface ProcessMetricsCollectorDeps {
5
+ backendManager: BackendManager;
6
+ viewManager: ViewManager;
7
+ getRunningApps: (showHidden?: boolean) => AppInstance[];
8
+ }
9
+ export declare class ProcessMetricsCollector {
10
+ private readonly backendManager;
11
+ private readonly viewManager;
12
+ private readonly getRunningApps;
13
+ private metricsSampler;
14
+ private nextMetricsRequestId;
15
+ private pendingMetricsRequests;
16
+ private metricsSamplerKeepAliveUntil;
17
+ private latestMetricsSample;
18
+ constructor(deps: ProcessMetricsCollectorDeps);
19
+ getMetrics(showHidden?: boolean, pollingTimeoutMs?: number, waitForAccurateCpu?: boolean): Promise<ProcessMetricsSnapshot>;
20
+ private ensureMetricsSampler;
21
+ private extendMetricsSamplerKeepAlive;
22
+ private collectMetricsSample;
23
+ private captureMetricsSample;
24
+ private stopMetricsSampler;
25
+ private buildMetricsSnapshot;
26
+ private resolveRendererMetric;
27
+ private resolveBackendMetric;
28
+ private toProcessMetric;
29
+ }
30
+ export {};
31
+ //# sourceMappingURL=ProcessMetricsCollector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcessMetricsCollector.d.ts","sourceRoot":"","sources":["../../src/process-manager/ProcessMetricsCollector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAGX,sBAAsB,EACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAiBvD,UAAU,2BAA2B;IACnC,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,WAAW,EAAE,CAAC;CACzD;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0C;IACzE,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,sBAAsB,CAA0C;IACxE,OAAO,CAAC,4BAA4B,CAAK;IACzC,OAAO,CAAC,mBAAmB,CAAoC;gBAEnD,IAAI,EAAE,2BAA2B;IAMvC,UAAU,CACd,UAAU,GAAE,OAAe,EAC3B,gBAAgB,GAAE,MAA2C,EAC7D,kBAAkB,GAAE,OAAc,GACjC,OAAO,CAAC,sBAAsB,CAAC;IAkClC,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,6BAA6B;IAOrC,OAAO,CAAC,oBAAoB;IAmC5B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,oBAAoB;IAiG5B,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,eAAe;CA6BxB"}
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessMetricsCollector = void 0;
4
+ const electron_1 = require("electron");
5
+ const METRICS_SAMPLE_INTERVAL_MS = 1000;
6
+ const DEFAULT_METRICS_POLLING_TIMEOUT_MS = 1000;
7
+ const MAX_METRICS_POLLING_TIMEOUT_MS = 10000;
8
+ class ProcessMetricsCollector {
9
+ backendManager;
10
+ viewManager;
11
+ getRunningApps;
12
+ metricsSampler = null;
13
+ nextMetricsRequestId = 0;
14
+ pendingMetricsRequests = new Map();
15
+ metricsSamplerKeepAliveUntil = 0;
16
+ latestMetricsSample = null;
17
+ constructor(deps) {
18
+ this.backendManager = deps.backendManager;
19
+ this.viewManager = deps.viewManager;
20
+ this.getRunningApps = deps.getRunningApps;
21
+ }
22
+ async getMetrics(showHidden = false, pollingTimeoutMs = DEFAULT_METRICS_POLLING_TIMEOUT_MS, waitForAccurateCpu = true) {
23
+ const normalizedTimeout = Math.max(METRICS_SAMPLE_INTERVAL_MS, Math.min(MAX_METRICS_POLLING_TIMEOUT_MS, pollingTimeoutMs));
24
+ this.extendMetricsSamplerKeepAlive(normalizedTimeout);
25
+ this.ensureMetricsSampler(waitForAccurateCpu);
26
+ if (this.latestMetricsSample) {
27
+ return this.buildMetricsSnapshot(this.latestMetricsSample.appMetrics, this.latestMetricsSample.sampledAt, showHidden);
28
+ }
29
+ if (!waitForAccurateCpu) {
30
+ const immediateSample = this.captureMetricsSample();
31
+ return this.buildMetricsSnapshot(immediateSample.appMetrics, immediateSample.sampledAt, showHidden);
32
+ }
33
+ return await new Promise((resolve, reject) => {
34
+ this.pendingMetricsRequests.set(this.nextMetricsRequestId++, {
35
+ showHidden,
36
+ resolve,
37
+ reject,
38
+ });
39
+ });
40
+ }
41
+ ensureMetricsSampler(waitForAccurateCpu) {
42
+ if (this.metricsSampler)
43
+ return;
44
+ if (waitForAccurateCpu) {
45
+ // Prime Electron's CPU sampler so the next interval-based sample is useful.
46
+ electron_1.app.getAppMetrics();
47
+ this.latestMetricsSample = null;
48
+ }
49
+ else {
50
+ this.captureMetricsSample();
51
+ }
52
+ this.metricsSampler = setInterval(() => {
53
+ this.collectMetricsSample();
54
+ }, METRICS_SAMPLE_INTERVAL_MS);
55
+ }
56
+ extendMetricsSamplerKeepAlive(timeoutMs) {
57
+ this.metricsSamplerKeepAliveUntil = Math.max(this.metricsSamplerKeepAliveUntil, Date.now() + timeoutMs);
58
+ }
59
+ collectMetricsSample() {
60
+ if (this.pendingMetricsRequests.size === 0 &&
61
+ Date.now() >= this.metricsSamplerKeepAliveUntil) {
62
+ this.stopMetricsSampler();
63
+ return;
64
+ }
65
+ try {
66
+ const { appMetrics, sampledAt } = this.captureMetricsSample();
67
+ for (const [requestId, request,] of this.pendingMetricsRequests.entries()) {
68
+ request.resolve(this.buildMetricsSnapshot(appMetrics, sampledAt, request.showHidden));
69
+ this.pendingMetricsRequests.delete(requestId);
70
+ }
71
+ }
72
+ catch (error) {
73
+ const failure = error instanceof Error
74
+ ? error
75
+ : new Error(`Failed to collect process metrics: ${String(error)}`);
76
+ for (const [, request] of this.pendingMetricsRequests.entries()) {
77
+ request.reject(failure);
78
+ }
79
+ this.pendingMetricsRequests.clear();
80
+ this.stopMetricsSampler();
81
+ }
82
+ }
83
+ captureMetricsSample() {
84
+ const appMetrics = electron_1.app.getAppMetrics();
85
+ const sampledAt = new Date().toISOString();
86
+ const sample = { sampledAt, appMetrics };
87
+ this.latestMetricsSample = sample;
88
+ return sample;
89
+ }
90
+ stopMetricsSampler() {
91
+ if (!this.metricsSampler)
92
+ return;
93
+ clearInterval(this.metricsSampler);
94
+ this.metricsSampler = null;
95
+ this.metricsSamplerKeepAliveUntil = 0;
96
+ this.latestMetricsSample = null;
97
+ }
98
+ buildMetricsSnapshot(appMetrics, sampledAt, showHidden) {
99
+ const metricsByPid = new Map(appMetrics.map((metric) => [metric.pid, metric]));
100
+ const matchedPids = new Set();
101
+ const visibleAppIds = new Set(this.getRunningApps(showHidden).map((instance) => instance.manifest.id));
102
+ const apps = this.getRunningApps(true)
103
+ .map((instance) => {
104
+ const rendererMetric = this.resolveRendererMetric(instance, metricsByPid);
105
+ const backendMetric = this.resolveBackendMetric(instance, metricsByPid);
106
+ if (rendererMetric)
107
+ matchedPids.add(rendererMetric.pid);
108
+ if (backendMetric)
109
+ matchedPids.add(backendMetric.pid);
110
+ const totalCPUPercent = (rendererMetric?.cpu.percentCPUUsage ?? 0) +
111
+ (backendMetric?.cpu.percentCPUUsage ?? 0);
112
+ const totalMemoryWorkingSetSize = (rendererMetric?.memory.workingSetSize ?? 0) +
113
+ (backendMetric?.memory.workingSetSize ?? 0);
114
+ const totalMemoryPeakWorkingSetSize = (rendererMetric?.memory.peakWorkingSetSize ?? 0) +
115
+ (backendMetric?.memory.peakWorkingSetSize ?? 0);
116
+ const snapshot = {
117
+ instance,
118
+ totalCPUPercent,
119
+ totalMemoryWorkingSetSize,
120
+ totalMemoryPeakWorkingSetSize,
121
+ };
122
+ if (rendererMetric)
123
+ snapshot.renderer = rendererMetric;
124
+ if (backendMetric)
125
+ snapshot.backend = backendMetric;
126
+ return snapshot;
127
+ })
128
+ .filter((snapshot) => visibleAppIds.has(snapshot.instance.manifest.id))
129
+ .sort((left, right) => {
130
+ if (right.totalCPUPercent !== left.totalCPUPercent) {
131
+ return right.totalCPUPercent - left.totalCPUPercent;
132
+ }
133
+ return right.totalMemoryWorkingSetSize - left.totalMemoryWorkingSetSize;
134
+ });
135
+ const sharedProcesses = appMetrics
136
+ .filter((metric) => !matchedPids.has(metric.pid))
137
+ .map((metric) => this.toProcessMetric(metric, "shared"))
138
+ .sort((left, right) => {
139
+ if (right.cpu.percentCPUUsage !== left.cpu.percentCPUUsage) {
140
+ return right.cpu.percentCPUUsage - left.cpu.percentCPUUsage;
141
+ }
142
+ return right.memory.workingSetSize - left.memory.workingSetSize;
143
+ });
144
+ const appCPUPercent = apps.reduce((sum, entry) => sum + entry.totalCPUPercent, 0);
145
+ const appMemoryWorkingSetSize = apps.reduce((sum, entry) => sum + entry.totalMemoryWorkingSetSize, 0);
146
+ const sharedCPUPercent = sharedProcesses.reduce((sum, entry) => sum + entry.cpu.percentCPUUsage, 0);
147
+ const sharedMemoryWorkingSetSize = sharedProcesses.reduce((sum, entry) => sum + entry.memory.workingSetSize, 0);
148
+ return {
149
+ sampledAt,
150
+ apps,
151
+ sharedProcesses,
152
+ totals: {
153
+ appCPUPercent,
154
+ sharedCPUPercent,
155
+ overallCPUPercent: appCPUPercent + sharedCPUPercent,
156
+ appMemoryWorkingSetSize,
157
+ sharedMemoryWorkingSetSize,
158
+ overallMemoryWorkingSetSize: appMemoryWorkingSetSize + sharedMemoryWorkingSetSize,
159
+ },
160
+ };
161
+ }
162
+ resolveRendererMetric(instance, metricsByPid) {
163
+ if (instance.viewId === -1)
164
+ return undefined;
165
+ const view = this.viewManager.getView(instance.viewId);
166
+ if (!view || view.webContents.isDestroyed())
167
+ return undefined;
168
+ const rendererPid = view.webContents.getOSProcessId();
169
+ if (!rendererPid || rendererPid <= 0)
170
+ return undefined;
171
+ const metric = metricsByPid.get(rendererPid);
172
+ if (!metric)
173
+ return undefined;
174
+ return this.toProcessMetric(metric, "renderer", {
175
+ appId: instance.manifest.id,
176
+ viewId: instance.viewId,
177
+ });
178
+ }
179
+ resolveBackendMetric(instance, metricsByPid) {
180
+ const backendPid = this.backendManager.getBackend(instance.manifest.id)?.pid;
181
+ if (!backendPid || backendPid <= 0)
182
+ return undefined;
183
+ const metric = metricsByPid.get(backendPid);
184
+ if (!metric)
185
+ return undefined;
186
+ return this.toProcessMetric(metric, "backend", {
187
+ appId: instance.manifest.id,
188
+ });
189
+ }
190
+ toProcessMetric(metric, category, options = {}) {
191
+ const snapshot = {
192
+ pid: metric.pid,
193
+ creationTime: metric.creationTime,
194
+ category,
195
+ processType: metric.type,
196
+ cpu: {
197
+ percentCPUUsage: metric.cpu.percentCPUUsage,
198
+ cumulativeCPUUsage: metric.cpu.cumulativeCPUUsage,
199
+ idleWakeupsPerSecond: metric.cpu.idleWakeupsPerSecond,
200
+ },
201
+ memory: {
202
+ workingSetSize: metric.memory.workingSetSize,
203
+ peakWorkingSetSize: metric.memory.peakWorkingSetSize,
204
+ privateBytes: metric.memory.privateBytes,
205
+ },
206
+ };
207
+ if (metric.serviceName)
208
+ snapshot.serviceName = metric.serviceName;
209
+ if (metric.name)
210
+ snapshot.name = metric.name;
211
+ if (options.appId)
212
+ snapshot.appId = options.appId;
213
+ if (options.viewId !== undefined)
214
+ snapshot.viewId = options.viewId;
215
+ return snapshot;
216
+ }
217
+ }
218
+ exports.ProcessMetricsCollector = ProcessMetricsCollector;
219
+ //# sourceMappingURL=ProcessMetricsCollector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcessMetricsCollector.js","sourceRoot":"","sources":["../../src/process-manager/ProcessMetricsCollector.ts"],"names":[],"mappings":";;;AAMA,uCAA4E;AAe5E,MAAM,0BAA0B,GAAG,IAAI,CAAC;AACxC,MAAM,kCAAkC,GAAG,IAAI,CAAC;AAChD,MAAM,8BAA8B,GAAG,KAAK,CAAC;AAQ7C,MAAa,uBAAuB;IACjB,cAAc,CAAiB;IAC/B,WAAW,CAAc;IACzB,cAAc,CAA0C;IACjE,cAAc,GAA0B,IAAI,CAAC;IAC7C,oBAAoB,GAAG,CAAC,CAAC;IACzB,sBAAsB,GAAgC,IAAI,GAAG,EAAE,CAAC;IAChE,4BAA4B,GAAG,CAAC,CAAC;IACjC,mBAAmB,GAA+B,IAAI,CAAC;IAE/D,YAAY,IAAiC;QAC3C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,UAAU,CACd,aAAsB,KAAK,EAC3B,mBAA2B,kCAAkC,EAC7D,qBAA8B,IAAI;QAElC,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAChC,0BAA0B,EAC1B,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,gBAAgB,CAAC,CAC3D,CAAC;QACF,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,CAAC;QACtD,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;QAE9C,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,oBAAoB,CAC9B,IAAI,CAAC,mBAAmB,CAAC,UAAU,EACnC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAClC,UAAU,CACX,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC,oBAAoB,CAC9B,eAAe,CAAC,UAAU,EAC1B,eAAe,CAAC,SAAS,EACzB,UAAU,CACX,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,IAAI,OAAO,CAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnE,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE;gBAC3D,UAAU;gBACV,OAAO;gBACP,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,oBAAoB,CAAC,kBAA2B;QACtD,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAEhC,IAAI,kBAAkB,EAAE,CAAC;YACvB,4EAA4E;YAC5E,cAAG,CAAC,aAAa,EAAE,CAAC;YACpB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;YACrC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC,EAAE,0BAA0B,CAAC,CAAC;IACjC,CAAC;IAEO,6BAA6B,CAAC,SAAiB;QACrD,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,GAAG,CAC1C,IAAI,CAAC,4BAA4B,EACjC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CACvB,CAAC;IACJ,CAAC;IAEO,oBAAoB;QAC1B,IACE,IAAI,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC;YACtC,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,4BAA4B,EAC/C,CAAC;YACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAE9D,KAAK,MAAM,CACT,SAAS,EACT,OAAO,EACR,IAAI,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC3C,OAAO,CAAC,OAAO,CACb,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CACrE,CAAC;gBACF,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GACX,KAAK,YAAY,KAAK;gBACpB,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,IAAI,KAAK,CAAC,sCAAsC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAEvE,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,EAAE,CAAC;gBAChE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAEO,oBAAoB;QAC1B,MAAM,UAAU,GAAG,cAAG,CAAC,aAAa,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QACzC,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC;QAClC,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QACjC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,4BAA4B,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAClC,CAAC;IAEO,oBAAoB,CAC1B,UAAmC,EACnC,SAAiB,EACjB,UAAmB;QAEnB,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAU,CAAC,CAC1D,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QACtC,MAAM,aAAa,GAAG,IAAI,GAAG,CAC3B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CACxE,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;aACnC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChB,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAC/C,QAAQ,EACR,YAAY,CACb,CAAC;YACF,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAExE,IAAI,cAAc;gBAAE,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACxD,IAAI,aAAa;gBAAE,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAEtD,MAAM,eAAe,GACnB,CAAC,cAAc,EAAE,GAAG,CAAC,eAAe,IAAI,CAAC,CAAC;gBAC1C,CAAC,aAAa,EAAE,GAAG,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC;YAC5C,MAAM,yBAAyB,GAC7B,CAAC,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC;gBAC5C,CAAC,aAAa,EAAE,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;YAC9C,MAAM,6BAA6B,GACjC,CAAC,cAAc,EAAE,MAAM,CAAC,kBAAkB,IAAI,CAAC,CAAC;gBAChD,CAAC,aAAa,EAAE,MAAM,CAAC,kBAAkB,IAAI,CAAC,CAAC,CAAC;YAElD,MAAM,QAAQ,GAAsB;gBAClC,QAAQ;gBACR,eAAe;gBACf,yBAAyB;gBACzB,6BAA6B;aAC9B,CAAC;YAEF,IAAI,cAAc;gBAAE,QAAQ,CAAC,QAAQ,GAAG,cAAc,CAAC;YACvD,IAAI,aAAa;gBAAE,QAAQ,CAAC,OAAO,GAAG,aAAa,CAAC;YAEpD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aACtE,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACpB,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;gBACnD,OAAO,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACtD,CAAC;YACD,OAAO,KAAK,CAAC,yBAAyB,GAAG,IAAI,CAAC,yBAAyB,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEL,MAAM,eAAe,GAAG,UAAU;aAC/B,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAChD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;aACvD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACpB,IAAI,KAAK,CAAC,GAAG,CAAC,eAAe,KAAK,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;gBAC3D,OAAO,KAAK,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;YAC9D,CAAC;YACD,OAAO,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;QAClE,CAAC,CAAC,CAAC;QAEL,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAC/B,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,eAAe,EAC3C,CAAC,CACF,CAAC;QACF,MAAM,uBAAuB,GAAG,IAAI,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,yBAAyB,EACrD,CAAC,CACF,CAAC;QACF,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAC7C,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,EAC/C,CAAC,CACF,CAAC;QACF,MAAM,0BAA0B,GAAG,eAAe,CAAC,MAAM,CACvD,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,EACjD,CAAC,CACF,CAAC;QAEF,OAAO;YACL,SAAS;YACT,IAAI;YACJ,eAAe;YACf,MAAM,EAAE;gBACN,aAAa;gBACb,gBAAgB;gBAChB,iBAAiB,EAAE,aAAa,GAAG,gBAAgB;gBACnD,uBAAuB;gBACvB,0BAA0B;gBAC1B,2BAA2B,EACzB,uBAAuB,GAAG,0BAA0B;aACvD;SACF,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAC3B,QAAqB,EACrB,YAAgD;QAEhD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;YAAE,OAAO,SAAS,CAAC;QAE7C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;YAAE,OAAO,SAAS,CAAC;QAE9D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;QACtD,IAAI,CAAC,WAAW,IAAI,WAAW,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QAEvD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAE9B,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE;YAC9C,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAEO,oBAAoB,CAC1B,QAAqB,EACrB,YAAgD;QAEhD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAC/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CACrB,EAAE,GAAG,CAAC;QACP,IAAI,CAAC,UAAU,IAAI,UAAU,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QAErD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAE9B,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE;YAC7C,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;SAC5B,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CACrB,MAA6B,EAC7B,QAAuC,EACvC,UAA+C,EAAE;QAEjD,MAAM,QAAQ,GAAsB;YAClC,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,QAAQ;YACR,WAAW,EAAE,MAAM,CAAC,IAAI;YACxB,GAAG,EAAE;gBACH,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe;gBAC3C,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB;gBACjD,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB;aACtD;YACD,MAAM,EAAE;gBACN,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc;gBAC5C,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB;gBACpD,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY;aACzC;SACF,CAAC;QAEF,IAAI,MAAM,CAAC,WAAW;YAAE,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAClE,IAAI,MAAM,CAAC,IAAI;YAAE,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAC7C,IAAI,OAAO,CAAC,KAAK;YAAE,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAClD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAEnE,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AApSD,0DAoSC"}
@@ -0,0 +1,2 @@
1
+ import "reflect-metadata";
2
+ //# sourceMappingURL=ProcessMetricsCollector.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcessMetricsCollector.test.d.ts","sourceRoot":"","sources":["../../src/process-manager/ProcessMetricsCollector.test.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC"}
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ const electron_1 = require("electron");
5
+ const ProcessMetricsCollector_1 = require("./ProcessMetricsCollector");
6
+ jest.mock("electron", () => ({
7
+ app: {
8
+ getAppMetrics: jest.fn(),
9
+ },
10
+ }));
11
+ const getAppMetrics = electron_1.app
12
+ .getAppMetrics;
13
+ const createApp = (appId, viewId, overrides = {}) => ({
14
+ manifest: {
15
+ id: appId,
16
+ name: appId,
17
+ version: "1.0.0",
18
+ frontend: { entry: "dist/index.html" },
19
+ permissions: [],
20
+ },
21
+ instanceId: `${appId}-instance`,
22
+ installPath: `/apps/${appId}`,
23
+ viewId,
24
+ state: "running",
25
+ installedAt: new Date("2026-01-01T00:00:00.000Z"),
26
+ lastLaunched: new Date("2026-01-01T00:00:00.000Z"),
27
+ ...overrides,
28
+ });
29
+ const metric = (pid, cpuPercent, workingSetSize, peakWorkingSetSize, extra = {}) => ({
30
+ pid,
31
+ creationTime: pid,
32
+ type: "Tab",
33
+ cpu: {
34
+ percentCPUUsage: cpuPercent,
35
+ cumulativeCPUUsage: cpuPercent * 10,
36
+ idleWakeupsPerSecond: 0,
37
+ },
38
+ memory: {
39
+ workingSetSize,
40
+ peakWorkingSetSize,
41
+ },
42
+ ...extra,
43
+ });
44
+ describe("ProcessMetricsCollector", () => {
45
+ beforeEach(() => {
46
+ jest.useFakeTimers();
47
+ getAppMetrics.mockReset();
48
+ });
49
+ afterEach(() => {
50
+ jest.useRealTimers();
51
+ });
52
+ it("uses a fixed main-process sampling cadence and lets callers extend sampler keepalive", async () => {
53
+ const visibleApp = createApp("com.eden.visible", 10);
54
+ const hiddenApp = createApp("com.eden.hidden", 20, {
55
+ manifest: {
56
+ id: "com.eden.hidden",
57
+ name: "Hidden",
58
+ version: "1.0.0",
59
+ frontend: { entry: "dist/index.html" },
60
+ overlay: true,
61
+ permissions: [],
62
+ },
63
+ });
64
+ const apps = [visibleApp, hiddenApp];
65
+ const getView = jest.fn((viewId) => {
66
+ const pidByViewId = { 10: 111, 20: 222 };
67
+ const pid = pidByViewId[viewId];
68
+ if (!pid)
69
+ return undefined;
70
+ return {
71
+ webContents: {
72
+ isDestroyed: () => false,
73
+ getOSProcessId: () => pid,
74
+ },
75
+ };
76
+ });
77
+ const getBackend = jest.fn((appId) => appId === "com.eden.visible" ? { pid: 333 } : undefined);
78
+ const collector = new ProcessMetricsCollector_1.ProcessMetricsCollector({
79
+ backendManager: { getBackend },
80
+ viewManager: { getView },
81
+ getRunningApps: (showHidden = false) => showHidden
82
+ ? apps
83
+ : apps.filter((app) => (app.manifest.hidden !== undefined
84
+ ? !app.manifest.hidden
85
+ : !app.manifest.overlay) && !!app.manifest.frontend?.entry),
86
+ });
87
+ getAppMetrics
88
+ .mockReturnValueOnce([])
89
+ .mockReturnValueOnce([
90
+ metric(111, 6, 1800, 2200),
91
+ metric(333, 4, 900, 1100, {
92
+ type: "Utility",
93
+ serviceName: "eden-backend-com.eden.visible",
94
+ }),
95
+ metric(999, 2, 3500, 4200, {
96
+ type: "GPU",
97
+ name: "GPU Process",
98
+ }),
99
+ metric(222, 1, 450, 650),
100
+ ])
101
+ .mockReturnValueOnce([
102
+ metric(111, 12, 2000, 2500),
103
+ metric(333, 8, 1000, 1200, {
104
+ type: "Utility",
105
+ serviceName: "eden-backend-com.eden.visible",
106
+ }),
107
+ metric(999, 5, 4000, 4500, {
108
+ type: "GPU",
109
+ name: "GPU Process",
110
+ }),
111
+ metric(222, 3, 500, 700),
112
+ ])
113
+ .mockReturnValue([
114
+ metric(111, 10, 2100, 2550),
115
+ metric(333, 7, 1050, 1300, {
116
+ type: "Utility",
117
+ serviceName: "eden-backend-com.eden.visible",
118
+ }),
119
+ metric(999, 4, 4100, 4550, {
120
+ type: "GPU",
121
+ name: "GPU Process",
122
+ }),
123
+ metric(222, 4, 550, 750),
124
+ ]);
125
+ const visibleOnlyPromise = collector.getMetrics(false, 3000);
126
+ await jest.advanceTimersByTimeAsync(1000);
127
+ const visibleOnly = await visibleOnlyPromise;
128
+ expect(getAppMetrics).toHaveBeenCalledTimes(2);
129
+ expect(visibleOnly.apps).toHaveLength(1);
130
+ expect(visibleOnly.apps[0]).toMatchObject({
131
+ instance: { manifest: { id: "com.eden.visible" } },
132
+ totalCPUPercent: 10,
133
+ totalMemoryWorkingSetSize: 2700,
134
+ totalMemoryPeakWorkingSetSize: 3300,
135
+ renderer: { pid: 111, category: "renderer", viewId: 10 },
136
+ backend: {
137
+ pid: 333,
138
+ category: "backend",
139
+ serviceName: "eden-backend-com.eden.visible",
140
+ },
141
+ });
142
+ expect(visibleOnly.sharedProcesses.map((entry) => entry.pid)).toEqual([
143
+ 999,
144
+ ]);
145
+ expect(visibleOnly.totals).toMatchObject({
146
+ appCPUPercent: 10,
147
+ sharedCPUPercent: 2,
148
+ overallCPUPercent: 12,
149
+ appMemoryWorkingSetSize: 2700,
150
+ sharedMemoryWorkingSetSize: 3500,
151
+ overallMemoryWorkingSetSize: 6200,
152
+ });
153
+ await jest.advanceTimersByTimeAsync(1000);
154
+ expect(getAppMetrics).toHaveBeenCalledTimes(3);
155
+ const includingHidden = await collector.getMetrics(true, 3000);
156
+ expect(getAppMetrics).toHaveBeenCalledTimes(3);
157
+ expect(includingHidden.apps).toHaveLength(2);
158
+ expect(includingHidden.apps.map((entry) => entry.instance.manifest.id)).toEqual(["com.eden.visible", "com.eden.hidden"]);
159
+ expect(includingHidden.apps[0].totalCPUPercent).toBe(20);
160
+ expect(includingHidden.apps[1].totalCPUPercent).toBe(3);
161
+ expect(includingHidden.sharedProcesses.map((entry) => entry.pid)).toEqual([
162
+ 999,
163
+ ]);
164
+ });
165
+ it("can return an immediate cold-start sample without waiting for the first CPU interval", async () => {
166
+ const visibleApp = createApp("com.eden.visible", 10);
167
+ const collector = new ProcessMetricsCollector_1.ProcessMetricsCollector({
168
+ backendManager: { getBackend: jest.fn(() => undefined) },
169
+ viewManager: {
170
+ getView: jest.fn(() => ({
171
+ webContents: {
172
+ isDestroyed: () => false,
173
+ getOSProcessId: () => 111,
174
+ },
175
+ })),
176
+ },
177
+ getRunningApps: () => [visibleApp],
178
+ });
179
+ getAppMetrics
180
+ .mockReturnValueOnce([metric(111, 0, 1800, 2200)])
181
+ .mockReturnValue([metric(111, 5, 2000, 2500)]);
182
+ const snapshot = await collector.getMetrics(false, 3000, false);
183
+ expect(getAppMetrics).toHaveBeenCalledTimes(1);
184
+ expect(snapshot.apps).toHaveLength(1);
185
+ expect(snapshot.apps[0]).toMatchObject({
186
+ totalCPUPercent: 0,
187
+ totalMemoryWorkingSetSize: 1800,
188
+ renderer: { pid: 111, category: "renderer" },
189
+ });
190
+ await jest.advanceTimersByTimeAsync(1000);
191
+ expect(getAppMetrics).toHaveBeenCalledTimes(2);
192
+ });
193
+ });
194
+ //# sourceMappingURL=ProcessMetricsCollector.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcessMetricsCollector.test.js","sourceRoot":"","sources":["../../src/process-manager/ProcessMetricsCollector.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ViewCreator.d.ts","sourceRoot":"","sources":["../../src/view-manager/ViewCreator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,IAAI,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGrE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAA2B,MAAM,SAAS,CAAC;AAEhF;;;;;GAKG;AACH,qBAAa,WAAW;IAKpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe;IANlC,OAAO,CAAC,iBAAiB,CAAwB;IACjD,OAAO,CAAC,UAAU,CAAK;gBAGJ,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,wBAAwB;IAG5D;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIrC;;OAEG;IACH,oBAAoB,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO;IAI1D;;;OAGG;IACH,mBAAmB,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM;IAQ5E;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAiBrC;;;;;OAKG;IACG,aAAa,CACjB,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,MAAM,GAAG,QAAQ,GACtB,OAAO,CAAC,OAAO,CAAC;IAsBnB;;;OAGG;IACG,cAAc,CAClB,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7C,QAAQ,EAAE,QAAQ,EAClB,YAAY,CAAC,EAAE,YAAY,EAC3B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC;IAiDnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAYlC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAuB/B;;;OAGG;IACI,UAAU,CACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EACrB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,EACjC,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,QAAQ;CAsGZ"}
1
+ {"version":3,"file":"ViewCreator.d.ts","sourceRoot":"","sources":["../../src/view-manager/ViewCreator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,IAAI,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGrE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAA2B,MAAM,SAAS,CAAC;AAEhF;;;;;GAKG;AACH,qBAAa,WAAW;IAKpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe;IANlC,OAAO,CAAC,iBAAiB,CAAwB;IACjD,OAAO,CAAC,UAAU,CAAK;gBAGJ,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,wBAAwB;IAG5D;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIrC;;OAEG;IACH,oBAAoB,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO;IAK1D;;;OAGG;IACH,mBAAmB,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM;IAQ5E;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAiBrC;;;;;OAKG;IACG,aAAa,CACjB,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,MAAM,GAAG,QAAQ,GACtB,OAAO,CAAC,OAAO,CAAC;IAsBnB;;;OAGG;IACG,cAAc,CAClB,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7C,QAAQ,EAAE,QAAQ,EAClB,YAAY,CAAC,EAAE,YAAY,EAC3B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC;IAiDnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAY9B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAYlC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAuB/B;;;OAGG;IACI,UAAU,CACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EACrB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,EACjC,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,QAAQ;CAsGZ"}
@@ -56,7 +56,8 @@ class ViewCreator {
56
56
  * Determine whether the app frame should be injected
57
57
  */
58
58
  shouldInjectAppFrame(windowConfig) {
59
- return windowConfig?.injections?.appFrame !== false;
59
+ const appFrameMode = windowConfig?.injections?.appFrame;
60
+ return appFrameMode !== false && appFrameMode !== "none";
60
61
  }
61
62
  /**
62
63
  * Get the CSS injection mode from window config