@revealui/mcp 0.1.0 → 0.1.3

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 +111 -0
  3. package/README.md +3 -0
  4. package/dist/{packages/mcp/src/adapters → adapters}/db.d.ts +1 -1
  5. package/dist/adapters/db.d.ts.map +1 -0
  6. package/dist/adapters/db.js.map +1 -0
  7. package/dist/config/index.d.ts.map +1 -0
  8. package/dist/config/index.js.map +1 -0
  9. package/dist/contracts.d.ts.map +1 -0
  10. package/dist/contracts.js.map +1 -0
  11. package/dist/{packages/mcp/src/hypervisor.d.ts → hypervisor.d.ts} +56 -0
  12. package/dist/hypervisor.d.ts.map +1 -0
  13. package/dist/{packages/mcp/src/hypervisor.js → hypervisor.js} +209 -1
  14. package/dist/hypervisor.js.map +1 -0
  15. package/dist/{packages/mcp/src/index.d.ts → index.d.ts} +9 -5
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/{packages/mcp/src/index.js → index.js} +8 -4
  18. package/dist/index.js.map +1 -0
  19. package/dist/{packages/mcp/src/servers → servers}/adapter.d.ts +11 -1
  20. package/dist/servers/adapter.d.ts.map +1 -0
  21. package/dist/{packages/mcp/src/servers → servers}/adapter.js +20 -4
  22. package/dist/servers/adapter.js.map +1 -0
  23. package/dist/servers/revealui-content.d.ts +21 -0
  24. package/dist/servers/revealui-content.d.ts.map +1 -0
  25. package/dist/servers/revealui-content.js +211 -0
  26. package/dist/servers/revealui-content.js.map +1 -0
  27. package/dist/servers/revealui-email.d.ts +18 -0
  28. package/dist/servers/revealui-email.d.ts.map +1 -0
  29. package/dist/servers/revealui-email.js +190 -0
  30. package/dist/servers/revealui-email.js.map +1 -0
  31. package/dist/servers/revealui-stripe.d.ts +19 -0
  32. package/dist/servers/revealui-stripe.d.ts.map +1 -0
  33. package/dist/servers/revealui-stripe.js +228 -0
  34. package/dist/servers/revealui-stripe.js.map +1 -0
  35. package/package.json +50 -11
  36. package/.env.example +0 -9
  37. package/MCP_MAINTENANCE.md +0 -265
  38. package/__tests__/crdt.integration.test.ts +0 -156
  39. package/configs/README.md +0 -77
  40. package/configs/claude-template.json +0 -54
  41. package/dist/packages/core/src/database/ssl-config.d.ts +0 -9
  42. package/dist/packages/core/src/database/ssl-config.d.ts.map +0 -1
  43. package/dist/packages/core/src/database/ssl-config.js +0 -8
  44. package/dist/packages/core/src/database/ssl-config.js.map +0 -1
  45. package/dist/packages/core/src/features.d.ts +0 -86
  46. package/dist/packages/core/src/features.d.ts.map +0 -1
  47. package/dist/packages/core/src/features.js +0 -93
  48. package/dist/packages/core/src/features.js.map +0 -1
  49. package/dist/packages/core/src/license.d.ts +0 -75
  50. package/dist/packages/core/src/license.d.ts.map +0 -1
  51. package/dist/packages/core/src/license.js +0 -174
  52. package/dist/packages/core/src/license.js.map +0 -1
  53. package/dist/packages/core/src/monitoring/alerts.d.ts +0 -118
  54. package/dist/packages/core/src/monitoring/alerts.d.ts.map +0 -1
  55. package/dist/packages/core/src/monitoring/alerts.js +0 -325
  56. package/dist/packages/core/src/monitoring/alerts.js.map +0 -1
  57. package/dist/packages/core/src/monitoring/cleanup-manager.d.ts +0 -71
  58. package/dist/packages/core/src/monitoring/cleanup-manager.d.ts.map +0 -1
  59. package/dist/packages/core/src/monitoring/cleanup-manager.js +0 -227
  60. package/dist/packages/core/src/monitoring/cleanup-manager.js.map +0 -1
  61. package/dist/packages/core/src/monitoring/health-monitor.d.ts +0 -22
  62. package/dist/packages/core/src/monitoring/health-monitor.d.ts.map +0 -1
  63. package/dist/packages/core/src/monitoring/health-monitor.js +0 -143
  64. package/dist/packages/core/src/monitoring/health-monitor.js.map +0 -1
  65. package/dist/packages/core/src/monitoring/index.d.ts +0 -14
  66. package/dist/packages/core/src/monitoring/index.d.ts.map +0 -1
  67. package/dist/packages/core/src/monitoring/index.js +0 -18
  68. package/dist/packages/core/src/monitoring/index.js.map +0 -1
  69. package/dist/packages/core/src/monitoring/process-registry.d.ts +0 -97
  70. package/dist/packages/core/src/monitoring/process-registry.d.ts.map +0 -1
  71. package/dist/packages/core/src/monitoring/process-registry.js +0 -223
  72. package/dist/packages/core/src/monitoring/process-registry.js.map +0 -1
  73. package/dist/packages/core/src/monitoring/types.d.ts +0 -231
  74. package/dist/packages/core/src/monitoring/types.d.ts.map +0 -1
  75. package/dist/packages/core/src/monitoring/types.js +0 -43
  76. package/dist/packages/core/src/monitoring/types.js.map +0 -1
  77. package/dist/packages/core/src/monitoring/zombie-detector.d.ts +0 -81
  78. package/dist/packages/core/src/monitoring/zombie-detector.d.ts.map +0 -1
  79. package/dist/packages/core/src/monitoring/zombie-detector.js +0 -232
  80. package/dist/packages/core/src/monitoring/zombie-detector.js.map +0 -1
  81. package/dist/packages/core/src/observability/logger.d.ts +0 -47
  82. package/dist/packages/core/src/observability/logger.d.ts.map +0 -1
  83. package/dist/packages/core/src/observability/logger.js +0 -141
  84. package/dist/packages/core/src/observability/logger.js.map +0 -1
  85. package/dist/packages/core/src/utils/logger-server.d.ts +0 -32
  86. package/dist/packages/core/src/utils/logger-server.d.ts.map +0 -1
  87. package/dist/packages/core/src/utils/logger-server.js +0 -69
  88. package/dist/packages/core/src/utils/logger-server.js.map +0 -1
  89. package/dist/packages/core/src/utils/request-context.d.ts +0 -143
  90. package/dist/packages/core/src/utils/request-context.d.ts.map +0 -1
  91. package/dist/packages/core/src/utils/request-context.js +0 -169
  92. package/dist/packages/core/src/utils/request-context.js.map +0 -1
  93. package/dist/packages/dev/src/code-validator/index.d.ts +0 -20
  94. package/dist/packages/dev/src/code-validator/index.d.ts.map +0 -1
  95. package/dist/packages/dev/src/code-validator/index.js +0 -20
  96. package/dist/packages/dev/src/code-validator/index.js.map +0 -1
  97. package/dist/packages/dev/src/code-validator/types.d.ts +0 -67
  98. package/dist/packages/dev/src/code-validator/types.d.ts.map +0 -1
  99. package/dist/packages/dev/src/code-validator/types.js +0 -7
  100. package/dist/packages/dev/src/code-validator/types.js.map +0 -1
  101. package/dist/packages/dev/src/code-validator/validator.d.ts +0 -48
  102. package/dist/packages/dev/src/code-validator/validator.d.ts.map +0 -1
  103. package/dist/packages/dev/src/code-validator/validator.js +0 -176
  104. package/dist/packages/dev/src/code-validator/validator.js.map +0 -1
  105. package/dist/packages/mcp/src/adapters/db.d.ts.map +0 -1
  106. package/dist/packages/mcp/src/adapters/db.js.map +0 -1
  107. package/dist/packages/mcp/src/config/index.d.ts.map +0 -1
  108. package/dist/packages/mcp/src/config/index.js.map +0 -1
  109. package/dist/packages/mcp/src/contracts.d.ts.map +0 -1
  110. package/dist/packages/mcp/src/contracts.js.map +0 -1
  111. package/dist/packages/mcp/src/hypervisor.d.ts.map +0 -1
  112. package/dist/packages/mcp/src/hypervisor.js.map +0 -1
  113. package/dist/packages/mcp/src/index.d.ts.map +0 -1
  114. package/dist/packages/mcp/src/index.js.map +0 -1
  115. package/dist/packages/mcp/src/servers/adapter.d.ts.map +0 -1
  116. package/dist/packages/mcp/src/servers/adapter.js.map +0 -1
  117. package/dist/packages/mcp/src/servers/code-validator.d.ts +0 -24
  118. package/dist/packages/mcp/src/servers/code-validator.d.ts.map +0 -1
  119. package/dist/packages/mcp/src/servers/code-validator.js +0 -156
  120. package/dist/packages/mcp/src/servers/code-validator.js.map +0 -1
  121. package/dist/packages/mcp/src/servers/neon.d.ts +0 -11
  122. package/dist/packages/mcp/src/servers/neon.d.ts.map +0 -1
  123. package/dist/packages/mcp/src/servers/neon.js +0 -90
  124. package/dist/packages/mcp/src/servers/neon.js.map +0 -1
  125. package/dist/packages/mcp/src/servers/next-devtools.d.ts +0 -11
  126. package/dist/packages/mcp/src/servers/next-devtools.d.ts.map +0 -1
  127. package/dist/packages/mcp/src/servers/next-devtools.js +0 -215
  128. package/dist/packages/mcp/src/servers/next-devtools.js.map +0 -1
  129. package/dist/packages/mcp/src/servers/playwright.d.ts +0 -11
  130. package/dist/packages/mcp/src/servers/playwright.d.ts.map +0 -1
  131. package/dist/packages/mcp/src/servers/playwright.js +0 -68
  132. package/dist/packages/mcp/src/servers/playwright.js.map +0 -1
  133. package/dist/packages/mcp/src/servers/stripe.d.ts +0 -11
  134. package/dist/packages/mcp/src/servers/stripe.d.ts.map +0 -1
  135. package/dist/packages/mcp/src/servers/stripe.js +0 -86
  136. package/dist/packages/mcp/src/servers/stripe.js.map +0 -1
  137. package/dist/packages/mcp/src/servers/supabase.d.ts +0 -11
  138. package/dist/packages/mcp/src/servers/supabase.d.ts.map +0 -1
  139. package/dist/packages/mcp/src/servers/supabase.js +0 -144
  140. package/dist/packages/mcp/src/servers/supabase.js.map +0 -1
  141. package/dist/packages/mcp/src/servers/vercel.d.ts +0 -11
  142. package/dist/packages/mcp/src/servers/vercel.d.ts.map +0 -1
  143. package/dist/packages/mcp/src/servers/vercel.js +0 -87
  144. package/dist/packages/mcp/src/servers/vercel.js.map +0 -1
  145. package/dist/packages/mcp/src/servers/vultr-test.d.ts +0 -3
  146. package/dist/packages/mcp/src/servers/vultr-test.d.ts.map +0 -1
  147. package/dist/packages/mcp/src/servers/vultr-test.js +0 -82
  148. package/dist/packages/mcp/src/servers/vultr-test.js.map +0 -1
  149. package/dist/scripts/lib/analyzers/console-analyzer.d.ts +0 -188
  150. package/dist/scripts/lib/analyzers/console-analyzer.d.ts.map +0 -1
  151. package/dist/scripts/lib/analyzers/console-analyzer.js +0 -432
  152. package/dist/scripts/lib/analyzers/console-analyzer.js.map +0 -1
  153. package/dist/scripts/lib/analyzers/index.d.ts +0 -11
  154. package/dist/scripts/lib/analyzers/index.d.ts.map +0 -1
  155. package/dist/scripts/lib/analyzers/index.js +0 -11
  156. package/dist/scripts/lib/analyzers/index.js.map +0 -1
  157. package/dist/scripts/lib/args.d.ts +0 -104
  158. package/dist/scripts/lib/args.d.ts.map +0 -1
  159. package/dist/scripts/lib/args.js +0 -304
  160. package/dist/scripts/lib/args.js.map +0 -1
  161. package/dist/scripts/lib/cache.d.ts +0 -185
  162. package/dist/scripts/lib/cache.d.ts.map +0 -1
  163. package/dist/scripts/lib/cache.js +0 -390
  164. package/dist/scripts/lib/cache.js.map +0 -1
  165. package/dist/scripts/lib/cli/dispatch.d.ts +0 -116
  166. package/dist/scripts/lib/cli/dispatch.d.ts.map +0 -1
  167. package/dist/scripts/lib/cli/dispatch.js +0 -206
  168. package/dist/scripts/lib/cli/dispatch.js.map +0 -1
  169. package/dist/scripts/lib/cli/index.d.ts +0 -10
  170. package/dist/scripts/lib/cli/index.d.ts.map +0 -1
  171. package/dist/scripts/lib/cli/index.js +0 -10
  172. package/dist/scripts/lib/cli/index.js.map +0 -1
  173. package/dist/scripts/lib/database/ssl-config.d.ts +0 -26
  174. package/dist/scripts/lib/database/ssl-config.d.ts.map +0 -1
  175. package/dist/scripts/lib/database/ssl-config.js +0 -47
  176. package/dist/scripts/lib/database/ssl-config.js.map +0 -1
  177. package/dist/scripts/lib/errors.d.ts +0 -218
  178. package/dist/scripts/lib/errors.d.ts.map +0 -1
  179. package/dist/scripts/lib/errors.js +0 -543
  180. package/dist/scripts/lib/errors.js.map +0 -1
  181. package/dist/scripts/lib/exec.d.ts +0 -107
  182. package/dist/scripts/lib/exec.d.ts.map +0 -1
  183. package/dist/scripts/lib/exec.js +0 -232
  184. package/dist/scripts/lib/exec.js.map +0 -1
  185. package/dist/scripts/lib/index.d.ts +0 -50
  186. package/dist/scripts/lib/index.d.ts.map +0 -1
  187. package/dist/scripts/lib/index.js +0 -65
  188. package/dist/scripts/lib/index.js.map +0 -1
  189. package/dist/scripts/lib/logger.d.ts +0 -50
  190. package/dist/scripts/lib/logger.d.ts.map +0 -1
  191. package/dist/scripts/lib/logger.js +0 -159
  192. package/dist/scripts/lib/logger.js.map +0 -1
  193. package/dist/scripts/lib/output.d.ts +0 -149
  194. package/dist/scripts/lib/output.d.ts.map +0 -1
  195. package/dist/scripts/lib/output.js +0 -263
  196. package/dist/scripts/lib/output.js.map +0 -1
  197. package/dist/scripts/lib/parallel.d.ts +0 -164
  198. package/dist/scripts/lib/parallel.d.ts.map +0 -1
  199. package/dist/scripts/lib/parallel.js +0 -355
  200. package/dist/scripts/lib/parallel.js.map +0 -1
  201. package/dist/scripts/lib/paths.d.ts +0 -92
  202. package/dist/scripts/lib/paths.d.ts.map +0 -1
  203. package/dist/scripts/lib/paths.js +0 -171
  204. package/dist/scripts/lib/paths.js.map +0 -1
  205. package/dist/scripts/lib/state/adapters/memory.d.ts +0 -42
  206. package/dist/scripts/lib/state/adapters/memory.d.ts.map +0 -1
  207. package/dist/scripts/lib/state/adapters/memory.js +0 -110
  208. package/dist/scripts/lib/state/adapters/memory.js.map +0 -1
  209. package/dist/scripts/lib/state/adapters/pglite.d.ts +0 -46
  210. package/dist/scripts/lib/state/adapters/pglite.d.ts.map +0 -1
  211. package/dist/scripts/lib/state/adapters/pglite.js +0 -256
  212. package/dist/scripts/lib/state/adapters/pglite.js.map +0 -1
  213. package/dist/scripts/lib/state/index.d.ts +0 -16
  214. package/dist/scripts/lib/state/index.d.ts.map +0 -1
  215. package/dist/scripts/lib/state/index.js +0 -16
  216. package/dist/scripts/lib/state/index.js.map +0 -1
  217. package/dist/scripts/lib/state/types.d.ts +0 -111
  218. package/dist/scripts/lib/state/types.d.ts.map +0 -1
  219. package/dist/scripts/lib/state/types.js +0 -8
  220. package/dist/scripts/lib/state/types.js.map +0 -1
  221. package/dist/scripts/lib/state/workflow-state.d.ts +0 -110
  222. package/dist/scripts/lib/state/workflow-state.d.ts.map +0 -1
  223. package/dist/scripts/lib/state/workflow-state.js +0 -331
  224. package/dist/scripts/lib/state/workflow-state.js.map +0 -1
  225. package/dist/scripts/lib/telemetry.d.ts +0 -194
  226. package/dist/scripts/lib/telemetry.d.ts.map +0 -1
  227. package/dist/scripts/lib/telemetry.js +0 -394
  228. package/dist/scripts/lib/telemetry.js.map +0 -1
  229. package/dist/scripts/lib/utils.d.ts +0 -270
  230. package/dist/scripts/lib/utils.d.ts.map +0 -1
  231. package/dist/scripts/lib/utils.js +0 -473
  232. package/dist/scripts/lib/utils.js.map +0 -1
  233. package/dist/scripts/lib/validation/database.d.ts +0 -83
  234. package/dist/scripts/lib/validation/database.d.ts.map +0 -1
  235. package/dist/scripts/lib/validation/database.js +0 -199
  236. package/dist/scripts/lib/validation/database.js.map +0 -1
  237. package/dist/scripts/lib/validation/env.d.ts +0 -80
  238. package/dist/scripts/lib/validation/env.d.ts.map +0 -1
  239. package/dist/scripts/lib/validation/env.js +0 -246
  240. package/dist/scripts/lib/validation/env.js.map +0 -1
  241. package/dist/scripts/lib/validation/index.d.ts +0 -16
  242. package/dist/scripts/lib/validation/index.d.ts.map +0 -1
  243. package/dist/scripts/lib/validation/index.js +0 -16
  244. package/dist/scripts/lib/validation/index.js.map +0 -1
  245. package/dist/scripts/lib/validation/post-execution.d.ts +0 -74
  246. package/dist/scripts/lib/validation/post-execution.d.ts.map +0 -1
  247. package/dist/scripts/lib/validation/post-execution.js +0 -110
  248. package/dist/scripts/lib/validation/post-execution.js.map +0 -1
  249. package/dist/scripts/lib/validation/pre-execution.d.ts +0 -165
  250. package/dist/scripts/lib/validation/pre-execution.d.ts.map +0 -1
  251. package/dist/scripts/lib/validation/pre-execution.js +0 -466
  252. package/dist/scripts/lib/validation/pre-execution.js.map +0 -1
  253. package/dist/scripts/lib/validators/documentation-validator.d.ts +0 -242
  254. package/dist/scripts/lib/validators/documentation-validator.d.ts.map +0 -1
  255. package/dist/scripts/lib/validators/documentation-validator.js +0 -584
  256. package/dist/scripts/lib/validators/documentation-validator.js.map +0 -1
  257. package/dist/scripts/lib/validators/index.d.ts +0 -11
  258. package/dist/scripts/lib/validators/index.d.ts.map +0 -1
  259. package/dist/scripts/lib/validators/index.js +0 -11
  260. package/dist/scripts/lib/validators/index.js.map +0 -1
  261. package/docker-compose.yml +0 -46
  262. package/docs/INDEX.md +0 -88
  263. package/docs/README.md +0 -774
  264. package/docs/SETUP.md +0 -264
  265. package/docs/servers/code-validator.md +0 -586
  266. package/eslint.config.js +0 -7
  267. package/migrations/0001_add_crdt_columns.sql +0 -8
  268. package/migrations/0001_rollback.sql +0 -6
  269. package/migrations/005_performance_indexes.sql +0 -190
  270. package/migrations/backfill_crdt_meta.js +0 -45
  271. package/src/__tests__/hypervisor.test.ts +0 -212
  272. package/src/adapters/db.ts +0 -180
  273. package/src/config/config.json +0 -49
  274. package/src/config/index.ts +0 -30
  275. package/src/contracts.ts +0 -221
  276. package/src/hypervisor.ts +0 -464
  277. package/src/index.ts +0 -87
  278. package/src/servers/adapter.ts +0 -643
  279. package/src/servers/code-validator.ts +0 -188
  280. package/src/servers/neon.ts +0 -103
  281. package/src/servers/next-devtools.ts +0 -230
  282. package/src/servers/playwright.ts +0 -77
  283. package/src/servers/stripe.ts +0 -99
  284. package/src/servers/supabase.ts +0 -161
  285. package/src/servers/vercel.ts +0 -100
  286. package/src/servers/vultr-test.ts +0 -97
  287. package/tsconfig.json +0 -12
  288. package/vitest.config.ts +0 -22
  289. /package/dist/{packages/mcp/src/adapters → adapters}/db.js +0 -0
  290. /package/dist/{packages/mcp/src/config → config}/index.d.ts +0 -0
  291. /package/dist/{packages/mcp/src/config → config}/index.js +0 -0
  292. /package/dist/{packages/mcp/src/contracts.d.ts → contracts.d.ts} +0 -0
  293. /package/dist/{packages/mcp/src/contracts.js → contracts.js} +0 -0
