@masuidrive/procman 0.1.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 (315) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +149 -0
  3. package/dist/src/cli/commands/clear-log.d.ts +10 -0
  4. package/dist/src/cli/commands/clear-log.d.ts.map +1 -0
  5. package/dist/src/cli/commands/clear-log.js +77 -0
  6. package/dist/src/cli/commands/clear-log.js.map +1 -0
  7. package/dist/src/cli/commands/exit.d.ts +10 -0
  8. package/dist/src/cli/commands/exit.d.ts.map +1 -0
  9. package/dist/src/cli/commands/exit.js +65 -0
  10. package/dist/src/cli/commands/exit.js.map +1 -0
  11. package/dist/src/cli/commands/help.d.ts +10 -0
  12. package/dist/src/cli/commands/help.d.ts.map +1 -0
  13. package/dist/src/cli/commands/help.js +340 -0
  14. package/dist/src/cli/commands/help.js.map +1 -0
  15. package/dist/src/cli/commands/list.d.ts +11 -0
  16. package/dist/src/cli/commands/list.d.ts.map +1 -0
  17. package/dist/src/cli/commands/list.js +130 -0
  18. package/dist/src/cli/commands/list.js.map +1 -0
  19. package/dist/src/cli/commands/load.d.ts +11 -0
  20. package/dist/src/cli/commands/load.d.ts.map +1 -0
  21. package/dist/src/cli/commands/load.js +250 -0
  22. package/dist/src/cli/commands/load.js.map +1 -0
  23. package/dist/src/cli/commands/log.d.ts +18 -0
  24. package/dist/src/cli/commands/log.d.ts.map +1 -0
  25. package/dist/src/cli/commands/log.js +282 -0
  26. package/dist/src/cli/commands/log.js.map +1 -0
  27. package/dist/src/cli/commands/restart.d.ts +11 -0
  28. package/dist/src/cli/commands/restart.d.ts.map +1 -0
  29. package/dist/src/cli/commands/restart.js +99 -0
  30. package/dist/src/cli/commands/restart.js.map +1 -0
  31. package/dist/src/cli/commands/start.d.ts +11 -0
  32. package/dist/src/cli/commands/start.d.ts.map +1 -0
  33. package/dist/src/cli/commands/start.js +105 -0
  34. package/dist/src/cli/commands/start.js.map +1 -0
  35. package/dist/src/cli/commands/stop.d.ts +12 -0
  36. package/dist/src/cli/commands/stop.d.ts.map +1 -0
  37. package/dist/src/cli/commands/stop.js +105 -0
  38. package/dist/src/cli/commands/stop.js.map +1 -0
  39. package/dist/src/cli/index.d.ts +3 -0
  40. package/dist/src/cli/index.d.ts.map +1 -0
  41. package/dist/src/cli/index.js +28 -0
  42. package/dist/src/cli/index.js.map +1 -0
  43. package/dist/src/cli/parser.d.ts +14 -0
  44. package/dist/src/cli/parser.d.ts.map +1 -0
  45. package/dist/src/cli/parser.js +131 -0
  46. package/dist/src/cli/parser.js.map +1 -0
  47. package/dist/src/cli/signal-handler.d.ts +51 -0
  48. package/dist/src/cli/signal-handler.d.ts.map +1 -0
  49. package/dist/src/cli/signal-handler.js +129 -0
  50. package/dist/src/cli/signal-handler.js.map +1 -0
  51. package/dist/src/cli/utils/error-handler.d.ts +39 -0
  52. package/dist/src/cli/utils/error-handler.d.ts.map +1 -0
  53. package/dist/src/cli/utils/error-handler.js +200 -0
  54. package/dist/src/cli/utils/error-handler.js.map +1 -0
  55. package/dist/src/cli/utils/error-utils.d.ts +16 -0
  56. package/dist/src/cli/utils/error-utils.d.ts.map +1 -0
  57. package/dist/src/cli/utils/error-utils.js +48 -0
  58. package/dist/src/cli/utils/error-utils.js.map +1 -0
  59. package/dist/src/cli/utils/ipc-client.d.ts +80 -0
  60. package/dist/src/cli/utils/ipc-client.d.ts.map +1 -0
  61. package/dist/src/cli/utils/ipc-client.js +275 -0
  62. package/dist/src/cli/utils/ipc-client.js.map +1 -0
  63. package/dist/src/config/config-loader.d.ts +74 -0
  64. package/dist/src/config/config-loader.d.ts.map +1 -0
  65. package/dist/src/config/config-loader.js +229 -0
  66. package/dist/src/config/config-loader.js.map +1 -0
  67. package/dist/src/config/config-normalizer.d.ts +135 -0
  68. package/dist/src/config/config-normalizer.d.ts.map +1 -0
  69. package/dist/src/config/config-normalizer.js +309 -0
  70. package/dist/src/config/config-normalizer.js.map +1 -0
  71. package/dist/src/config/config-reporter.d.ts +183 -0
  72. package/dist/src/config/config-reporter.d.ts.map +1 -0
  73. package/dist/src/config/config-reporter.js +311 -0
  74. package/dist/src/config/config-reporter.js.map +1 -0
  75. package/dist/src/config/config-validator.d.ts +163 -0
  76. package/dist/src/config/config-validator.d.ts.map +1 -0
  77. package/dist/src/config/config-validator.js +489 -0
  78. package/dist/src/config/config-validator.js.map +1 -0
  79. package/dist/src/config/config-watcher.d.ts +161 -0
  80. package/dist/src/config/config-watcher.d.ts.map +1 -0
  81. package/dist/src/config/config-watcher.js +245 -0
  82. package/dist/src/config/config-watcher.js.map +1 -0
  83. package/dist/src/config/index.d.ts +36 -0
  84. package/dist/src/config/index.d.ts.map +1 -0
  85. package/dist/src/config/index.js +41 -0
  86. package/dist/src/config/index.js.map +1 -0
  87. package/dist/src/config/secure-config-loader.d.ts +77 -0
  88. package/dist/src/config/secure-config-loader.d.ts.map +1 -0
  89. package/dist/src/config/secure-config-loader.js +326 -0
  90. package/dist/src/config/secure-config-loader.js.map +1 -0
  91. package/dist/src/daemon/base-socket-connection.d.ts +66 -0
  92. package/dist/src/daemon/base-socket-connection.d.ts.map +1 -0
  93. package/dist/src/daemon/base-socket-connection.js +192 -0
  94. package/dist/src/daemon/base-socket-connection.js.map +1 -0
  95. package/dist/src/daemon/component-manager.d.ts +180 -0
  96. package/dist/src/daemon/component-manager.d.ts.map +1 -0
  97. package/dist/src/daemon/component-manager.js +794 -0
  98. package/dist/src/daemon/component-manager.js.map +1 -0
  99. package/dist/src/daemon/crash-recovery.d.ts +71 -0
  100. package/dist/src/daemon/crash-recovery.d.ts.map +1 -0
  101. package/dist/src/daemon/crash-recovery.js +282 -0
  102. package/dist/src/daemon/crash-recovery.js.map +1 -0
  103. package/dist/src/daemon/daemon-main.d.ts +18 -0
  104. package/dist/src/daemon/daemon-main.d.ts.map +1 -0
  105. package/dist/src/daemon/daemon-main.js +160 -0
  106. package/dist/src/daemon/daemon-main.js.map +1 -0
  107. package/dist/src/daemon/daemon-state-manager.d.ts +111 -0
  108. package/dist/src/daemon/daemon-state-manager.d.ts.map +1 -0
  109. package/dist/src/daemon/daemon-state-manager.js +194 -0
  110. package/dist/src/daemon/daemon-state-manager.js.map +1 -0
  111. package/dist/src/daemon/data-directory.d.ts +51 -0
  112. package/dist/src/daemon/data-directory.d.ts.map +1 -0
  113. package/dist/src/daemon/data-directory.js +136 -0
  114. package/dist/src/daemon/data-directory.js.map +1 -0
  115. package/dist/src/daemon/index.d.ts +20 -0
  116. package/dist/src/daemon/index.d.ts.map +1 -0
  117. package/dist/src/daemon/index.js +24 -0
  118. package/dist/src/daemon/index.js.map +1 -0
  119. package/dist/src/daemon/ipc-client-base.d.ts +153 -0
  120. package/dist/src/daemon/ipc-client-base.d.ts.map +1 -0
  121. package/dist/src/daemon/ipc-client-base.js +476 -0
  122. package/dist/src/daemon/ipc-client-base.js.map +1 -0
  123. package/dist/src/daemon/ipc-command-handler.d.ts +107 -0
  124. package/dist/src/daemon/ipc-command-handler.d.ts.map +1 -0
  125. package/dist/src/daemon/ipc-command-handler.js +483 -0
  126. package/dist/src/daemon/ipc-command-handler.js.map +1 -0
  127. package/dist/src/daemon/ipc-factory.d.ts +92 -0
  128. package/dist/src/daemon/ipc-factory.d.ts.map +1 -0
  129. package/dist/src/daemon/ipc-factory.js +210 -0
  130. package/dist/src/daemon/ipc-factory.js.map +1 -0
  131. package/dist/src/daemon/ipc-server-base.d.ts +158 -0
  132. package/dist/src/daemon/ipc-server-base.d.ts.map +1 -0
  133. package/dist/src/daemon/ipc-server-base.js +491 -0
  134. package/dist/src/daemon/ipc-server-base.js.map +1 -0
  135. package/dist/src/daemon/message-protocol.d.ts +132 -0
  136. package/dist/src/daemon/message-protocol.d.ts.map +1 -0
  137. package/dist/src/daemon/message-protocol.js +252 -0
  138. package/dist/src/daemon/message-protocol.js.map +1 -0
  139. package/dist/src/daemon/named-pipe-client.d.ts +61 -0
  140. package/dist/src/daemon/named-pipe-client.d.ts.map +1 -0
  141. package/dist/src/daemon/named-pipe-client.js +221 -0
  142. package/dist/src/daemon/named-pipe-client.js.map +1 -0
  143. package/dist/src/daemon/named-pipe-server.d.ts +40 -0
  144. package/dist/src/daemon/named-pipe-server.d.ts.map +1 -0
  145. package/dist/src/daemon/named-pipe-server.js +102 -0
  146. package/dist/src/daemon/named-pipe-server.js.map +1 -0
  147. package/dist/src/daemon/orphan-detector.d.ts +66 -0
  148. package/dist/src/daemon/orphan-detector.d.ts.map +1 -0
  149. package/dist/src/daemon/orphan-detector.js +208 -0
  150. package/dist/src/daemon/orphan-detector.js.map +1 -0
  151. package/dist/src/daemon/pid-manager.d.ts +49 -0
  152. package/dist/src/daemon/pid-manager.d.ts.map +1 -0
  153. package/dist/src/daemon/pid-manager.js +110 -0
  154. package/dist/src/daemon/pid-manager.js.map +1 -0
  155. package/dist/src/daemon/procman-daemon.d.ts +188 -0
  156. package/dist/src/daemon/procman-daemon.d.ts.map +1 -0
  157. package/dist/src/daemon/procman-daemon.js +802 -0
  158. package/dist/src/daemon/procman-daemon.js.map +1 -0
  159. package/dist/src/daemon/reconnection-system.d.ts +113 -0
  160. package/dist/src/daemon/reconnection-system.d.ts.map +1 -0
  161. package/dist/src/daemon/reconnection-system.js +223 -0
  162. package/dist/src/daemon/reconnection-system.js.map +1 -0
  163. package/dist/src/daemon/resource-manager.d.ts +204 -0
  164. package/dist/src/daemon/resource-manager.d.ts.map +1 -0
  165. package/dist/src/daemon/resource-manager.js +423 -0
  166. package/dist/src/daemon/resource-manager.js.map +1 -0
  167. package/dist/src/daemon/signal-handler.d.ts +58 -0
  168. package/dist/src/daemon/signal-handler.d.ts.map +1 -0
  169. package/dist/src/daemon/signal-handler.js +142 -0
  170. package/dist/src/daemon/signal-handler.js.map +1 -0
  171. package/dist/src/daemon/simple-resource-manager.d.ts +95 -0
  172. package/dist/src/daemon/simple-resource-manager.d.ts.map +1 -0
  173. package/dist/src/daemon/simple-resource-manager.js +180 -0
  174. package/dist/src/daemon/simple-resource-manager.js.map +1 -0
  175. package/dist/src/daemon/unix-socket-client.d.ts +69 -0
  176. package/dist/src/daemon/unix-socket-client.d.ts.map +1 -0
  177. package/dist/src/daemon/unix-socket-client.js +313 -0
  178. package/dist/src/daemon/unix-socket-client.js.map +1 -0
  179. package/dist/src/daemon/unix-socket-server.d.ts +61 -0
  180. package/dist/src/daemon/unix-socket-server.d.ts.map +1 -0
  181. package/dist/src/daemon/unix-socket-server.js +262 -0
  182. package/dist/src/daemon/unix-socket-server.js.map +1 -0
  183. package/dist/src/daemon/zombie-reaper.d.ts +83 -0
  184. package/dist/src/daemon/zombie-reaper.d.ts.map +1 -0
  185. package/dist/src/daemon/zombie-reaper.js +278 -0
  186. package/dist/src/daemon/zombie-reaper.js.map +1 -0
  187. package/dist/src/process-manager/index.d.ts +13 -0
  188. package/dist/src/process-manager/index.d.ts.map +1 -0
  189. package/dist/src/process-manager/index.js +11 -0
  190. package/dist/src/process-manager/index.js.map +1 -0
  191. package/dist/src/process-manager/interfaces/index.d.ts +31 -0
  192. package/dist/src/process-manager/interfaces/index.d.ts.map +1 -0
  193. package/dist/src/process-manager/interfaces/index.js +14 -0
  194. package/dist/src/process-manager/interfaces/index.js.map +1 -0
  195. package/dist/src/process-manager/interfaces/process-group.d.ts +200 -0
  196. package/dist/src/process-manager/interfaces/process-group.d.ts.map +1 -0
  197. package/dist/src/process-manager/interfaces/process-group.js +10 -0
  198. package/dist/src/process-manager/interfaces/process-group.js.map +1 -0
  199. package/dist/src/process-manager/interfaces/process-lifecycle.d.ts +97 -0
  200. package/dist/src/process-manager/interfaces/process-lifecycle.d.ts.map +1 -0
  201. package/dist/src/process-manager/interfaces/process-lifecycle.js +10 -0
  202. package/dist/src/process-manager/interfaces/process-lifecycle.js.map +1 -0
  203. package/dist/src/process-manager/interfaces/process-monitor.d.ts +118 -0
  204. package/dist/src/process-manager/interfaces/process-monitor.d.ts.map +1 -0
  205. package/dist/src/process-manager/interfaces/process-monitor.js +10 -0
  206. package/dist/src/process-manager/interfaces/process-monitor.js.map +1 -0
  207. package/dist/src/process-manager/interfaces/process-persistence.d.ts +125 -0
  208. package/dist/src/process-manager/interfaces/process-persistence.d.ts.map +1 -0
  209. package/dist/src/process-manager/interfaces/process-persistence.js +10 -0
  210. package/dist/src/process-manager/interfaces/process-persistence.js.map +1 -0
  211. package/dist/src/process-manager/managed-process-info.d.ts +307 -0
  212. package/dist/src/process-manager/managed-process-info.d.ts.map +1 -0
  213. package/dist/src/process-manager/managed-process-info.js +650 -0
  214. package/dist/src/process-manager/managed-process-info.js.map +1 -0
  215. package/dist/src/process-manager/process-group-manager.d.ts +103 -0
  216. package/dist/src/process-manager/process-group-manager.d.ts.map +1 -0
  217. package/dist/src/process-manager/process-group-manager.js +400 -0
  218. package/dist/src/process-manager/process-group-manager.js.map +1 -0
  219. package/dist/src/process-manager/process-lifecycle-manager.d.ts +68 -0
  220. package/dist/src/process-manager/process-lifecycle-manager.d.ts.map +1 -0
  221. package/dist/src/process-manager/process-lifecycle-manager.js +372 -0
  222. package/dist/src/process-manager/process-lifecycle-manager.js.map +1 -0
  223. package/dist/src/process-manager/process-manager.d.ts +296 -0
  224. package/dist/src/process-manager/process-manager.d.ts.map +1 -0
  225. package/dist/src/process-manager/process-manager.js +659 -0
  226. package/dist/src/process-manager/process-manager.js.map +1 -0
  227. package/dist/src/process-manager/process-monitor.d.ts +95 -0
  228. package/dist/src/process-manager/process-monitor.d.ts.map +1 -0
  229. package/dist/src/process-manager/process-monitor.js +357 -0
  230. package/dist/src/process-manager/process-monitor.js.map +1 -0
  231. package/dist/src/process-manager/process-persistence.d.ts +68 -0
  232. package/dist/src/process-manager/process-persistence.d.ts.map +1 -0
  233. package/dist/src/process-manager/process-persistence.js +364 -0
  234. package/dist/src/process-manager/process-persistence.js.map +1 -0
  235. package/dist/src/process-manager/utils/mutex.d.ts +82 -0
  236. package/dist/src/process-manager/utils/mutex.d.ts.map +1 -0
  237. package/dist/src/process-manager/utils/mutex.js +172 -0
  238. package/dist/src/process-manager/utils/mutex.js.map +1 -0
  239. package/dist/src/services/index.d.ts +8 -0
  240. package/dist/src/services/index.d.ts.map +1 -0
  241. package/dist/src/services/index.js +8 -0
  242. package/dist/src/services/index.js.map +1 -0
  243. package/dist/src/services/log-manager-config.d.ts +65 -0
  244. package/dist/src/services/log-manager-config.d.ts.map +1 -0
  245. package/dist/src/services/log-manager-config.js +145 -0
  246. package/dist/src/services/log-manager-config.js.map +1 -0
  247. package/dist/src/services/log-manager-factory.d.ts +134 -0
  248. package/dist/src/services/log-manager-factory.d.ts.map +1 -0
  249. package/dist/src/services/log-manager-factory.js +203 -0
  250. package/dist/src/services/log-manager-factory.js.map +1 -0
  251. package/dist/src/services/log-manager.d.ts +170 -0
  252. package/dist/src/services/log-manager.d.ts.map +1 -0
  253. package/dist/src/services/log-manager.js +1199 -0
  254. package/dist/src/services/log-manager.js.map +1 -0
  255. package/dist/src/services/log-path-validator.d.ts +121 -0
  256. package/dist/src/services/log-path-validator.d.ts.map +1 -0
  257. package/dist/src/services/log-path-validator.js +302 -0
  258. package/dist/src/services/log-path-validator.js.map +1 -0
  259. package/dist/src/services/process-log-integration.d.ts +62 -0
  260. package/dist/src/services/process-log-integration.d.ts.map +1 -0
  261. package/dist/src/services/process-log-integration.js +157 -0
  262. package/dist/src/services/process-log-integration.js.map +1 -0
  263. package/dist/src/shared/config.d.ts +67 -0
  264. package/dist/src/shared/config.d.ts.map +1 -0
  265. package/dist/src/shared/config.js +92 -0
  266. package/dist/src/shared/config.js.map +1 -0
  267. package/dist/src/shared/constants-streaming.d.ts +39 -0
  268. package/dist/src/shared/constants-streaming.d.ts.map +1 -0
  269. package/dist/src/shared/constants-streaming.js +39 -0
  270. package/dist/src/shared/constants-streaming.js.map +1 -0
  271. package/dist/src/shared/constants.d.ts +60 -0
  272. package/dist/src/shared/constants.d.ts.map +1 -0
  273. package/dist/src/shared/constants.js +71 -0
  274. package/dist/src/shared/constants.js.map +1 -0
  275. package/dist/src/shared/errors.d.ts +70 -0
  276. package/dist/src/shared/errors.d.ts.map +1 -0
  277. package/dist/src/shared/errors.js +101 -0
  278. package/dist/src/shared/errors.js.map +1 -0
  279. package/dist/src/shared/index.d.ts +14 -0
  280. package/dist/src/shared/index.d.ts.map +1 -0
  281. package/dist/src/shared/index.js +22 -0
  282. package/dist/src/shared/index.js.map +1 -0
  283. package/dist/src/shared/ipc.d.ts +402 -0
  284. package/dist/src/shared/ipc.d.ts.map +1 -0
  285. package/dist/src/shared/ipc.js +85 -0
  286. package/dist/src/shared/ipc.js.map +1 -0
  287. package/dist/src/shared/logger.d.ts +38 -0
  288. package/dist/src/shared/logger.d.ts.map +1 -0
  289. package/dist/src/shared/logger.js +139 -0
  290. package/dist/src/shared/logger.js.map +1 -0
  291. package/dist/src/shared/logs.d.ts +53 -0
  292. package/dist/src/shared/logs.d.ts.map +1 -0
  293. package/dist/src/shared/logs.js +26 -0
  294. package/dist/src/shared/logs.js.map +1 -0
  295. package/dist/src/shared/process.d.ts +102 -0
  296. package/dist/src/shared/process.d.ts.map +1 -0
  297. package/dist/src/shared/process.js +55 -0
  298. package/dist/src/shared/process.js.map +1 -0
  299. package/dist/src/shared/types.d.ts +15 -0
  300. package/dist/src/shared/types.d.ts.map +1 -0
  301. package/dist/src/shared/types.js +8 -0
  302. package/dist/src/shared/types.js.map +1 -0
  303. package/dist/src/types/index.d.ts +19 -0
  304. package/dist/src/types/index.d.ts.map +1 -0
  305. package/dist/src/types/index.js +5 -0
  306. package/dist/src/types/index.js.map +1 -0
  307. package/dist/src/utils/event-cleanup.d.ts +30 -0
  308. package/dist/src/utils/event-cleanup.d.ts.map +1 -0
  309. package/dist/src/utils/event-cleanup.js +32 -0
  310. package/dist/src/utils/event-cleanup.js.map +1 -0
  311. package/dist/src/utils/memory/memory-monitor.d.ts +126 -0
  312. package/dist/src/utils/memory/memory-monitor.d.ts.map +1 -0
  313. package/dist/src/utils/memory/memory-monitor.js +246 -0
  314. package/dist/src/utils/memory/memory-monitor.js.map +1 -0
  315. package/package.json +74 -0
