@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,466 +0,0 @@
1
- /**
2
- * Pre-Execution Validation
3
- *
4
- * Comprehensive validation checks to run before script execution.
5
- * Ensures environment is properly configured and requirements are met.
6
- *
7
- * @dependencies
8
- * - node:child_process - Process execution for git and disk checks
9
- * - node:fs - Synchronous file system checks
10
- * - node:fs/promises - Asynchronous file system operations
11
- * - node:path - Path manipulation utilities
12
- * - node:util - Promisify utilities for exec
13
- *
14
- * @example
15
- * ```typescript
16
- * import { ErrorCode } from '../errors.js'
17
- *
18
- * const validator = new PreExecutionValidator()
19
- *
20
- * const result = await validator.validate({
21
- * checks: ['env', 'git', 'disk'],
22
- * required: ['DATABASE_URL'],
23
- * minDiskSpace: 1024 * 1024 * 1024, // 1GB
24
- * })
25
- *
26
- * if (!result.passed) {
27
- * console.error('Validation failed:', result.errors)
28
- * process.exit(ErrorCode.VALIDATION_ERROR)
29
- * }
30
- * ```
31
- */
32
- import { exec } from 'node:child_process';
33
- import { existsSync } from 'node:fs';
34
- import { access, constants } from 'node:fs/promises';
35
- import { join } from 'node:path';
36
- import { promisify } from 'node:util';
37
- const execAsync = promisify(exec);
38
- // =============================================================================
39
- // Pre-Execution Validator
40
- // =============================================================================
41
- export class PreExecutionValidator {
42
- /**
43
- * Validate execution environment
44
- */
45
- async validate(options = {}) {
46
- const { checks = ['env', 'git', 'disk'], requiredEnvVars = [], optionalEnvVars = [], minDiskSpace, requiredPaths = [], writablePaths = [], requireCleanGit = false, minNodeVersion, checkDatabase = false, databaseUrl, } = options;
47
- const errors = [];
48
- const warnings = [];
49
- const checkResults = [];
50
- const fixes = [];
51
- // Run each check
52
- for (const check of checks) {
53
- const startTime = Date.now();
54
- let result;
55
- try {
56
- switch (check) {
57
- case 'env':
58
- result = await this.checkEnvironmentVariables(requiredEnvVars, optionalEnvVars);
59
- break;
60
- case 'dependencies':
61
- result = await this.checkDependencies();
62
- break;
63
- case 'database':
64
- result = await this.checkDatabase(checkDatabase, databaseUrl);
65
- break;
66
- case 'git':
67
- result = await this.checkGit(requireCleanGit);
68
- break;
69
- case 'disk':
70
- result = await this.checkDiskSpace(minDiskSpace);
71
- break;
72
- case 'permissions':
73
- result = await this.checkPermissions(requiredPaths, writablePaths);
74
- break;
75
- case 'network':
76
- result = await this.checkNetwork();
77
- break;
78
- case 'node-version':
79
- result = await this.checkNodeVersion(minNodeVersion);
80
- break;
81
- default:
82
- result = {
83
- check,
84
- passed: true,
85
- durationMs: 0,
86
- };
87
- }
88
- result.durationMs = Date.now() - startTime;
89
- checkResults.push(result);
90
- if (!result.passed) {
91
- errors.push({
92
- check,
93
- message: result.error || 'Check failed',
94
- details: result.metadata,
95
- });
96
- // Add suggested fixes
97
- const checkFixes = this.getSuggestedFixes(check, result);
98
- fixes.push(...checkFixes);
99
- }
100
- }
101
- catch (error) {
102
- const errorMessage = error instanceof Error ? error.message : String(error);
103
- checkResults.push({
104
- check,
105
- passed: false,
106
- error: errorMessage,
107
- durationMs: Date.now() - startTime,
108
- });
109
- errors.push({
110
- check,
111
- message: errorMessage,
112
- });
113
- }
114
- }
115
- return {
116
- passed: errors.length === 0,
117
- errors,
118
- warnings,
119
- checkResults,
120
- fixes,
121
- };
122
- }
123
- // ===========================================================================
124
- // Individual Checks
125
- // ===========================================================================
126
- /**
127
- * Check environment variables
128
- */
129
- async checkEnvironmentVariables(required, optional) {
130
- const missing = required.filter((name) => !process.env[name]);
131
- const missingOptional = optional.filter((name) => !process.env[name]);
132
- if (missing.length > 0) {
133
- return {
134
- check: 'env',
135
- passed: false,
136
- error: `Missing required environment variables: ${missing.join(', ')}`,
137
- durationMs: 0,
138
- metadata: { missing, missingOptional },
139
- };
140
- }
141
- return {
142
- check: 'env',
143
- passed: true,
144
- durationMs: 0,
145
- metadata: { missingOptional },
146
- };
147
- }
148
- /**
149
- * Check dependencies are installed
150
- */
151
- async checkDependencies() {
152
- try {
153
- const nodeModulesExists = existsSync(join(process.cwd(), 'node_modules'));
154
- if (!nodeModulesExists) {
155
- return {
156
- check: 'dependencies',
157
- passed: false,
158
- error: 'node_modules directory not found',
159
- durationMs: 0,
160
- };
161
- }
162
- return {
163
- check: 'dependencies',
164
- passed: true,
165
- durationMs: 0,
166
- };
167
- }
168
- catch (error) {
169
- return {
170
- check: 'dependencies',
171
- passed: false,
172
- error: error instanceof Error ? error.message : String(error),
173
- durationMs: 0,
174
- };
175
- }
176
- }
177
- /**
178
- * Check database connectivity
179
- */
180
- async checkDatabase(shouldCheck, databaseUrl) {
181
- if (!shouldCheck) {
182
- return { check: 'database', passed: true, durationMs: 0 };
183
- }
184
- const url = databaseUrl || process.env.DATABASE_URL;
185
- if (!url) {
186
- return {
187
- check: 'database',
188
- passed: false,
189
- error: 'DATABASE_URL not configured',
190
- durationMs: 0,
191
- };
192
- }
193
- // Simplified check - in production, would attempt actual connection
194
- return {
195
- check: 'database',
196
- passed: true,
197
- durationMs: 0,
198
- metadata: { configured: true },
199
- };
200
- }
201
- /**
202
- * Check git working tree
203
- */
204
- async checkGit(requireClean) {
205
- try {
206
- // Check if git repo
207
- await execAsync('git rev-parse --git-dir', { encoding: 'utf-8' });
208
- if (requireClean) {
209
- const { stdout } = await execAsync('git status --porcelain', { encoding: 'utf-8' });
210
- if (stdout.trim()) {
211
- return {
212
- check: 'git',
213
- passed: false,
214
- error: 'Git working tree is not clean',
215
- durationMs: 0,
216
- metadata: { uncommittedChanges: true },
217
- };
218
- }
219
- }
220
- return {
221
- check: 'git',
222
- passed: true,
223
- durationMs: 0,
224
- };
225
- }
226
- catch (_error) {
227
- return {
228
- check: 'git',
229
- passed: false,
230
- error: 'Not a git repository',
231
- durationMs: 0,
232
- };
233
- }
234
- }
235
- /**
236
- * Check available disk space
237
- */
238
- async checkDiskSpace(minBytes) {
239
- if (!minBytes) {
240
- return { check: 'disk', passed: true, durationMs: 0 };
241
- }
242
- try {
243
- // Use df command to check disk space
244
- const { stdout } = await execAsync('df -k .', { encoding: 'utf-8' });
245
- const lines = stdout.split('\n');
246
- const dataLine = lines[1]; // Second line contains the data
247
- if (!dataLine) {
248
- return {
249
- check: 'disk',
250
- passed: false,
251
- error: 'Could not read disk space',
252
- durationMs: 0,
253
- };
254
- }
255
- const parts = dataLine.split(/\s+/);
256
- const availableKB = parseInt(parts[3], 10);
257
- const availableBytes = availableKB * 1024;
258
- if (availableBytes < minBytes) {
259
- return {
260
- check: 'disk',
261
- passed: false,
262
- error: `Insufficient disk space: ${this.formatBytes(availableBytes)} available, ${this.formatBytes(minBytes)} required`,
263
- durationMs: 0,
264
- metadata: { available: availableBytes, required: minBytes },
265
- };
266
- }
267
- return {
268
- check: 'disk',
269
- passed: true,
270
- durationMs: 0,
271
- metadata: { available: availableBytes },
272
- };
273
- }
274
- catch (error) {
275
- return {
276
- check: 'disk',
277
- passed: false,
278
- error: error instanceof Error ? error.message : String(error),
279
- durationMs: 0,
280
- };
281
- }
282
- }
283
- /**
284
- * Check file permissions
285
- */
286
- async checkPermissions(requiredPaths, writablePaths) {
287
- const missing = [];
288
- const notWritable = [];
289
- // Check required paths exist
290
- for (const path of requiredPaths) {
291
- if (!existsSync(path)) {
292
- missing.push(path);
293
- }
294
- }
295
- // Check writable paths
296
- for (const path of writablePaths) {
297
- try {
298
- await access(path, constants.W_OK);
299
- }
300
- catch {
301
- notWritable.push(path);
302
- }
303
- }
304
- if (missing.length > 0 || notWritable.length > 0) {
305
- return {
306
- check: 'permissions',
307
- passed: false,
308
- error: `Permission check failed: ${missing.length} missing, ${notWritable.length} not writable`,
309
- durationMs: 0,
310
- metadata: { missing, notWritable },
311
- };
312
- }
313
- return {
314
- check: 'permissions',
315
- passed: true,
316
- durationMs: 0,
317
- };
318
- }
319
- /**
320
- * Check network connectivity
321
- */
322
- async checkNetwork() {
323
- try {
324
- // Simple DNS resolution check
325
- const { stdout: _stdout } = await execAsync('ping -c 1 -W 1 8.8.8.8 || ping -n 1 -w 1000 8.8.8.8', {
326
- encoding: 'utf-8',
327
- });
328
- return {
329
- check: 'network',
330
- passed: true,
331
- durationMs: 0,
332
- };
333
- }
334
- catch {
335
- return {
336
- check: 'network',
337
- passed: false,
338
- error: 'No network connectivity',
339
- durationMs: 0,
340
- };
341
- }
342
- }
343
- /**
344
- * Check Node.js version
345
- */
346
- async checkNodeVersion(minVersion) {
347
- if (!minVersion) {
348
- return { check: 'node-version', passed: true, durationMs: 0 };
349
- }
350
- const currentVersion = process.version.replace('v', '');
351
- const meetsRequirement = this.compareVersions(currentVersion, minVersion) >= 0;
352
- if (!meetsRequirement) {
353
- return {
354
- check: 'node-version',
355
- passed: false,
356
- error: `Node.js version ${currentVersion} does not meet minimum requirement ${minVersion}`,
357
- durationMs: 0,
358
- metadata: { current: currentVersion, required: minVersion },
359
- };
360
- }
361
- return {
362
- check: 'node-version',
363
- passed: true,
364
- durationMs: 0,
365
- metadata: { version: currentVersion },
366
- };
367
- }
368
- // ===========================================================================
369
- // Helper Methods
370
- // ===========================================================================
371
- /**
372
- * Get suggested fixes for a failed check
373
- */
374
- getSuggestedFixes(check, result) {
375
- const fixes = [];
376
- switch (check) {
377
- case 'env':
378
- if (result.metadata?.missing) {
379
- const missing = result.metadata.missing;
380
- fixes.push(`Set missing environment variables: ${missing.join(', ')}`);
381
- fixes.push('Check .env.example for required variables');
382
- }
383
- break;
384
- case 'dependencies':
385
- fixes.push('Run: pnpm install');
386
- break;
387
- case 'database':
388
- fixes.push('Set DATABASE_URL environment variable');
389
- fixes.push('Ensure database server is running');
390
- break;
391
- case 'git':
392
- if (result.metadata?.uncommittedChanges) {
393
- fixes.push('Commit or stash uncommitted changes');
394
- fixes.push('Run: git status to see changes');
395
- }
396
- else {
397
- fixes.push('Initialize git repository: git init');
398
- }
399
- break;
400
- case 'disk':
401
- fixes.push('Free up disk space');
402
- fixes.push('Remove unnecessary files or node_modules');
403
- break;
404
- case 'permissions':
405
- if (result.metadata?.missing) {
406
- const missing = result.metadata.missing;
407
- fixes.push(`Create missing paths: ${missing.join(', ')}`);
408
- }
409
- if (result.metadata?.notWritable) {
410
- const notWritable = result.metadata.notWritable;
411
- fixes.push(`Grant write permissions: chmod +w ${notWritable.join(' ')}`);
412
- }
413
- break;
414
- case 'network':
415
- fixes.push('Check internet connection');
416
- fixes.push('Check firewall settings');
417
- break;
418
- case 'node-version':
419
- if (result.metadata?.required) {
420
- fixes.push(`Upgrade Node.js to version ${result.metadata.required} or higher`);
421
- fixes.push('Use nvm: nvm install <version>');
422
- }
423
- break;
424
- }
425
- return fixes;
426
- }
427
- /**
428
- * Format bytes to human-readable string
429
- */
430
- formatBytes(bytes) {
431
- const units = ['B', 'KB', 'MB', 'GB', 'TB'];
432
- let size = bytes;
433
- let unitIndex = 0;
434
- while (size >= 1024 && unitIndex < units.length - 1) {
435
- size /= 1024;
436
- unitIndex++;
437
- }
438
- return `${size.toFixed(2)} ${units[unitIndex]}`;
439
- }
440
- /**
441
- * Compare semantic versions
442
- */
443
- compareVersions(a, b) {
444
- const aParts = a.split('.').map(Number);
445
- const bParts = b.split('.').map(Number);
446
- for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {
447
- const aPart = aParts[i] || 0;
448
- const bPart = bParts[i] || 0;
449
- if (aPart > bPart)
450
- return 1;
451
- if (aPart < bPart)
452
- return -1;
453
- }
454
- return 0;
455
- }
456
- }
457
- // =============================================================================
458
- // Factory Function
459
- // =============================================================================
460
- /**
461
- * Create a pre-execution validator
462
- */
463
- export function createPreExecutionValidator() {
464
- return new PreExecutionValidator();
465
- }
466
- //# sourceMappingURL=pre-execution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pre-execution.js","sourceRoot":"","sources":["../../../../../../scripts/lib/validation/pre-execution.ts"],"names":[],"mappings":"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"}