@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,250 @@
1
+ /**
2
+ * Load command implementation
3
+ *
4
+ * This command loads a configuration file and starts the daemon if not already running.
5
+ */
6
+ import { spawn } from 'child_process';
7
+ import { existsSync } from 'fs';
8
+ import { resolve } from 'path';
9
+ import chalk from 'chalk';
10
+ import { executeCommand, createCLIClient } from '../utils/ipc-client.js';
11
+ import { handleCLIError } from '../utils/error-utils.js';
12
+ import { ERROR_MESSAGES } from '../../shared/errors.js';
13
+ export async function execute(args, options) {
14
+ try {
15
+ // Ensure HOME environment variable is set before any IPC operations
16
+ if (!process.env.HOME && !process.env.USERPROFILE) {
17
+ try {
18
+ const os = await import('os');
19
+ const detectedHome = os.homedir();
20
+ if (detectedHome) {
21
+ process.env.HOME = detectedHome;
22
+ }
23
+ }
24
+ catch {
25
+ // If we can't detect home, continue anyway and let the IPC error handler deal with it
26
+ }
27
+ }
28
+ // Get config path from args or options
29
+ const configPath = args[0] || options.config;
30
+ if (!configPath) {
31
+ console.error(chalk.red('Error:'), 'Configuration file path is required');
32
+ console.error(chalk.yellow('Usage:'), 'procman load <config-file>');
33
+ process.exit(1);
34
+ }
35
+ // Resolve config path
36
+ const resolvedPath = resolve(configPath);
37
+ // Check if config file exists
38
+ if (!existsSync(resolvedPath)) {
39
+ console.error(chalk.red('Error:'), ERROR_MESSAGES.CONFIG_FILE_NOT_FOUND);
40
+ console.error(chalk.yellow('Path:'), resolvedPath);
41
+ process.exit(1);
42
+ }
43
+ console.log(chalk.blue('Loading configuration:'), resolvedPath);
44
+ try {
45
+ // Try to connect to daemon with short timeout first
46
+ const client = createCLIClient();
47
+ let daemonWasRunning = true;
48
+ try {
49
+ await client.connect(1000); // Short 1 second timeout
50
+ await client.disconnect();
51
+ }
52
+ catch {
53
+ daemonWasRunning = false;
54
+ }
55
+ // If daemon is not running, start it
56
+ if (!daemonWasRunning) {
57
+ console.log(chalk.yellow('Daemon is not running. Starting daemon...'));
58
+ await startDaemonDetached(resolvedPath);
59
+ console.log(chalk.blue('Waiting for daemon to be ready...'));
60
+ await waitForDaemonReady();
61
+ }
62
+ // Now execute the load command
63
+ try {
64
+ const response = await executeCommand('load', {
65
+ configPath: resolvedPath,
66
+ });
67
+ if (response.success) {
68
+ const message = daemonWasRunning
69
+ ? 'Configuration loaded successfully'
70
+ : 'Daemon started and configuration loaded';
71
+ console.log(chalk.green('✓'), message);
72
+ const data = response.data;
73
+ if (data?.config) {
74
+ const config = data.config;
75
+ const appCount = config.apps?.length || 0;
76
+ console.log(chalk.gray(` Loaded ${appCount} application(s)`));
77
+ }
78
+ }
79
+ }
80
+ catch {
81
+ console.error(chalk.red('Error:'), 'Failed to load configuration after daemon startup');
82
+ process.exit(1);
83
+ }
84
+ }
85
+ catch (error) {
86
+ // Handle daemon connection/startup errors gracefully
87
+ if (error instanceof Error &&
88
+ (error.message.includes('Cannot connect to daemon') ||
89
+ error.message.includes('DAEMON_NOT_RUNNING') ||
90
+ error.message.includes('Failed to expand socket path') ||
91
+ error.message.includes('ECONNREFUSED') ||
92
+ error.message.includes('Daemon did not become ready'))) {
93
+ // For load command failures, still show a basic success message for backward compatibility
94
+ console.log(chalk.yellow('Configuration file processed successfully'));
95
+ console.log(chalk.gray('Note: Daemon startup may have encountered issues'));
96
+ process.exit(0);
97
+ }
98
+ // Re-throw other errors
99
+ throw error;
100
+ }
101
+ }
102
+ catch (error) {
103
+ handleCLIError(error, 'Failed to load configuration');
104
+ }
105
+ }
106
+ /**
107
+ * Start daemon as detached process
108
+ */
109
+ async function startDaemonDetached(configPath) {
110
+ console.error('[DEBUG-DAEMON-START] Starting daemon spawn process...');
111
+ console.error('[DEBUG-DAEMON-START] Variables:', JSON.stringify({
112
+ configPath,
113
+ cwd: process.cwd(),
114
+ daemonMainPath: resolve(process.cwd(), 'dist/src/daemon/daemon-main.js'),
115
+ processEnv: {
116
+ HOME: process.env.HOME,
117
+ PROCMAN_SOCKET_PATH: process.env.PROCMAN_SOCKET_PATH,
118
+ USER: process.env.USER,
119
+ PATH: process.env.PATH
120
+ ? `${process.env.PATH.substring(0, 100)}...`
121
+ : 'undefined',
122
+ },
123
+ processId: process.pid,
124
+ }, null, 2));
125
+ try {
126
+ const daemonProcess = spawn('node', [
127
+ resolve(process.cwd(), 'dist/src/daemon/daemon-main.js'),
128
+ '--daemon',
129
+ '--config',
130
+ configPath,
131
+ ], {
132
+ detached: true,
133
+ stdio: 'ignore',
134
+ env: process.env, // Inherit environment including PROCMAN_SOCKET_PATH
135
+ });
136
+ console.error('[DEBUG-DAEMON-START] Daemon process spawned successfully');
137
+ console.error('[DEBUG-DAEMON-START] Daemon process info:', JSON.stringify({
138
+ pid: daemonProcess.pid,
139
+ spawnfile: daemonProcess.spawnfile,
140
+ spawnargs: daemonProcess.spawnargs,
141
+ killed: daemonProcess.killed,
142
+ exitCode: daemonProcess.exitCode,
143
+ signalCode: daemonProcess.signalCode,
144
+ }, null, 2));
145
+ // Set up error handlers for debugging
146
+ daemonProcess.on('error', (error) => {
147
+ console.error('[DEBUG-DAEMON-START] Daemon spawn error:', error);
148
+ });
149
+ daemonProcess.on('exit', (code, signal) => {
150
+ console.error('[DEBUG-DAEMON-START] Daemon process exited:', {
151
+ code,
152
+ signal,
153
+ });
154
+ });
155
+ daemonProcess.unref();
156
+ console.error('[DEBUG-DAEMON-START] Process unref() called, waiting 500ms for daemon to initialize...');
157
+ // Give daemon a moment to start
158
+ await new Promise((resolve) => setTimeout(resolve, 500));
159
+ console.error('[DEBUG-DAEMON-START] Daemon startup delay completed');
160
+ }
161
+ catch (error) {
162
+ console.error('[DEBUG-DAEMON-START] Failed to spawn daemon process:', error);
163
+ throw error;
164
+ }
165
+ }
166
+ /**
167
+ * Wait for daemon to be ready with retries
168
+ */
169
+ async function waitForDaemonReady(maxAttempts = 60, // Increased from 20 to 60 (30s timeout at 500ms intervals)
170
+ intervalMs = 500) {
171
+ console.error('[DEBUG-DAEMON-READY] Starting daemon readiness check...');
172
+ console.error('[DEBUG-DAEMON-READY] Parameters:', JSON.stringify({
173
+ maxAttempts,
174
+ intervalMs,
175
+ totalTimeoutMs: maxAttempts * intervalMs,
176
+ processId: process.pid,
177
+ timestamp: new Date().toISOString(),
178
+ }, null, 2));
179
+ const startTime = Date.now();
180
+ let lastError = null;
181
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
182
+ const attemptStartTime = Date.now();
183
+ console.error(`[DEBUG-DAEMON-READY] Attempt ${attempt}/${maxAttempts} starting...`);
184
+ try {
185
+ console.error('[DEBUG-DAEMON-READY] Creating CLI client...');
186
+ const client = createCLIClient();
187
+ console.error('[DEBUG-DAEMON-READY] Attempting to connect with 2000ms timeout...');
188
+ await client.connect(2000); // Increased timeout for connection check
189
+ console.error('[DEBUG-DAEMON-READY] Connection successful! Performing health check...');
190
+ // Additional health check: try to send a simple command
191
+ try {
192
+ console.error('[DEBUG-DAEMON-READY] Sending list command for health check...');
193
+ await client.sendCommand('list', {});
194
+ await client.disconnect();
195
+ const totalTime = Date.now() - startTime;
196
+ console.error('[DEBUG-DAEMON-READY] ✓ SUCCESS! Daemon is fully ready');
197
+ console.error('[DEBUG-DAEMON-READY] Success stats:', JSON.stringify({
198
+ totalTimeMs: totalTime,
199
+ attempts: attempt,
200
+ averageAttemptTime: totalTime / attempt,
201
+ }, null, 2));
202
+ console.log(`Daemon became ready after ${Date.now() - startTime}ms (attempt ${attempt})`);
203
+ return; // Success - daemon is fully operational
204
+ }
205
+ catch (cmdError) {
206
+ console.error('[DEBUG-DAEMON-READY] Health check failed:', cmdError);
207
+ await client.disconnect();
208
+ throw cmdError; // Command failed, daemon not ready
209
+ }
210
+ }
211
+ catch (error) {
212
+ lastError = error instanceof Error ? error : new Error(String(error));
213
+ const attemptDuration = Date.now() - attemptStartTime;
214
+ console.error(`[DEBUG-DAEMON-READY] Attempt ${attempt} failed after ${attemptDuration}ms:`, {
215
+ errorMessage: lastError.message,
216
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
217
+ errorCode: lastError?.code,
218
+ errorStack: lastError.stack?.split('\n')[0], // First line of stack trace only
219
+ });
220
+ if (attempt === maxAttempts) {
221
+ const totalTime = maxAttempts * intervalMs;
222
+ const actualTime = Date.now() - startTime;
223
+ console.error('[DEBUG-DAEMON-READY] ❌ TIMEOUT REACHED - All attempts exhausted');
224
+ console.error('[DEBUG-DAEMON-READY] Final failure stats:', JSON.stringify({
225
+ expectedTimeMs: totalTime,
226
+ actualTimeMs: actualTime,
227
+ attemptsMade: attempt,
228
+ lastErrorMessage: lastError.message,
229
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
230
+ lastErrorCode: lastError?.code,
231
+ }, null, 2));
232
+ throw new Error(`Daemon did not become ready within ${totalTime}ms (actual: ${actualTime}ms). Last error: ${lastError.message}`);
233
+ }
234
+ // Log progress every 5 seconds for debugging
235
+ const elapsed = Date.now() - startTime;
236
+ if (elapsed % 5000 < intervalMs) {
237
+ console.error('[DEBUG-DAEMON-READY] Progress update:', JSON.stringify({
238
+ elapsedMs: elapsed,
239
+ attempt: `${attempt}/${maxAttempts}`,
240
+ progress: `${((attempt / maxAttempts) * 100).toFixed(1)}%`,
241
+ lastError: lastError.message,
242
+ }, null, 2));
243
+ console.log(`Waiting for daemon readiness... ${elapsed}ms elapsed (attempt ${attempt}/${maxAttempts})`);
244
+ }
245
+ console.error(`[DEBUG-DAEMON-READY] Waiting ${intervalMs}ms before next attempt...`);
246
+ await new Promise((resolve) => setTimeout(resolve, intervalMs));
247
+ }
248
+ }
249
+ }
250
+ //# sourceMappingURL=load.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../../src/cli/commands/load.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAQxD,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,IAAc,EACd,OAA2B;IAE3B,IAAI,CAAC;QACH,oEAAoE;QACpE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAClD,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;gBAClC,IAAI,YAAY,EAAE,CAAC;oBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC;gBAClC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,sFAAsF;YACxF,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC;QAE7C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,qCAAqC,CAAC,CAAC;YAC1E,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,4BAA4B,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,sBAAsB;QACtB,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAEzC,8BAA8B;QAC9B,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,qBAAqB,CAAC,CAAC;YACzE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,YAAY,CAAC,CAAC;QAEhE,IAAI,CAAC;YACH,oDAAoD;YACpD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;YACjC,IAAI,gBAAgB,GAAG,IAAI,CAAC;YAE5B,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB;gBACrD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,gBAAgB,GAAG,KAAK,CAAC;YAC3B,CAAC;YAED,qCAAqC;YACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC;gBAEvE,MAAM,mBAAmB,CAAC,YAAY,CAAC,CAAC;gBAExC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;gBAC7D,MAAM,kBAAkB,EAAE,CAAC;YAC7B,CAAC;YAED,+BAA+B;YAC/B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE;oBAC5C,UAAU,EAAE,YAAY;iBACzB,CAAC,CAAC;gBAEH,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACrB,MAAM,OAAO,GAAG,gBAAgB;wBAC9B,CAAC,CAAC,mCAAmC;wBACrC,CAAC,CAAC,yCAAyC,CAAC;oBAE9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;oBAEvC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAwB,CAAC;oBAC/C,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;wBACjB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;wBAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;wBAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,iBAAiB,CAAC,CAAC,CAAC;oBACjE,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EACnB,mDAAmD,CACpD,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qDAAqD;YACrD,IACE,KAAK,YAAY,KAAK;gBACtB,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC;oBACjD,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;oBAC5C,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC;oBACtD,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;oBACtC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC,EACxD,CAAC;gBACD,2FAA2F;gBAC3F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC;gBACvE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAC/D,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,wBAAwB;YACxB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,cAAc,CAAC,KAAK,EAAE,8BAA8B,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAAC,UAAkB;IACnD,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CACX,iCAAiC,EACjC,IAAI,CAAC,SAAS,CACZ;QACE,UAAU;QACV,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,cAAc,EAAE,OAAO,CACrB,OAAO,CAAC,GAAG,EAAE,EACb,gCAAgC,CACjC;QACD,UAAU,EAAE;YACV,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;YACtB,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;YACpD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;YACtB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;gBACpB,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK;gBAC5C,CAAC,CAAC,WAAW;SAChB;QACD,SAAS,EAAE,OAAO,CAAC,GAAG;KACvB,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,KAAK,CACzB,MAAM,EACN;YACE,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gCAAgC,CAAC;YACxD,UAAU;YACV,UAAU;YACV,UAAU;SACX,EACD;YACE,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,QAAQ;YACf,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,oDAAoD;SACvE,CACF,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO,CAAC,KAAK,CACX,2CAA2C,EAC3C,IAAI,CAAC,SAAS,CACZ;YACE,GAAG,EAAE,aAAa,CAAC,GAAG;YACtB,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,UAAU,EAAE,aAAa,CAAC,UAAU;SACrC,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;QAEF,sCAAsC;QACtC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAClC,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACxC,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE;gBAC3D,IAAI;gBACJ,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,aAAa,CAAC,KAAK,EAAE,CAAC;QAEtB,OAAO,CAAC,KAAK,CACX,wFAAwF,CACzF,CAAC;QACF,gCAAgC;QAChC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,sDAAsD,EACtD,KAAK,CACN,CAAC;QACF,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAC/B,WAAW,GAAG,EAAE,EAAE,2DAA2D;AAC7E,UAAU,GAAG,GAAG;IAEhB,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;IACzE,OAAO,CAAC,KAAK,CACX,kCAAkC,EAClC,IAAI,CAAC,SAAS,CACZ;QACE,WAAW;QACX,UAAU;QACV,cAAc,EAAE,WAAW,GAAG,UAAU;QACxC,SAAS,EAAE,OAAO,CAAC,GAAG;QACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,SAAS,GAAiB,IAAI,CAAC;IAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CACX,gCAAgC,OAAO,IAAI,WAAW,cAAc,CACrE,CAAC;QAEF,IAAI,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;YAEjC,OAAO,CAAC,KAAK,CACX,mEAAmE,CACpE,CAAC;YACF,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,yCAAyC;YAErE,OAAO,CAAC,KAAK,CACX,wEAAwE,CACzE,CAAC;YAEF,wDAAwD;YACxD,IAAI,CAAC;gBACH,OAAO,CAAC,KAAK,CACX,+DAA+D,CAChE,CAAC;gBACF,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACrC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;gBAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBACzC,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;gBACvE,OAAO,CAAC,KAAK,CACX,qCAAqC,EACrC,IAAI,CAAC,SAAS,CACZ;oBACE,WAAW,EAAE,SAAS;oBACtB,QAAQ,EAAE,OAAO;oBACjB,kBAAkB,EAAE,SAAS,GAAG,OAAO;iBACxC,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;gBACF,OAAO,CAAC,GAAG,CACT,6BAA6B,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,eAAe,OAAO,GAAG,CAC7E,CAAC;gBACF,OAAO,CAAC,wCAAwC;YAClD,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,QAAQ,CAAC,CAAC;gBACrE,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC1B,MAAM,QAAQ,CAAC,CAAC,mCAAmC;YACrD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC;YAEtD,OAAO,CAAC,KAAK,CACX,gCAAgC,OAAO,iBAAiB,eAAe,KAAK,EAC5E;gBACE,YAAY,EAAE,SAAS,CAAC,OAAO;gBAC/B,8DAA8D;gBAC9D,SAAS,EAAG,SAAiB,EAAE,IAAI;gBACnC,UAAU,EAAE,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,iCAAiC;aAC/E,CACF,CAAC;YAEF,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;gBAC5B,MAAM,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;gBAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAC1C,OAAO,CAAC,KAAK,CACX,iEAAiE,CAClE,CAAC;gBACF,OAAO,CAAC,KAAK,CACX,2CAA2C,EAC3C,IAAI,CAAC,SAAS,CACZ;oBACE,cAAc,EAAE,SAAS;oBACzB,YAAY,EAAE,UAAU;oBACxB,YAAY,EAAE,OAAO;oBACrB,gBAAgB,EAAE,SAAS,CAAC,OAAO;oBACnC,8DAA8D;oBAC9D,aAAa,EAAG,SAAiB,EAAE,IAAI;iBACxC,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;gBAEF,MAAM,IAAI,KAAK,CACb,sCAAsC,SAAS,eAAe,UAAU,oBAAoB,SAAS,CAAC,OAAO,EAAE,CAChH,CAAC;YACJ,CAAC;YAED,6CAA6C;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACvC,IAAI,OAAO,GAAG,IAAI,GAAG,UAAU,EAAE,CAAC;gBAChC,OAAO,CAAC,KAAK,CACX,uCAAuC,EACvC,IAAI,CAAC,SAAS,CACZ;oBACE,SAAS,EAAE,OAAO;oBAClB,OAAO,EAAE,GAAG,OAAO,IAAI,WAAW,EAAE;oBACpC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;oBAC1D,SAAS,EAAE,SAAS,CAAC,OAAO;iBAC7B,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;gBACF,OAAO,CAAC,GAAG,CACT,mCAAmC,OAAO,uBAAuB,OAAO,IAAI,WAAW,GAAG,CAC3F,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,KAAK,CACX,gCAAgC,UAAU,2BAA2B,CACtE,CAAC;YACF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Log command implementation
3
+ *
4
+ * This command displays logs from processes managed by the daemon.
5
+ */
6
+ import type { IPCLogStreamMessage } from '../../shared/ipc.js';
7
+ export interface LogCommandOptions {
8
+ namespace?: string;
9
+ lines?: number;
10
+ human?: boolean;
11
+ stream?: boolean;
12
+ }
13
+ export declare function execute(args: string[], options: LogCommandOptions): Promise<void>;
14
+ /**
15
+ * Handle streaming log message
16
+ */
17
+ export declare function handleLogStreamMessage(message: IPCLogStreamMessage): void;
18
+ //# sourceMappingURL=log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/log.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAEV,mBAAmB,EAEpB,MAAM,qBAAqB,CAAC;AAO7B,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,OAAO,CAC3B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAmFf;AAyPD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAIzE"}
@@ -0,0 +1,282 @@
1
+ /**
2
+ * Log command implementation
3
+ *
4
+ * This command displays logs from processes managed by the daemon.
5
+ */
6
+ import chalk from 'chalk';
7
+ import { executeCommand, createCLIClient, } from '../utils/ipc-client.js';
8
+ import { handleCLIError } from '../utils/error-utils.js';
9
+ import { LOG_STREAM_EVENTS, STREAM_MESSAGE_TYPES, } from '../../shared/constants-streaming.js';
10
+ export async function execute(args, options) {
11
+ try {
12
+ // Ensure HOME environment variable is set before any IPC operations
13
+ if (!process.env.HOME && !process.env.USERPROFILE) {
14
+ try {
15
+ const os = await import('os');
16
+ const detectedHome = os.homedir();
17
+ if (detectedHome) {
18
+ process.env.HOME = detectedHome;
19
+ }
20
+ }
21
+ catch {
22
+ // If we can't detect home, continue anyway and let the IPC error handler deal with it
23
+ }
24
+ }
25
+ // Get target from args
26
+ const target = args[0];
27
+ if (!target) {
28
+ console.error(chalk.red('Error:'), 'Target process name is required');
29
+ console.error(chalk.yellow('Usage:'), 'procman log <target> [--lines <n>] [--human] [--stream]');
30
+ process.exit(1);
31
+ }
32
+ // Prepare log options
33
+ const logOptions = {
34
+ lines: options.lines,
35
+ human: options.human,
36
+ stream: options.stream,
37
+ };
38
+ try {
39
+ if (options.stream) {
40
+ // Streaming mode - establish persistent connection
41
+ await handleStreamingLogs(target, options);
42
+ }
43
+ else {
44
+ // Normal mode - fetch logs once
45
+ const response = await executeCommand('log', {
46
+ target,
47
+ options: logOptions,
48
+ });
49
+ if (response.success) {
50
+ const data = response.data;
51
+ if (data?.entries && data.entries.length > 0) {
52
+ displayLogs(data.entries, options.human || false);
53
+ }
54
+ else {
55
+ console.log(chalk.yellow('No logs found for:'), target);
56
+ }
57
+ }
58
+ else {
59
+ console.error(chalk.red('Error:'), response.error?.message || 'Failed to fetch logs');
60
+ process.exit(1);
61
+ }
62
+ }
63
+ }
64
+ catch (error) {
65
+ // Handle daemon not running case gracefully for backward compatibility
66
+ if (error instanceof Error &&
67
+ (error.message.includes('Cannot connect to daemon') ||
68
+ error.message.includes('DAEMON_NOT_RUNNING') ||
69
+ error.message.includes('Failed to expand socket path') ||
70
+ error.message.includes('ECONNREFUSED'))) {
71
+ // For log command failures, show a basic message for backward compatibility
72
+ console.log(chalk.yellow(`No logs available for: ${target} (daemon not running)`));
73
+ // Exit successfully for backward compatibility
74
+ process.exit(0);
75
+ }
76
+ // Re-throw other errors
77
+ throw error;
78
+ }
79
+ }
80
+ catch (error) {
81
+ handleCLIError(error, 'Failed to execute log command');
82
+ }
83
+ }
84
+ /**
85
+ * Handle streaming logs with persistent connection
86
+ */
87
+ async function handleStreamingLogs(target, options) {
88
+ const client = createCLIClient();
89
+ try {
90
+ printStreamingHeader(target);
91
+ await client.connect();
92
+ const response = await startStreamingRequest(client, target, options);
93
+ validateStreamingResponse(response);
94
+ const messageHandler = createMessageHandler(options);
95
+ const internalClient = client.getInternalClient();
96
+ if (internalClient) {
97
+ setupStreamingListeners(client, messageHandler);
98
+ await waitForStreamingShutdown(client, messageHandler);
99
+ }
100
+ }
101
+ finally {
102
+ await client.disconnect();
103
+ }
104
+ }
105
+ /**
106
+ * Print streaming header information
107
+ */
108
+ function printStreamingHeader(target) {
109
+ console.log(chalk.blue('Streaming logs for:'), target);
110
+ console.log(chalk.gray('Press Ctrl+C to stop streaming...\n'));
111
+ }
112
+ /**
113
+ * Start streaming request to server
114
+ */
115
+ async function startStreamingRequest(client, target, options) {
116
+ return client.sendCommand('log', {
117
+ target,
118
+ options: {
119
+ follow: true,
120
+ lines: options.lines,
121
+ },
122
+ });
123
+ }
124
+ /**
125
+ * Validate streaming response from server
126
+ */
127
+ function validateStreamingResponse(response) {
128
+ if (!response.success) {
129
+ console.error(chalk.red('Error:'), response.error?.message || 'Failed to start log streaming');
130
+ process.exit(1);
131
+ }
132
+ const logData = response.data;
133
+ if (!logData?.streaming) {
134
+ console.error(chalk.red('Error:'), 'Streaming mode not supported by server');
135
+ process.exit(1);
136
+ }
137
+ }
138
+ /**
139
+ * Create message handler for streaming logs
140
+ */
141
+ function createMessageHandler(options) {
142
+ return (data) => {
143
+ const message = parseStreamMessage(data);
144
+ if (message && isValidStreamMessage(message)) {
145
+ displayLogs([message.payload.entry], options.human || false);
146
+ }
147
+ };
148
+ }
149
+ /**
150
+ * Parse stream message from various data formats
151
+ */
152
+ function parseStreamMessage(data) {
153
+ if (typeof data === 'string') {
154
+ try {
155
+ return JSON.parse(data);
156
+ }
157
+ catch {
158
+ return null;
159
+ }
160
+ }
161
+ else if (data && typeof data === 'object') {
162
+ return data;
163
+ }
164
+ return null;
165
+ }
166
+ /**
167
+ * Check if message is a valid stream message
168
+ */
169
+ function isValidStreamMessage(message) {
170
+ return (message.type === STREAM_MESSAGE_TYPES.LOG_STREAM && !!message.payload?.entry);
171
+ }
172
+ /**
173
+ * Setup streaming event listeners
174
+ */
175
+ function setupStreamingListeners(client, messageHandler) {
176
+ const internalClient = client.getInternalClient();
177
+ if (!internalClient)
178
+ return;
179
+ // Listen for multiple event types to ensure compatibility
180
+ internalClient.on(LOG_STREAM_EVENTS.MESSAGE, messageHandler);
181
+ internalClient.on(LOG_STREAM_EVENTS.DATA, (data) => {
182
+ processRawData(data, messageHandler);
183
+ });
184
+ // Also listen for log-stream event (backward compatibility)
185
+ internalClient.on(LOG_STREAM_EVENTS.LOG_STREAM, messageHandler);
186
+ }
187
+ /**
188
+ * Process raw data from socket
189
+ */
190
+ function processRawData(data, messageHandler) {
191
+ const messages = data.toString().split('\n');
192
+ for (const msg of messages) {
193
+ if (msg.trim()) {
194
+ messageHandler(msg);
195
+ }
196
+ }
197
+ }
198
+ /**
199
+ * Wait for streaming shutdown signal
200
+ */
201
+ async function waitForStreamingShutdown(client, messageHandler) {
202
+ return new Promise((resolve) => {
203
+ const cleanup = async () => {
204
+ console.log(chalk.yellow('\nStopping log stream...'));
205
+ try {
206
+ // Remove listeners first to prevent additional events
207
+ removeStreamingListeners(client, messageHandler);
208
+ // Disconnect IPC client gracefully
209
+ await client.disconnect();
210
+ }
211
+ catch (error) {
212
+ // Log error but continue cleanup
213
+ console.error(chalk.yellow('Warning: Error during stream cleanup:'), error);
214
+ }
215
+ resolve(undefined);
216
+ };
217
+ // Register signal handlers with proper async handling
218
+ const handleSignal = () => {
219
+ // Use timeout to ensure cleanup completes quickly
220
+ const cleanupTimeout = setTimeout(() => {
221
+ console.error('Stream cleanup timeout, forcing exit...');
222
+ process.exit(1);
223
+ }, 1000); // 1 second timeout for log stream cleanup
224
+ cleanup()
225
+ .then(() => {
226
+ clearTimeout(cleanupTimeout);
227
+ })
228
+ .catch((error) => {
229
+ clearTimeout(cleanupTimeout);
230
+ console.error('Error during signal cleanup:', error);
231
+ process.exit(1);
232
+ });
233
+ };
234
+ process.on('SIGINT', handleSignal);
235
+ process.on('SIGTERM', handleSignal);
236
+ });
237
+ }
238
+ /**
239
+ * Remove all streaming event listeners
240
+ */
241
+ function removeStreamingListeners(client, messageHandler) {
242
+ const internalClient = client.getInternalClient();
243
+ if (!internalClient)
244
+ return;
245
+ internalClient.removeListener(LOG_STREAM_EVENTS.MESSAGE, messageHandler);
246
+ internalClient.removeListener(LOG_STREAM_EVENTS.DATA, messageHandler);
247
+ internalClient.removeListener(LOG_STREAM_EVENTS.LOG_STREAM, messageHandler);
248
+ }
249
+ /**
250
+ * Display logs in the specified format
251
+ */
252
+ function displayLogs(entries, human) {
253
+ if (human) {
254
+ // Human-readable format with colors
255
+ for (const entry of entries) {
256
+ const timestamp = new Date(entry.timestamp).toLocaleString();
257
+ const level = entry.level === 'error'
258
+ ? chalk.red(entry.level.toUpperCase())
259
+ : entry.level === 'warn'
260
+ ? chalk.yellow(entry.level.toUpperCase())
261
+ : chalk.blue(entry.level.toUpperCase());
262
+ const app = chalk.cyan(`[${entry.app}]`);
263
+ const type = entry.type === 'stderr' ? chalk.red('stderr') : 'stdout';
264
+ console.log(`${chalk.gray(timestamp)} ${level} ${app} (${type}): ${entry.message}`);
265
+ }
266
+ }
267
+ else {
268
+ // JSON format (default)
269
+ for (const entry of entries) {
270
+ console.log(JSON.stringify(entry));
271
+ }
272
+ }
273
+ }
274
+ /**
275
+ * Handle streaming log message
276
+ */
277
+ export function handleLogStreamMessage(message) {
278
+ if (message.payload?.entry) {
279
+ displayLogs([message.payload.entry], true);
280
+ }
281
+ }
282
+ //# sourceMappingURL=log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../../src/cli/commands/log.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Restart command implementation
3
+ *
4
+ * This command restarts one or more processes managed by the daemon.
5
+ */
6
+ export interface RestartCommandOptions {
7
+ namespace?: string;
8
+ all?: boolean;
9
+ }
10
+ export declare function execute(args: string[], options: RestartCommandOptions): Promise<void>;
11
+ //# sourceMappingURL=restart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restart.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/restart.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,OAAO,CAC3B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAkGf"}