mycontext-cli 1.0.95 → 2.0.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 (97) hide show
  1. package/README.md +268 -295
  2. package/dist/agents/implementations/ClaudeAgentWorkflow.d.ts.map +1 -1
  3. package/dist/agents/implementations/ClaudeAgentWorkflow.js +38 -3
  4. package/dist/agents/implementations/ClaudeAgentWorkflow.js.map +1 -1
  5. package/dist/agents/implementations/WorkflowAgent.d.ts +8 -0
  6. package/dist/agents/implementations/WorkflowAgent.d.ts.map +1 -1
  7. package/dist/agents/implementations/WorkflowAgent.js +105 -11
  8. package/dist/agents/implementations/WorkflowAgent.js.map +1 -1
  9. package/dist/agents/interfaces/SubAgent.d.ts +5 -0
  10. package/dist/agents/interfaces/SubAgent.d.ts.map +1 -1
  11. package/dist/commands/build-app.d.ts +5 -0
  12. package/dist/commands/build-app.d.ts.map +1 -1
  13. package/dist/commands/build-app.js +127 -4
  14. package/dist/commands/build-app.js.map +1 -1
  15. package/dist/commands/compile-prd.d.ts.map +1 -1
  16. package/dist/commands/compile-prd.js +18 -54
  17. package/dist/commands/compile-prd.js.map +1 -1
  18. package/dist/commands/enhance.d.ts +21 -0
  19. package/dist/commands/enhance.d.ts.map +1 -1
  20. package/dist/commands/enhance.js +155 -12
  21. package/dist/commands/enhance.js.map +1 -1
  22. package/dist/commands/generate-components.d.ts +43 -0
  23. package/dist/commands/generate-components.d.ts.map +1 -1
  24. package/dist/commands/generate-components.js +270 -0
  25. package/dist/commands/generate-components.js.map +1 -1
  26. package/dist/constants/fileNames.d.ts +68 -0
  27. package/dist/constants/fileNames.d.ts.map +1 -0
  28. package/dist/constants/fileNames.js +102 -0
  29. package/dist/constants/fileNames.js.map +1 -0
  30. package/dist/interfaces/AIClient.d.ts +198 -0
  31. package/dist/interfaces/AIClient.d.ts.map +1 -0
  32. package/dist/interfaces/AIClient.js +40 -0
  33. package/dist/interfaces/AIClient.js.map +1 -0
  34. package/dist/package.json +4 -3
  35. package/dist/types/index.d.ts +423 -0
  36. package/dist/types/index.d.ts.map +1 -1
  37. package/dist/utils/agentDefinitions.d.ts +60 -0
  38. package/dist/utils/agentDefinitions.d.ts.map +1 -0
  39. package/dist/utils/agentDefinitions.js +344 -0
  40. package/dist/utils/agentDefinitions.js.map +1 -0
  41. package/dist/utils/aiClientFactory.d.ts +93 -0
  42. package/dist/utils/aiClientFactory.d.ts.map +1 -0
  43. package/dist/utils/aiClientFactory.js +290 -0
  44. package/dist/utils/aiClientFactory.js.map +1 -0
  45. package/dist/utils/aiClientRouter.d.ts +121 -0
  46. package/dist/utils/aiClientRouter.d.ts.map +1 -0
  47. package/dist/utils/aiClientRouter.js +401 -0
  48. package/dist/utils/aiClientRouter.js.map +1 -0
  49. package/dist/utils/buildValidator.d.ts +72 -0
  50. package/dist/utils/buildValidator.d.ts.map +1 -0
  51. package/dist/utils/buildValidator.js +338 -0
  52. package/dist/utils/buildValidator.js.map +1 -0
  53. package/dist/utils/claudeAgentClient.d.ts +79 -11
  54. package/dist/utils/claudeAgentClient.d.ts.map +1 -1
  55. package/dist/utils/claudeAgentClient.js +306 -1
  56. package/dist/utils/claudeAgentClient.js.map +1 -1
  57. package/dist/utils/claudeClient.d.ts +7 -3
  58. package/dist/utils/claudeClient.d.ts.map +1 -1
  59. package/dist/utils/claudeClient.js +28 -5
  60. package/dist/utils/claudeClient.js.map +1 -1
  61. package/dist/utils/completeArchitectureEngine.d.ts +67 -0
  62. package/dist/utils/completeArchitectureEngine.d.ts.map +1 -0
  63. package/dist/utils/completeArchitectureEngine.js +329 -0
  64. package/dist/utils/completeArchitectureEngine.js.map +1 -0
  65. package/dist/utils/contextLoader.d.ts +1 -12
  66. package/dist/utils/contextLoader.d.ts.map +1 -1
  67. package/dist/utils/contextLoader.js +29 -150
  68. package/dist/utils/contextLoader.js.map +1 -1
  69. package/dist/utils/contextManager.d.ts +2 -12
  70. package/dist/utils/contextManager.d.ts.map +1 -1
  71. package/dist/utils/contextManager.js +11 -6
  72. package/dist/utils/contextManager.js.map +1 -1
  73. package/dist/utils/mcpTools.d.ts +164 -0
  74. package/dist/utils/mcpTools.d.ts.map +1 -0
  75. package/dist/utils/mcpTools.js +385 -0
  76. package/dist/utils/mcpTools.js.map +1 -0
  77. package/dist/utils/progressTracker.d.ts +121 -0
  78. package/dist/utils/progressTracker.d.ts.map +1 -0
  79. package/dist/utils/progressTracker.js +334 -0
  80. package/dist/utils/progressTracker.js.map +1 -0
  81. package/dist/utils/routeGenerator.d.ts +56 -0
  82. package/dist/utils/routeGenerator.d.ts.map +1 -0
  83. package/dist/utils/routeGenerator.js +231 -0
  84. package/dist/utils/routeGenerator.js.map +1 -0
  85. package/dist/utils/serverActionGenerator.d.ts +56 -0
  86. package/dist/utils/serverActionGenerator.d.ts.map +1 -0
  87. package/dist/utils/serverActionGenerator.js +258 -0
  88. package/dist/utils/serverActionGenerator.js.map +1 -0
  89. package/dist/utils/streamingHandler.d.ts +98 -0
  90. package/dist/utils/streamingHandler.d.ts.map +1 -0
  91. package/dist/utils/streamingHandler.js +259 -0
  92. package/dist/utils/streamingHandler.js.map +1 -0
  93. package/dist/utils/validationGates.d.ts +58 -0
  94. package/dist/utils/validationGates.d.ts.map +1 -0
  95. package/dist/utils/validationGates.js +390 -0
  96. package/dist/utils/validationGates.js.map +1 -0
  97. package/package.json +4 -3
