@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,157 @@
1
+ /**
2
+ * Process-Log Integration - プロセス管理とログ管理の統合
3
+ *
4
+ * ProcessManagerとLogManagerを連携させ、プロセスのstdout/stderrを
5
+ * 自動的にキャプチャしてJSONL形式でログに記録する。
6
+ */
7
+ import { EventEmitter } from 'events';
8
+ /**
9
+ * ProcessLogIntegrator - プロセス管理とログ管理の統合クラス
10
+ */
11
+ export class ProcessLogIntegrator extends EventEmitter {
12
+ processManager;
13
+ logManager;
14
+ isSetup = false;
15
+ constructor(processManager, logManager) {
16
+ super();
17
+ this.processManager = processManager;
18
+ this.logManager = logManager;
19
+ }
20
+ /**
21
+ * プロセス管理とログ管理の統合を開始
22
+ */
23
+ setupIntegration() {
24
+ if (this.isSetup) {
25
+ return;
26
+ }
27
+ // ProcessLifecycleManagerのイベントをリッスン
28
+ this.setupProcessEventHandlers();
29
+ this.isSetup = true;
30
+ this.emit('integration:setup');
31
+ }
32
+ /**
33
+ * 統合の停止
34
+ */
35
+ teardownIntegration() {
36
+ if (!this.isSetup) {
37
+ return;
38
+ }
39
+ // イベントリスナーを削除
40
+ // ProcessManagerのlifecycleはEventEmitterとしてキャスト
41
+ const lifecycleEmitter = this.processManager
42
+ .lifecycle;
43
+ lifecycleEmitter.removeAllListeners('process:stdout');
44
+ lifecycleEmitter.removeAllListeners('process:stderr');
45
+ this.isSetup = false;
46
+ this.emit('integration:teardown');
47
+ }
48
+ /**
49
+ * プロセスイベントハンドラーの設定
50
+ */
51
+ setupProcessEventHandlers() {
52
+ // ProcessManagerのlifecycleはEventEmitterとしてキャスト
53
+ const lifecycleEmitter = this.processManager
54
+ .lifecycle;
55
+ // stdout キャプチャ
56
+ lifecycleEmitter.on('process:stdout', (appName, data) => {
57
+ try {
58
+ this.logManager.captureProcessOutput(appName, 'stdout', data);
59
+ this.emit('log:captured', appName, 'stdout', data.length);
60
+ }
61
+ catch (error) {
62
+ console.error(`[ProcessLogIntegrator] Failed to capture stdout for ${appName}:`, error);
63
+ this.emit('log:capture-error', appName, 'stdout', error);
64
+ }
65
+ });
66
+ // stderr キャプチャ
67
+ lifecycleEmitter.on('process:stderr', (appName, data) => {
68
+ try {
69
+ this.logManager.captureProcessOutput(appName, 'stderr', data);
70
+ this.emit('log:captured', appName, 'stderr', data.length);
71
+ }
72
+ catch (error) {
73
+ console.error(`[ProcessLogIntegrator] Failed to capture stderr for ${appName}:`, error);
74
+ this.emit('log:capture-error', appName, 'stderr', error);
75
+ }
76
+ });
77
+ // プロセス開始時のログ設定
78
+ this.processManager.on('process:started', (appName, processInfo) => {
79
+ try {
80
+ // アプリケーションのログ設定を確認
81
+ if (!this.logManager.getAppNames().includes(appName)) {
82
+ // ログ設定が存在しない場合はデフォルト設定で初期化
83
+ this.logManager.setupAppLogs(appName, {
84
+ namespace: processInfo.namespace || 'default',
85
+ });
86
+ }
87
+ // ファイル監視を開始
88
+ this.logManager.startWatching(appName);
89
+ this.emit('log:setup', appName);
90
+ }
91
+ catch (error) {
92
+ console.error(`[ProcessLogIntegrator] Failed to setup logs for ${appName}:`, error);
93
+ this.emit('log:setup-error', appName, error);
94
+ }
95
+ });
96
+ // プロセス停止時のクリーンアップ
97
+ this.processManager.on('process:stopped', (appName) => {
98
+ try {
99
+ // ファイル監視を停止
100
+ this.logManager.stopWatching(appName);
101
+ this.emit('log:cleanup', appName);
102
+ }
103
+ catch (error) {
104
+ console.error(`[ProcessLogIntegrator] Failed to cleanup logs for ${appName}:`, error);
105
+ this.emit('log:cleanup-error', appName, error);
106
+ }
107
+ });
108
+ }
109
+ /**
110
+ * 統合状態の確認
111
+ */
112
+ isIntegrationActive() {
113
+ return this.isSetup;
114
+ }
115
+ /**
116
+ * 統合統計情報の取得
117
+ */
118
+ getIntegrationStats() {
119
+ return {
120
+ isActive: this.isSetup,
121
+ managedApps: this.logManager.getAppNames(),
122
+ bufferStats: this.logManager.getAllBufferStats(),
123
+ };
124
+ }
125
+ /**
126
+ * バックプレッシャー状態のチェック
127
+ */
128
+ checkBackpressureStatus() {
129
+ const bufferStats = this.logManager.getAllBufferStats();
130
+ const backpressuredApps = Object.entries(bufferStats)
131
+ .filter(([, stats]) => stats.isBackpressured)
132
+ .map(([appName]) => appName);
133
+ return {
134
+ hasBackpressure: backpressuredApps.length > 0,
135
+ backpressuredApps,
136
+ };
137
+ }
138
+ /**
139
+ * すべてのバッファを強制フラッシュ
140
+ */
141
+ async flushAllBuffers() {
142
+ this.logManager.flushAllBuffers();
143
+ this.emit('buffers:flushed', this.logManager.getAppNames());
144
+ }
145
+ /**
146
+ * リソースのクリーンアップ
147
+ */
148
+ async cleanup() {
149
+ // バッファをフラッシュ
150
+ await this.flushAllBuffers();
151
+ // 統合を停止
152
+ this.teardownIntegration();
153
+ // イベントリスナーをクリア
154
+ this.removeAllListeners();
155
+ }
156
+ }
157
+ //# sourceMappingURL=process-log-integration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-log-integration.js","sourceRoot":"","sources":["../../../src/services/process-log-integration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Configuration Type Definitions
3
+ *
4
+ * This module defines basic types for configuration management in the procman system.
5
+ */
6
+ /**
7
+ * Configuration for a single application
8
+ */
9
+ export interface AppConfig {
10
+ /** Application name */
11
+ name: string;
12
+ /** Script path to execute */
13
+ script: string;
14
+ /** Namespace for grouping */
15
+ namespace?: string;
16
+ /** Command line arguments */
17
+ args?: string;
18
+ /** Working directory */
19
+ cwd?: string;
20
+ /** Note or description */
21
+ note?: string;
22
+ /** Environment variables */
23
+ env?: Record<string, string>;
24
+ /** Memory limit for auto-restart */
25
+ max_memory_restart?: string;
26
+ /** Log file path */
27
+ log_file?: string;
28
+ /** Standard output file path */
29
+ out_file?: string;
30
+ /** Error output file path */
31
+ error_file?: string;
32
+ }
33
+ /**
34
+ * Root configuration containing all applications
35
+ */
36
+ export interface ProcmanConfig {
37
+ /** Array of application configurations */
38
+ apps: AppConfig[];
39
+ }
40
+ /**
41
+ * Type guard to check if an object is an AppConfig
42
+ * Note: This performs basic structural validation. Full validation should be done by ConfigLoader.
43
+ */
44
+ export declare function isAppConfig(obj: unknown): obj is AppConfig;
45
+ /**
46
+ * Type guard to check if an object is a ProcmanConfig
47
+ * Note: This performs basic structural validation. Full validation should be done by ConfigLoader.
48
+ */
49
+ export declare function isProcmanConfig(obj: unknown): obj is ProcmanConfig;
50
+ /**
51
+ * Result of memory size parsing
52
+ */
53
+ export interface MemoryParseResult {
54
+ /** Whether parsing was successful */
55
+ success: boolean;
56
+ /** Parsed value in bytes (only if success is true) */
57
+ value?: number;
58
+ /** Error message (only if success is false) */
59
+ error?: string;
60
+ }
61
+ /**
62
+ * Parse memory size string to bytes
63
+ * @param memoryString Memory size string (e.g., "512M", "1G")
64
+ * @returns Structured result with success/failure information
65
+ */
66
+ export declare function parseMemorySize(memoryString: string): MemoryParseResult;
67
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/shared/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,oCAAoC;IACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,IAAI,EAAE,SAAS,EAAE,CAAC;CACnB;AAMD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,SAAS,CAuC1D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,aAAa,CAQlE;AAMD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,qCAAqC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB,CAyBvE"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Configuration Type Definitions
3
+ *
4
+ * This module defines basic types for configuration management in the procman system.
5
+ */
6
+ import { MEMORY_MULTIPLIERS } from './constants.js';
7
+ // =============================================================================
8
+ // Type Guards
9
+ // =============================================================================
10
+ /**
11
+ * Type guard to check if an object is an AppConfig
12
+ * Note: This performs basic structural validation. Full validation should be done by ConfigLoader.
13
+ */
14
+ export function isAppConfig(obj) {
15
+ if (typeof obj !== 'object' || obj === null)
16
+ return false;
17
+ const config = obj;
18
+ // Check required fields
19
+ if (typeof config.name !== 'string' || !config.name.trim())
20
+ return false;
21
+ if (typeof config.script !== 'string' || !config.script.trim())
22
+ return false;
23
+ // Check optional string fields
24
+ if (config.namespace !== undefined && typeof config.namespace !== 'string')
25
+ return false;
26
+ if (config.args !== undefined && typeof config.args !== 'string')
27
+ return false;
28
+ if (config.cwd !== undefined && typeof config.cwd !== 'string')
29
+ return false;
30
+ if (config.note !== undefined && typeof config.note !== 'string')
31
+ return false;
32
+ if (config.max_memory_restart !== undefined &&
33
+ typeof config.max_memory_restart !== 'string')
34
+ return false;
35
+ if (config.log_file !== undefined && typeof config.log_file !== 'string')
36
+ return false;
37
+ if (config.out_file !== undefined && typeof config.out_file !== 'string')
38
+ return false;
39
+ if (config.error_file !== undefined && typeof config.error_file !== 'string')
40
+ return false;
41
+ // Check env object
42
+ if (config.env !== undefined) {
43
+ if (typeof config.env !== 'object' || config.env === null)
44
+ return false;
45
+ const env = config.env;
46
+ for (const value of Object.values(env)) {
47
+ if (typeof value !== 'string')
48
+ return false;
49
+ }
50
+ }
51
+ return true;
52
+ }
53
+ /**
54
+ * Type guard to check if an object is a ProcmanConfig
55
+ * Note: This performs basic structural validation. Full validation should be done by ConfigLoader.
56
+ */
57
+ export function isProcmanConfig(obj) {
58
+ if (typeof obj !== 'object' || obj === null)
59
+ return false;
60
+ const config = obj;
61
+ if (!Array.isArray(config.apps))
62
+ return false;
63
+ return config.apps.every((app) => isAppConfig(app));
64
+ }
65
+ /**
66
+ * Parse memory size string to bytes
67
+ * @param memoryString Memory size string (e.g., "512M", "1G")
68
+ * @returns Structured result with success/failure information
69
+ */
70
+ export function parseMemorySize(memoryString) {
71
+ if (typeof memoryString !== 'string') {
72
+ return {
73
+ success: false,
74
+ error: 'Memory size must be a string',
75
+ };
76
+ }
77
+ const match = memoryString.match(/^(\d+(?:\.\d+)?)\s*([KkMmGg]?)$/);
78
+ if (!match) {
79
+ return {
80
+ success: false,
81
+ error: 'Invalid format. Expected: number[KMG] (e.g., "300M", "1G")',
82
+ };
83
+ }
84
+ const value = parseFloat(match[1]);
85
+ const unit = match[2] || '';
86
+ const multiplier = MEMORY_MULTIPLIERS[unit] || 1;
87
+ return {
88
+ success: true,
89
+ value: Math.floor(value * multiplier),
90
+ };
91
+ }
92
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/shared/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Constants for log streaming functionality
3
+ */
4
+ /**
5
+ * Event names for log streaming
6
+ */
7
+ export declare const LOG_STREAM_EVENTS: {
8
+ /** New log entry event */
9
+ readonly NEW_LOG: "new-log";
10
+ /** Log stream message event */
11
+ readonly LOG_STREAM: "log-stream";
12
+ /** Start log streaming event */
13
+ readonly START_LOG_STREAM: "start-log-stream";
14
+ /** Stop log streaming event */
15
+ readonly STOP_LOG_STREAM: "stop-log-stream";
16
+ /** Raw message event */
17
+ readonly MESSAGE: "message";
18
+ /** Raw data event */
19
+ readonly DATA: "data";
20
+ };
21
+ /**
22
+ * Message types for streaming
23
+ */
24
+ export declare const STREAM_MESSAGE_TYPES: {
25
+ /** Log stream message type */
26
+ readonly LOG_STREAM: "log-stream";
27
+ };
28
+ /**
29
+ * Streaming configuration
30
+ */
31
+ export declare const STREAM_CONFIG: {
32
+ /** Default session ID prefix */
33
+ readonly SESSION_PREFIX: "stream";
34
+ /** Maximum listeners per event */
35
+ readonly MAX_LISTENERS: 100;
36
+ /** Stream cleanup timeout (ms) */
37
+ readonly CLEANUP_TIMEOUT: 5000;
38
+ };
39
+ //# sourceMappingURL=constants-streaming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants-streaming.d.ts","sourceRoot":"","sources":["../../../src/shared/constants-streaming.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;IAC5B,0BAA0B;;IAE1B,+BAA+B;;IAE/B,gCAAgC;;IAEhC,+BAA+B;;IAE/B,wBAAwB;;IAExB,qBAAqB;;CAEb,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,oBAAoB;IAC/B,8BAA8B;;CAEtB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,aAAa;IACxB,gCAAgC;;IAEhC,kCAAkC;;IAElC,kCAAkC;;CAE1B,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Constants for log streaming functionality
3
+ */
4
+ /**
5
+ * Event names for log streaming
6
+ */
7
+ export const LOG_STREAM_EVENTS = {
8
+ /** New log entry event */
9
+ NEW_LOG: 'new-log',
10
+ /** Log stream message event */
11
+ LOG_STREAM: 'log-stream',
12
+ /** Start log streaming event */
13
+ START_LOG_STREAM: 'start-log-stream',
14
+ /** Stop log streaming event */
15
+ STOP_LOG_STREAM: 'stop-log-stream',
16
+ /** Raw message event */
17
+ MESSAGE: 'message',
18
+ /** Raw data event */
19
+ DATA: 'data',
20
+ };
21
+ /**
22
+ * Message types for streaming
23
+ */
24
+ export const STREAM_MESSAGE_TYPES = {
25
+ /** Log stream message type */
26
+ LOG_STREAM: 'log-stream',
27
+ };
28
+ /**
29
+ * Streaming configuration
30
+ */
31
+ export const STREAM_CONFIG = {
32
+ /** Default session ID prefix */
33
+ SESSION_PREFIX: 'stream',
34
+ /** Maximum listeners per event */
35
+ MAX_LISTENERS: 100,
36
+ /** Stream cleanup timeout (ms) */
37
+ CLEANUP_TIMEOUT: 5000,
38
+ };
39
+ //# sourceMappingURL=constants-streaming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants-streaming.js","sourceRoot":"","sources":["../../../src/shared/constants-streaming.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,0BAA0B;IAC1B,OAAO,EAAE,SAAS;IAClB,+BAA+B;IAC/B,UAAU,EAAE,YAAY;IACxB,gCAAgC;IAChC,gBAAgB,EAAE,kBAAkB;IACpC,+BAA+B;IAC/B,eAAe,EAAE,iBAAiB;IAClC,wBAAwB;IACxB,OAAO,EAAE,SAAS;IAClB,qBAAqB;IACrB,IAAI,EAAE,MAAM;CACJ,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,8BAA8B;IAC9B,UAAU,EAAE,YAAY;CAChB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,gCAAgC;IAChC,cAAc,EAAE,QAAQ;IACxB,kCAAkC;IAClC,aAAa,EAAE,GAAG;IAClB,kCAAkC;IAClC,eAAe,EAAE,IAAI;CACb,CAAC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * System constants for procman
3
+ *
4
+ * This file contains all system-wide constants used throughout the procman application,
5
+ * including file paths, default values, timeouts, and memory-related constants.
6
+ */
7
+ export declare const PROCMAN_DIR = "~/.masuidrive-procman";
8
+ export declare const SOCKET_PATH = "~/.masuidrive-procman/procman.sock";
9
+ export declare const NAMED_PIPE_PATH = "\\\\.\\pipe\\masuidrive-procman";
10
+ export declare const PID_FILE = "~/.masuidrive-procman/daemon.pid";
11
+ export declare const PROCESSES_FILE = "~/.masuidrive-procman/processes.json";
12
+ export declare const DAEMON_LOG_FILE = "~/.masuidrive-procman/daemon.log";
13
+ export declare const APP_LOGS_DIR = "~/.masuidrive-procman/app-logs";
14
+ export declare const DEFAULT_NAMESPACE = "default";
15
+ export declare const DEFAULT_LOG_LINES = 100;
16
+ export declare const DEFAULT_MEMORY_CHECK_INTERVAL = 30000;
17
+ export declare const DEFAULT_MONITOR_INTERVAL = 5000;
18
+ export declare const GRACEFUL_SHUTDOWN_TIMEOUT = 10000;
19
+ export declare const FORCE_KILL_TIMEOUT = 5000;
20
+ export declare const IPC_CONNECTION_TIMEOUT = 5000;
21
+ export declare const PROCESS_START_TIMEOUT = 30000;
22
+ export declare const MEMORY_MULTIPLIERS: {
23
+ readonly '': 1;
24
+ readonly K: 1024;
25
+ readonly k: 1024;
26
+ readonly M: number;
27
+ readonly m: number;
28
+ readonly G: number;
29
+ readonly g: number;
30
+ };
31
+ export declare const MEMORY_UNITS: readonly ["", "K", "k", "M", "m", "G", "g"];
32
+ export declare const PLATFORM_CONSTANTS: {
33
+ readonly WINDOWS: {
34
+ readonly IPC_PATH: "\\\\.\\pipe\\masuidrive-procman";
35
+ readonly PATH_SEPARATOR: "\\";
36
+ readonly EOL: "\r\n";
37
+ };
38
+ readonly UNIX: {
39
+ readonly IPC_PATH: "~/.masuidrive-procman/procman.sock";
40
+ readonly PATH_SEPARATOR: "/";
41
+ readonly EOL: "\n";
42
+ };
43
+ };
44
+ export declare const GRACEFUL_SHUTDOWN_SIGNAL = "SIGTERM";
45
+ export declare const FORCE_KILL_SIGNAL = "SIGKILL";
46
+ export declare const PROCESS_CHECK_SIGNAL = 0;
47
+ export declare const LOG_LEVELS: readonly ["info", "warn", "error"];
48
+ export declare const LOG_TYPES: readonly ["stdout", "stderr"];
49
+ export declare const SOCKET_PERMISSIONS = 384;
50
+ export declare const LOG_FILE_PERMISSIONS = 420;
51
+ export declare const CONFIG_FILE_PERMISSIONS = 384;
52
+ export declare const DEFAULT_PROCESS_CWD: string;
53
+ export declare const MAX_RESTART_COUNT = 10;
54
+ export declare const RESTART_BACKOFF_BASE_DELAY = 1000;
55
+ export declare const RESTART_BACKOFF_MAX_DELAY = 30000;
56
+ export declare const RESTART_BACKOFF_MULTIPLIER = 2;
57
+ export declare const RESTART_WINDOW_TIME = 300000;
58
+ export declare const MAX_HISTORY_LENGTH = 100;
59
+ export declare const DEBOUNCE_SAVE_STATE_DELAY = 300;
60
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/shared/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,eAAO,MAAM,WAAW,0BAA0B,CAAC;AACnD,eAAO,MAAM,WAAW,uCAAuC,CAAC;AAChE,eAAO,MAAM,eAAe,oCAAoC,CAAC;AACjE,eAAO,MAAM,QAAQ,qCAAqC,CAAC;AAC3D,eAAO,MAAM,cAAc,yCAAyC,CAAC;AACrE,eAAO,MAAM,eAAe,qCAAqC,CAAC;AAClE,eAAO,MAAM,YAAY,mCAAmC,CAAC;AAG7D,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAC3C,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,6BAA6B,QAAQ,CAAC;AACnD,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAG7C,eAAO,MAAM,yBAAyB,QAAQ,CAAC;AAC/C,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAC3C,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAG3C,eAAO,MAAM,kBAAkB;;;;;;;;CAQrB,CAAC;AAEX,eAAO,MAAM,YAAY,6CAA8C,CAAC;AAGxE,eAAO,MAAM,kBAAkB;;;;;;;;;;;CAWrB,CAAC;AAGX,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAClD,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAC3C,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAGtC,eAAO,MAAM,UAAU,oCAAqC,CAAC;AAC7D,eAAO,MAAM,SAAS,+BAAgC,CAAC;AAGvD,eAAO,MAAM,kBAAkB,MAAQ,CAAC;AACxC,eAAO,MAAM,oBAAoB,MAAQ,CAAC;AAC1C,eAAO,MAAM,uBAAuB,MAAQ,CAAC;AAG7C,eAAO,MAAM,mBAAmB,QAAgB,CAAC;AAGjD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAC/C,eAAO,MAAM,yBAAyB,QAAQ,CAAC;AAC/C,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAG1C,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,yBAAyB,MAAM,CAAC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * System constants for procman
3
+ *
4
+ * This file contains all system-wide constants used throughout the procman application,
5
+ * including file paths, default values, timeouts, and memory-related constants.
6
+ */
7
+ // ファイルパスの定数
8
+ export const PROCMAN_DIR = '~/.masuidrive-procman';
9
+ export const SOCKET_PATH = '~/.masuidrive-procman/procman.sock';
10
+ export const NAMED_PIPE_PATH = '\\\\.\\pipe\\masuidrive-procman';
11
+ export const PID_FILE = '~/.masuidrive-procman/daemon.pid';
12
+ export const PROCESSES_FILE = '~/.masuidrive-procman/processes.json';
13
+ export const DAEMON_LOG_FILE = '~/.masuidrive-procman/daemon.log';
14
+ export const APP_LOGS_DIR = '~/.masuidrive-procman/app-logs';
15
+ // デフォルト値の定数
16
+ export const DEFAULT_NAMESPACE = 'default';
17
+ export const DEFAULT_LOG_LINES = 100;
18
+ export const DEFAULT_MEMORY_CHECK_INTERVAL = 30000;
19
+ export const DEFAULT_MONITOR_INTERVAL = 5000;
20
+ // タイムアウト値の定数
21
+ export const GRACEFUL_SHUTDOWN_TIMEOUT = 10000;
22
+ export const FORCE_KILL_TIMEOUT = 5000;
23
+ export const IPC_CONNECTION_TIMEOUT = 5000;
24
+ export const PROCESS_START_TIMEOUT = 30000;
25
+ // メモリ単位定数
26
+ export const MEMORY_MULTIPLIERS = {
27
+ '': 1,
28
+ K: 1024,
29
+ k: 1024,
30
+ M: 1024 * 1024,
31
+ m: 1024 * 1024,
32
+ G: 1024 * 1024 * 1024,
33
+ g: 1024 * 1024 * 1024,
34
+ };
35
+ export const MEMORY_UNITS = ['', 'K', 'k', 'M', 'm', 'G', 'g'];
36
+ // プラットフォーム固有の定数
37
+ export const PLATFORM_CONSTANTS = {
38
+ WINDOWS: {
39
+ IPC_PATH: NAMED_PIPE_PATH,
40
+ PATH_SEPARATOR: '\\',
41
+ EOL: '\r\n',
42
+ },
43
+ UNIX: {
44
+ IPC_PATH: SOCKET_PATH,
45
+ PATH_SEPARATOR: '/',
46
+ EOL: '\n',
47
+ },
48
+ };
49
+ // シグナル定数
50
+ export const GRACEFUL_SHUTDOWN_SIGNAL = 'SIGTERM';
51
+ export const FORCE_KILL_SIGNAL = 'SIGKILL';
52
+ export const PROCESS_CHECK_SIGNAL = 0;
53
+ // ログレベル定数
54
+ export const LOG_LEVELS = ['info', 'warn', 'error'];
55
+ export const LOG_TYPES = ['stdout', 'stderr'];
56
+ // ファイル権限定数
57
+ export const SOCKET_PERMISSIONS = 0o600;
58
+ export const LOG_FILE_PERMISSIONS = 0o644;
59
+ export const CONFIG_FILE_PERMISSIONS = 0o600;
60
+ // 追加のデフォルト値
61
+ export const DEFAULT_PROCESS_CWD = process.cwd();
62
+ // 自動再起動の定数
63
+ export const MAX_RESTART_COUNT = 10;
64
+ export const RESTART_BACKOFF_BASE_DELAY = 1000; // 1秒
65
+ export const RESTART_BACKOFF_MAX_DELAY = 30000; // 30秒
66
+ export const RESTART_BACKOFF_MULTIPLIER = 2;
67
+ export const RESTART_WINDOW_TIME = 300000; // 5分 - この時間内の連続失敗をカウント
68
+ // 履歴管理の定数
69
+ export const MAX_HISTORY_LENGTH = 100; // 履歴の最大保持件数
70
+ export const DEBOUNCE_SAVE_STATE_DELAY = 300; // 状態保存のデバウンス遅延時間(ミリ秒)
71
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/shared/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Error management types and utilities for procman
3
+ *
4
+ * This file contains all error-related type definitions, including error codes,
5
+ * error messages, custom error classes, and error handling utilities.
6
+ */
7
+ export type ErrorCode = 'DAEMON_NOT_RUNNING' | 'DAEMON_CONNECTION_FAILED' | 'PERMISSION_DENIED' | 'CONFIG_FILE_NOT_FOUND' | 'CONFIG_PARSE_ERROR' | 'CONFIG_VALIDATION_ERROR' | 'CONFIG_SECURITY_ERROR' | 'CONFIG_WATCH_ERROR' | 'PROCESS_NOT_FOUND' | 'PROCESS_START_FAILED' | 'LOG_FILE_NOT_FOUND' | 'UNKNOWN_ERROR' | 'MESSAGE_PARSE_ERROR' | 'COMMAND_EXECUTION_ERROR';
8
+ export type ErrorMessage = {
9
+ [K in ErrorCode]: string;
10
+ };
11
+ export declare const ERROR_MESSAGES: ErrorMessage;
12
+ export interface ProcmanErrorOptions {
13
+ code: ErrorCode;
14
+ message?: string;
15
+ cause?: Error;
16
+ details?: Record<string, unknown>;
17
+ }
18
+ export declare class ProcmanError extends Error {
19
+ readonly code: ErrorCode;
20
+ readonly details?: Record<string, unknown>;
21
+ readonly cause?: Error;
22
+ constructor(options: ProcmanErrorOptions);
23
+ toJSON(): Record<string, unknown>;
24
+ toString(): string;
25
+ }
26
+ export type Result<T, E = ProcmanError> = {
27
+ success: true;
28
+ data: T;
29
+ } | {
30
+ success: false;
31
+ error: E;
32
+ };
33
+ export type AsyncResult<T, E = ProcmanError> = Promise<Result<T, E>>;
34
+ export type ErrorHandler<T = void> = (error: ProcmanError) => T;
35
+ export interface ErrorDetails {
36
+ timestamp: number;
37
+ code: ErrorCode;
38
+ message: string;
39
+ stack?: string;
40
+ context?: Record<string, unknown>;
41
+ }
42
+ export interface ErrorLogEntry {
43
+ timestamp: number;
44
+ level: 'error';
45
+ code: ErrorCode;
46
+ message: string;
47
+ details?: Record<string, unknown>;
48
+ source?: string;
49
+ }
50
+ export type CreateError = (code: ErrorCode, options?: Omit<ProcmanErrorOptions, 'code'>) => ProcmanError;
51
+ export declare function isProcmanError(error: unknown): error is ProcmanError;
52
+ export declare function hasErrorCode<T extends ErrorCode>(error: ProcmanError, code: T): error is ProcmanError & {
53
+ code: T;
54
+ };
55
+ export declare function createSuccess<T>(data: T): Result<T, never>;
56
+ export declare function createFailure<E extends ProcmanError>(error: E): Result<never, E>;
57
+ export declare function isSuccess<T, E>(result: Result<T, E>): result is {
58
+ success: true;
59
+ data: T;
60
+ };
61
+ export declare function isFailure<T, E>(result: Result<T, E>): result is {
62
+ success: false;
63
+ error: E;
64
+ };
65
+ export declare const createError: CreateError;
66
+ export declare const createDaemonNotRunningError: (details?: Record<string, unknown>) => ProcmanError;
67
+ export declare const createConfigNotFoundError: (filePath: string) => ProcmanError;
68
+ export declare const createProcessNotFoundError: (name: string, namespace?: string) => ProcmanError;
69
+ export declare const createPermissionDeniedError: (resource: string) => ProcmanError;
70
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/shared/errors.ts"],"names":[],"mappings":"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"}