@@ -0,0 +1,307 @@
1
+ /**
2
+ * ManagedProcessInfo - Individual process information management
3
+ *
4
+ * This class manages the information and statistics for a single process,
5
+ * including uptime tracking, restart counting, and state change recording.
6
+ */
7
+ import { EventEmitter } from 'events';
8
+ import { ProcessInfo, ProcessStatus, ProcessStateChange, MemorySample, CPUSample, PersistedManagedProcessInfo } from '../shared/process.js';
9
+ import { ProcessConfig } from './process-manager.js';
10
+ /**
11
+ * Process statistics for tracking performance and behavior
12
+ */
13
+ export interface ProcessStatistics {
14
+ /** Start time timestamp */
15
+ startedAt: number | null;
16
+ /** Last status change timestamp */
17
+ lastStatusChange: number;
18
+ /** Total restart count */
19
+ restarts: number;
20
+ /** Last restart timestamp */
21
+ lastRestart: number | null;
22
+ /** Memory usage history (last 10 measurements) - DEPRECATED: use memoryHistory instead */
23
+ memoryHistory: number[];
24
+ /** CPU usage history (last 10 measurements) - DEPRECATED: use cpuHistory instead */
25
+ cpuHistory: number[];
26
+ /** Current memory usage in bytes */
27
+ currentMemory: number;
28
+ /** Current CPU usage percentage */
29
+ currentCpu: number;
30
+ /** Consecutive failure count for restart control */
31
+ consecutiveFailures: number;
32
+ /** Timestamp of first failure in current window */
33
+ firstFailureTime: number | null;
34
+ /** Flag to indicate auto-restart is enabled */
35
+ autoRestartEnabled: boolean;
36
+ /** Next restart delay in milliseconds */
37
+ nextRestartDelay: number;
38
+ }
39
+ /**
40
+ * Events emitted by ManagedProcessInfo
41
+ */
42
+ export interface ManagedProcessEvents {
43
+ /** Process status changed */
44
+ 'status-change': (newStatus: ProcessStatus, oldStatus: ProcessStatus) => void;
45
+ /** Process started */
46
+ start: (pid: number) => void;
47
+ /** Process stopped */
48
+ stop: (exitCode: number | null) => void;
49
+ /** Process restarted */
50
+ restart: (restartCount: number) => void;
51
+ /** Process memory limit exceeded */
52
+ 'memory-limit': (memoryUsage: number, limit: number) => void;
53
+ /** Process error occurred */
54
+ error: (error: Error) => void;
55
+ }
56
+ /**
57
+ * Manages information and statistics for a single process
58
+ */
59
+ export declare class ManagedProcessInfo extends EventEmitter {
60
+ private readonly config;
61
+ private status;
62
+ private pid;
63
+ private statistics;
64
+ private stateHistory;
65
+ private memoryHistoryDetailed;
66
+ private cpuHistoryDetailed;
67
+ private lastCrashTime;
68
+ constructor(config: ProcessConfig);
69
+ /**
70
+ * Update process configuration
71
+ * @param newConfig New configuration
72
+ */
73
+ updateConfig(newConfig: ProcessConfig): void;
74
+ /**
75
+ * Get process name
76
+ * @returns Process name
77
+ */
78
+ getName(): string;
79
+ /**
80
+ * Get process namespace
81
+ * @returns Process namespace
82
+ */
83
+ getNamespace(): string;
84
+ /**
85
+ * Get process configuration
86
+ * @returns Process configuration (read-only copy)
87
+ */
88
+ getConfig(): Readonly<ProcessConfig>;
89
+ /**
90
+ * Get current process information
91
+ * @returns Process information
92
+ */
93
+ getProcessInfo(): ProcessInfo;
94
+ /**
95
+ * Get current process information (alias for getProcessInfo)
96
+ * @returns Process information
97
+ */
98
+ toProcessInfo(): ProcessInfo;
99
+ /**
100
+ * Get detailed process statistics
101
+ * @returns Process statistics
102
+ */
103
+ getStatistics(): Readonly<ProcessStatistics>;
104
+ /**
105
+ * Get current status
106
+ * @returns Current process status
107
+ */
108
+ getStatus(): ProcessStatus;
109
+ /**
110
+ * Set process status
111
+ * @param newStatus New status
112
+ * @param emitEvent Whether to emit status change event (default: true)
113
+ * @param reason Optional reason for the status change
114
+ */
115
+ setStatus(newStatus: ProcessStatus, emitEvent?: boolean, reason?: string): void;
116
+ /**
117
+ * Get current PID
118
+ * @returns Process ID or null if not running
119
+ */
120
+ getPid(): number | null;
121
+ /**
122
+ * Set process PID
123
+ * @param pid Process ID
124
+ */
125
+ setPid(pid: number | null): void;
126
+ /**
127
+ * Calculate process uptime in milliseconds
128
+ * @returns Uptime in milliseconds
129
+ */
130
+ calculateUptime(): number;
131
+ /**
132
+ * Update memory usage
133
+ * @param memoryUsage Memory usage in bytes
134
+ */
135
+ updateMemoryUsage(memoryUsage: number): void;
136
+ /**
137
+ * Update CPU usage
138
+ * @param cpuUsage CPU usage percentage
139
+ */
140
+ updateCpuUsage(cpuUsage: number): void;
141
+ /**
142
+ * Get average memory usage from history
143
+ * @returns Average memory usage in bytes
144
+ */
145
+ getAverageMemoryUsage(): number;
146
+ /**
147
+ * Get average CPU usage from history
148
+ * @returns Average CPU usage percentage
149
+ */
150
+ getAverageCpuUsage(): number;
151
+ /**
152
+ * Get current memory usage
153
+ * @returns Current memory usage in bytes
154
+ */
155
+ getMemoryUsage(): number;
156
+ /**
157
+ * Record a restart
158
+ */
159
+ recordRestart(): void;
160
+ /**
161
+ * Increment restart count (alias for recordRestart)
162
+ */
163
+ incrementRestarts(): void;
164
+ /**
165
+ * Reset restart count
166
+ */
167
+ resetRestartCount(): void;
168
+ /**
169
+ * Get time since last restart
170
+ * @returns Time since last restart in milliseconds, or null if never restarted
171
+ */
172
+ getTimeSinceLastRestart(): number | null;
173
+ /**
174
+ * Emit start event
175
+ * @param pid Process ID
176
+ */
177
+ emitStart(pid: number): void;
178
+ /**
179
+ * Emit stop event
180
+ * @param exitCode Exit code
181
+ */
182
+ emitStop(exitCode: number | null): void;
183
+ /**
184
+ * Emit error event
185
+ * @param error Error object
186
+ */
187
+ emitError(error: Error): void;
188
+ /**
189
+ * Check if process should be monitored
190
+ * @returns True if process is in a monitorable state
191
+ */
192
+ isMonitorable(): boolean;
193
+ /**
194
+ * Check if process is running
195
+ * @returns True if process is running
196
+ */
197
+ isRunning(): boolean;
198
+ /**
199
+ * Check if process is stopped
200
+ * @returns True if process is stopped
201
+ */
202
+ isStopped(): boolean;
203
+ /**
204
+ * Check if process has memory limit configured
205
+ * @returns True if memory limit is configured
206
+ */
207
+ hasMemoryLimit(): boolean;
208
+ /**
209
+ * Get memory limit in bytes
210
+ * @returns Memory limit in bytes or undefined if not configured
211
+ */
212
+ getMemoryLimit(): number | undefined;
213
+ /**
214
+ * Check if auto-restart is enabled
215
+ * @returns True if auto-restart is enabled
216
+ */
217
+ isAutoRestartEnabled(): boolean;
218
+ /**
219
+ * Enable or disable auto-restart
220
+ * @param enabled Auto-restart enabled flag
221
+ */
222
+ setAutoRestartEnabled(enabled: boolean): void;
223
+ /**
224
+ * Record a restart failure
225
+ */
226
+ recordRestartFailure(): void;
227
+ /**
228
+ * Record a successful restart (reset failure counters)
229
+ */
230
+ recordRestartSuccess(): void;
231
+ /**
232
+ * Reset restart failure counters
233
+ */
234
+ resetRestartFailures(): void;
235
+ /**
236
+ * Get consecutive failure count
237
+ * @returns Number of consecutive failures
238
+ */
239
+ getConsecutiveFailures(): number;
240
+ /**
241
+ * Get next restart delay
242
+ * @returns Next restart delay in milliseconds
243
+ */
244
+ getNextRestartDelay(): number;
245
+ /**
246
+ * Calculate next restart delay using exponential backoff
247
+ */
248
+ private calculateNextRestartDelay;
249
+ /**
250
+ * Check if restart should be attempted based on failure count
251
+ * @returns True if restart should be attempted
252
+ */
253
+ shouldRestart(): boolean;
254
+ /**
255
+ * Check if this is an unexpected exit (crash detection)
256
+ * @param exitCode Process exit code
257
+ * @param signal Process exit signal
258
+ * @returns True if this is considered an unexpected exit
259
+ */
260
+ isUnexpectedExit(exitCode: number | null, signal: string | null): boolean;
261
+ /**
262
+ * Clean up resources (non-destructive, maintains data for persistence)
263
+ */
264
+ cleanup(): void;
265
+ /**
266
+ * Dispose of all resources (destructive, clears all data)
267
+ */
268
+ dispose(): void;
269
+ /**
270
+ * Add a state change to history
271
+ * @param from Previous status
272
+ * @param to New status
273
+ * @param reason Optional reason for change
274
+ */
275
+ private addStateChange;
276
+ /**
277
+ * Get state change history
278
+ * @returns Array of state changes
279
+ */
280
+ getStateHistory(): Readonly<ProcessStateChange[]>;
281
+ /**
282
+ * Get memory usage history with timestamps
283
+ * @returns Array of memory samples
284
+ */
285
+ getMemoryHistory(): Readonly<MemorySample[]>;
286
+ /**
287
+ * Get CPU usage history with timestamps
288
+ * @returns Array of CPU samples
289
+ */
290
+ getCpuHistory(): Readonly<CPUSample[]>;
291
+ /**
292
+ * Get last crash time
293
+ * @returns Last crash timestamp or null if never crashed
294
+ */
295
+ getLastCrashTime(): number | null;
296
+ /**
297
+ * Serialize process information for persistence
298
+ * @returns Serializable process information
299
+ */
300
+ toJSON(): PersistedManagedProcessInfo;
301
+ /**
302
+ * Restore process state from persisted data
303
+ * @param persistedState Previously saved state
304
+ */
305
+ restoreState(persistedState: Omit<PersistedManagedProcessInfo, 'name'>): void;
306
+ }
307
+ //# sourceMappingURL=managed-process-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-process-info.d.ts","sourceRoot":"","sources":["../../../src/process-manager/managed-process-info.ts"],"names":[],"mappings":"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"}