@masuidrive/procman 0.1.1 → 0.2.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 (204) hide show
  1. package/dist/src/cli/commands/help.d.ts.map +1 -1
  2. package/dist/src/cli/commands/help.js +3 -1
  3. package/dist/src/cli/commands/help.js.map +1 -1
  4. package/dist/src/cli/index.js +6 -2
  5. package/dist/src/cli/index.js.map +1 -1
  6. package/dist/src/cli/parser.d.ts.map +1 -1
  7. package/dist/src/cli/parser.js +20 -0
  8. package/dist/src/cli/parser.js.map +1 -1
  9. package/dist/src/cli/utils/find-package-json.d.ts +4 -0
  10. package/dist/src/cli/utils/find-package-json.d.ts.map +1 -0
  11. package/dist/src/cli/utils/find-package-json.js +15 -0
  12. package/dist/src/cli/utils/find-package-json.js.map +1 -0
  13. package/dist/src/config/config-loader.d.ts +1 -0
  14. package/dist/src/config/config-loader.d.ts.map +1 -1
  15. package/dist/src/config/config-loader.js +16 -6
  16. package/dist/src/config/config-loader.js.map +1 -1
  17. package/dist/src/config/config-validator.d.ts +18 -49
  18. package/dist/src/config/config-validator.d.ts.map +1 -1
  19. package/dist/src/config/config-validator.js +64 -172
  20. package/dist/src/config/config-validator.js.map +1 -1
  21. package/dist/src/config/path-security-validator.d.ts +39 -0
  22. package/dist/src/config/path-security-validator.d.ts.map +1 -0
  23. package/dist/src/config/path-security-validator.js +134 -0
  24. package/dist/src/config/path-security-validator.js.map +1 -0
  25. package/dist/src/config/secure-config-loader.d.ts.map +1 -1
  26. package/dist/src/config/secure-config-loader.js +10 -2
  27. package/dist/src/config/secure-config-loader.js.map +1 -1
  28. package/dist/src/config/validation-suggestions.d.ts +13 -0
  29. package/dist/src/config/validation-suggestions.d.ts.map +1 -0
  30. package/dist/src/config/validation-suggestions.js +40 -0
  31. package/dist/src/config/validation-suggestions.js.map +1 -0
  32. package/dist/src/config/validation-types.d.ts +38 -0
  33. package/dist/src/config/validation-types.d.ts.map +1 -0
  34. package/dist/src/config/validation-types.js +7 -0
  35. package/dist/src/config/validation-types.js.map +1 -0
  36. package/dist/src/daemon/component-command-wiring.d.ts +19 -0
  37. package/dist/src/daemon/component-command-wiring.d.ts.map +1 -0
  38. package/dist/src/daemon/component-command-wiring.js +27 -0
  39. package/dist/src/daemon/component-command-wiring.js.map +1 -0
  40. package/dist/src/daemon/component-daemon-interface.d.ts +38 -0
  41. package/dist/src/daemon/component-daemon-interface.d.ts.map +1 -0
  42. package/dist/src/daemon/component-daemon-interface.js +72 -0
  43. package/dist/src/daemon/component-daemon-interface.js.map +1 -0
  44. package/dist/src/daemon/component-health.d.ts +38 -0
  45. package/dist/src/daemon/component-health.d.ts.map +1 -0
  46. package/dist/src/daemon/component-health.js +146 -0
  47. package/dist/src/daemon/component-health.js.map +1 -0
  48. package/dist/src/daemon/component-manager-errors.d.ts +20 -0
  49. package/dist/src/daemon/component-manager-errors.d.ts.map +1 -0
  50. package/dist/src/daemon/component-manager-errors.js +30 -0
  51. package/dist/src/daemon/component-manager-errors.js.map +1 -0
  52. package/dist/src/daemon/component-manager-types.d.ts +23 -0
  53. package/dist/src/daemon/component-manager-types.d.ts.map +1 -0
  54. package/dist/src/daemon/component-manager-types.js +5 -0
  55. package/dist/src/daemon/component-manager-types.js.map +1 -0
  56. package/dist/src/daemon/component-manager.d.ts +16 -64
  57. package/dist/src/daemon/component-manager.d.ts.map +1 -1
  58. package/dist/src/daemon/component-manager.js +72 -509
  59. package/dist/src/daemon/component-manager.js.map +1 -1
  60. package/dist/src/daemon/component-registration.d.ts +14 -0
  61. package/dist/src/daemon/component-registration.d.ts.map +1 -0
  62. package/dist/src/daemon/component-registration.js +92 -0
  63. package/dist/src/daemon/component-registration.js.map +1 -0
  64. package/dist/src/daemon/component-streaming.d.ts +36 -0
  65. package/dist/src/daemon/component-streaming.d.ts.map +1 -0
  66. package/dist/src/daemon/component-streaming.js +112 -0
  67. package/dist/src/daemon/component-streaming.js.map +1 -0
  68. package/dist/src/daemon/daemon-lifecycle.d.ts +37 -0
  69. package/dist/src/daemon/daemon-lifecycle.d.ts.map +1 -0
  70. package/dist/src/daemon/daemon-lifecycle.js +362 -0
  71. package/dist/src/daemon/daemon-lifecycle.js.map +1 -0
  72. package/dist/src/daemon/daemon-queries.d.ts +53 -0
  73. package/dist/src/daemon/daemon-queries.d.ts.map +1 -0
  74. package/dist/src/daemon/daemon-queries.js +113 -0
  75. package/dist/src/daemon/daemon-queries.js.map +1 -0
  76. package/dist/src/daemon/daemon-types.d.ts +30 -0
  77. package/dist/src/daemon/daemon-types.d.ts.map +1 -0
  78. package/dist/src/daemon/daemon-types.js +8 -0
  79. package/dist/src/daemon/daemon-types.js.map +1 -0
  80. package/dist/src/daemon/disposable-base.d.ts +49 -0
  81. package/dist/src/daemon/disposable-base.d.ts.map +1 -0
  82. package/dist/src/daemon/disposable-base.js +70 -0
  83. package/dist/src/daemon/disposable-base.js.map +1 -0
  84. package/dist/src/daemon/disposal-guard.d.ts +27 -0
  85. package/dist/src/daemon/disposal-guard.d.ts.map +1 -0
  86. package/dist/src/daemon/disposal-guard.js +58 -0
  87. package/dist/src/daemon/disposal-guard.js.map +1 -0
  88. package/dist/src/daemon/ipc-command-handler.d.ts +8 -34
  89. package/dist/src/daemon/ipc-command-handler.d.ts.map +1 -1
  90. package/dist/src/daemon/ipc-command-handler.js +14 -362
  91. package/dist/src/daemon/ipc-command-handler.js.map +1 -1
  92. package/dist/src/daemon/log-command-handlers.d.ts +19 -0
  93. package/dist/src/daemon/log-command-handlers.d.ts.map +1 -0
  94. package/dist/src/daemon/log-command-handlers.js +114 -0
  95. package/dist/src/daemon/log-command-handlers.js.map +1 -0
  96. package/dist/src/daemon/process-command-handlers.d.ts +32 -0
  97. package/dist/src/daemon/process-command-handlers.d.ts.map +1 -0
  98. package/dist/src/daemon/process-command-handlers.js +223 -0
  99. package/dist/src/daemon/process-command-handlers.js.map +1 -0
  100. package/dist/src/daemon/procman-daemon.d.ts +22 -98
  101. package/dist/src/daemon/procman-daemon.d.ts.map +1 -1
  102. package/dist/src/daemon/procman-daemon.js +107 -604
  103. package/dist/src/daemon/procman-daemon.js.map +1 -1
  104. package/dist/src/daemon/resource-manager.d.ts +6 -124
  105. package/dist/src/daemon/resource-manager.d.ts.map +1 -1
  106. package/dist/src/daemon/resource-manager.js +5 -231
  107. package/dist/src/daemon/resource-manager.js.map +1 -1
  108. package/dist/src/daemon/resource-types.d.ts +23 -0
  109. package/dist/src/daemon/resource-types.d.ts.map +1 -0
  110. package/dist/src/daemon/resource-types.js +7 -0
  111. package/dist/src/daemon/resource-types.js.map +1 -0
  112. package/dist/src/daemon/shutdown-orchestrator.d.ts +32 -0
  113. package/dist/src/daemon/shutdown-orchestrator.d.ts.map +1 -0
  114. package/dist/src/daemon/shutdown-orchestrator.js +123 -0
  115. package/dist/src/daemon/shutdown-orchestrator.js.map +1 -0
  116. package/dist/src/daemon/tracked-resources.d.ts +60 -0
  117. package/dist/src/daemon/tracked-resources.d.ts.map +1 -0
  118. package/dist/src/daemon/tracked-resources.js +124 -0
  119. package/dist/src/daemon/tracked-resources.js.map +1 -0
  120. package/dist/src/process-manager/index.d.ts +5 -1
  121. package/dist/src/process-manager/index.d.ts.map +1 -1
  122. package/dist/src/process-manager/index.js +3 -0
  123. package/dist/src/process-manager/index.js.map +1 -1
  124. package/dist/src/process-manager/interfaces/process-group.d.ts +6 -0
  125. package/dist/src/process-manager/interfaces/process-group.d.ts.map +1 -1
  126. package/dist/src/process-manager/managed-process-events.d.ts +22 -0
  127. package/dist/src/process-manager/managed-process-events.d.ts.map +1 -0
  128. package/dist/src/process-manager/managed-process-events.js +5 -0
  129. package/dist/src/process-manager/managed-process-events.js.map +1 -0
  130. package/dist/src/process-manager/managed-process-info.d.ts +11 -53
  131. package/dist/src/process-manager/managed-process-info.d.ts.map +1 -1
  132. package/dist/src/process-manager/managed-process-info.js +46 -133
  133. package/dist/src/process-manager/managed-process-info.js.map +1 -1
  134. package/dist/src/process-manager/process-batch-operations.d.ts +62 -0
  135. package/dist/src/process-manager/process-batch-operations.d.ts.map +1 -0
  136. package/dist/src/process-manager/process-batch-operations.js +80 -0
  137. package/dist/src/process-manager/process-batch-operations.js.map +1 -0
  138. package/dist/src/process-manager/process-config.d.ts +49 -0
  139. package/dist/src/process-manager/process-config.d.ts.map +1 -0
  140. package/dist/src/process-manager/process-config.js +68 -0
  141. package/dist/src/process-manager/process-config.js.map +1 -0
  142. package/dist/src/process-manager/process-event-forwarding.d.ts +18 -0
  143. package/dist/src/process-manager/process-event-forwarding.d.ts.map +1 -0
  144. package/dist/src/process-manager/process-event-forwarding.js +105 -0
  145. package/dist/src/process-manager/process-event-forwarding.js.map +1 -0
  146. package/dist/src/process-manager/process-group-manager.d.ts.map +1 -1
  147. package/dist/src/process-manager/process-group-manager.js +0 -1
  148. package/dist/src/process-manager/process-group-manager.js.map +1 -1
  149. package/dist/src/process-manager/process-info-queries.d.ts +48 -0
  150. package/dist/src/process-manager/process-info-queries.d.ts.map +1 -0
  151. package/dist/src/process-manager/process-info-queries.js +92 -0
  152. package/dist/src/process-manager/process-info-queries.js.map +1 -0
  153. package/dist/src/process-manager/process-manager.d.ts +5 -174
  154. package/dist/src/process-manager/process-manager.d.ts.map +1 -1
  155. package/dist/src/process-manager/process-manager.js +58 -398
  156. package/dist/src/process-manager/process-manager.js.map +1 -1
  157. package/dist/src/process-manager/process-monitoring.d.ts +80 -0
  158. package/dist/src/process-manager/process-monitoring.d.ts.map +1 -0
  159. package/dist/src/process-manager/process-monitoring.js +142 -0
  160. package/dist/src/process-manager/process-monitoring.js.map +1 -0
  161. package/dist/src/process-manager/process-statistics.d.ts +37 -0
  162. package/dist/src/process-manager/process-statistics.d.ts.map +1 -0
  163. package/dist/src/process-manager/process-statistics.js +24 -0
  164. package/dist/src/process-manager/process-statistics.js.map +1 -0
  165. package/dist/src/process-manager/restart-manager.d.ts +82 -0
  166. package/dist/src/process-manager/restart-manager.d.ts.map +1 -0
  167. package/dist/src/process-manager/restart-manager.js +150 -0
  168. package/dist/src/process-manager/restart-manager.js.map +1 -0
  169. package/dist/src/services/app-logger.d.ts +144 -0
  170. package/dist/src/services/app-logger.d.ts.map +1 -0
  171. package/dist/src/services/app-logger.js +489 -0
  172. package/dist/src/services/app-logger.js.map +1 -0
  173. package/dist/src/services/log-buffer.d.ts +35 -0
  174. package/dist/src/services/log-buffer.d.ts.map +1 -0
  175. package/dist/src/services/log-buffer.js +87 -0
  176. package/dist/src/services/log-buffer.js.map +1 -0
  177. package/dist/src/services/log-event-manager.d.ts +32 -0
  178. package/dist/src/services/log-event-manager.d.ts.map +1 -0
  179. package/dist/src/services/log-event-manager.js +31 -0
  180. package/dist/src/services/log-event-manager.js.map +1 -0
  181. package/dist/src/services/log-file-manager.d.ts +46 -0
  182. package/dist/src/services/log-file-manager.d.ts.map +1 -0
  183. package/dist/src/services/log-file-manager.js +156 -0
  184. package/dist/src/services/log-file-manager.js.map +1 -0
  185. package/dist/src/services/log-level-strategy.d.ts +19 -0
  186. package/dist/src/services/log-level-strategy.d.ts.map +1 -0
  187. package/dist/src/services/log-level-strategy.js +40 -0
  188. package/dist/src/services/log-level-strategy.js.map +1 -0
  189. package/dist/src/services/log-manager-types.d.ts +117 -0
  190. package/dist/src/services/log-manager-types.d.ts.map +1 -0
  191. package/dist/src/services/log-manager-types.js +12 -0
  192. package/dist/src/services/log-manager-types.js.map +1 -0
  193. package/dist/src/services/log-manager.d.ts +8 -35
  194. package/dist/src/services/log-manager.d.ts.map +1 -1
  195. package/dist/src/services/log-manager.js +10 -870
  196. package/dist/src/services/log-manager.js.map +1 -1
  197. package/dist/src/services/log-preprocessor.d.ts +30 -0
  198. package/dist/src/services/log-preprocessor.d.ts.map +1 -0
  199. package/dist/src/services/log-preprocessor.js +65 -0
  200. package/dist/src/services/log-preprocessor.js.map +1 -0
  201. package/dist/src/services/process-log-integration.d.ts +7 -2
  202. package/dist/src/services/process-log-integration.d.ts.map +1 -1
  203. package/dist/src/services/process-log-integration.js.map +1 -1
  204. package/package.json +5 -7
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Validation Suggestions
3
+ *
4
+ * Generates helpful suggestions for configuration validation errors.
5
+ */
6
+ /**
7
+ * Generate suggestions for validation errors
8
+ * @param errorCode Error code
9
+ * @param field Field name (optional)
10
+ * @returns Array of suggestions
11
+ */
12
+ export function generateSuggestions(errorCode, field) {
13
+ const suggestions = [];
14
+ switch (errorCode) {
15
+ case 'CONFIG_VALIDATION_ERROR':
16
+ if (field === 'name') {
17
+ suggestions.push('Use only alphanumeric characters, dashes, and underscores');
18
+ suggestions.push('Ensure the name is unique across all apps');
19
+ }
20
+ else if (field === 'script') {
21
+ suggestions.push('Provide the full command to execute');
22
+ suggestions.push('Use absolute paths for executables if needed');
23
+ }
24
+ else if (field === 'max_memory_restart') {
25
+ suggestions.push('Use format like "300M", "1G", or "512000K"');
26
+ suggestions.push('Ensure the unit (K/M/G) is specified');
27
+ }
28
+ break;
29
+ case 'CONFIG_SECURITY_ERROR':
30
+ suggestions.push('Use relative paths within the project directory');
31
+ suggestions.push('Avoid ".." in paths to prevent directory traversal');
32
+ suggestions.push('Use absolute paths only when explicitly needed');
33
+ break;
34
+ default:
35
+ suggestions.push('Check the configuration documentation');
36
+ suggestions.push('Verify all required fields are present');
37
+ }
38
+ return suggestions;
39
+ }
40
+ //# sourceMappingURL=validation-suggestions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-suggestions.js","sourceRoot":"","sources":["../../../src/config/validation-suggestions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,SAAiB,EACjB,KAAc;IAEd,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,yBAAyB;YAC5B,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACrB,WAAW,CAAC,IAAI,CACd,2DAA2D,CAC5D,CAAC;gBACF,WAAW,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;YAChE,CAAC;iBAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,WAAW,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;gBACxD,WAAW,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YACnE,CAAC;iBAAM,IAAI,KAAK,KAAK,oBAAoB,EAAE,CAAC;gBAC1C,WAAW,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;gBAC/D,WAAW,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM;QAER,KAAK,uBAAuB;YAC1B,WAAW,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YACpE,WAAW,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YACvE,WAAW,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YACnE,MAAM;QAER;YACE,WAAW,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YAC1D,WAAW,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Validation Types
3
+ *
4
+ * Type definitions for configuration validation.
5
+ */
6
+ /**
7
+ * Validation issue severity levels
8
+ */
9
+ export type ValidationSeverity = 'error' | 'warning' | 'info';
10
+ /**
11
+ * Validation issue details
12
+ */
13
+ export interface ValidationIssue {
14
+ /** Issue severity level */
15
+ severity: ValidationSeverity;
16
+ /** Issue category */
17
+ category: 'structure' | 'security' | 'performance' | 'compatibility';
18
+ /** Issue message */
19
+ message: string;
20
+ /** Location of the issue */
21
+ location?: {
22
+ appIndex?: number;
23
+ field?: string;
24
+ value?: string;
25
+ };
26
+ /** Suggested fix */
27
+ suggestion?: string;
28
+ }
29
+ /**
30
+ * Configuration validator options
31
+ */
32
+ export interface ConfigValidatorOptions {
33
+ /** Project root path for security validation */
34
+ projectRoot?: string;
35
+ /** Whether to collect validation issues for reporting (default: false) */
36
+ collectIssues?: boolean;
37
+ }
38
+ //# sourceMappingURL=validation-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-types.d.ts","sourceRoot":"","sources":["../../../src/config/validation-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2BAA2B;IAC3B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,qBAAqB;IACrB,QAAQ,EAAE,WAAW,GAAG,UAAU,GAAG,aAAa,GAAG,eAAe,CAAC;IACrE,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE;QACT,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,oBAAoB;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Validation Types
3
+ *
4
+ * Type definitions for configuration validation.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=validation-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-types.js","sourceRoot":"","sources":["../../../src/config/validation-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Component Command Wiring - registers IPC command handlers and sets up streaming
3
+ */
4
+ import { EventEmitter } from 'events';
5
+ import { IPCServerBase } from './ipc-server-base.js';
6
+ import { IPCCommandHandler } from './ipc-command-handler.js';
7
+ import { LogManager } from '../services/log-manager.js';
8
+ import { StreamingSessionManager } from './component-streaming.js';
9
+ /**
10
+ * Register all command handlers with the IPC server and set up log streaming.
11
+ */
12
+ export declare function wireCommandHandlers(options: {
13
+ ipcServer: IPCServerBase;
14
+ commandHandler: IPCCommandHandler;
15
+ logManager: LogManager;
16
+ streamingManager: StreamingSessionManager;
17
+ registerListener: <T extends EventEmitter>(emitter: T, event: string | symbol, listener: (...args: any[]) => void) => void;
18
+ }): void;
19
+ //# sourceMappingURL=component-command-wiring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-command-wiring.d.ts","sourceRoot":"","sources":["../../../src/daemon/component-command-wiring.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,SAAS,EAAE,aAAa,CAAC;IACzB,cAAc,EAAE,iBAAiB,CAAC;IAClC,UAAU,EAAE,UAAU,CAAC;IACvB,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,gBAAgB,EAAE,CAAC,CAAC,SAAS,YAAY,EACvC,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAC/B,IAAI,CAAC;CACX,GAAG,IAAI,CAiCP"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Component Command Wiring - registers IPC command handlers and sets up streaming
3
+ */
4
+ /**
5
+ * Register all command handlers with the IPC server and set up log streaming.
6
+ */
7
+ export function wireCommandHandlers(options) {
8
+ const { ipcServer, commandHandler, logManager, streamingManager, registerListener, } = options;
9
+ const commandTypes = [
10
+ 'load',
11
+ 'start',
12
+ 'stop',
13
+ 'restart',
14
+ 'list',
15
+ 'log',
16
+ 'clear-log',
17
+ 'exit',
18
+ ];
19
+ for (const commandType of commandTypes) {
20
+ ipcServer.registerHandler(commandType, async (message, connection) => {
21
+ return commandHandler.handleMessage(message, connection);
22
+ });
23
+ }
24
+ // Setup log streaming via streaming manager
25
+ streamingManager.setupLogStreaming(commandHandler, ipcServer, logManager, registerListener);
26
+ }
27
+ //# sourceMappingURL=component-command-wiring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-command-wiring.js","sourceRoot":"","sources":["../../../src/daemon/component-command-wiring.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAUnC;IACC,MAAM,EACJ,SAAS,EACT,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,gBAAgB,GACjB,GAAG,OAAO,CAAC;IAEZ,MAAM,YAAY,GAAkB;QAClC,MAAM;QACN,OAAO;QACP,MAAM;QACN,SAAS;QACT,MAAM;QACN,KAAK;QACL,WAAW;QACX,MAAM;KACP,CAAC;IAEF,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,SAAS,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE;YACnE,OAAO,cAAc,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4CAA4C;IAC5C,gBAAgB,CAAC,iBAAiB,CAChC,cAAc,EACd,SAAS,EACT,UAAU,EACV,gBAAgB,CACjB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Component Daemon Interface - creates the daemon interface used by IPCCommandHandler
3
+ */
4
+ import { ConfigLoader } from '../config/config-loader.js';
5
+ import { ProcessManager } from '../process-manager/process-manager.js';
6
+ import { LogManager } from '../services/log-manager.js';
7
+ /**
8
+ * Dependencies needed to create the daemon interface
9
+ */
10
+ export interface DaemonInterfaceDeps {
11
+ getConfigLoader: () => ConfigLoader;
12
+ getProcessManager: () => ProcessManager;
13
+ getLogManager: () => LogManager;
14
+ cleanupAll: () => Promise<void>;
15
+ }
16
+ /**
17
+ * Create a daemon interface object for the IPCCommandHandler.
18
+ * This provides the command handler with access to daemon functionality.
19
+ */
20
+ export declare function createDaemonInterface(deps: DaemonInterfaceDeps): {
21
+ getConfigLoader: () => ConfigLoader;
22
+ getProcessManager: () => ProcessManager;
23
+ getLogManager: () => LogManager;
24
+ getAllProcessStatuses: () => Promise<{
25
+ name: string;
26
+ namespace: string;
27
+ pid: number | null;
28
+ status: import("../shared/process.js").ProcessStatus;
29
+ uptime: number;
30
+ memory: number;
31
+ cpu: number;
32
+ restarts: number;
33
+ }[]>;
34
+ getConfig: () => undefined;
35
+ loadConfig: (configFilePath: string) => Promise<import("../shared/config.js").AppConfig[]>;
36
+ stop: () => Promise<void>;
37
+ };
38
+ //# sourceMappingURL=component-daemon-interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-daemon-interface.d.ts","sourceRoot":"","sources":["../../../src/daemon/component-daemon-interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,YAAY,CAAC;IACpC,iBAAiB,EAAE,MAAM,cAAc,CAAC;IACxC,aAAa,EAAE,MAAM,UAAU,CAAC;IAChC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED;;;GAGG;AAEH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB;;;;;;;;;;;;;;;iCAiCxB,MAAM;;EAqC5C"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Component Daemon Interface - creates the daemon interface used by IPCCommandHandler
3
+ */
4
+ /**
5
+ * Create a daemon interface object for the IPCCommandHandler.
6
+ * This provides the command handler with access to daemon functionality.
7
+ */
8
+ // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
9
+ export function createDaemonInterface(deps) {
10
+ return {
11
+ getConfigLoader: () => deps.getConfigLoader(),
12
+ getProcessManager: () => deps.getProcessManager(),
13
+ getLogManager: () => deps.getLogManager(),
14
+ getAllProcessStatuses: async () => {
15
+ const processManager = deps.getProcessManager();
16
+ const processInfos = processManager.getAllProcessInfo();
17
+ const statusPromises = processInfos.map(async (processInfo) => {
18
+ const info = processInfo;
19
+ if (!info)
20
+ return null;
21
+ const stats = await processManager.monitor.getProcessStats(info.name);
22
+ return {
23
+ name: info.name,
24
+ namespace: info.namespace || 'default',
25
+ pid: info.pid,
26
+ status: info.status,
27
+ uptime: info.uptime,
28
+ memory: stats?.memory || 0,
29
+ cpu: stats?.cpu || 0,
30
+ restarts: info.restarts,
31
+ };
32
+ });
33
+ const results = await Promise.all(statusPromises);
34
+ return results.filter((result) => result !== null);
35
+ },
36
+ getConfig: () => {
37
+ return undefined;
38
+ },
39
+ loadConfig: async (configFilePath) => {
40
+ const configLoader = deps.getConfigLoader();
41
+ const processManager = deps.getProcessManager();
42
+ const logManager = deps.getLogManager();
43
+ const config = await configLoader.load(configFilePath);
44
+ const allProcesses = processManager.getAllProcessInfo();
45
+ if (allProcesses.length > 0) {
46
+ const processNames = allProcesses
47
+ .map((processInfo) => {
48
+ const info = processInfo;
49
+ return info?.name || '';
50
+ })
51
+ .filter((name) => name !== '');
52
+ await processManager.stopProcesses(processNames);
53
+ }
54
+ for (const app of config.apps) {
55
+ processManager.configureProcess(app);
56
+ if (logManager && (app.log_file || app.out_file || app.error_file)) {
57
+ await logManager.setupAppLogs(app.name, {
58
+ logFile: app.log_file,
59
+ outFile: app.out_file,
60
+ errorFile: app.error_file,
61
+ namespace: app.namespace,
62
+ });
63
+ }
64
+ }
65
+ return config.apps;
66
+ },
67
+ stop: async () => {
68
+ await deps.cleanupAll();
69
+ },
70
+ };
71
+ }
72
+ //# sourceMappingURL=component-daemon-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-daemon-interface.js","sourceRoot":"","sources":["../../../src/daemon/component-daemon-interface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Component Health Checks - health verification for daemon components
3
+ */
4
+ import { ConfigLoader } from '../config/config-loader.js';
5
+ import { ProcessManager } from '../process-manager/process-manager.js';
6
+ import { LogManager } from '../services/log-manager.js';
7
+ import { IPCServerBase } from './ipc-server-base.js';
8
+ import { IPCCommandHandler } from './ipc-command-handler.js';
9
+ /**
10
+ * Health check result for a single component
11
+ */
12
+ export interface ComponentHealthStatus {
13
+ status: 'healthy' | 'unhealthy' | 'unknown';
14
+ message: string;
15
+ }
16
+ /**
17
+ * Aggregated health check result
18
+ */
19
+ export interface HealthCheckResult {
20
+ healthy: boolean;
21
+ details: Record<string, ComponentHealthStatus>;
22
+ }
23
+ /**
24
+ * Components to check health for
25
+ */
26
+ export interface HealthCheckTargets {
27
+ configLoader?: ConfigLoader;
28
+ processManager?: ProcessManager;
29
+ logManager?: LogManager;
30
+ ipcServer?: IPCServerBase;
31
+ commandHandler?: IPCCommandHandler;
32
+ }
33
+ /**
34
+ * Perform comprehensive health checks on all components.
35
+ * Verifies each component is not just initialized but actually functional.
36
+ */
37
+ export declare function performHealthChecks(targets: HealthCheckTargets): Promise<HealthCheckResult>;
38
+ //# sourceMappingURL=component-health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-health.d.ts","sourceRoot":"","sources":["../../../src/daemon/component-health.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,cAAc,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAiI5B"}
@@ -0,0 +1,146 @@
1
+ /**
2
+ * Component Health Checks - health verification for daemon components
3
+ */
4
+ /**
5
+ * Perform comprehensive health checks on all components.
6
+ * Verifies each component is not just initialized but actually functional.
7
+ */
8
+ export async function performHealthChecks(targets) {
9
+ const details = {};
10
+ let allHealthy = true;
11
+ // Check ConfigLoader health
12
+ if (targets.configLoader) {
13
+ try {
14
+ const isReady = true;
15
+ details.configLoader = {
16
+ status: isReady ? 'healthy' : 'unhealthy',
17
+ message: isReady
18
+ ? 'ConfigLoader is ready'
19
+ : 'ConfigLoader not initialized',
20
+ };
21
+ if (!isReady)
22
+ allHealthy = false;
23
+ }
24
+ catch (error) {
25
+ details.configLoader = {
26
+ status: 'unhealthy',
27
+ message: `ConfigLoader error: ${error instanceof Error ? error.message : 'Unknown error'}`,
28
+ };
29
+ allHealthy = false;
30
+ }
31
+ }
32
+ else {
33
+ details.configLoader = {
34
+ status: 'unhealthy',
35
+ message: 'ConfigLoader not available',
36
+ };
37
+ allHealthy = false;
38
+ }
39
+ // Check ProcessManager health
40
+ if (targets.processManager) {
41
+ try {
42
+ const isReady = true;
43
+ details.processManager = {
44
+ status: isReady ? 'healthy' : 'unhealthy',
45
+ message: isReady
46
+ ? 'ProcessManager is running'
47
+ : 'ProcessManager not running',
48
+ };
49
+ if (!isReady)
50
+ allHealthy = false;
51
+ }
52
+ catch (error) {
53
+ details.processManager = {
54
+ status: 'unhealthy',
55
+ message: `ProcessManager error: ${error instanceof Error ? error.message : 'Unknown error'}`,
56
+ };
57
+ allHealthy = false;
58
+ }
59
+ }
60
+ else {
61
+ details.processManager = {
62
+ status: 'unhealthy',
63
+ message: 'ProcessManager not available',
64
+ };
65
+ allHealthy = false;
66
+ }
67
+ // Check LogManager health
68
+ if (targets.logManager) {
69
+ try {
70
+ const isReady = true;
71
+ details.logManager = {
72
+ status: isReady ? 'healthy' : 'unhealthy',
73
+ message: isReady ? 'LogManager is running' : 'LogManager not running',
74
+ };
75
+ if (!isReady)
76
+ allHealthy = false;
77
+ }
78
+ catch (error) {
79
+ details.logManager = {
80
+ status: 'unhealthy',
81
+ message: `LogManager error: ${error instanceof Error ? error.message : 'Unknown error'}`,
82
+ };
83
+ allHealthy = false;
84
+ }
85
+ }
86
+ else {
87
+ details.logManager = {
88
+ status: 'unhealthy',
89
+ message: 'LogManager not available',
90
+ };
91
+ allHealthy = false;
92
+ }
93
+ // Check IPCServer health - most critical for readiness
94
+ if (targets.ipcServer) {
95
+ try {
96
+ const isListening = targets.ipcServer.isServerListening?.();
97
+ details.ipcServer = {
98
+ status: isListening ? 'healthy' : 'unhealthy',
99
+ message: isListening
100
+ ? 'IPC Server is listening and ready'
101
+ : 'IPC Server not listening',
102
+ };
103
+ if (!isListening)
104
+ allHealthy = false;
105
+ }
106
+ catch (error) {
107
+ details.ipcServer = {
108
+ status: 'unhealthy',
109
+ message: `IPCServer error: ${error instanceof Error ? error.message : 'Unknown error'}`,
110
+ };
111
+ allHealthy = false;
112
+ }
113
+ }
114
+ else {
115
+ details.ipcServer = {
116
+ status: 'unhealthy',
117
+ message: 'IPC Server not available',
118
+ };
119
+ allHealthy = false;
120
+ }
121
+ // Check CommandHandler health
122
+ if (targets.commandHandler) {
123
+ try {
124
+ details.commandHandler = {
125
+ status: 'healthy',
126
+ message: 'CommandHandler is ready',
127
+ };
128
+ }
129
+ catch (error) {
130
+ details.commandHandler = {
131
+ status: 'unhealthy',
132
+ message: `CommandHandler error: ${error instanceof Error ? error.message : 'Unknown error'}`,
133
+ };
134
+ allHealthy = false;
135
+ }
136
+ }
137
+ else {
138
+ details.commandHandler = {
139
+ status: 'unhealthy',
140
+ message: 'CommandHandler not available',
141
+ };
142
+ allHealthy = false;
143
+ }
144
+ return { healthy: allHealthy, details };
145
+ }
146
+ //# sourceMappingURL=component-health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-health.js","sourceRoot":"","sources":["../../../src/daemon/component-health.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmCH;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAA2B;IAE3B,MAAM,OAAO,GAA0C,EAAE,CAAC;IAC1D,IAAI,UAAU,GAAG,IAAI,CAAC;IAEtB,4BAA4B;IAC5B,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC;YACrB,OAAO,CAAC,YAAY,GAAG;gBACrB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;gBACzC,OAAO,EAAE,OAAO;oBACd,CAAC,CAAC,uBAAuB;oBACzB,CAAC,CAAC,8BAA8B;aACnC,CAAC;YACF,IAAI,CAAC,OAAO;gBAAE,UAAU,GAAG,KAAK,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,YAAY,GAAG;gBACrB,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,uBAAuB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;aAC3F,CAAC;YACF,UAAU,GAAG,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,YAAY,GAAG;YACrB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,4BAA4B;SACtC,CAAC;QACF,UAAU,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,8BAA8B;IAC9B,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC;YACrB,OAAO,CAAC,cAAc,GAAG;gBACvB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;gBACzC,OAAO,EAAE,OAAO;oBACd,CAAC,CAAC,2BAA2B;oBAC7B,CAAC,CAAC,4BAA4B;aACjC,CAAC;YACF,IAAI,CAAC,OAAO;gBAAE,UAAU,GAAG,KAAK,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,cAAc,GAAG;gBACvB,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;aAC7F,CAAC;YACF,UAAU,GAAG,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,cAAc,GAAG;YACvB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,8BAA8B;SACxC,CAAC;QACF,UAAU,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,0BAA0B;IAC1B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC;YACrB,OAAO,CAAC,UAAU,GAAG;gBACnB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;gBACzC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,wBAAwB;aACtE,CAAC;YACF,IAAI,CAAC,OAAO;gBAAE,UAAU,GAAG,KAAK,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,UAAU,GAAG;gBACnB,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,qBAAqB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;aACzF,CAAC;YACF,UAAU,GAAG,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,UAAU,GAAG;YACnB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,0BAA0B;SACpC,CAAC;QACF,UAAU,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,uDAAuD;IACvD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAC5D,OAAO,CAAC,SAAS,GAAG;gBAClB,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;gBAC7C,OAAO,EAAE,WAAW;oBAClB,CAAC,CAAC,mCAAmC;oBACrC,CAAC,CAAC,0BAA0B;aAC/B,CAAC;YACF,IAAI,CAAC,WAAW;gBAAE,UAAU,GAAG,KAAK,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,SAAS,GAAG;gBAClB,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,oBAAoB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;aACxF,CAAC;YACF,UAAU,GAAG,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,SAAS,GAAG;YAClB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,0BAA0B;SACpC,CAAC;QACF,UAAU,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,8BAA8B;IAC9B,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,OAAO,CAAC,cAAc,GAAG;gBACvB,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,yBAAyB;aACnC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,cAAc,GAAG;gBACvB,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;aAC7F,CAAC;YACF,UAAU,GAAG,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,cAAc,GAAG;YACvB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,8BAA8B;SACxC,CAAC;QACF,UAAU,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Component Manager Errors - error handling classes
3
+ */
4
+ /**
5
+ * Component initialization error
6
+ */
7
+ export declare class ComponentInitializationError extends Error {
8
+ componentName: string;
9
+ originalError: Error;
10
+ constructor(componentName: string, originalError: Error);
11
+ }
12
+ /**
13
+ * Component cleanup error
14
+ */
15
+ export declare class ComponentCleanupError extends Error {
16
+ componentName: string;
17
+ originalError: Error;
18
+ constructor(componentName: string, originalError: Error);
19
+ }
20
+ //# sourceMappingURL=component-manager-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-manager-errors.d.ts","sourceRoot":"","sources":["../../../src/daemon/component-manager-errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;IAE5C,aAAa,EAAE,MAAM;IACrB,aAAa,EAAE,KAAK;gBADpB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,KAAK;CAO9B;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAErC,aAAa,EAAE,MAAM;IACrB,aAAa,EAAE,KAAK;gBADpB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,KAAK;CAO9B"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Component Manager Errors - error handling classes
3
+ */
4
+ /**
5
+ * Component initialization error
6
+ */
7
+ export class ComponentInitializationError extends Error {
8
+ componentName;
9
+ originalError;
10
+ constructor(componentName, originalError) {
11
+ super(`Failed to initialize component '${componentName}': ${originalError.message}`);
12
+ this.componentName = componentName;
13
+ this.originalError = originalError;
14
+ this.name = 'ComponentInitializationError';
15
+ }
16
+ }
17
+ /**
18
+ * Component cleanup error
19
+ */
20
+ export class ComponentCleanupError extends Error {
21
+ componentName;
22
+ originalError;
23
+ constructor(componentName, originalError) {
24
+ super(`Failed to cleanup component '${componentName}': ${originalError.message}`);
25
+ this.componentName = componentName;
26
+ this.originalError = originalError;
27
+ this.name = 'ComponentCleanupError';
28
+ }
29
+ }
30
+ //# sourceMappingURL=component-manager-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-manager-errors.js","sourceRoot":"","sources":["../../../src/daemon/component-manager-errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,OAAO,4BAA6B,SAAQ,KAAK;IAE5C;IACA;IAFT,YACS,aAAqB,EACrB,aAAoB;QAE3B,KAAK,CACH,mCAAmC,aAAa,MAAM,aAAa,CAAC,OAAO,EAAE,CAC9E,CAAC;QALK,kBAAa,GAAb,aAAa,CAAQ;QACrB,kBAAa,GAAb,aAAa,CAAO;QAK3B,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAErC;IACA;IAFT,YACS,aAAqB,EACrB,aAAoB;QAE3B,KAAK,CACH,gCAAgC,aAAa,MAAM,aAAa,CAAC,OAAO,EAAE,CAC3E,CAAC;QALK,kBAAa,GAAb,aAAa,CAAQ;QACrB,kBAAa,GAAb,aAAa,CAAO;QAK3B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Component Manager Types - interfaces and type definitions
3
+ */
4
+ /**
5
+ * Events emitted by ComponentManager
6
+ */
7
+ export interface ComponentManagerEvents {
8
+ componentStarted: (componentName: string) => void;
9
+ componentStopped: (componentName: string) => void;
10
+ componentError: (componentName: string, error: Error) => void;
11
+ allComponentsStarted: () => void;
12
+ allComponentsStopped: () => void;
13
+ }
14
+ /**
15
+ * Component manager interface
16
+ */
17
+ export interface Component {
18
+ name: string;
19
+ initialize(): Promise<void>;
20
+ cleanup(): Promise<void>;
21
+ isInitialized(): boolean;
22
+ }
23
+ //# sourceMappingURL=component-manager-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-manager-types.d.ts","sourceRoot":"","sources":["../../../src/daemon/component-manager-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,gBAAgB,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC9D,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,oBAAoB,EAAE,MAAM,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,aAAa,IAAI,OAAO,CAAC;CAC1B"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Component Manager Types - interfaces and type definitions
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=component-manager-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-manager-types.js","sourceRoot":"","sources":["../../../src/daemon/component-manager-types.ts"],"names":[],"mappings":"AAAA;;GAEG"}