@@ -1,149 +0,0 @@
1
- /**
2
- * Dual-Mode Output System
3
- *
4
- * Provides unified output handling for CLI scripts that supports both
5
- * human-readable (colored, formatted) and machine-readable (JSON) modes.
6
- *
7
- * @example
8
- * ```typescript
9
- * const output = new OutputHandler(args.flags.json ? 'json' : 'human')
10
- *
11
- * // Progress messages (suppressed in JSON mode)
12
- * output.progress('Processing files...')
13
- *
14
- * // Final result (formatted for humans, JSON for agents)
15
- * output.result({
16
- * success: true,
17
- * data: { workflows: [...] },
18
- * metadata: { duration: 123 }
19
- * })
20
- * ```
21
- *
22
- * @dependencies
23
- * - scripts/lib/logger.ts - Colored console logging utilities
24
- */
25
- import { type Logger } from './logger.js';
26
- export type OutputMode = 'human' | 'json';
27
- export interface ScriptOutput<T = unknown> {
28
- /** Whether the operation succeeded */
29
- success: boolean;
30
- /** Result data (if successful) */
31
- data?: T;
32
- /** Error information (if failed) */
33
- error?: OutputErrorInfo;
34
- /** Optional metadata about the operation */
35
- metadata?: OutputMetadata;
36
- }
37
- export interface OutputErrorInfo {
38
- /** Error code (maps to exit code) */
39
- code: string;
40
- /** Human-readable error message */
41
- message: string;
42
- /** Additional error details */
43
- details?: Record<string, unknown>;
44
- }
45
- export interface OutputMetadata {
46
- /** Operation duration in milliseconds */
47
- duration?: number;
48
- /** ISO timestamp of operation */
49
- timestamp?: string;
50
- /** Number of items processed */
51
- count?: number;
52
- /** Additional metadata */
53
- [key: string]: unknown;
54
- }
55
- export interface OutputHandlerOptions {
56
- /** Output mode: 'human' for colored output, 'json' for machine-readable */
57
- mode: OutputMode;
58
- /** Logger options for human mode */
59
- loggerPrefix?: string;
60
- /** Whether to include timestamps in human output */
61
- timestamps?: boolean;
62
- /** Stream to write JSON output to (default: stdout) */
63
- jsonStream?: NodeJS.WritableStream;
64
- }
65
- /**
66
- * Dual-mode output handler for CLI scripts
67
- */
68
- export declare class OutputHandler {
69
- private mode;
70
- private logger;
71
- private jsonStream;
72
- private startTime;
73
- constructor(options: OutputHandlerOptions | OutputMode);
74
- /**
75
- * Get the current output mode
76
- */
77
- getMode(): OutputMode;
78
- /**
79
- * Check if in JSON mode
80
- */
81
- isJsonMode(): boolean;
82
- /**
83
- * Log a progress message (suppressed in JSON mode)
84
- */
85
- progress(message: string): void;
86
- /**
87
- * Log a debug message (suppressed in JSON mode)
88
- */
89
- debug(message: string): void;
90
- /**
91
- * Log a warning (suppressed in JSON mode)
92
- */
93
- warn(message: string): void;
94
- /**
95
- * Show a progress bar (suppressed in JSON mode)
96
- */
97
- progressBar(current: number, total: number, label?: string): void;
98
- /**
99
- * Print a header (suppressed in JSON mode)
100
- */
101
- header(title: string): void;
102
- /**
103
- * Print a divider line (suppressed in JSON mode)
104
- */
105
- divider(): void;
106
- /**
107
- * Output the final result
108
- *
109
- * In human mode: Formats and prints using logger
110
- * In JSON mode: Outputs structured JSON to stdout
111
- */
112
- result<T>(output: ScriptOutput<T>): void;
113
- /**
114
- * Output a successful result
115
- */
116
- success<T>(data: T, metadata?: OutputMetadata): void;
117
- /**
118
- * Output an error result
119
- */
120
- error(error: OutputErrorInfo, metadata?: OutputMetadata): void;
121
- /**
122
- * Output raw data (for list/table commands)
123
- */
124
- data<T>(items: T[], options?: {
125
- format?: 'table' | 'list';
126
- }): void;
127
- /**
128
- * Get the underlying logger (for advanced human-mode output)
129
- */
130
- getLogger(): Logger;
131
- private outputJson;
132
- private outputHuman;
133
- }
134
- /**
135
- * Create an output handler based on CLI flags
136
- */
137
- export declare function createOutput(flags: {
138
- json?: boolean;
139
- [key: string]: unknown;
140
- }, options?: Partial<Omit<OutputHandlerOptions, 'mode'>>): OutputHandler;
141
- /**
142
- * Create a result object for success
143
- */
144
- export declare function ok<T>(data: T, metadata?: OutputMetadata): ScriptOutput<T>;
145
- /**
146
- * Create a result object for failure
147
- */
148
- export declare function fail(code: string, message: string, details?: Record<string, unknown>): ScriptOutput<never>;
149
- //# sourceMappingURL=output.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../../scripts/lib/output.ts"],"names":[],"mappings":"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"}
@@ -1,263 +0,0 @@
1
- /**
2
- * Dual-Mode Output System
3
- *
4
- * Provides unified output handling for CLI scripts that supports both
5
- * human-readable (colored, formatted) and machine-readable (JSON) modes.
6
- *
7
- * @example
8
- * ```typescript
9
- * const output = new OutputHandler(args.flags.json ? 'json' : 'human')
10
- *
11
- * // Progress messages (suppressed in JSON mode)
12
- * output.progress('Processing files...')
13
- *
14
- * // Final result (formatted for humans, JSON for agents)
15
- * output.result({
16
- * success: true,
17
- * data: { workflows: [...] },
18
- * metadata: { duration: 123 }
19
- * })
20
- * ```
21
- *
22
- * @dependencies
23
- * - scripts/lib/logger.ts - Colored console logging utilities
24
- */
25
- import { createLogger } from './logger.js';
26
- // =============================================================================
27
- // Output Handler
28
- // =============================================================================
29
- /**
30
- * Dual-mode output handler for CLI scripts
31
- */
32
- export class OutputHandler {
33
- mode;
34
- logger;
35
- jsonStream;
36
- startTime;
37
- constructor(options) {
38
- const opts = typeof options === 'string' ? { mode: options } : options;
39
- this.mode = opts.mode;
40
- this.jsonStream = opts.jsonStream ?? process.stdout;
41
- this.startTime = Date.now();
42
- // In JSON mode, suppress all logger output
43
- this.logger = createLogger({
44
- level: opts.mode === 'json' ? 'silent' : 'info',
45
- prefix: opts.loggerPrefix,
46
- timestamps: opts.timestamps,
47
- });
48
- }
49
- /**
50
- * Get the current output mode
51
- */
52
- getMode() {
53
- return this.mode;
54
- }
55
- /**
56
- * Check if in JSON mode
57
- */
58
- isJsonMode() {
59
- return this.mode === 'json';
60
- }
61
- /**
62
- * Log a progress message (suppressed in JSON mode)
63
- */
64
- progress(message) {
65
- if (this.mode === 'human') {
66
- this.logger.info(message);
67
- }
68
- }
69
- /**
70
- * Log a debug message (suppressed in JSON mode)
71
- */
72
- debug(message) {
73
- if (this.mode === 'human') {
74
- this.logger.debug(message);
75
- }
76
- }
77
- /**
78
- * Log a warning (suppressed in JSON mode)
79
- */
80
- warn(message) {
81
- if (this.mode === 'human') {
82
- this.logger.warn(message);
83
- }
84
- }
85
- /**
86
- * Show a progress bar (suppressed in JSON mode)
87
- */
88
- progressBar(current, total, label) {
89
- if (this.mode === 'human') {
90
- this.logger.progress(current, total, label);
91
- }
92
- }
93
- /**
94
- * Print a header (suppressed in JSON mode)
95
- */
96
- header(title) {
97
- if (this.mode === 'human') {
98
- this.logger.header(title);
99
- }
100
- }
101
- /**
102
- * Print a divider line (suppressed in JSON mode)
103
- */
104
- divider() {
105
- if (this.mode === 'human') {
106
- this.logger.divider();
107
- }
108
- }
109
- /**
110
- * Output the final result
111
- *
112
- * In human mode: Formats and prints using logger
113
- * In JSON mode: Outputs structured JSON to stdout
114
- */
115
- result(output) {
116
- // Add metadata if not present
117
- const enriched = {
118
- ...output,
119
- metadata: {
120
- duration: Date.now() - this.startTime,
121
- timestamp: new Date().toISOString(),
122
- ...output.metadata,
123
- },
124
- };
125
- if (this.mode === 'json') {
126
- this.outputJson(enriched);
127
- }
128
- else {
129
- this.outputHuman(enriched);
130
- }
131
- }
132
- /**
133
- * Output a successful result
134
- */
135
- success(data, metadata) {
136
- this.result({ success: true, data, metadata });
137
- }
138
- /**
139
- * Output an error result
140
- */
141
- error(error, metadata) {
142
- this.result({ success: false, error, metadata });
143
- }
144
- /**
145
- * Output raw data (for list/table commands)
146
- */
147
- data(items, options) {
148
- if (this.mode === 'json') {
149
- this.outputJson({ success: true, data: items });
150
- }
151
- else if (options?.format === 'table' && Array.isArray(items) && items.length > 0) {
152
- this.logger.table(items);
153
- }
154
- else {
155
- for (const item of items) {
156
- if (typeof item === 'object' && item !== null) {
157
- console.log(formatObject(item));
158
- }
159
- else {
160
- console.log(String(item));
161
- }
162
- }
163
- }
164
- }
165
- /**
166
- * Get the underlying logger (for advanced human-mode output)
167
- */
168
- getLogger() {
169
- return this.logger;
170
- }
171
- // ===========================================================================
172
- // Private Methods
173
- // ===========================================================================
174
- outputJson(output) {
175
- this.jsonStream.write(`${JSON.stringify(output, null, 2)}\n`);
176
- }
177
- outputHuman(output) {
178
- if (output.success) {
179
- if (output.data !== undefined) {
180
- if (typeof output.data === 'object' && output.data !== null) {
181
- if (Array.isArray(output.data)) {
182
- for (const item of output.data) {
183
- console.log(formatObject(item));
184
- }
185
- }
186
- else {
187
- console.log(formatObject(output.data));
188
- }
189
- }
190
- else {
191
- console.log(output.data);
192
- }
193
- }
194
- if (output.metadata?.duration) {
195
- this.logger.success(`Completed in ${output.metadata.duration}ms`);
196
- }
197
- else {
198
- this.logger.success('Completed');
199
- }
200
- }
201
- else if (output.error) {
202
- this.logger.error(`${output.error.message}`);
203
- if (output.error.details) {
204
- for (const [key, value] of Object.entries(output.error.details)) {
205
- this.logger.error(` ${key}: ${value}`);
206
- }
207
- }
208
- }
209
- }
210
- }
211
- // =============================================================================
212
- // Formatting Helpers
213
- // =============================================================================
214
- /**
215
- * Format an object for human-readable output
216
- */
217
- function formatObject(obj, indent = 0) {
218
- const pad = ' '.repeat(indent);
219
- const lines = [];
220
- for (const [key, value] of Object.entries(obj)) {
221
- if (value === undefined)
222
- continue;
223
- if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
224
- lines.push(`${pad}${key}:`);
225
- lines.push(formatObject(value, indent + 1));
226
- }
227
- else if (Array.isArray(value)) {
228
- lines.push(`${pad}${key}: [${value.length} items]`);
229
- }
230
- else {
231
- lines.push(`${pad}${key}: ${value}`);
232
- }
233
- }
234
- return lines.join('\n');
235
- }
236
- // =============================================================================
237
- // Factory Functions
238
- // =============================================================================
239
- /**
240
- * Create an output handler based on CLI flags
241
- */
242
- export function createOutput(flags, options) {
243
- return new OutputHandler({
244
- mode: flags.json ? 'json' : 'human',
245
- ...options,
246
- });
247
- }
248
- /**
249
- * Create a result object for success
250
- */
251
- export function ok(data, metadata) {
252
- return { success: true, data, metadata };
253
- }
254
- /**
255
- * Create a result object for failure
256
- */
257
- export function fail(code, message, details) {
258
- return {
259
- success: false,
260
- error: { code, message, details },
261
- };
262
- }
263
- //# sourceMappingURL=output.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../../../scripts/lib/output.ts"],"names":[],"mappings":"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"}
@@ -1,164 +0,0 @@
1
- /**
2
- * Parallel task execution utilities.
3
- *
4
- * Provides controlled parallel execution with:
5
- * - Configurable concurrency limits
6
- * - Progress tracking
7
- * - Error handling and aggregation
8
- * - Timeout support
9
- * - Resource pooling
10
- *
11
- * @example
12
- * ```typescript
13
- * import { parallel, ParallelExecutor } from './parallel.js'
14
- *
15
- * // Simple parallel execution
16
- * const results = await parallel(
17
- * [task1, task2, task3],
18
- * { concurrency: 2 }
19
- * )
20
- *
21
- * // With progress tracking
22
- * const executor = new ParallelExecutor({ concurrency: 3 })
23
- * executor.on('progress', ({ completed, total }) => {
24
- * console.log(`${completed}/${total} tasks completed`)
25
- * })
26
- * await executor.run([task1, task2, task3])
27
- * ```
28
- *
29
- * @dependencies
30
- * - scripts/lib/logger.ts - Logging utilities
31
- * - scripts/lib/telemetry.ts - Performance metrics tracking
32
- * - node:events - Event emitter for progress tracking
33
- */
34
- import { EventEmitter } from 'node:events';
35
- export interface ParallelOptions {
36
- /** Maximum number of concurrent tasks (default: 5) */
37
- concurrency?: number;
38
- /** Timeout for each task in ms (0 = no timeout) */
39
- timeout?: number;
40
- /** Stop on first error (default: false) */
41
- stopOnError?: boolean;
42
- /** Enable verbose logging */
43
- verbose?: boolean;
44
- /** Task execution mode */
45
- mode?: 'parallel' | 'sequential';
46
- }
47
- export interface TaskResult<T> {
48
- /** Task index */
49
- index: number;
50
- /** Task result (if successful) */
51
- result?: T;
52
- /** Error (if failed) */
53
- error?: Error;
54
- /** Execution duration in ms */
55
- duration: number;
56
- /** Task status */
57
- status: 'success' | 'error' | 'timeout';
58
- }
59
- export interface ProgressEvent {
60
- /** Number of completed tasks */
61
- completed: number;
62
- /** Total number of tasks */
63
- total: number;
64
- /** Progress percentage (0-100) */
65
- percentage: number;
66
- /** Recently completed task result */
67
- lastResult?: TaskResult<unknown>;
68
- }
69
- export type Task<T> = () => Promise<T> | T;
70
- export declare class ParallelExecutor<T = unknown> extends EventEmitter {
71
- private concurrency;
72
- private timeout;
73
- private stopOnError;
74
- private verbose;
75
- private mode;
76
- constructor(options?: ParallelOptions);
77
- /**
78
- * Execute tasks in parallel with concurrency control.
79
- */
80
- run(tasks: Array<Task<T>>): Promise<Array<TaskResult<T>>>;
81
- /**
82
- * Execute tasks sequentially.
83
- */
84
- private runSequential;
85
- /**
86
- * Execute task with timeout.
87
- */
88
- private executeWithTimeout;
89
- /**
90
- * Get success rate from results.
91
- */
92
- static getSuccessRate(results: Array<TaskResult<unknown>>): number;
93
- /**
94
- * Get all errors from results.
95
- */
96
- static getErrors(results: Array<TaskResult<unknown>>): Error[];
97
- /**
98
- * Check if all tasks succeeded.
99
- */
100
- static allSucceeded(results: Array<TaskResult<unknown>>): boolean;
101
- }
102
- /**
103
- * Execute tasks in parallel with concurrency control.
104
- *
105
- * @example
106
- * ```typescript
107
- * const results = await parallel(
108
- * [async () => fetch('/api/1'), async () => fetch('/api/2')],
109
- * { concurrency: 2 }
110
- * )
111
- * ```
112
- */
113
- export declare function parallel<T>(tasks: Array<Task<T>>, options?: ParallelOptions): Promise<Array<TaskResult<T>>>;
114
- /**
115
- * Execute tasks sequentially.
116
- *
117
- * @example
118
- * ```typescript
119
- * const results = await sequential([task1, task2, task3])
120
- * ```
121
- */
122
- export declare function sequential<T>(tasks: Array<Task<T>>, options?: Omit<ParallelOptions, 'concurrency' | 'mode'>): Promise<Array<TaskResult<T>>>;
123
- /**
124
- * Map over array items in parallel.
125
- *
126
- * @example
127
- * ```typescript
128
- * const results = await parallelMap(
129
- * [1, 2, 3, 4, 5],
130
- * async (n) => n * 2,
131
- * { concurrency: 2 }
132
- * )
133
- * ```
134
- */
135
- export declare function parallelMap<T, R>(items: T[], mapper: (item: T, index: number) => Promise<R> | R, options?: ParallelOptions): Promise<R[]>;
136
- /**
137
- * Filter array items in parallel.
138
- *
139
- * @example
140
- * ```typescript
141
- * const evens = await parallelFilter(
142
- * [1, 2, 3, 4, 5],
143
- * async (n) => n % 2 === 0,
144
- * { concurrency: 2 }
145
- * )
146
- * ```
147
- */
148
- export declare function parallelFilter<T>(items: T[], predicate: (item: T, index: number) => Promise<boolean> | boolean, options?: ParallelOptions): Promise<T[]>;
149
- /**
150
- * Batch process items in parallel.
151
- *
152
- * @example
153
- * ```typescript
154
- * await batch(
155
- * largeArray,
156
- * async (batch) => processItems(batch),
157
- * { batchSize: 10, concurrency: 2 }
158
- * )
159
- * ```
160
- */
161
- export declare function batch<T, R>(items: T[], processor: (batch: T[]) => Promise<R> | R, options: ParallelOptions & {
162
- batchSize: number;
163
- }): Promise<R[]>;
164
- //# sourceMappingURL=parallel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parallel.d.ts","sourceRoot":"","sources":["../../../../../scripts/lib/parallel.ts"],"names":[],"mappings":"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"}