@revealui/mcp 0.1.0 → 0.1.1

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 (293) hide show
  1. package/LICENSE +22 -0
  2. package/LICENSE.commercial +112 -0
  3. package/README.md +3 -0
  4. package/dist/adapters/db.d.ts.map +1 -0
  5. package/dist/adapters/db.js.map +1 -0
  6. package/dist/config/index.d.ts.map +1 -0
  7. package/dist/config/index.js.map +1 -0
  8. package/dist/contracts.d.ts.map +1 -0
  9. package/dist/contracts.js.map +1 -0
  10. package/dist/hypervisor.d.ts.map +1 -0
  11. package/dist/hypervisor.js.map +1 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/{packages/mcp/src/servers → servers}/adapter.d.ts +11 -1
  15. package/dist/servers/adapter.d.ts.map +1 -0
  16. package/dist/{packages/mcp/src/servers → servers}/adapter.js +20 -4
  17. package/dist/servers/adapter.js.map +1 -0
  18. package/dist/servers/revealui-content.d.ts +21 -0
  19. package/dist/servers/revealui-content.d.ts.map +1 -0
  20. package/dist/servers/revealui-content.js +199 -0
  21. package/dist/servers/revealui-content.js.map +1 -0
  22. package/dist/servers/revealui-email.d.ts +18 -0
  23. package/dist/servers/revealui-email.d.ts.map +1 -0
  24. package/dist/servers/revealui-email.js +185 -0
  25. package/dist/servers/revealui-email.js.map +1 -0
  26. package/dist/servers/revealui-stripe.d.ts +19 -0
  27. package/dist/servers/revealui-stripe.d.ts.map +1 -0
  28. package/dist/servers/revealui-stripe.js +211 -0
  29. package/dist/servers/revealui-stripe.js.map +1 -0
  30. package/package.json +47 -8
  31. package/.env.example +0 -9
  32. package/MCP_MAINTENANCE.md +0 -265
  33. package/__tests__/crdt.integration.test.ts +0 -156
  34. package/configs/README.md +0 -77
  35. package/configs/claude-template.json +0 -54
  36. package/dist/packages/core/src/database/ssl-config.d.ts +0 -9
  37. package/dist/packages/core/src/database/ssl-config.d.ts.map +0 -1
  38. package/dist/packages/core/src/database/ssl-config.js +0 -8
  39. package/dist/packages/core/src/database/ssl-config.js.map +0 -1
  40. package/dist/packages/core/src/features.d.ts +0 -86
  41. package/dist/packages/core/src/features.d.ts.map +0 -1
  42. package/dist/packages/core/src/features.js +0 -93
  43. package/dist/packages/core/src/features.js.map +0 -1
  44. package/dist/packages/core/src/license.d.ts +0 -75
  45. package/dist/packages/core/src/license.d.ts.map +0 -1
  46. package/dist/packages/core/src/license.js +0 -174
  47. package/dist/packages/core/src/license.js.map +0 -1
  48. package/dist/packages/core/src/monitoring/alerts.d.ts +0 -118
  49. package/dist/packages/core/src/monitoring/alerts.d.ts.map +0 -1
  50. package/dist/packages/core/src/monitoring/alerts.js +0 -325
  51. package/dist/packages/core/src/monitoring/alerts.js.map +0 -1
  52. package/dist/packages/core/src/monitoring/cleanup-manager.d.ts +0 -71
  53. package/dist/packages/core/src/monitoring/cleanup-manager.d.ts.map +0 -1
  54. package/dist/packages/core/src/monitoring/cleanup-manager.js +0 -227
  55. package/dist/packages/core/src/monitoring/cleanup-manager.js.map +0 -1
  56. package/dist/packages/core/src/monitoring/health-monitor.d.ts +0 -22
  57. package/dist/packages/core/src/monitoring/health-monitor.d.ts.map +0 -1
  58. package/dist/packages/core/src/monitoring/health-monitor.js +0 -143
  59. package/dist/packages/core/src/monitoring/health-monitor.js.map +0 -1
  60. package/dist/packages/core/src/monitoring/index.d.ts +0 -14
  61. package/dist/packages/core/src/monitoring/index.d.ts.map +0 -1
  62. package/dist/packages/core/src/monitoring/index.js +0 -18
  63. package/dist/packages/core/src/monitoring/index.js.map +0 -1
  64. package/dist/packages/core/src/monitoring/process-registry.d.ts +0 -97
  65. package/dist/packages/core/src/monitoring/process-registry.d.ts.map +0 -1
  66. package/dist/packages/core/src/monitoring/process-registry.js +0 -223
  67. package/dist/packages/core/src/monitoring/process-registry.js.map +0 -1
  68. package/dist/packages/core/src/monitoring/types.d.ts +0 -231
  69. package/dist/packages/core/src/monitoring/types.d.ts.map +0 -1
  70. package/dist/packages/core/src/monitoring/types.js +0 -43
  71. package/dist/packages/core/src/monitoring/types.js.map +0 -1
  72. package/dist/packages/core/src/monitoring/zombie-detector.d.ts +0 -81
  73. package/dist/packages/core/src/monitoring/zombie-detector.d.ts.map +0 -1
  74. package/dist/packages/core/src/monitoring/zombie-detector.js +0 -232
  75. package/dist/packages/core/src/monitoring/zombie-detector.js.map +0 -1
  76. package/dist/packages/core/src/observability/logger.d.ts +0 -47
  77. package/dist/packages/core/src/observability/logger.d.ts.map +0 -1
  78. package/dist/packages/core/src/observability/logger.js +0 -141
  79. package/dist/packages/core/src/observability/logger.js.map +0 -1
  80. package/dist/packages/core/src/utils/logger-server.d.ts +0 -32
  81. package/dist/packages/core/src/utils/logger-server.d.ts.map +0 -1
  82. package/dist/packages/core/src/utils/logger-server.js +0 -69
  83. package/dist/packages/core/src/utils/logger-server.js.map +0 -1
  84. package/dist/packages/core/src/utils/request-context.d.ts +0 -143
  85. package/dist/packages/core/src/utils/request-context.d.ts.map +0 -1
  86. package/dist/packages/core/src/utils/request-context.js +0 -169
  87. package/dist/packages/core/src/utils/request-context.js.map +0 -1
  88. package/dist/packages/dev/src/code-validator/index.d.ts +0 -20
  89. package/dist/packages/dev/src/code-validator/index.d.ts.map +0 -1
  90. package/dist/packages/dev/src/code-validator/index.js +0 -20
  91. package/dist/packages/dev/src/code-validator/index.js.map +0 -1
  92. package/dist/packages/dev/src/code-validator/types.d.ts +0 -67
  93. package/dist/packages/dev/src/code-validator/types.d.ts.map +0 -1
  94. package/dist/packages/dev/src/code-validator/types.js +0 -7
  95. package/dist/packages/dev/src/code-validator/types.js.map +0 -1
  96. package/dist/packages/dev/src/code-validator/validator.d.ts +0 -48
  97. package/dist/packages/dev/src/code-validator/validator.d.ts.map +0 -1
  98. package/dist/packages/dev/src/code-validator/validator.js +0 -176
  99. package/dist/packages/dev/src/code-validator/validator.js.map +0 -1
  100. package/dist/packages/mcp/src/adapters/db.d.ts.map +0 -1
  101. package/dist/packages/mcp/src/adapters/db.js.map +0 -1
  102. package/dist/packages/mcp/src/config/index.d.ts.map +0 -1
  103. package/dist/packages/mcp/src/config/index.js.map +0 -1
  104. package/dist/packages/mcp/src/contracts.d.ts.map +0 -1
  105. package/dist/packages/mcp/src/contracts.js.map +0 -1
  106. package/dist/packages/mcp/src/hypervisor.d.ts.map +0 -1
  107. package/dist/packages/mcp/src/hypervisor.js.map +0 -1
  108. package/dist/packages/mcp/src/index.d.ts.map +0 -1
  109. package/dist/packages/mcp/src/index.js.map +0 -1
  110. package/dist/packages/mcp/src/servers/adapter.d.ts.map +0 -1
  111. package/dist/packages/mcp/src/servers/adapter.js.map +0 -1
  112. package/dist/packages/mcp/src/servers/code-validator.d.ts +0 -24
  113. package/dist/packages/mcp/src/servers/code-validator.d.ts.map +0 -1
  114. package/dist/packages/mcp/src/servers/code-validator.js +0 -156
  115. package/dist/packages/mcp/src/servers/code-validator.js.map +0 -1
  116. package/dist/packages/mcp/src/servers/neon.d.ts +0 -11
  117. package/dist/packages/mcp/src/servers/neon.d.ts.map +0 -1
  118. package/dist/packages/mcp/src/servers/neon.js +0 -90
  119. package/dist/packages/mcp/src/servers/neon.js.map +0 -1
  120. package/dist/packages/mcp/src/servers/next-devtools.d.ts +0 -11
  121. package/dist/packages/mcp/src/servers/next-devtools.d.ts.map +0 -1
  122. package/dist/packages/mcp/src/servers/next-devtools.js +0 -215
  123. package/dist/packages/mcp/src/servers/next-devtools.js.map +0 -1
  124. package/dist/packages/mcp/src/servers/playwright.d.ts +0 -11
  125. package/dist/packages/mcp/src/servers/playwright.d.ts.map +0 -1
  126. package/dist/packages/mcp/src/servers/playwright.js +0 -68
  127. package/dist/packages/mcp/src/servers/playwright.js.map +0 -1
  128. package/dist/packages/mcp/src/servers/stripe.d.ts +0 -11
  129. package/dist/packages/mcp/src/servers/stripe.d.ts.map +0 -1
  130. package/dist/packages/mcp/src/servers/stripe.js +0 -86
  131. package/dist/packages/mcp/src/servers/stripe.js.map +0 -1
  132. package/dist/packages/mcp/src/servers/supabase.d.ts +0 -11
  133. package/dist/packages/mcp/src/servers/supabase.d.ts.map +0 -1
  134. package/dist/packages/mcp/src/servers/supabase.js +0 -144
  135. package/dist/packages/mcp/src/servers/supabase.js.map +0 -1
  136. package/dist/packages/mcp/src/servers/vercel.d.ts +0 -11
  137. package/dist/packages/mcp/src/servers/vercel.d.ts.map +0 -1
  138. package/dist/packages/mcp/src/servers/vercel.js +0 -87
  139. package/dist/packages/mcp/src/servers/vercel.js.map +0 -1
  140. package/dist/packages/mcp/src/servers/vultr-test.d.ts +0 -3
  141. package/dist/packages/mcp/src/servers/vultr-test.d.ts.map +0 -1
  142. package/dist/packages/mcp/src/servers/vultr-test.js +0 -82
  143. package/dist/packages/mcp/src/servers/vultr-test.js.map +0 -1
  144. package/dist/scripts/lib/analyzers/console-analyzer.d.ts +0 -188
  145. package/dist/scripts/lib/analyzers/console-analyzer.d.ts.map +0 -1
  146. package/dist/scripts/lib/analyzers/console-analyzer.js +0 -432
  147. package/dist/scripts/lib/analyzers/console-analyzer.js.map +0 -1
  148. package/dist/scripts/lib/analyzers/index.d.ts +0 -11
  149. package/dist/scripts/lib/analyzers/index.d.ts.map +0 -1
  150. package/dist/scripts/lib/analyzers/index.js +0 -11
  151. package/dist/scripts/lib/analyzers/index.js.map +0 -1
  152. package/dist/scripts/lib/args.d.ts +0 -104
  153. package/dist/scripts/lib/args.d.ts.map +0 -1
  154. package/dist/scripts/lib/args.js +0 -304
  155. package/dist/scripts/lib/args.js.map +0 -1
  156. package/dist/scripts/lib/cache.d.ts +0 -185
  157. package/dist/scripts/lib/cache.d.ts.map +0 -1
  158. package/dist/scripts/lib/cache.js +0 -390
  159. package/dist/scripts/lib/cache.js.map +0 -1
  160. package/dist/scripts/lib/cli/dispatch.d.ts +0 -116
  161. package/dist/scripts/lib/cli/dispatch.d.ts.map +0 -1
  162. package/dist/scripts/lib/cli/dispatch.js +0 -206
  163. package/dist/scripts/lib/cli/dispatch.js.map +0 -1
  164. package/dist/scripts/lib/cli/index.d.ts +0 -10
  165. package/dist/scripts/lib/cli/index.d.ts.map +0 -1
  166. package/dist/scripts/lib/cli/index.js +0 -10
  167. package/dist/scripts/lib/cli/index.js.map +0 -1
  168. package/dist/scripts/lib/database/ssl-config.d.ts +0 -26
  169. package/dist/scripts/lib/database/ssl-config.d.ts.map +0 -1
  170. package/dist/scripts/lib/database/ssl-config.js +0 -47
  171. package/dist/scripts/lib/database/ssl-config.js.map +0 -1
  172. package/dist/scripts/lib/errors.d.ts +0 -218
  173. package/dist/scripts/lib/errors.d.ts.map +0 -1
  174. package/dist/scripts/lib/errors.js +0 -543
  175. package/dist/scripts/lib/errors.js.map +0 -1
  176. package/dist/scripts/lib/exec.d.ts +0 -107
  177. package/dist/scripts/lib/exec.d.ts.map +0 -1
  178. package/dist/scripts/lib/exec.js +0 -232
  179. package/dist/scripts/lib/exec.js.map +0 -1
  180. package/dist/scripts/lib/index.d.ts +0 -50
  181. package/dist/scripts/lib/index.d.ts.map +0 -1
  182. package/dist/scripts/lib/index.js +0 -65
  183. package/dist/scripts/lib/index.js.map +0 -1
  184. package/dist/scripts/lib/logger.d.ts +0 -50
  185. package/dist/scripts/lib/logger.d.ts.map +0 -1
  186. package/dist/scripts/lib/logger.js +0 -159
  187. package/dist/scripts/lib/logger.js.map +0 -1
  188. package/dist/scripts/lib/output.d.ts +0 -149
  189. package/dist/scripts/lib/output.d.ts.map +0 -1
  190. package/dist/scripts/lib/output.js +0 -263
  191. package/dist/scripts/lib/output.js.map +0 -1
  192. package/dist/scripts/lib/parallel.d.ts +0 -164
  193. package/dist/scripts/lib/parallel.d.ts.map +0 -1
  194. package/dist/scripts/lib/parallel.js +0 -355
  195. package/dist/scripts/lib/parallel.js.map +0 -1
  196. package/dist/scripts/lib/paths.d.ts +0 -92
  197. package/dist/scripts/lib/paths.d.ts.map +0 -1
  198. package/dist/scripts/lib/paths.js +0 -171
  199. package/dist/scripts/lib/paths.js.map +0 -1
  200. package/dist/scripts/lib/state/adapters/memory.d.ts +0 -42
  201. package/dist/scripts/lib/state/adapters/memory.d.ts.map +0 -1
  202. package/dist/scripts/lib/state/adapters/memory.js +0 -110
  203. package/dist/scripts/lib/state/adapters/memory.js.map +0 -1
  204. package/dist/scripts/lib/state/adapters/pglite.d.ts +0 -46
  205. package/dist/scripts/lib/state/adapters/pglite.d.ts.map +0 -1
  206. package/dist/scripts/lib/state/adapters/pglite.js +0 -256
  207. package/dist/scripts/lib/state/adapters/pglite.js.map +0 -1
  208. package/dist/scripts/lib/state/index.d.ts +0 -16
  209. package/dist/scripts/lib/state/index.d.ts.map +0 -1
  210. package/dist/scripts/lib/state/index.js +0 -16
  211. package/dist/scripts/lib/state/index.js.map +0 -1
  212. package/dist/scripts/lib/state/types.d.ts +0 -111
  213. package/dist/scripts/lib/state/types.d.ts.map +0 -1
  214. package/dist/scripts/lib/state/types.js +0 -8
  215. package/dist/scripts/lib/state/types.js.map +0 -1
  216. package/dist/scripts/lib/state/workflow-state.d.ts +0 -110
  217. package/dist/scripts/lib/state/workflow-state.d.ts.map +0 -1
  218. package/dist/scripts/lib/state/workflow-state.js +0 -331
  219. package/dist/scripts/lib/state/workflow-state.js.map +0 -1
  220. package/dist/scripts/lib/telemetry.d.ts +0 -194
  221. package/dist/scripts/lib/telemetry.d.ts.map +0 -1
  222. package/dist/scripts/lib/telemetry.js +0 -394
  223. package/dist/scripts/lib/telemetry.js.map +0 -1
  224. package/dist/scripts/lib/utils.d.ts +0 -270
  225. package/dist/scripts/lib/utils.d.ts.map +0 -1
  226. package/dist/scripts/lib/utils.js +0 -473
  227. package/dist/scripts/lib/utils.js.map +0 -1
  228. package/dist/scripts/lib/validation/database.d.ts +0 -83
  229. package/dist/scripts/lib/validation/database.d.ts.map +0 -1
  230. package/dist/scripts/lib/validation/database.js +0 -199
  231. package/dist/scripts/lib/validation/database.js.map +0 -1
  232. package/dist/scripts/lib/validation/env.d.ts +0 -80
  233. package/dist/scripts/lib/validation/env.d.ts.map +0 -1
  234. package/dist/scripts/lib/validation/env.js +0 -246
  235. package/dist/scripts/lib/validation/env.js.map +0 -1
  236. package/dist/scripts/lib/validation/index.d.ts +0 -16
  237. package/dist/scripts/lib/validation/index.d.ts.map +0 -1
  238. package/dist/scripts/lib/validation/index.js +0 -16
  239. package/dist/scripts/lib/validation/index.js.map +0 -1
  240. package/dist/scripts/lib/validation/post-execution.d.ts +0 -74
  241. package/dist/scripts/lib/validation/post-execution.d.ts.map +0 -1
  242. package/dist/scripts/lib/validation/post-execution.js +0 -110
  243. package/dist/scripts/lib/validation/post-execution.js.map +0 -1
  244. package/dist/scripts/lib/validation/pre-execution.d.ts +0 -165
  245. package/dist/scripts/lib/validation/pre-execution.d.ts.map +0 -1
  246. package/dist/scripts/lib/validation/pre-execution.js +0 -466
  247. package/dist/scripts/lib/validation/pre-execution.js.map +0 -1
  248. package/dist/scripts/lib/validators/documentation-validator.d.ts +0 -242
  249. package/dist/scripts/lib/validators/documentation-validator.d.ts.map +0 -1
  250. package/dist/scripts/lib/validators/documentation-validator.js +0 -584
  251. package/dist/scripts/lib/validators/documentation-validator.js.map +0 -1
  252. package/dist/scripts/lib/validators/index.d.ts +0 -11
  253. package/dist/scripts/lib/validators/index.d.ts.map +0 -1
  254. package/dist/scripts/lib/validators/index.js +0 -11
  255. package/dist/scripts/lib/validators/index.js.map +0 -1
  256. package/docker-compose.yml +0 -46
  257. package/docs/INDEX.md +0 -88
  258. package/docs/README.md +0 -774
  259. package/docs/SETUP.md +0 -264
  260. package/docs/servers/code-validator.md +0 -586
  261. package/eslint.config.js +0 -7
  262. package/migrations/0001_add_crdt_columns.sql +0 -8
  263. package/migrations/0001_rollback.sql +0 -6
  264. package/migrations/005_performance_indexes.sql +0 -190
  265. package/migrations/backfill_crdt_meta.js +0 -45
  266. package/src/__tests__/hypervisor.test.ts +0 -212
  267. package/src/adapters/db.ts +0 -180
  268. package/src/config/config.json +0 -49
  269. package/src/config/index.ts +0 -30
  270. package/src/contracts.ts +0 -221
  271. package/src/hypervisor.ts +0 -464
  272. package/src/index.ts +0 -87
  273. package/src/servers/adapter.ts +0 -643
  274. package/src/servers/code-validator.ts +0 -188
  275. package/src/servers/neon.ts +0 -103
  276. package/src/servers/next-devtools.ts +0 -230
  277. package/src/servers/playwright.ts +0 -77
  278. package/src/servers/stripe.ts +0 -99
  279. package/src/servers/supabase.ts +0 -161
  280. package/src/servers/vercel.ts +0 -100
  281. package/src/servers/vultr-test.ts +0 -97
  282. package/tsconfig.json +0 -12
  283. package/vitest.config.ts +0 -22
  284. /package/dist/{packages/mcp/src/adapters → adapters}/db.d.ts +0 -0
  285. /package/dist/{packages/mcp/src/adapters → adapters}/db.js +0 -0
  286. /package/dist/{packages/mcp/src/config → config}/index.d.ts +0 -0
  287. /package/dist/{packages/mcp/src/config → config}/index.js +0 -0
  288. /package/dist/{packages/mcp/src/contracts.d.ts → contracts.d.ts} +0 -0
  289. /package/dist/{packages/mcp/src/contracts.js → contracts.js} +0 -0
  290. /package/dist/{packages/mcp/src/hypervisor.d.ts → hypervisor.d.ts} +0 -0
  291. /package/dist/{packages/mcp/src/hypervisor.js → hypervisor.js} +0 -0
  292. /package/dist/{packages/mcp/src/index.d.ts → index.d.ts} +0 -0
  293. /package/dist/{packages/mcp/src/index.js → index.js} +0 -0
