@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 @@
1
+ {"version":3,"file":"unix-socket-client.js","sourceRoot":"","sources":["../../../src/daemon/unix-socket-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Unix Domain Socket Server Implementation
3
+ *
4
+ * Concrete implementation of IPC server using Unix Domain Sockets.
5
+ * Supports Unix-like systems (Linux, macOS).
6
+ */
7
+ import { IPCServerBase } from './ipc-server-base.js';
8
+ import type { IPCServerConfig } from '../shared/ipc.js';
9
+ /**
10
+ * Unix Domain Socket Server
11
+ */
12
+ export declare class UnixSocketServer extends IPCServerBase {
13
+ private server;
14
+ private readonly socketPath;
15
+ constructor(config?: IPCServerConfig);
16
+ /**
17
+ * Start the Unix socket server
18
+ */
19
+ protected startServer(): Promise<void>;
20
+ /**
21
+ * Stop the Unix socket server
22
+ */
23
+ protected stopServer(): Promise<void>;
24
+ /**
25
+ * Get the socket path
26
+ */
27
+ getSocketPath(): string;
28
+ /**
29
+ * Check if socket file exists
30
+ */
31
+ socketExists(): Promise<boolean>;
32
+ /**
33
+ * Set up server event handlers
34
+ */
35
+ private setupServerHandlers;
36
+ /**
37
+ * Set socket file permissions (0600 - owner read/write only)
38
+ */
39
+ private setSocketPermissions;
40
+ /**
41
+ * Clean up socket file
42
+ */
43
+ private cleanupSocketFile;
44
+ /**
45
+ * Override dispose to clean up server-specific resources
46
+ */
47
+ protected disposeCore(): Promise<void>;
48
+ /**
49
+ * Get server-specific resource stats
50
+ */
51
+ getServerStats(): {
52
+ socketPath: string;
53
+ socketExists: boolean;
54
+ serverListening: boolean;
55
+ } & ReturnType<typeof this.getResourceStats>;
56
+ /**
57
+ * Expand tilde in file paths
58
+ */
59
+ private expandPath;
60
+ }
61
+ //# sourceMappingURL=unix-socket-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unix-socket-server.d.ts","sourceRoot":"","sources":["../../../src/daemon/unix-socket-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAaxD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,aAAa;IACjD,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,MAAM,GAAE,eAA8B;IAkBlD;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA2H5C;;OAEG;cACa,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC3C;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAStC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAsB3B;;OAEG;YACW,oBAAoB;IAWlC;;OAEG;YACW,iBAAiB;IAQ/B;;OAEG;cACa,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5C;;OAEG;IACH,cAAc,IAAI;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,OAAO,CAAC;KAC1B,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAS5C;;OAEG;IACH,OAAO,CAAC,UAAU;CAWnB"}
@@ -0,0 +1,262 @@
1
+ /**
2
+ * Unix Domain Socket Server Implementation
3
+ *
4
+ * Concrete implementation of IPC server using Unix Domain Sockets.
5
+ * Supports Unix-like systems (Linux, macOS).
6
+ */
7
+ import * as net from 'net';
8
+ import * as fs from 'fs/promises';
9
+ import * as path from 'path';
10
+ import * as os from 'os';
11
+ import { setTimeout, clearTimeout } from 'timers';
12
+ import { IPCServerBase } from './ipc-server-base.js';
13
+ import { BaseSocketConnection } from './base-socket-connection.js';
14
+ import { SOCKET_PERMISSIONS } from '../shared/constants.js';
15
+ /**
16
+ * Unix Socket connection implementation
17
+ */
18
+ class UnixSocketConnection extends BaseSocketConnection {
19
+ constructor(socket) {
20
+ super(socket);
21
+ }
22
+ }
23
+ /**
24
+ * Unix Domain Socket Server
25
+ */
26
+ export class UnixSocketServer extends IPCServerBase {
27
+ server = null;
28
+ socketPath;
29
+ constructor(config = { path: '' }) {
30
+ super(config);
31
+ // Determine socket path - priority: env var > config.socketPath > config.path > default
32
+ this.socketPath =
33
+ process.env.PROCMAN_SOCKET_PATH ||
34
+ config.socketPath ||
35
+ config.path ||
36
+ this.expandPath('~/.masuidrive-procman/procman.sock');
37
+ // Validate the expanded path
38
+ if (this.socketPath.includes('~')) {
39
+ throw new Error(`Failed to expand socket path: ${this.socketPath}. HOME environment variable may not be set.`);
40
+ }
41
+ }
42
+ /**
43
+ * Start the Unix socket server
44
+ */
45
+ async startServer() {
46
+ const startTime = Date.now();
47
+ console.error('[DEBUG-UNIX-SOCKET] Starting Unix socket server...');
48
+ console.error('[DEBUG-UNIX-SOCKET] Socket configuration:', JSON.stringify({
49
+ socketPath: this.socketPath,
50
+ processId: process.pid,
51
+ timestamp: new Date().toISOString(),
52
+ environment: {
53
+ HOME: process.env.HOME,
54
+ PROCMAN_SOCKET_PATH: process.env.PROCMAN_SOCKET_PATH,
55
+ },
56
+ }, null, 2));
57
+ // Ensure directory exists
58
+ const socketDir = path.dirname(this.socketPath);
59
+ console.error('[DEBUG-UNIX-SOCKET] Creating socket directory:', socketDir);
60
+ await fs.mkdir(socketDir, { recursive: true });
61
+ console.error('[DEBUG-UNIX-SOCKET] ✓ Socket directory ready');
62
+ // Remove existing socket file if it exists
63
+ try {
64
+ console.error('[DEBUG-UNIX-SOCKET] Removing existing socket file...');
65
+ await fs.unlink(this.socketPath);
66
+ console.error('[DEBUG-UNIX-SOCKET] ✓ Existing socket file removed');
67
+ }
68
+ catch (error) {
69
+ console.error('[DEBUG-UNIX-SOCKET] No existing socket file to remove (normal):',
70
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
71
+ error?.code);
72
+ }
73
+ // Create server
74
+ console.error('[DEBUG-UNIX-SOCKET] Creating net.Server instance...');
75
+ this.server = net.createServer();
76
+ console.error('[DEBUG-UNIX-SOCKET] ✓ Server instance created');
77
+ // Set up server event handlers
78
+ console.error('[DEBUG-UNIX-SOCKET] Setting up server event handlers...');
79
+ this.setupServerHandlers();
80
+ console.error('[DEBUG-UNIX-SOCKET] ✓ Event handlers configured');
81
+ // Start listening
82
+ console.error('[DEBUG-UNIX-SOCKET] Starting to listen on socket...');
83
+ return new Promise((resolve, reject) => {
84
+ // Add error handler before listening
85
+ const errorHandler = (error) => {
86
+ const listenTime = Date.now() - startTime;
87
+ console.error('[DEBUG-UNIX-SOCKET] ❌ Socket listen error');
88
+ console.error('[DEBUG-UNIX-SOCKET] Listen error details:', JSON.stringify({
89
+ listenTimeMs: listenTime,
90
+ socketPath: this.socketPath,
91
+ errorMessage: error.message,
92
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
93
+ errorCode: error?.code,
94
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
95
+ errorErrno: error?.errno,
96
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
97
+ errorSyscall: error?.syscall,
98
+ }, null, 2));
99
+ this.server.removeListener('error', errorHandler);
100
+ reject(error);
101
+ };
102
+ this.server.on('error', errorHandler);
103
+ console.error('[DEBUG-UNIX-SOCKET] Calling listen() on socket path...');
104
+ this.server.listen(this.socketPath, () => {
105
+ const listenTime = Date.now() - startTime;
106
+ console.error('[DEBUG-UNIX-SOCKET] ✓ Socket listen() callback fired');
107
+ console.error('[DEBUG-UNIX-SOCKET] Listen success stats:', JSON.stringify({
108
+ listenTimeMs: listenTime,
109
+ socketPath: this.socketPath,
110
+ }, null, 2));
111
+ // Remove error handler after successful listen
112
+ this.server.removeListener('error', errorHandler);
113
+ console.error('[DEBUG-UNIX-SOCKET] Setting socket permissions...');
114
+ this.setSocketPermissions()
115
+ .then(() => {
116
+ const totalTime = Date.now() - startTime;
117
+ console.error('[DEBUG-UNIX-SOCKET] ✓ UNIX SOCKET SERVER READY');
118
+ console.error('[DEBUG-UNIX-SOCKET] Final socket stats:', JSON.stringify({
119
+ totalStartupTimeMs: totalTime,
120
+ socketPath: this.socketPath,
121
+ socketExists: true, // At this point it should exist
122
+ }, null, 2));
123
+ resolve();
124
+ })
125
+ .catch(reject);
126
+ });
127
+ });
128
+ }
129
+ /**
130
+ * Stop the Unix socket server
131
+ */
132
+ async stopServer() {
133
+ if (!this.server) {
134
+ return;
135
+ }
136
+ return new Promise((resolve, reject) => {
137
+ // Set timeout to prevent hanging
138
+ const timeout = setTimeout(() => {
139
+ this.server = null;
140
+ resolve();
141
+ }, 5000);
142
+ this.server.close((error) => {
143
+ clearTimeout(timeout);
144
+ if (error) {
145
+ reject(error);
146
+ }
147
+ else {
148
+ // Clean up socket file
149
+ this.cleanupSocketFile()
150
+ .then(() => {
151
+ this.server = null;
152
+ resolve();
153
+ })
154
+ .catch(() => {
155
+ // Ignore cleanup errors
156
+ this.server = null;
157
+ resolve();
158
+ });
159
+ }
160
+ });
161
+ });
162
+ }
163
+ /**
164
+ * Get the socket path
165
+ */
166
+ getSocketPath() {
167
+ return this.socketPath;
168
+ }
169
+ /**
170
+ * Check if socket file exists
171
+ */
172
+ async socketExists() {
173
+ try {
174
+ await fs.access(this.socketPath);
175
+ return true;
176
+ }
177
+ catch {
178
+ return false;
179
+ }
180
+ }
181
+ /**
182
+ * Set up server event handlers
183
+ */
184
+ setupServerHandlers() {
185
+ if (!this.server) {
186
+ return;
187
+ }
188
+ this.server.on('connection', (socket) => {
189
+ // Check connection limit immediately at socket level
190
+ if (this.connections.size >= this.config.maxConnections) {
191
+ // Log rejection for debugging if needed
192
+ // console.error(`[DEBUG-CONNECTION-LIMIT] Socket-level limit check: connections=${this.connections.size}, max=${this.config.maxConnections}, rejecting socket`);
193
+ // Immediately destroy socket at TCP level (no graceful end, immediate destroy)
194
+ socket.destroy();
195
+ return;
196
+ }
197
+ const connection = new UnixSocketConnection(socket);
198
+ this.setupConnectionEvents(connection);
199
+ });
200
+ this.setupCommonServerEvents(this.server);
201
+ }
202
+ /**
203
+ * Set socket file permissions (0600 - owner read/write only)
204
+ */
205
+ async setSocketPermissions() {
206
+ try {
207
+ // Check if socket file exists before trying to set permissions
208
+ await fs.access(this.socketPath, fs.constants.F_OK);
209
+ await fs.chmod(this.socketPath, SOCKET_PERMISSIONS);
210
+ }
211
+ catch (error) {
212
+ // Log warning but don't fail - socket permissions may not be critical in test environments
213
+ console.warn(`Failed to set socket permissions: ${error}`);
214
+ }
215
+ }
216
+ /**
217
+ * Clean up socket file
218
+ */
219
+ async cleanupSocketFile() {
220
+ try {
221
+ await fs.unlink(this.socketPath);
222
+ }
223
+ catch {
224
+ // Ignore errors - file might not exist
225
+ }
226
+ }
227
+ /**
228
+ * Override dispose to clean up server-specific resources
229
+ */
230
+ async disposeCore() {
231
+ // Clean up socket file first
232
+ await this.cleanupSocketFile();
233
+ // Call parent dispose
234
+ await super.disposeCore();
235
+ }
236
+ /**
237
+ * Get server-specific resource stats
238
+ */
239
+ getServerStats() {
240
+ return {
241
+ ...this.getResourceStats(),
242
+ socketPath: this.socketPath,
243
+ socketExists: false, // This would need to be checked asynchronously
244
+ serverListening: !!this.server?.listening,
245
+ };
246
+ }
247
+ /**
248
+ * Expand tilde in file paths
249
+ */
250
+ expandPath(filePath) {
251
+ if (filePath.startsWith('~/')) {
252
+ // Enhanced HOME detection: process.env.HOME || os.homedir()
253
+ const homeDir = process.env.HOME || os.homedir();
254
+ if (!homeDir) {
255
+ throw new Error('Unable to resolve home directory for socket path');
256
+ }
257
+ return path.join(homeDir, filePath.slice(2));
258
+ }
259
+ return filePath;
260
+ }
261
+ }
262
+ //# sourceMappingURL=unix-socket-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unix-socket-server.js","sourceRoot":"","sources":["../../../src/daemon/unix-socket-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * ZombieReaper - Handles zombie process cleanup
3
+ *
4
+ * This class is responsible for:
5
+ * - Detecting zombie processes in the system
6
+ * - Reaping zombie child processes
7
+ * - Preventing zombie accumulation
8
+ *
9
+ * Following SOLID principles:
10
+ * - Single Responsibility: Only handles zombie process cleanup
11
+ * - Interface Segregation: Clean, focused interface
12
+ * - Dependency Inversion: Can be injected as a dependency
13
+ */
14
+ import { EventEmitter } from 'events';
15
+ export interface ZombieInfo {
16
+ pid: number;
17
+ ppid: number;
18
+ command: string;
19
+ state: 'Z' | 'zombie' | 'defunct';
20
+ }
21
+ export interface IZombieReaper {
22
+ startReaping(intervalMs?: number): void;
23
+ stopReaping(): void;
24
+ detectZombies(): Promise<ZombieInfo[]>;
25
+ reapZombies(): Promise<number>;
26
+ isZombie(pid: number): Promise<boolean>;
27
+ }
28
+ export declare class ZombieReaper extends EventEmitter implements IZombieReaper {
29
+ private reapInterval;
30
+ private isReaping;
31
+ private readonly maxReapAttempts;
32
+ private sigchldHandler;
33
+ constructor();
34
+ /**
35
+ * Set up SIGCHLD handler to automatically reap children
36
+ */
37
+ private setupSignalHandlers;
38
+ /**
39
+ * Clean up signal handlers
40
+ */
41
+ private cleanupSignalHandlers;
42
+ /**
43
+ * Handle SIGCHLD signal - called when a child process dies
44
+ */
45
+ private handleSigchld;
46
+ /**
47
+ * Start automatic zombie reaping
48
+ */
49
+ startReaping(intervalMs?: number): void;
50
+ /**
51
+ * Stop automatic zombie reaping
52
+ */
53
+ stopReaping(): void;
54
+ /**
55
+ * Detect zombie processes in the system
56
+ */
57
+ detectZombies(): Promise<ZombieInfo[]>;
58
+ /**
59
+ * Check if a specific process is a zombie
60
+ */
61
+ isZombie(pid: number): Promise<boolean>;
62
+ /**
63
+ * Reap zombie processes
64
+ */
65
+ reapZombies(): Promise<number>;
66
+ /**
67
+ * Reap a specific child process
68
+ */
69
+ private reapChild;
70
+ /**
71
+ * Reap any terminated children that haven't been reaped yet
72
+ */
73
+ private reapTerminatedChildren;
74
+ /**
75
+ * Monitor system for zombie accumulation
76
+ */
77
+ monitorZombieCount(): Promise<number>;
78
+ /**
79
+ * Clean up resources on shutdown
80
+ */
81
+ cleanup(): void;
82
+ }
83
+ //# sourceMappingURL=zombie-reaper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zombie-reaper.d.ts","sourceRoot":"","sources":["../../../src/daemon/zombie-reaper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAMtC,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,GAAG,GAAG,QAAQ,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,WAAW,IAAI,IAAI,CAAC;IACpB,aAAa,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACvC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACzC;AAED,qBAAa,YAAa,SAAQ,YAAa,YAAW,aAAa;IACrE,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAK;IACrC,OAAO,CAAC,cAAc,CAA6B;;IAUnD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,YAAY,CAAC,UAAU,SAAQ,GAAG,IAAI;IAiCtC;;OAEG;IACH,WAAW,IAAI,IAAI;IAqBnB;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAqD5C;;OAEG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW7C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAiDpC;;OAEG;YACW,SAAS;IAoBvB;;OAEG;YACW,sBAAsB;IA6BpC;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAc3C;;OAEG;IACH,OAAO,IAAI,IAAI;CAIhB"}