mycontext-cli 2.0.26 → 2.0.28

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 (129) hide show
  1. package/README.md +36 -355
  2. package/dist/agents/implementations/CodeGenSubAgent.d.ts.map +1 -1
  3. package/dist/agents/implementations/CodeGenSubAgent.js +67 -14
  4. package/dist/agents/implementations/CodeGenSubAgent.js.map +1 -1
  5. package/dist/agents/implementations/DesignPipelineAgent.d.ts +80 -0
  6. package/dist/agents/implementations/DesignPipelineAgent.d.ts.map +1 -0
  7. package/dist/agents/implementations/DesignPipelineAgent.js +1406 -0
  8. package/dist/agents/implementations/DesignPipelineAgent.js.map +1 -0
  9. package/dist/agents/implementations/FeatureAssemblyAgent.d.ts +67 -0
  10. package/dist/agents/implementations/FeatureAssemblyAgent.d.ts.map +1 -0
  11. package/dist/agents/implementations/FeatureAssemblyAgent.js +564 -0
  12. package/dist/agents/implementations/FeatureAssemblyAgent.js.map +1 -0
  13. package/dist/agents/implementations/PromptConstructorAgent.d.ts +10 -0
  14. package/dist/agents/implementations/PromptConstructorAgent.d.ts.map +1 -1
  15. package/dist/agents/implementations/PromptConstructorAgent.js +172 -12
  16. package/dist/agents/implementations/PromptConstructorAgent.js.map +1 -1
  17. package/dist/agents/implementations/RoleBasedGenerator.d.ts +52 -0
  18. package/dist/agents/implementations/RoleBasedGenerator.d.ts.map +1 -0
  19. package/dist/agents/implementations/RoleBasedGenerator.js +370 -0
  20. package/dist/agents/implementations/RoleBasedGenerator.js.map +1 -0
  21. package/dist/cli.js +65 -0
  22. package/dist/cli.js.map +1 -1
  23. package/dist/clients/ClaudeSDKClient.d.ts +48 -0
  24. package/dist/clients/ClaudeSDKClient.d.ts.map +1 -0
  25. package/dist/clients/ClaudeSDKClient.js +158 -0
  26. package/dist/clients/ClaudeSDKClient.js.map +1 -0
  27. package/dist/clients/MyContextAIClient.d.ts +73 -0
  28. package/dist/clients/MyContextAIClient.d.ts.map +1 -0
  29. package/dist/clients/MyContextAIClient.js +280 -0
  30. package/dist/clients/MyContextAIClient.js.map +1 -0
  31. package/dist/clients/ProviderChain.d.ts +87 -0
  32. package/dist/clients/ProviderChain.d.ts.map +1 -0
  33. package/dist/clients/ProviderChain.js +246 -0
  34. package/dist/clients/ProviderChain.js.map +1 -0
  35. package/dist/clients/XAIClient.d.ts +48 -0
  36. package/dist/clients/XAIClient.d.ts.map +1 -0
  37. package/dist/clients/XAIClient.js +152 -0
  38. package/dist/clients/XAIClient.js.map +1 -0
  39. package/dist/commands/assemble-features.d.ts +40 -0
  40. package/dist/commands/assemble-features.d.ts.map +1 -0
  41. package/dist/commands/assemble-features.js +383 -0
  42. package/dist/commands/assemble-features.js.map +1 -0
  43. package/dist/commands/clone-starter.d.ts +32 -0
  44. package/dist/commands/clone-starter.d.ts.map +1 -0
  45. package/dist/commands/clone-starter.js +218 -0
  46. package/dist/commands/clone-starter.js.map +1 -0
  47. package/dist/commands/design-analyze.d.ts +46 -0
  48. package/dist/commands/design-analyze.d.ts.map +1 -0
  49. package/dist/commands/design-analyze.js +232 -0
  50. package/dist/commands/design-analyze.js.map +1 -0
  51. package/dist/commands/generate-components.d.ts +1 -0
  52. package/dist/commands/generate-components.d.ts.map +1 -1
  53. package/dist/commands/generate-components.js +42 -9
  54. package/dist/commands/generate-components.js.map +1 -1
  55. package/dist/commands/generate.d.ts.map +1 -1
  56. package/dist/commands/generate.js +34 -1
  57. package/dist/commands/generate.js.map +1 -1
  58. package/dist/commands/setup-complete.d.ts.map +1 -1
  59. package/dist/commands/setup-complete.js +38 -2
  60. package/dist/commands/setup-complete.js.map +1 -1
  61. package/dist/commands/workflow.d.ts.map +1 -1
  62. package/dist/commands/workflow.js +86 -7
  63. package/dist/commands/workflow.js.map +1 -1
  64. package/dist/config/intent-dictionary.json +3700 -0
  65. package/dist/package.json +3 -1
  66. package/dist/services/IntentEnricher.d.ts +61 -0
  67. package/dist/services/IntentEnricher.d.ts.map +1 -0
  68. package/dist/services/IntentEnricher.js +318 -0
  69. package/dist/services/IntentEnricher.js.map +1 -0
  70. package/dist/services/IntentValidator.d.ts +114 -0
  71. package/dist/services/IntentValidator.d.ts.map +1 -0
  72. package/dist/services/IntentValidator.js +680 -0
  73. package/dist/services/IntentValidator.js.map +1 -0
  74. package/dist/types/design-pipeline.d.ts +300 -0
  75. package/dist/types/design-pipeline.d.ts.map +1 -0
  76. package/dist/types/design-pipeline.js +9 -0
  77. package/dist/types/design-pipeline.js.map +1 -0
  78. package/dist/types/feature-bundle.d.ts +239 -0
  79. package/dist/types/feature-bundle.d.ts.map +1 -0
  80. package/dist/types/feature-bundle.js +9 -0
  81. package/dist/types/feature-bundle.js.map +1 -0
  82. package/dist/types/index.d.ts +2 -0
  83. package/dist/types/index.d.ts.map +1 -1
  84. package/dist/types/index.js +2 -0
  85. package/dist/types/index.js.map +1 -1
  86. package/dist/types/intent-dictionary.d.ts +525 -0
  87. package/dist/types/intent-dictionary.d.ts.map +1 -0
  88. package/dist/types/intent-dictionary.js +11 -0
  89. package/dist/types/intent-dictionary.js.map +1 -0
  90. package/dist/types/role-permissions.d.ts +167 -0
  91. package/dist/types/role-permissions.d.ts.map +1 -0
  92. package/dist/types/role-permissions.js +9 -0
  93. package/dist/types/role-permissions.js.map +1 -0
  94. package/dist/utils/contextEnricher.d.ts +41 -0
  95. package/dist/utils/contextEnricher.d.ts.map +1 -0
  96. package/dist/utils/contextEnricher.js +327 -0
  97. package/dist/utils/contextEnricher.js.map +1 -0
  98. package/dist/utils/designFallbacks.d.ts +48 -0
  99. package/dist/utils/designFallbacks.d.ts.map +1 -0
  100. package/dist/utils/designFallbacks.js +885 -0
  101. package/dist/utils/designFallbacks.js.map +1 -0
  102. package/dist/utils/designManifestManager.d.ts +89 -0
  103. package/dist/utils/designManifestManager.d.ts.map +1 -0
  104. package/dist/utils/designManifestManager.js +533 -0
  105. package/dist/utils/designManifestManager.js.map +1 -0
  106. package/dist/utils/designPipelineStateManager.d.ts +63 -0
  107. package/dist/utils/designPipelineStateManager.d.ts.map +1 -0
  108. package/dist/utils/designPipelineStateManager.js +174 -0
  109. package/dist/utils/designPipelineStateManager.js.map +1 -0
  110. package/dist/utils/envExampleGenerator.d.ts.map +1 -1
  111. package/dist/utils/envExampleGenerator.js +35 -171
  112. package/dist/utils/envExampleGenerator.js.map +1 -1
  113. package/dist/utils/featureBundleManager.d.ts +90 -0
  114. package/dist/utils/featureBundleManager.d.ts.map +1 -0
  115. package/dist/utils/featureBundleManager.js +340 -0
  116. package/dist/utils/featureBundleManager.js.map +1 -0
  117. package/dist/utils/githubCloner.d.ts +93 -0
  118. package/dist/utils/githubCloner.d.ts.map +1 -0
  119. package/dist/utils/githubCloner.js +305 -0
  120. package/dist/utils/githubCloner.js.map +1 -0
  121. package/dist/utils/rolePermissionMapper.d.ts +89 -0
  122. package/dist/utils/rolePermissionMapper.d.ts.map +1 -0
  123. package/dist/utils/rolePermissionMapper.js +337 -0
  124. package/dist/utils/rolePermissionMapper.js.map +1 -0
  125. package/dist/utils/unifiedDesignContextLoader.d.ts +76 -0
  126. package/dist/utils/unifiedDesignContextLoader.d.ts.map +1 -0
  127. package/dist/utils/unifiedDesignContextLoader.js +344 -0
  128. package/dist/utils/unifiedDesignContextLoader.js.map +1 -0
  129. package/package.json +3 -1