@@ -1,231 +0,0 @@
1
- /**
2
- * Process Health Monitoring Types
3
- *
4
- * TypeScript definitions for system health monitoring, process tracking,
5
- * zombie detection, and alerting.
6
- */
7
- /**
8
- * Source of a tracked process
9
- */
10
- export type ProcessSource = 'exec' | 'orchestration' | 'mcp' | 'ai-runtime' | 'dev-server' | 'database' | 'unknown';
11
- /**
12
- * Status of a tracked process
13
- */
14
- export type ProcessStatus = 'running' | 'completed' | 'failed' | 'zombie' | 'killed';
15
- /**
16
- * Tracked process metadata
17
- */
18
- export interface ProcessMetadata {
19
- [key: string]: string | number | boolean | undefined;
20
- }
21
- /**
22
- * Tracked process entry
23
- */
24
- export interface TrackedProcess {
25
- /** Process ID */
26
- pid: number;
27
- /** Command executed */
28
- command: string;
29
- /** Command arguments */
30
- args: string[];
31
- /** Process source */
32
- source: ProcessSource;
33
- /** Current status */
34
- status: ProcessStatus;
35
- /** Start timestamp */
36
- startTime: number;
37
- /** End timestamp (if completed/failed/killed) */
38
- endTime?: number;
39
- /** Exit code (if completed/failed) */
40
- exitCode?: number;
41
- /** Signal that killed process (if killed) */
42
- signal?: string;
43
- /** Custom metadata */
44
- metadata?: ProcessMetadata;
45
- /** Parent process ID */
46
- ppid?: number;
47
- }
48
- /**
49
- * Zombie process detection result
50
- */
51
- export interface ZombieProcess {
52
- /** Process ID */
53
- pid: number;
54
- /** Parent process ID */
55
- ppid: number;
56
- /** Command name */
57
- command: string;
58
- /** When zombie was first detected */
59
- detectedAt: number;
60
- /** Associated tracked process (if available) */
61
- trackedProcess?: TrackedProcess;
62
- }
63
- /**
64
- * Database pool metrics
65
- */
66
- export interface PoolMetrics {
67
- /** Total connections in pool */
68
- totalCount: number;
69
- /** Idle connections */
70
- idleCount: number;
71
- /** Waiting requests */
72
- waitingCount: number;
73
- /** Pool name/identifier */
74
- name: string;
75
- }
76
- /**
77
- * System health metrics
78
- */
79
- export interface HealthMetrics {
80
- /** System information */
81
- system: {
82
- /** Memory usage in MB */
83
- memoryUsage: number;
84
- /** CPU usage percentage */
85
- cpuUsage: number;
86
- /** Uptime in seconds */
87
- uptime: number;
88
- /** Platform */
89
- platform: string;
90
- /** Node.js version */
91
- nodeVersion: string;
92
- };
93
- /** Process statistics */
94
- processes: {
95
- /** Active running processes */
96
- active: number;
97
- /** Zombie processes */
98
- zombies: number;
99
- /** Failed processes */
100
- failed: number;
101
- /** Process spawn rate (per minute) */
102
- spawnRate: number;
103
- /** Processes by source */
104
- bySource: Record<ProcessSource, number>;
105
- };
106
- /** Database pool metrics */
107
- database: {
108
- /** REST database pools */
109
- rest: PoolMetrics[];
110
- /** Vector database pools */
111
- vector: PoolMetrics[];
112
- };
113
- /** Recent zombie processes */
114
- recentZombies: ZombieProcess[];
115
- /** Active alerts */
116
- alerts: Alert[];
117
- /** Timestamp of metrics collection */
118
- timestamp: number;
119
- }
120
- /**
121
- * Alert severity level
122
- */
123
- export type AlertLevel = 'warning' | 'critical';
124
- /**
125
- * Alert metric type
126
- */
127
- export type AlertMetric = 'zombies' | 'memory' | 'active_processes' | 'database_waiting' | 'spawn_rate';
128
- /**
129
- * Alert definition
130
- */
131
- export interface Alert {
132
- /** Alert severity */
133
- level: AlertLevel;
134
- /** Metric that triggered alert */
135
- metric: AlertMetric;
136
- /** Human-readable message */
137
- message: string;
138
- /** Current value */
139
- value: number;
140
- /** Threshold that was exceeded */
141
- threshold: number;
142
- /** Timestamp when alert was triggered */
143
- timestamp: number;
144
- }
145
- /**
146
- * Alert threshold configuration
147
- */
148
- export interface AlertThresholds {
149
- zombies: {
150
- warning: number;
151
- critical: number;
152
- };
153
- memory: {
154
- warning: number;
155
- critical: number;
156
- };
157
- processes: {
158
- active: {
159
- warning: number;
160
- critical: number;
161
- };
162
- };
163
- database: {
164
- waiting: {
165
- warning: number;
166
- critical: number;
167
- };
168
- };
169
- spawnRate: {
170
- warning: number;
171
- critical: number;
172
- };
173
- }
174
- /**
175
- * Cleanup handler function
176
- */
177
- export type CleanupHandler = () => void | Promise<void>;
178
- /**
179
- * Cleanup handler registration
180
- */
181
- export interface CleanupRegistration {
182
- /** Handler ID */
183
- id: string;
184
- /** Handler function */
185
- handler: CleanupHandler;
186
- /** Priority (higher executes first) */
187
- priority: number;
188
- /** Handler description */
189
- description: string;
190
- }
191
- /**
192
- * Process registry statistics
193
- */
194
- export interface RegistryStats {
195
- /** Total processes tracked */
196
- total: number;
197
- /** Currently running */
198
- running: number;
199
- /** Completed successfully */
200
- completed: number;
201
- /** Failed */
202
- failed: number;
203
- /** Zombies detected */
204
- zombies: number;
205
- /** Killed by signal */
206
- killed: number;
207
- /** Processes by source */
208
- bySource: Record<ProcessSource, number>;
209
- }
210
- /**
211
- * Health monitoring configuration
212
- */
213
- export interface MonitoringConfig {
214
- /** Enable process monitoring */
215
- enabled: boolean;
216
- /** Zombie detection interval (ms) */
217
- zombieDetectionInterval: number;
218
- /** Health check interval (ms) */
219
- healthCheckInterval: number;
220
- /** Alert thresholds */
221
- alertThresholds: AlertThresholds;
222
- /** Maximum tracked processes to keep in history */
223
- maxHistorySize: number;
224
- /** Maximum zombies to track */
225
- maxZombieHistory: number;
226
- }
227
- /**
228
- * Default monitoring configuration
229
- */
230
- export declare const DEFAULT_MONITORING_CONFIG: MonitoringConfig;
231
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../core/src/monitoring/types.ts"],"names":[],"mappings":"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"}
@@ -1,43 +0,0 @@
1
- /**
2
- * Process Health Monitoring Types
3
- *
4
- * TypeScript definitions for system health monitoring, process tracking,
5
- * zombie detection, and alerting.
6
- */
7
- /**
8
- * Default monitoring configuration
9
- */
10
- export const DEFAULT_MONITORING_CONFIG = {
11
- enabled: process.env.ENABLE_PROCESS_MONITORING !== 'false',
12
- zombieDetectionInterval: 30_000, // 30 seconds
13
- healthCheckInterval: 5_000, // 5 seconds
14
- alertThresholds: {
15
- zombies: {
16
- warning: 3,
17
- critical: 5,
18
- },
19
- memory: {
20
- warning: 512, // MB
21
- critical: 1024, // MB
22
- },
23
- processes: {
24
- active: {
25
- warning: 50,
26
- critical: 100,
27
- },
28
- },
29
- database: {
30
- waiting: {
31
- warning: 5,
32
- critical: 10,
33
- },
34
- },
35
- spawnRate: {
36
- warning: 20, // per minute
37
- critical: 50, // per minute
38
- },
39
- },
40
- maxHistorySize: 1000,
41
- maxZombieHistory: 50,
42
- };
43
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../core/src/monitoring/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgTH;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAqB;IACzD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,OAAO;IAC1D,uBAAuB,EAAE,MAAM,EAAE,aAAa;IAC9C,mBAAmB,EAAE,KAAK,EAAE,YAAY;IACxC,eAAe,EAAE;QACf,OAAO,EAAE;YACP,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,CAAC;SACZ;QACD,MAAM,EAAE;YACN,OAAO,EAAE,GAAG,EAAE,KAAK;YACnB,QAAQ,EAAE,IAAI,EAAE,KAAK;SACtB;QACD,SAAS,EAAE;YACT,MAAM,EAAE;gBACN,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,GAAG;aACd;SACF;QACD,QAAQ,EAAE;YACR,OAAO,EAAE;gBACP,OAAO,EAAE,CAAC;gBACV,QAAQ,EAAE,EAAE;aACb;SACF;QACD,SAAS,EAAE;YACT,OAAO,EAAE,EAAE,EAAE,aAAa;YAC1B,QAAQ,EAAE,EAAE,EAAE,aAAa;SAC5B;KACF;IACD,cAAc,EAAE,IAAI;IACpB,gBAAgB,EAAE,EAAE;CACrB,CAAA"}
@@ -1,81 +0,0 @@
1
- /**
2
- * Zombie Process Detector
3
- *
4
- * Periodically scans for defunct (zombie) processes and attempts automatic cleanup.
5
- * Zombie processes are dead processes that haven't been reaped by their parent.
6
- */
7
- import type { ZombieProcess } from './types.js';
8
- /**
9
- * Zombie detector class
10
- */
11
- declare class ZombieDetector {
12
- private interval;
13
- private zombieHistory;
14
- private enabled;
15
- private detectionInterval;
16
- private maxHistory;
17
- private onZombieDetected?;
18
- /**
19
- * Start zombie detection
20
- */
21
- start(): void;
22
- /**
23
- * Stop zombie detection
24
- */
25
- stop(): void;
26
- /**
27
- * Perform a single scan for zombie processes
28
- */
29
- scan(): Promise<ZombieProcess[]>;
30
- /**
31
- * Attempt to clean up a zombie process
32
- */
33
- private attemptCleanup;
34
- /**
35
- * Add zombie to history
36
- */
37
- private addToHistory;
38
- /**
39
- * Get zombie history
40
- */
41
- getHistory(): ZombieProcess[];
42
- /**
43
- * Get current zombie count
44
- */
45
- getCount(): number;
46
- /**
47
- * Clear history
48
- */
49
- clearHistory(): void;
50
- /**
51
- * Set zombie detection callback
52
- */
53
- onZombie(callback: (zombie: ZombieProcess) => void): void;
54
- /**
55
- * Enable or disable detection
56
- */
57
- setEnabled(enabled: boolean): void;
58
- /**
59
- * Check if detection is enabled
60
- */
61
- isEnabled(): boolean;
62
- /**
63
- * Check if detector is running
64
- */
65
- isRunning(): boolean;
66
- }
67
- /**
68
- * Singleton instance
69
- */
70
- export declare const zombieDetector: ZombieDetector;
71
- /**
72
- * Convenience functions
73
- */
74
- export declare function startZombieDetection(): void;
75
- export declare function stopZombieDetection(): void;
76
- export declare function scanForZombies(): Promise<ZombieProcess[]>;
77
- export declare function getZombieHistory(): ZombieProcess[];
78
- export declare function getZombieCount(): number;
79
- export declare function onZombieDetected(callback: (zombie: ZombieProcess) => void): void;
80
- export {};
81
- //# sourceMappingURL=zombie-detector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zombie-detector.d.ts","sourceRoot":"","sources":["../../../../../../core/src/monitoring/zombie-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAK/C;;GAEG;AACH,cAAM,cAAc;IAClB,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,OAAO,CAA6C;IAC5D,OAAO,CAAC,iBAAiB,CAA4D;IACrF,OAAO,CAAC,UAAU,CAAqD;IACvE,OAAO,CAAC,gBAAgB,CAAC,CAAiC;IAE1D;;OAEG;IACH,KAAK,IAAI,IAAI;IAiBb;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IA6DtC;;OAEG;YACW,cAAc;IAkD5B;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,UAAU,IAAI,aAAa,EAAE;IAI7B;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IAIzD;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAUlC;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,gBAAuB,CAAA;AAElD;;GAEG;AAEH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,cAAc,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAEzD;AAED,wBAAgB,gBAAgB,IAAI,aAAa,EAAE,CAElD;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI,CAEhF"}
@@ -1,232 +0,0 @@
1
- /**
2
- * Zombie Process Detector
3
- *
4
- * Periodically scans for defunct (zombie) processes and attempts automatic cleanup.
5
- * Zombie processes are dead processes that haven't been reaped by their parent.
6
- */
7
- import { exec } from 'node:child_process';
8
- import { promisify } from 'node:util';
9
- import { logger } from '../utils/logger-server.js';
10
- import { processRegistry } from './process-registry.js';
11
- import { DEFAULT_MONITORING_CONFIG } from './types.js';
12
- const execAsync = promisify(exec);
13
- /**
14
- * Zombie detector class
15
- */
16
- class ZombieDetector {
17
- interval = null;
18
- zombieHistory = [];
19
- enabled = DEFAULT_MONITORING_CONFIG.enabled;
20
- detectionInterval = DEFAULT_MONITORING_CONFIG.zombieDetectionInterval;
21
- maxHistory = DEFAULT_MONITORING_CONFIG.maxZombieHistory;
22
- onZombieDetected;
23
- /**
24
- * Start zombie detection
25
- */
26
- start() {
27
- if (!this.enabled || this.interval)
28
- return;
29
- logger.info('Starting zombie process detector', {
30
- interval: this.detectionInterval,
31
- });
32
- this.interval = setInterval(() => {
33
- this.scan().catch((error) => {
34
- logger.error('Zombie detection scan failed', { error });
35
- });
36
- }, this.detectionInterval);
37
- // Prevent interval from keeping process alive
38
- this.interval.unref();
39
- }
40
- /**
41
- * Stop zombie detection
42
- */
43
- stop() {
44
- if (this.interval) {
45
- clearInterval(this.interval);
46
- this.interval = null;
47
- logger.info('Stopped zombie process detector');
48
- }
49
- }
50
- /**
51
- * Perform a single scan for zombie processes
52
- */
53
- async scan() {
54
- if (!this.enabled)
55
- return [];
56
- try {
57
- // Use ps to find defunct processes
58
- // Format: PID PPID COMMAND STATE
59
- const { stdout } = await execAsync("ps axo pid,ppid,comm,state | grep -E ' (Z|z)' || true");
60
- const zombies = [];
61
- if (stdout.trim()) {
62
- const lines = stdout.trim().split('\n');
63
- for (const line of lines) {
64
- const match = line.trim().match(/^(\d+)\s+(\d+)\s+(\S+)\s+[Zz]/);
65
- if (match?.[1] && match[2] && match[3]) {
66
- const pid = parseInt(match[1], 10);
67
- const ppid = parseInt(match[2], 10);
68
- const command = match[3];
69
- const zombie = {
70
- pid,
71
- ppid,
72
- command,
73
- detectedAt: Date.now(),
74
- trackedProcess: processRegistry.get(pid),
75
- };
76
- zombies.push(zombie);
77
- // Mark in registry
78
- processRegistry.markZombie(pid);
79
- // Add to history
80
- this.addToHistory(zombie);
81
- // Log detection
82
- logger.warn('Zombie process detected', {
83
- pid,
84
- ppid,
85
- command,
86
- });
87
- // Attempt cleanup
88
- await this.attemptCleanup(zombie);
89
- // Notify callback
90
- if (this.onZombieDetected) {
91
- this.onZombieDetected(zombie);
92
- }
93
- }
94
- }
95
- }
96
- return zombies;
97
- }
98
- catch (error) {
99
- logger.error('Failed to scan for zombie processes', { error });
100
- return [];
101
- }
102
- }
103
- /**
104
- * Attempt to clean up a zombie process
105
- */
106
- async attemptCleanup(zombie) {
107
- try {
108
- // Zombies can't be killed directly - need to signal parent to reap them
109
- // Try sending SIGCHLD to parent process
110
- logger.info('Attempting zombie cleanup by signaling parent', {
111
- zombie: zombie.pid,
112
- parent: zombie.ppid,
113
- });
114
- // Check if parent exists
115
- const { stdout: parentExists } = await execAsync(`ps -p ${zombie.ppid} -o pid= || true`);
116
- if (!parentExists.trim()) {
117
- logger.warn('Zombie parent process does not exist', {
118
- zombie: zombie.pid,
119
- parent: zombie.ppid,
120
- });
121
- return false;
122
- }
123
- // Send SIGCHLD to parent
124
- process.kill(zombie.ppid, 'SIGCHLD');
125
- // Wait a moment and check if zombie is gone
126
- await new Promise((resolve) => setTimeout(resolve, 1000));
127
- const { stdout: zombieStillExists } = await execAsync(`ps -p ${zombie.pid} -o state= || true`);
128
- if (!zombieStillExists.trim()) {
129
- logger.info('Zombie process successfully reaped', {
130
- pid: zombie.pid,
131
- });
132
- return true;
133
- }
134
- logger.warn('Zombie process persists after cleanup attempt', {
135
- pid: zombie.pid,
136
- ppid: zombie.ppid,
137
- });
138
- return false;
139
- }
140
- catch (error) {
141
- logger.error('Failed to cleanup zombie process', {
142
- zombie: zombie.pid,
143
- error,
144
- });
145
- return false;
146
- }
147
- }
148
- /**
149
- * Add zombie to history
150
- */
151
- addToHistory(zombie) {
152
- this.zombieHistory.unshift(zombie);
153
- // Trim history
154
- if (this.zombieHistory.length > this.maxHistory) {
155
- this.zombieHistory = this.zombieHistory.slice(0, this.maxHistory);
156
- }
157
- }
158
- /**
159
- * Get zombie history
160
- */
161
- getHistory() {
162
- return [...this.zombieHistory];
163
- }
164
- /**
165
- * Get current zombie count
166
- */
167
- getCount() {
168
- return processRegistry.getZombies().length;
169
- }
170
- /**
171
- * Clear history
172
- */
173
- clearHistory() {
174
- this.zombieHistory = [];
175
- }
176
- /**
177
- * Set zombie detection callback
178
- */
179
- onZombie(callback) {
180
- this.onZombieDetected = callback;
181
- }
182
- /**
183
- * Enable or disable detection
184
- */
185
- setEnabled(enabled) {
186
- this.enabled = enabled;
187
- if (!enabled && this.interval) {
188
- this.stop();
189
- }
190
- else if (enabled && !this.interval) {
191
- this.start();
192
- }
193
- }
194
- /**
195
- * Check if detection is enabled
196
- */
197
- isEnabled() {
198
- return this.enabled;
199
- }
200
- /**
201
- * Check if detector is running
202
- */
203
- isRunning() {
204
- return this.interval !== null;
205
- }
206
- }
207
- /**
208
- * Singleton instance
209
- */
210
- export const zombieDetector = new ZombieDetector();
211
- /**
212
- * Convenience functions
213
- */
214
- export function startZombieDetection() {
215
- zombieDetector.start();
216
- }
217
- export function stopZombieDetection() {
218
- zombieDetector.stop();
219
- }
220
- export function scanForZombies() {
221
- return zombieDetector.scan();
222
- }
223
- export function getZombieHistory() {
224
- return zombieDetector.getHistory();
225
- }
226
- export function getZombieCount() {
227
- return zombieDetector.getCount();
228
- }
229
- export function onZombieDetected(callback) {
230
- zombieDetector.onZombie(callback);
231
- }
232
- //# sourceMappingURL=zombie-detector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zombie-detector.js","sourceRoot":"","sources":["../../../../../../core/src/monitoring/zombie-detector.ts"],"names":[],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- /**
2
- * Structured Logging Infrastructure
3
- *
4
- * Re-exports from @revealui/utils to maintain backward compatibility.
5
- * The actual implementation has been moved to @revealui/utils to break circular dependencies.
6
- */
7
- export type { LogContext, LogEntry, LoggerConfig, LogLevel, } from '@revealui/utils/logger';
8
- export { createLogger, Logger, logAudit, logError, logger, logQuery, } from '@revealui/utils/logger';
9
- /**
10
- * Request logger middleware
11
- */
12
- export declare function createRequestLogger<TRequest = unknown, TResponse = unknown>(options?: {
13
- includeBody?: boolean;
14
- includeHeaders?: boolean;
15
- }): (request: TRequest & {
16
- method: string;
17
- url: string;
18
- headers?: {
19
- get?: (key: string) => string | null;
20
- entries?: () => Iterable<[string, string]>;
21
- };
22
- }, next: () => Promise<TResponse>) => Promise<TResponse>;
23
- /**
24
- * Performance logger
25
- */
26
- export declare function logPerformance(operation: string, duration: number, context?: Record<string, unknown>): void;
27
- /**
28
- * API call logger
29
- */
30
- export declare function logAPICall(method: string, url: string, status: number, duration: number, context?: Record<string, unknown>): void;
31
- /**
32
- * Cache operation logger
33
- */
34
- export declare function logCache(operation: 'hit' | 'miss' | 'set' | 'delete', key: string, context?: Record<string, unknown>): void;
35
- /**
36
- * User action logger
37
- */
38
- export declare function logUserAction(action: string, userId?: string, context?: Record<string, unknown>): void;
39
- /**
40
- * System event logger
41
- */
42
- export declare function logSystemEvent(event: string, context?: Record<string, unknown>): void;
43
- /**
44
- * Sanitize sensitive data from logs
45
- */
46
- export declare function sanitizeLogData(data: Record<string, unknown>): Record<string, unknown>;
47
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../../../core/src/observability/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,YAAY,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,QAAQ,GACT,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACL,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,QAAQ,GACT,MAAM,wBAAwB,CAAA;AAK/B;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,GAAG,OAAO,EAAE,SAAS,GAAG,OAAO,EACzE,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,IAG/D,SAAS,QAAQ,GAAG;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAAE,CAAA;CAC/F,EACD,MAAM,MAAM,OAAO,CAAC,SAAS,CAAC,KAC7B,OAAO,CAAC,SAAS,CAAC,CA6CtB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,IAAI,CASN;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,IAAI,CAgBN;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,EAC5C,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,IAAI,CAMN;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,IAAI,CAMN;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAKrF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA2BtF"}