@@ -0,0 +1,259 @@
1
+ "use strict";
2
+ /**
3
+ * Streaming Handler for Claude Agent SDK
4
+ *
5
+ * Handles streaming messages, progress tracking, and user feedback
6
+ * for long-running agent operations.
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.StreamingHandler = void 0;
13
+ exports.streamWithProgress = streamWithProgress;
14
+ exports.simpleStream = simpleStream;
15
+ const chalk_1 = __importDefault(require("chalk"));
16
+ const ora_1 = __importDefault(require("ora"));
17
+ /**
18
+ * Handles streaming from Claude Agent SDK with progress tracking
19
+ */
20
+ class StreamingHandler {
21
+ constructor(options = {}) {
22
+ this.spinner = null;
23
+ this.stats = {
24
+ totalTokens: 0,
25
+ inputTokens: 0,
26
+ outputTokens: 0,
27
+ toolsUsed: [],
28
+ duration: 0,
29
+ messagesProcessed: 0,
30
+ };
31
+ this.startTime = 0;
32
+ this.options = {
33
+ showProgress: options.showProgress !== false,
34
+ showTokens: options.showTokens !== false,
35
+ showToolUsage: options.showToolUsage !== false,
36
+ ...options,
37
+ };
38
+ }
39
+ /**
40
+ * Start streaming handler
41
+ */
42
+ start(message = 'Processing...') {
43
+ this.startTime = Date.now();
44
+ if (this.options.showProgress) {
45
+ this.spinner = (0, ora_1.default)(message).start();
46
+ }
47
+ }
48
+ /**
49
+ * Process streaming messages from query
50
+ */
51
+ async processStream(query) {
52
+ let fullResponse = '';
53
+ try {
54
+ for await (const message of query) {
55
+ this.stats.messagesProcessed++;
56
+ // Handle different message types
57
+ switch (message.type) {
58
+ case 'assistant':
59
+ const text = this.handleAssistantMessage(message);
60
+ fullResponse += text;
61
+ break;
62
+ case 'result':
63
+ this.handleToolResult(message);
64
+ break;
65
+ case 'system':
66
+ this.handleSystemMessage(message);
67
+ break;
68
+ default:
69
+ // Handle other message types
70
+ if (message.type === 'partial_assistant') {
71
+ this.handlePartialMessage(message);
72
+ }
73
+ else if (message.type === 'permission_denial') {
74
+ this.handlePermissionDenial(message);
75
+ }
76
+ break;
77
+ }
78
+ }
79
+ this.stats.duration = Date.now() - this.startTime;
80
+ this.complete();
81
+ return fullResponse;
82
+ }
83
+ catch (error) {
84
+ this.error(error);
85
+ throw error;
86
+ }
87
+ }
88
+ /**
89
+ * Handle assistant message
90
+ */
91
+ handleAssistantMessage(message) {
92
+ let text = '';
93
+ if (message.message && message.message.content) {
94
+ for (const content of message.message.content) {
95
+ if (content.type === 'text') {
96
+ text += content.text;
97
+ // Stream tokens if enabled
98
+ if (this.options.onToken) {
99
+ this.options.onToken(content.text);
100
+ }
101
+ }
102
+ else if (content.type === 'tool_use') {
103
+ // Track tool usage
104
+ const toolName = content.name;
105
+ if (!this.stats.toolsUsed.includes(toolName)) {
106
+ this.stats.toolsUsed.push(toolName);
107
+ }
108
+ if (this.options.showToolUsage) {
109
+ this.updateSpinner(`🔧 Using tool: ${toolName}`);
110
+ }
111
+ if (this.options.onToolUse) {
112
+ this.options.onToolUse(toolName, content.input);
113
+ }
114
+ }
115
+ }
116
+ // Update token stats if available
117
+ if (message.message.usage) {
118
+ this.stats.inputTokens += message.message.usage.input_tokens || 0;
119
+ this.stats.outputTokens += message.message.usage.output_tokens || 0;
120
+ this.stats.totalTokens = this.stats.inputTokens + this.stats.outputTokens;
121
+ }
122
+ }
123
+ return text;
124
+ }
125
+ /**
126
+ * Handle partial assistant message (streaming)
127
+ */
128
+ handlePartialMessage(message) {
129
+ if (message.message && message.message.content) {
130
+ for (const content of message.message.content) {
131
+ if (content.type === 'text') {
132
+ // Update progress with partial text
133
+ const preview = content.text.substring(0, 50);
134
+ if (this.options.showProgress) {
135
+ this.updateSpinner(`📝 ${preview}...`);
136
+ }
137
+ if (this.options.onProgress) {
138
+ this.options.onProgress(content.text);
139
+ }
140
+ }
141
+ }
142
+ }
143
+ }
144
+ /**
145
+ * Handle tool result message
146
+ */
147
+ handleToolResult(message) {
148
+ if (this.options.showToolUsage && message.content) {
149
+ const preview = JSON.stringify(message.content).substring(0, 50);
150
+ this.updateSpinner(`✅ Tool result: ${preview}...`);
151
+ }
152
+ }
153
+ /**
154
+ * Handle system message
155
+ */
156
+ handleSystemMessage(message) {
157
+ if (message.message) {
158
+ if (this.options.showProgress) {
159
+ this.updateSpinner(`ℹ️ ${message.message}`);
160
+ }
161
+ }
162
+ }
163
+ /**
164
+ * Handle permission denial
165
+ */
166
+ handlePermissionDenial(message) {
167
+ if (this.spinner) {
168
+ this.spinner.warn(chalk_1.default.yellow(`⚠️ Permission denied: ${message.message || 'Unknown operation'}`));
169
+ this.spinner = (0, ora_1.default)().start();
170
+ }
171
+ }
172
+ /**
173
+ * Update spinner text
174
+ */
175
+ updateSpinner(text) {
176
+ if (this.spinner) {
177
+ this.spinner.text = text;
178
+ }
179
+ }
180
+ /**
181
+ * Complete streaming successfully
182
+ */
183
+ complete(message) {
184
+ if (this.spinner) {
185
+ this.spinner.succeed(message || chalk_1.default.green('✅ Completed'));
186
+ }
187
+ // Show stats if enabled
188
+ if (this.options.showTokens && this.stats.totalTokens > 0) {
189
+ console.log(chalk_1.default.gray(` Tokens: ${this.stats.totalTokens} (in: ${this.stats.inputTokens}, out: ${this.stats.outputTokens})`));
190
+ }
191
+ if (this.options.showToolUsage && this.stats.toolsUsed.length > 0) {
192
+ console.log(chalk_1.default.gray(` Tools used: ${this.stats.toolsUsed.join(', ')}`));
193
+ }
194
+ if (this.options.showProgress) {
195
+ console.log(chalk_1.default.gray(` Duration: ${(this.stats.duration / 1000).toFixed(2)}s`));
196
+ }
197
+ }
198
+ /**
199
+ * Handle error during streaming
200
+ */
201
+ error(error) {
202
+ if (this.spinner) {
203
+ this.spinner.fail(chalk_1.default.red(`❌ Error: ${error.message}`));
204
+ }
205
+ if (this.options.onError) {
206
+ this.options.onError(error);
207
+ }
208
+ }
209
+ /**
210
+ * Stop spinner without completion
211
+ */
212
+ stop() {
213
+ if (this.spinner) {
214
+ this.spinner.stop();
215
+ }
216
+ }
217
+ /**
218
+ * Get current statistics
219
+ */
220
+ getStats() {
221
+ return { ...this.stats };
222
+ }
223
+ /**
224
+ * Reset statistics
225
+ */
226
+ resetStats() {
227
+ this.stats = {
228
+ totalTokens: 0,
229
+ inputTokens: 0,
230
+ outputTokens: 0,
231
+ toolsUsed: [],
232
+ duration: 0,
233
+ messagesProcessed: 0,
234
+ };
235
+ }
236
+ }
237
+ exports.StreamingHandler = StreamingHandler;
238
+ /**
239
+ * Convenience function to create and use streaming handler
240
+ */
241
+ async function streamWithProgress(query, options = {}) {
242
+ const handler = new StreamingHandler(options);
243
+ handler.start();
244
+ const content = await handler.processStream(query);
245
+ const stats = handler.getStats();
246
+ return { content, stats };
247
+ }
248
+ /**
249
+ * Simplified streaming with default options
250
+ */
251
+ async function simpleStream(query) {
252
+ const { content } = await streamWithProgress(query, {
253
+ showProgress: true,
254
+ showTokens: true,
255
+ showToolUsage: true,
256
+ });
257
+ return content;
258
+ }
259
+ //# sourceMappingURL=streamingHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamingHandler.js","sourceRoot":"","sources":["../../src/utils/streamingHandler.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;AAuRH,gDAWC;AAKD,oCAOC;AA5SD,kDAA0B;AAC1B,8CAA+B;AAsB/B;;GAEG;AACH,MAAa,gBAAgB;IAa3B,YAAY,UAA4B,EAAE;QAZlC,YAAO,GAAe,IAAI,CAAC;QAC3B,UAAK,GAAmB;YAC9B,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,CAAC;YACX,iBAAiB,EAAE,CAAC;SACrB,CAAC;QACM,cAAS,GAAW,CAAC,CAAC;QAI5B,IAAI,CAAC,OAAO,GAAG;YACb,YAAY,EAAE,OAAO,CAAC,YAAY,KAAK,KAAK;YAC5C,UAAU,EAAE,OAAO,CAAC,UAAU,KAAK,KAAK;YACxC,aAAa,EAAE,OAAO,CAAC,aAAa,KAAK,KAAK;YAC9C,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAkB,eAAe;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,IAAA,aAAG,EAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,KAAY;QAC9B,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAE/B,iCAAiC;gBACjC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;oBACrB,KAAK,WAAW;wBACd,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;wBAClD,YAAY,IAAI,IAAI,CAAC;wBACrB,MAAM;oBAER,KAAK,QAAQ;wBACX,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;wBAC/B,MAAM;oBAER,KAAK,QAAQ;wBACX,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;wBAClC,MAAM;oBAER;wBACE,6BAA6B;wBAC7B,IAAK,OAAe,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;4BAClD,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;wBACrC,CAAC;6BAAM,IAAK,OAAe,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;4BACzD,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;wBACvC,CAAC;wBACD,MAAM;gBACV,CAAC;YACH,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;YAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEhB,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAClB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,OAAY;QACzC,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC/C,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC9C,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC5B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;oBAErB,2BAA2B;oBAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;wBACzB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACrC,CAAC;gBACH,CAAC;qBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACvC,mBAAmB;oBACnB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;oBAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC7C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACtC,CAAC;oBAED,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;wBAC/B,IAAI,CAAC,aAAa,CAAC,kBAAkB,QAAQ,EAAE,CAAC,CAAC;oBACnD,CAAC;oBAED,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;wBAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,kCAAkC;YAClC,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;gBAClE,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;gBACpE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;YAC5E,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,OAAY;QACvC,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC/C,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC9C,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC5B,oCAAoC;oBACpC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC9C,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;wBAC9B,IAAI,CAAC,aAAa,CAAC,MAAM,OAAO,KAAK,CAAC,CAAC;oBACzC,CAAC;oBAED,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;wBAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACxC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,OAAY;QACnC,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,aAAa,CAAC,kBAAkB,OAAO,KAAK,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,OAAY;QACtC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBAC9B,IAAI,CAAC,aAAa,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,OAAY;QACzC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,yBAAyB,OAAO,CAAC,OAAO,IAAI,mBAAmB,EAAE,CAAC,CAAC,CAAC;YACnG,IAAI,CAAC,OAAO,GAAG,IAAA,aAAG,GAAE,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,IAAY;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,OAAgB;QACvB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,eAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,wBAAwB;QACxB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,WAAW,SAAS,IAAI,CAAC,KAAK,CAAC,WAAW,UAAU,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QACnI,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAY;QAChB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,KAAK,GAAG;YACX,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,CAAC;YACX,iBAAiB,EAAE,CAAC;SACrB,CAAC;IACJ,CAAC;CACF;AAtPD,4CAsPC;AAED;;GAEG;AACI,KAAK,UAAU,kBAAkB,CACtC,KAAY,EACZ,UAA4B,EAAE;IAE9B,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC9C,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAEjC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,YAAY,CAAC,KAAY;IAC7C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE;QAClD,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Validation Gates System
3
+ *
4
+ * Implements user approval checkpoints for PRD, context files, and other critical artifacts.
5
+ * Follows "LLM as Compiler" philosophy - user approves the "compiled output".
6
+ */
7
+ export interface ValidationResult {
8
+ approved: boolean;
9
+ feedback?: string;
10
+ edited?: boolean;
11
+ }
12
+ export declare class ValidationGates {
13
+ /**
14
+ * Validate PRD - CRITICAL GATE
15
+ * User must read and approve the entire PRD before component generation.
16
+ */
17
+ static validatePRD(prdPath: string, prdContent: string): Promise<ValidationResult>;
18
+ /**
19
+ * Validate Context File (Features, User Flows, Edge Cases, Tech Specs)
20
+ */
21
+ static validateContextFile(fileName: string, content: string, filePath: string): Promise<ValidationResult>;
22
+ /**
23
+ * Validate Component List
24
+ */
25
+ static validateComponentList(componentList: any[], filePath: string): Promise<ValidationResult>;
26
+ /**
27
+ * Validate Types
28
+ */
29
+ static validateTypes(typesPath: string, typesContent: string): Promise<ValidationResult>;
30
+ /**
31
+ * Display PRD in sections
32
+ */
33
+ private static displayPRDSections;
34
+ /**
35
+ * Open content in system pager (less/more)
36
+ */
37
+ private static openInPager;
38
+ /**
39
+ * Open file in user's default editor
40
+ */
41
+ private static openInEditor;
42
+ /**
43
+ * Group components by category
44
+ */
45
+ private static groupComponents;
46
+ /**
47
+ * Validate Build Strategy Selection
48
+ */
49
+ static validateBuildStrategy(strategies: any[], recommended: any): Promise<{
50
+ approved: boolean;
51
+ selectedStrategy?: string;
52
+ }>;
53
+ /**
54
+ * Final build validation - user tests the app
55
+ */
56
+ static validateFinalBuild(): Promise<ValidationResult>;
57
+ }
58
+ //# sourceMappingURL=validationGates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validationGates.d.ts","sourceRoot":"","sources":["../../src/utils/validationGates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,eAAe;IAC1B;;;OAGG;WACU,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAyExF;;OAEG;WACU,mBAAmB,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,CAAC;IA0D5B;;OAEG;WACU,qBAAqB,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqDrG;;OAEG;WACU,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA+C9F;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAYjC;;OAEG;mBACkB,WAAW;IAoBhC;;OAEG;mBACkB,YAAY;IAoBjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAc9B;;OAEG;WACU,qBAAqB,CAChC,UAAU,EAAE,GAAG,EAAE,EACjB,WAAW,EAAE,GAAG,GACf,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA4B5D;;OAEG;WACU,kBAAkB,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAiC7D"}