@@ -0,0 +1,246 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProviderChain = void 0;
4
+ exports.getProviderChain = getProviderChain;
5
+ exports.resetProviderChain = resetProviderChain;
6
+ const MyContextAIClient_1 = require("./MyContextAIClient");
7
+ const ClaudeSDKClient_1 = require("./ClaudeSDKClient");
8
+ const XAIClient_1 = require("./XAIClient");
9
+ /**
10
+ * Simplified Provider Chain for MyContext CLI
11
+ *
12
+ * Primary: MyContext AI (Fine-tuned GPT-4o Mini)
13
+ * Fallback 1: Claude SDK
14
+ * Fallback 2: XAI (Grok)
15
+ *
16
+ * This replaces the complex HybridAIClient with a streamlined approach
17
+ * focused on our specialized fine-tuned model.
18
+ */
19
+ class ProviderChain {
20
+ constructor() {
21
+ this.clientType = "hybrid";
22
+ this.supportsTools = true;
23
+ this.supportsStreaming = false;
24
+ // Initialize providers in order of preference
25
+ this.myContextAI = new MyContextAIClient_1.MyContextAIClient();
26
+ this.claudeSDK = new ClaudeSDKClient_1.ClaudeSDKClient();
27
+ this.xai = new XAIClient_1.XAIClient();
28
+ this.providers = [
29
+ this.myContextAI, // Primary: Fine-tuned model
30
+ this.claudeSDK, // Fallback 1: Claude SDK
31
+ this.xai, // Fallback 2: XAI (Grok)
32
+ ];
33
+ }
34
+ /**
35
+ * Check if any provider has API key configured
36
+ */
37
+ hasApiKey() {
38
+ return this.providers.some((provider) => provider.hasApiKey());
39
+ }
40
+ /**
41
+ * Set API key for all providers
42
+ */
43
+ setApiKey(apiKey) {
44
+ this.providers.forEach((provider) => {
45
+ if (provider.setApiKey) {
46
+ provider.setApiKey(apiKey);
47
+ }
48
+ });
49
+ }
50
+ /**
51
+ * Check connection to any available provider
52
+ */
53
+ async checkConnection() {
54
+ for (const provider of this.providers) {
55
+ try {
56
+ const isConnected = await provider.checkConnection();
57
+ if (isConnected) {
58
+ return true;
59
+ }
60
+ }
61
+ catch (error) {
62
+ console.warn(`Provider ${provider.constructor.name} connection failed:`, error);
63
+ continue;
64
+ }
65
+ }
66
+ return false;
67
+ }
68
+ /**
69
+ * Generate text using the first available provider
70
+ */
71
+ async generateText(prompt, options = {}) {
72
+ for (const provider of this.providers) {
73
+ try {
74
+ if (!provider.hasApiKey()) {
75
+ console.warn(`Provider ${provider.constructor.name} has no API key, skipping`);
76
+ continue;
77
+ }
78
+ const result = await provider.generateText(prompt, options);
79
+ console.log(`✅ Generated text using ${provider.constructor.name}`);
80
+ return result;
81
+ }
82
+ catch (error) {
83
+ console.warn(`❌ Provider ${provider.constructor.name} failed:`, error);
84
+ continue;
85
+ }
86
+ }
87
+ throw new Error("All AI providers failed to generate text");
88
+ }
89
+ /**
90
+ * Generate React component using MyContext AI with fallbacks
91
+ */
92
+ async generateComponent(prompt, context, options = {}) {
93
+ for (const provider of this.providers) {
94
+ try {
95
+ if (!provider.hasApiKey()) {
96
+ console.warn(`Provider ${provider.constructor.name} has no API key, skipping`);
97
+ continue;
98
+ }
99
+ const result = await provider.generateComponent(prompt, context, options);
100
+ console.log(`✅ Generated component using ${provider.constructor.name}`);
101
+ return result;
102
+ }
103
+ catch (error) {
104
+ console.warn(`❌ Provider ${provider.constructor.name} failed:`, error);
105
+ continue;
106
+ }
107
+ }
108
+ throw new Error("All AI providers failed to generate component");
109
+ }
110
+ /**
111
+ * Generate component refinement using the first available provider
112
+ */
113
+ async generateComponentRefinement(componentCode, prompt, context, options = {}) {
114
+ for (const provider of this.providers) {
115
+ try {
116
+ if (!provider.hasApiKey()) {
117
+ console.warn(`Provider ${provider.constructor.name} has no API key, skipping`);
118
+ continue;
119
+ }
120
+ const result = await provider.generateComponentRefinement(componentCode, prompt, context, options);
121
+ console.log(`✅ Refined component using ${provider.constructor.name}`);
122
+ return result;
123
+ }
124
+ catch (error) {
125
+ console.warn(`❌ Provider ${provider.constructor.name} failed:`, error);
126
+ continue;
127
+ }
128
+ }
129
+ throw new Error("All AI providers failed to refine component");
130
+ }
131
+ /**
132
+ * List models from all providers
133
+ */
134
+ async listModels() {
135
+ const allModels = [];
136
+ for (const provider of this.providers) {
137
+ try {
138
+ if (provider.hasApiKey()) {
139
+ const models = await provider.listModels();
140
+ allModels.push(...models);
141
+ }
142
+ }
143
+ catch (error) {
144
+ console.warn(`Failed to list models from ${provider.constructor.name}:`, error);
145
+ continue;
146
+ }
147
+ }
148
+ return [...new Set(allModels)]; // Remove duplicates
149
+ }
150
+ /**
151
+ * Get the primary provider (MyContext AI)
152
+ */
153
+ getPrimaryProvider() {
154
+ return this.myContextAI;
155
+ }
156
+ /**
157
+ * Get provider by name
158
+ */
159
+ getProvider(name) {
160
+ switch (name.toLowerCase()) {
161
+ case "mycontext":
162
+ case "mycontext-ai":
163
+ return this.myContextAI;
164
+ case "claude":
165
+ case "claude-sdk":
166
+ return this.claudeSDK;
167
+ case "xai":
168
+ case "grok":
169
+ return this.xai;
170
+ default:
171
+ return null;
172
+ }
173
+ }
174
+ /**
175
+ * Get provider status
176
+ */
177
+ getProviderStatus() {
178
+ return this.providers.map((provider) => ({
179
+ name: provider.constructor.name,
180
+ hasKey: provider.hasApiKey(),
181
+ connected: false, // Will be updated by checkConnection
182
+ }));
183
+ }
184
+ /**
185
+ * Check all provider connections
186
+ */
187
+ async checkAllConnections() {
188
+ const statuses = await Promise.all(this.providers.map(async (provider) => {
189
+ const hasKey = provider.hasApiKey();
190
+ let connected = false;
191
+ if (hasKey) {
192
+ try {
193
+ connected = await provider.checkConnection();
194
+ }
195
+ catch (error) {
196
+ connected = false;
197
+ }
198
+ }
199
+ return {
200
+ name: provider.constructor.name,
201
+ hasKey,
202
+ connected,
203
+ };
204
+ }));
205
+ return statuses;
206
+ }
207
+ /**
208
+ * Cleanup all providers
209
+ */
210
+ async cleanup() {
211
+ await Promise.all(this.providers.map(async (provider) => {
212
+ if (provider.cleanup) {
213
+ try {
214
+ await provider.cleanup();
215
+ }
216
+ catch (error) {
217
+ console.warn(`Failed to cleanup ${provider.constructor.name}:`, error);
218
+ }
219
+ }
220
+ }));
221
+ }
222
+ }
223
+ exports.ProviderChain = ProviderChain;
224
+ /**
225
+ * Singleton instance of the provider chain
226
+ */
227
+ let providerChainInstance = null;
228
+ /**
229
+ * Get the global provider chain instance
230
+ */
231
+ function getProviderChain() {
232
+ if (!providerChainInstance) {
233
+ providerChainInstance = new ProviderChain();
234
+ }
235
+ return providerChainInstance;
236
+ }
237
+ /**
238
+ * Reset the global provider chain instance
239
+ */
240
+ function resetProviderChain() {
241
+ if (providerChainInstance) {
242
+ providerChainInstance.cleanup();
243
+ }
244
+ providerChainInstance = null;
245
+ }
246
+ //# sourceMappingURL=ProviderChain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderChain.js","sourceRoot":"","sources":["../../src/clients/ProviderChain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { AIClient, AIClientOptions, AgentContext } from "../interfaces/AIClient";
2
+ /**
3
+ * XAI Client - Fallback provider using X AI API (Grok)
4
+ *
5
+ * This is a simplified client that uses the X AI API directly
6
+ * as a secondary fallback when MyContext AI and Claude SDK are not available.
7
+ */
8
+ export declare class XAIClient implements AIClient {
9
+ readonly clientType: "direct-api";
10
+ readonly supportsTools = false;
11
+ readonly supportsStreaming = false;
12
+ private apiKey;
13
+ private baseUrl;
14
+ constructor();
15
+ /**
16
+ * Check if API key is available
17
+ */
18
+ hasApiKey(): boolean;
19
+ /**
20
+ * Set API key for X AI API
21
+ */
22
+ setApiKey(apiKey: string): void;
23
+ /**
24
+ * Check connection to X AI API
25
+ */
26
+ checkConnection(): Promise<boolean>;
27
+ /**
28
+ * Generate text using X AI API
29
+ */
30
+ generateText(prompt: string, options?: AIClientOptions): Promise<string>;
31
+ /**
32
+ * Generate React component using X AI API
33
+ */
34
+ generateComponent(prompt: string, context?: AgentContext, options?: AIClientOptions): Promise<string>;
35
+ /**
36
+ * Generate component refinement using X AI API
37
+ */
38
+ generateComponentRefinement(componentCode: string, prompt: string, context?: AgentContext, options?: AIClientOptions): Promise<string>;
39
+ /**
40
+ * List available models
41
+ */
42
+ listModels(): Promise<string[]>;
43
+ /**
44
+ * Cleanup resources
45
+ */
46
+ cleanup(): Promise<void>;
47
+ }
48
+ //# sourceMappingURL=XAIClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XAIClient.d.ts","sourceRoot":"","sources":["../../src/clients/XAIClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,eAAe,EACf,YAAY,EACb,MAAM,wBAAwB,CAAC;AAEhC;;;;;GAKG;AACH,qBAAa,SAAU,YAAW,QAAQ;IACxC,QAAQ,CAAC,UAAU,EAAG,YAAY,CAAU;IAC5C,QAAQ,CAAC,aAAa,SAAS;IAC/B,QAAQ,CAAC,iBAAiB,SAAS;IAEnC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAyB;;IAMxC;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IA+BzC;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAsClB;;OAEG;IACG,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,YAAY,EACtB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAoBlB;;OAEG;IACG,2BAA2B,CAC/B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,YAAY,EACtB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAmBlB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIrC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XAIClient = void 0;
4
+ /**
5
+ * XAI Client - Fallback provider using X AI API (Grok)
6
+ *
7
+ * This is a simplified client that uses the X AI API directly
8
+ * as a secondary fallback when MyContext AI and Claude SDK are not available.
9
+ */
10
+ class XAIClient {
11
+ constructor() {
12
+ this.clientType = "direct-api";
13
+ this.supportsTools = false;
14
+ this.supportsStreaming = false;
15
+ this.apiKey = null;
16
+ this.baseUrl = "https://api.x.ai/v1";
17
+ this.apiKey = process.env.XAI_API_KEY || null;
18
+ }
19
+ /**
20
+ * Check if API key is available
21
+ */
22
+ hasApiKey() {
23
+ return !!this.apiKey;
24
+ }
25
+ /**
26
+ * Set API key for X AI API
27
+ */
28
+ setApiKey(apiKey) {
29
+ this.apiKey = apiKey;
30
+ }
31
+ /**
32
+ * Check connection to X AI API
33
+ */
34
+ async checkConnection() {
35
+ if (!this.apiKey) {
36
+ return false;
37
+ }
38
+ try {
39
+ const response = await fetch(`${this.baseUrl}/chat/completions`, {
40
+ method: "POST",
41
+ headers: {
42
+ "Content-Type": "application/json",
43
+ Authorization: `Bearer ${this.apiKey}`,
44
+ },
45
+ body: JSON.stringify({
46
+ model: "grok-beta",
47
+ max_tokens: 10,
48
+ messages: [
49
+ {
50
+ role: "user",
51
+ content: "test",
52
+ },
53
+ ],
54
+ }),
55
+ });
56
+ return response.ok;
57
+ }
58
+ catch (error) {
59
+ console.warn("XAI connection check failed:", error);
60
+ return false;
61
+ }
62
+ }
63
+ /**
64
+ * Generate text using X AI API
65
+ */
66
+ async generateText(prompt, options = {}) {
67
+ if (!this.apiKey) {
68
+ throw new Error("XAI API key not configured");
69
+ }
70
+ try {
71
+ const response = await fetch(`${this.baseUrl}/chat/completions`, {
72
+ method: "POST",
73
+ headers: {
74
+ "Content-Type": "application/json",
75
+ Authorization: `Bearer ${this.apiKey}`,
76
+ },
77
+ body: JSON.stringify({
78
+ model: options.model || "grok-beta",
79
+ max_tokens: options.maxTokens || 4000,
80
+ temperature: options.temperature || 0.7,
81
+ messages: [
82
+ {
83
+ role: "user",
84
+ content: prompt,
85
+ },
86
+ ],
87
+ }),
88
+ });
89
+ if (!response.ok) {
90
+ throw new Error(`XAI API error: ${response.status} ${response.statusText}`);
91
+ }
92
+ const data = await response.json();
93
+ return data.choices[0].message.content || "";
94
+ }
95
+ catch (error) {
96
+ throw new Error(`XAI generation failed: ${error}`);
97
+ }
98
+ }
99
+ /**
100
+ * Generate React component using X AI API
101
+ */
102
+ async generateComponent(prompt, context, options = {}) {
103
+ const systemPrompt = `You are a React component generator. Generate production-ready React components with TypeScript.
104
+
105
+ Requirements:
106
+ - Use functional components with hooks
107
+ - Include proper TypeScript types
108
+ - Add accessibility attributes
109
+ - Use Tailwind CSS for styling
110
+ - Include proper imports and exports
111
+ - Generate complete, runnable code
112
+
113
+ ${context?.prd ? `Project Requirements: ${context.prd}` : ""}
114
+ ${context?.types ? `Type Definitions: ${context.types}` : ""}
115
+ ${context?.brand ? `Brand Guidelines: ${context.brand}` : ""}`;
116
+ const fullPrompt = `${systemPrompt}\n\nGenerate a React component for: ${prompt}`;
117
+ return this.generateText(fullPrompt, options);
118
+ }
119
+ /**
120
+ * Generate component refinement using X AI API
121
+ */
122
+ async generateComponentRefinement(componentCode, prompt, context, options = {}) {
123
+ const systemPrompt = `You are a React component refiner. Improve and modify existing React components.
124
+
125
+ Requirements:
126
+ - Maintain existing functionality
127
+ - Preserve TypeScript types
128
+ - Keep accessibility attributes
129
+ - Follow React best practices
130
+ - Provide complete refined component
131
+
132
+ ${context?.prd ? `Project Requirements: ${context.prd}` : ""}
133
+ ${context?.types ? `Type Definitions: ${context.types}` : ""}
134
+ ${context?.brand ? `Brand Guidelines: ${context.brand}` : ""}`;
135
+ const fullPrompt = `${systemPrompt}\n\nComponent to refine:\n\`\`\`tsx\n${componentCode}\n\`\`\n\nRefinement request: ${prompt}`;
136
+ return this.generateText(fullPrompt, options);
137
+ }
138
+ /**
139
+ * List available models
140
+ */
141
+ async listModels() {
142
+ return ["grok-beta", "grok-2-1212", "grok-2-vision-1212"];
143
+ }
144
+ /**
145
+ * Cleanup resources
146
+ */
147
+ async cleanup() {
148
+ // No cleanup needed for fetch-based client
149
+ }
150
+ }
151
+ exports.XAIClient = XAIClient;
152
+ //# sourceMappingURL=XAIClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XAIClient.js","sourceRoot":"","sources":["../../src/clients/XAIClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Assemble Features Command
3
+ *
4
+ * Combines generated components into complete working features
5
+ * with actions, hooks, routes, and role-based permissions.
6
+ */
7
+ import { Command } from "commander";
8
+ import { Role } from "../types/role-permissions";
9
+ export interface AssembleFeaturesOptions {
10
+ fromComponents?: boolean;
11
+ useStarter?: boolean;
12
+ role?: Role;
13
+ feature?: string;
14
+ output?: string;
15
+ template?: string;
16
+ includeTests?: boolean;
17
+ includeDocs?: boolean;
18
+ verbose?: boolean;
19
+ }
20
+ export declare class AssembleFeaturesCommand {
21
+ private command;
22
+ constructor();
23
+ private setupCommand;
24
+ execute(options: AssembleFeaturesOptions): Promise<void>;
25
+ private assembleFromStarter;
26
+ private assembleFromComponents;
27
+ private loadAdminStarterBundle;
28
+ private extractFeaturesFromStarter;
29
+ private loadGeneratedComponents;
30
+ private loadContextFiles;
31
+ private loadDesignManifest;
32
+ private loadFeatureTemplates;
33
+ private getTargetRoles;
34
+ private saveFeatureBundles;
35
+ private hasGeneratedComponents;
36
+ private hasAdminStarter;
37
+ private showNextSteps;
38
+ getCommand(): Command;
39
+ }
40
+ //# sourceMappingURL=assemble-features.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assemble-features.d.ts","sourceRoot":"","sources":["../../src/commands/assemble-features.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,OAAO,EAAE,IAAI,EAAiB,MAAM,2BAA2B,CAAC;AAGhE,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,OAAO,CAAU;;IAOzB,OAAO,CAAC,YAAY;IAqBd,OAAO,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;YAwChD,mBAAmB;YAkDnB,sBAAsB;YAkDtB,sBAAsB;YAStB,0BAA0B;YA4E1B,uBAAuB;YAevB,gBAAgB;YAuBhB,kBAAkB;YAelB,oBAAoB;IA2BlC,OAAO,CAAC,cAAc;YASR,kBAAkB;YA6ClB,sBAAsB;YAUtB,eAAe;IAc7B,OAAO,CAAC,aAAa;IAgCrB,UAAU,IAAI,OAAO;CAGtB"}