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,564 @@
1
+ "use strict";
2
+ /**
3
+ * Feature Assembly Agent
4
+ *
5
+ * Combines generated components into complete working features
6
+ * with actions, hooks, routes, and role-based permissions.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __importDefault = (this && this.__importDefault) || function (mod) {
42
+ return (mod && mod.__esModule) ? mod : { "default": mod };
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.FeatureAssemblyAgent = void 0;
46
+ const hybridAIClient_1 = require("../../utils/hybridAIClient");
47
+ const fs = __importStar(require("fs/promises"));
48
+ const path = __importStar(require("path"));
49
+ const chalk_1 = __importDefault(require("chalk"));
50
+ class FeatureAssemblyAgent {
51
+ constructor(projectPath) {
52
+ this.name = "FeatureAssemblyAgent";
53
+ this.description = "Combines generated components into complete working features";
54
+ this.personality = "systematic and thorough";
55
+ this.llmProvider = "hybrid";
56
+ this.expertise = [
57
+ "feature-assembly",
58
+ "role-based-access",
59
+ "component-integration",
60
+ ];
61
+ this.projectPath = projectPath;
62
+ this.aiClient = new hybridAIClient_1.HybridAIClient();
63
+ }
64
+ async run(context) {
65
+ const startTime = Date.now();
66
+ console.log(chalk_1.default.cyan("🔧 Feature Assembly Agent starting..."));
67
+ try {
68
+ // Step 1: Analyze components and group into features
69
+ console.log(chalk_1.default.gray(" 📋 Analyzing components and grouping into features..."));
70
+ const featureGroups = await this.analyzeAndGroupComponents(context.components, context.contextFiles);
71
+ // Step 2: Generate feature bundles for each group
72
+ console.log(chalk_1.default.gray(" 🎯 Generating feature bundles..."));
73
+ const features = [];
74
+ const errors = [];
75
+ const warnings = [];
76
+ for (const group of featureGroups) {
77
+ try {
78
+ const feature = await this.generateFeatureBundle(group, context);
79
+ features.push(feature);
80
+ console.log(chalk_1.default.green(` ✓ Generated feature: ${feature.name}`));
81
+ }
82
+ catch (error) {
83
+ const errorMsg = `Failed to generate feature ${group.name}: ${error}`;
84
+ errors.push(errorMsg);
85
+ console.log(chalk_1.default.red(` ✗ ${errorMsg}`));
86
+ }
87
+ }
88
+ // Step 3: Apply role-based permissions
89
+ console.log(chalk_1.default.gray(" 🔐 Applying role-based permissions..."));
90
+ const roleBasedFeatures = await this.applyRoleBasedPermissions(features, context.targetRole);
91
+ // Step 4: Generate supporting files (actions, hooks, routes)
92
+ console.log(chalk_1.default.gray(" 📁 Generating supporting files..."));
93
+ await this.generateSupportingFiles(roleBasedFeatures, context);
94
+ // Step 5: Save feature bundles
95
+ console.log(chalk_1.default.gray(" 💾 Saving feature bundles..."));
96
+ await this.saveFeatureBundles(roleBasedFeatures, context.outputPath);
97
+ const processingTime = Date.now() - startTime;
98
+ const result = {
99
+ success: errors.length === 0,
100
+ features: roleBasedFeatures,
101
+ errors,
102
+ warnings,
103
+ metadata: {
104
+ totalFeatures: roleBasedFeatures.length,
105
+ totalComponents: roleBasedFeatures.reduce((sum, f) => sum + f.components.length, 0),
106
+ totalActions: roleBasedFeatures.reduce((sum, f) => sum + f.actions.length, 0),
107
+ totalHooks: roleBasedFeatures.reduce((sum, f) => sum + f.hooks.length, 0),
108
+ totalRoutes: roleBasedFeatures.reduce((sum, f) => sum + f.routes.length, 0),
109
+ processingTime,
110
+ },
111
+ };
112
+ console.log(chalk_1.default.green(`✅ Feature Assembly completed in ${processingTime}ms`));
113
+ console.log(chalk_1.default.blue(` Generated ${result.metadata.totalFeatures} features`));
114
+ console.log(chalk_1.default.blue(` Generated ${result.metadata.totalComponents} components`));
115
+ console.log(chalk_1.default.blue(` Generated ${result.metadata.totalActions} actions`));
116
+ console.log(chalk_1.default.blue(` Generated ${result.metadata.totalHooks} hooks`));
117
+ console.log(chalk_1.default.blue(` Generated ${result.metadata.totalRoutes} routes`));
118
+ return result;
119
+ }
120
+ catch (error) {
121
+ console.log(chalk_1.default.red(`❌ Feature Assembly failed: ${error}`));
122
+ return {
123
+ success: false,
124
+ features: [],
125
+ errors: [error instanceof Error ? error.message : String(error)],
126
+ warnings: [],
127
+ metadata: {
128
+ totalFeatures: 0,
129
+ totalComponents: 0,
130
+ totalActions: 0,
131
+ totalHooks: 0,
132
+ totalRoutes: 0,
133
+ processingTime: Date.now() - startTime,
134
+ },
135
+ };
136
+ }
137
+ }
138
+ async analyzeAndGroupComponents(components, contextFiles) {
139
+ const prompt = `
140
+ Analyze the following components and group them into logical features based on functionality and purpose.
141
+
142
+ Components:
143
+ ${components.map((c) => `- ${c}`).join("\n")}
144
+
145
+ Context Files:
146
+ ${JSON.stringify(contextFiles, null, 2)}
147
+
148
+ Group the components into features that work together to provide complete functionality. Each feature should have:
149
+ - A clear purpose and scope
150
+ - Related components that work together
151
+ - A logical name and description
152
+
153
+ Return a JSON array of component groups with this structure:
154
+ [
155
+ {
156
+ "name": "feature-name",
157
+ "description": "What this feature does",
158
+ "components": ["component1", "component2"],
159
+ "category": "authentication|user-management|content|settings|analytics|communication",
160
+ "priority": "high|medium|low"
161
+ }
162
+ ]
163
+ `;
164
+ try {
165
+ const response = await this.aiClient.generateText(prompt);
166
+ const groups = JSON.parse(response.text);
167
+ return groups;
168
+ }
169
+ catch (error) {
170
+ // Fallback to rule-based grouping
171
+ return this.fallbackComponentGrouping(components);
172
+ }
173
+ }
174
+ fallbackComponentGrouping(components) {
175
+ const groups = [];
176
+ const componentMap = new Map();
177
+ // Rule-based grouping patterns
178
+ const patterns = {
179
+ authentication: ["login", "signup", "auth", "password", "session"],
180
+ "user-management": ["user", "profile", "account", "member"],
181
+ content: ["post", "article", "blog", "content", "page"],
182
+ settings: ["setting", "config", "preference", "option"],
183
+ analytics: ["analytics", "stats", "metric", "dashboard", "chart"],
184
+ communication: ["message", "chat", "notification", "email", "comment"],
185
+ };
186
+ // Group components by patterns
187
+ for (const component of components) {
188
+ const lowerComponent = component.toLowerCase();
189
+ let assigned = false;
190
+ for (const [category, keywords] of Object.entries(patterns)) {
191
+ if (keywords.some((keyword) => lowerComponent.includes(keyword))) {
192
+ if (!componentMap.has(category)) {
193
+ componentMap.set(category, []);
194
+ }
195
+ componentMap.get(category).push(component);
196
+ assigned = true;
197
+ break;
198
+ }
199
+ }
200
+ if (!assigned) {
201
+ if (!componentMap.has("general")) {
202
+ componentMap.set("general", []);
203
+ }
204
+ componentMap.get("general").push(component);
205
+ }
206
+ }
207
+ // Convert to ComponentGroup format
208
+ for (const [category, comps] of componentMap) {
209
+ groups.push({
210
+ name: category,
211
+ description: `Components related to ${category}`,
212
+ components: comps,
213
+ category: category,
214
+ priority: "medium",
215
+ });
216
+ }
217
+ return groups;
218
+ }
219
+ async generateFeatureBundle(group, context) {
220
+ const prompt = `
221
+ Generate a complete feature bundle for the following component group:
222
+
223
+ Feature: ${group.name}
224
+ Description: ${group.description}
225
+ Components: ${group.components.join(", ")}
226
+ Category: ${group.category}
227
+ Target Role: ${context.targetRole}
228
+
229
+ Context Files:
230
+ ${JSON.stringify(context.contextFiles, null, 2)}
231
+
232
+ Design Manifest:
233
+ ${JSON.stringify(context.designManifest, null, 2)}
234
+
235
+ Generate a complete feature bundle with:
236
+ 1. Server actions for CRUD operations
237
+ 2. Custom hooks for data management
238
+ 3. API routes for backend operations
239
+ 4. Database schema and queries
240
+ 5. Role-based permissions
241
+ 6. TypeScript types
242
+
243
+ Return a JSON object matching the FeatureBundle interface:
244
+ {
245
+ "name": "feature-name",
246
+ "description": "Feature description",
247
+ "role": "admin|user|guest",
248
+ "components": ["component1", "component2"],
249
+ "types": ["Type1", "Type2"],
250
+ "actions": [...],
251
+ "hooks": [...],
252
+ "routes": [...],
253
+ "database": {...},
254
+ "permissions": [...],
255
+ "metadata": {...}
256
+ }
257
+ `;
258
+ try {
259
+ const response = await this.aiClient.generateText(prompt);
260
+ const bundle = JSON.parse(response.text);
261
+ // Add metadata
262
+ bundle.metadata = {
263
+ createdAt: new Date().toISOString(),
264
+ updatedAt: new Date().toISOString(),
265
+ version: "1.0.0",
266
+ dependencies: this.extractDependencies(bundle),
267
+ };
268
+ return bundle;
269
+ }
270
+ catch (error) {
271
+ // Fallback to template-based generation
272
+ return this.generateFeatureBundleFromTemplate(group, context);
273
+ }
274
+ }
275
+ generateFeatureBundleFromTemplate(group, context) {
276
+ // Find matching template
277
+ const template = context.featureTemplates.find((t) => t.category === group.category);
278
+ if (!template) {
279
+ // Generate basic template
280
+ return this.generateBasicFeatureBundle(group, context);
281
+ }
282
+ // Convert template to feature bundle
283
+ return {
284
+ name: group.name,
285
+ description: group.description,
286
+ role: context.targetRole,
287
+ components: group.components,
288
+ types: template.components.map((c) => c.name),
289
+ actions: template.actions.map((a) => ({
290
+ name: a.name,
291
+ description: a.description,
292
+ file: `actions/${a.name}.ts`,
293
+ function: a.name,
294
+ parameters: a.parameters,
295
+ returnType: a.returnType,
296
+ permissions: a.permissions,
297
+ validation: undefined,
298
+ })),
299
+ hooks: template.hooks.map((h) => ({
300
+ name: h.name,
301
+ description: h.description,
302
+ file: `hooks/${h.name}.ts`,
303
+ function: h.name,
304
+ parameters: h.parameters,
305
+ returnType: h.returnType,
306
+ dependencies: h.dependencies,
307
+ })),
308
+ routes: template.routes.map((r) => ({
309
+ path: r.path,
310
+ method: r.method,
311
+ description: r.description,
312
+ file: `app/api${r.path}/route.ts`,
313
+ function: r.path.replace(/\//g, "_").replace(/\[.*?\]/g, "id"),
314
+ parameters: r.parameters,
315
+ responseType: r.responseType,
316
+ permissions: r.permissions,
317
+ middleware: undefined,
318
+ })),
319
+ database: {
320
+ schema: JSON.stringify(template.database, null, 2),
321
+ queries: template.database.tables.map((t) => `SELECT * FROM ${t.name}`),
322
+ mutations: template.database.tables.map((t) => `INSERT INTO ${t.name}`),
323
+ },
324
+ permissions: template.permissions.map((p) => ({
325
+ id: `${group.name}-${p.role}-${p.resource}`,
326
+ resource: p.resource,
327
+ action: p.actions[0],
328
+ conditions: p.conditions,
329
+ description: `Permission for ${p.role} on ${p.resource}`,
330
+ })),
331
+ metadata: {
332
+ createdAt: new Date().toISOString(),
333
+ updatedAt: new Date().toISOString(),
334
+ version: "1.0.0",
335
+ dependencies: template.dependencies,
336
+ },
337
+ };
338
+ }
339
+ generateBasicFeatureBundle(group, context) {
340
+ return {
341
+ name: group.name,
342
+ description: group.description,
343
+ role: context.targetRole,
344
+ components: group.components,
345
+ types: [`${group.name}Data`, `${group.name}Form`],
346
+ actions: [
347
+ {
348
+ name: `get${group.name}`,
349
+ description: `Get ${group.name} data`,
350
+ file: `actions/${group.name}.ts`,
351
+ function: `get${group.name}`,
352
+ parameters: [],
353
+ returnType: "Promise<any[]>",
354
+ permissions: [`${group.name}:read`],
355
+ },
356
+ ],
357
+ hooks: [
358
+ {
359
+ name: `use${group.name}`,
360
+ description: `Hook for ${group.name} data`,
361
+ file: `hooks/${group.name}.ts`,
362
+ function: `use${group.name}`,
363
+ parameters: [],
364
+ returnType: "any",
365
+ dependencies: [],
366
+ },
367
+ ],
368
+ routes: [
369
+ {
370
+ path: `/api/${group.name}`,
371
+ method: "GET",
372
+ description: `Get ${group.name} data`,
373
+ file: `app/api/${group.name}/route.ts`,
374
+ function: "GET",
375
+ parameters: [],
376
+ responseType: "any[]",
377
+ permissions: [`${group.name}:read`],
378
+ },
379
+ ],
380
+ database: {
381
+ schema: `CREATE TABLE ${group.name} (id TEXT PRIMARY KEY, data JSONB);`,
382
+ queries: [`SELECT * FROM ${group.name}`],
383
+ mutations: [`INSERT INTO ${group.name} (id, data) VALUES (?, ?)`],
384
+ },
385
+ permissions: [
386
+ {
387
+ id: `${group.name}-${context.targetRole}-read`,
388
+ resource: group.name,
389
+ action: "read",
390
+ description: `Read access to ${group.name}`,
391
+ },
392
+ ],
393
+ metadata: {
394
+ createdAt: new Date().toISOString(),
395
+ updatedAt: new Date().toISOString(),
396
+ version: "1.0.0",
397
+ dependencies: [],
398
+ },
399
+ };
400
+ }
401
+ async applyRoleBasedPermissions(features, targetRole) {
402
+ // Apply role-based filtering and permissions
403
+ return features.map((feature) => ({
404
+ ...feature,
405
+ role: targetRole,
406
+ permissions: feature.permissions.filter((p) => this.hasPermissionForRole(p, targetRole)),
407
+ }));
408
+ }
409
+ hasPermissionForRole(permission, role) {
410
+ // Role hierarchy: admin > moderator > editor > user > guest
411
+ const roleLevels = {
412
+ admin: 5,
413
+ moderator: 4,
414
+ editor: 3,
415
+ user: 2,
416
+ guest: 1,
417
+ };
418
+ const permissionLevels = {
419
+ manage: 5,
420
+ create: 4,
421
+ update: 3,
422
+ delete: 3,
423
+ approve: 4,
424
+ reject: 4,
425
+ export: 2,
426
+ import: 3,
427
+ read: 1,
428
+ };
429
+ const roleLevel = roleLevels[role] || 1;
430
+ const permissionLevel = permissionLevels[permission.action] || 1;
431
+ return roleLevel >= permissionLevel;
432
+ }
433
+ async generateSupportingFiles(features, context) {
434
+ for (const feature of features) {
435
+ // Generate actions
436
+ await this.generateActions(feature, context);
437
+ // Generate hooks
438
+ await this.generateHooks(feature, context);
439
+ // Generate routes
440
+ await this.generateRoutes(feature, context);
441
+ // Generate types
442
+ await this.generateTypes(feature, context);
443
+ }
444
+ }
445
+ async generateActions(feature, context) {
446
+ const actionsDir = path.join(context.outputPath, "actions");
447
+ await fs.mkdir(actionsDir, { recursive: true });
448
+ for (const action of feature.actions) {
449
+ const actionCode = this.generateActionCode(action, feature);
450
+ const actionFile = path.join(actionsDir, `${action.name}.ts`);
451
+ await fs.writeFile(actionFile, actionCode);
452
+ }
453
+ }
454
+ generateActionCode(action, feature) {
455
+ return `/**
456
+ * ${action.description}
457
+ */
458
+
459
+ export async function ${action.function}(${action.parameters
460
+ .map((p) => `${p.name}: ${p.type}`)
461
+ .join(", ")}): Promise<${action.returnType}> {
462
+ // TODO: Implement ${action.name}
463
+ throw new Error('Not implemented');
464
+ }
465
+ `;
466
+ }
467
+ async generateHooks(feature, context) {
468
+ const hooksDir = path.join(context.outputPath, "hooks");
469
+ await fs.mkdir(hooksDir, { recursive: true });
470
+ for (const hook of feature.hooks) {
471
+ const hookCode = this.generateHookCode(hook, feature);
472
+ const hookFile = path.join(hooksDir, `${hook.name}.ts`);
473
+ await fs.writeFile(hookFile, hookCode);
474
+ }
475
+ }
476
+ generateHookCode(hook, feature) {
477
+ return `/**
478
+ * ${hook.description}
479
+ */
480
+
481
+ export function ${hook.function}(${hook.parameters
482
+ .map((p) => `${p.name}: ${p.type}`)
483
+ .join(", ")}): ${hook.returnType} {
484
+ // TODO: Implement ${hook.name}
485
+ throw new Error('Not implemented');
486
+ }
487
+ `;
488
+ }
489
+ async generateRoutes(feature, context) {
490
+ for (const route of feature.routes) {
491
+ const routeDir = path.dirname(path.join(context.outputPath, route.file));
492
+ await fs.mkdir(routeDir, { recursive: true });
493
+ const routeCode = this.generateRouteCode(route, feature);
494
+ const routeFile = path.join(context.outputPath, route.file);
495
+ await fs.writeFile(routeFile, routeCode);
496
+ }
497
+ }
498
+ generateRouteCode(route, feature) {
499
+ return `/**
500
+ * ${route.description}
501
+ */
502
+
503
+ import { NextRequest, NextResponse } from 'next/server';
504
+
505
+ export async function ${route.method}(request: NextRequest) {
506
+ // TODO: Implement ${route.path} ${route.method}
507
+ return NextResponse.json({ error: 'Not implemented' }, { status: 501 });
508
+ }
509
+ `;
510
+ }
511
+ async generateTypes(feature, context) {
512
+ const typesDir = path.join(context.outputPath, "types");
513
+ await fs.mkdir(typesDir, { recursive: true });
514
+ const typesCode = this.generateTypesCode(feature);
515
+ const typesFile = path.join(typesDir, `${feature.name}.ts`);
516
+ await fs.writeFile(typesFile, typesCode);
517
+ }
518
+ generateTypesCode(feature) {
519
+ return `/**
520
+ * Types for ${feature.name} feature
521
+ */
522
+
523
+ export interface ${feature.name}Data {
524
+ id: string;
525
+ // TODO: Add specific fields
526
+ }
527
+
528
+ export interface ${feature.name}Form {
529
+ // TODO: Add form fields
530
+ }
531
+
532
+ export interface ${feature.name}CreateData {
533
+ // TODO: Add creation fields
534
+ }
535
+
536
+ export interface ${feature.name}UpdateData {
537
+ // TODO: Add update fields
538
+ }
539
+ `;
540
+ }
541
+ async saveFeatureBundles(features, outputPath) {
542
+ const bundlesDir = path.join(outputPath, ".mycontext", "feature-bundles");
543
+ await fs.mkdir(bundlesDir, { recursive: true });
544
+ for (const feature of features) {
545
+ const bundleFile = path.join(bundlesDir, `${feature.name}.json`);
546
+ await fs.writeFile(bundleFile, JSON.stringify(feature, null, 2));
547
+ }
548
+ }
549
+ extractDependencies(bundle) {
550
+ const deps = new Set();
551
+ // Extract from actions
552
+ bundle.actions.forEach((action) => {
553
+ if (action.validation?.schema)
554
+ deps.add("zod");
555
+ });
556
+ // Extract from hooks
557
+ bundle.hooks.forEach((hook) => {
558
+ hook.dependencies.forEach((dep) => deps.add(dep));
559
+ });
560
+ return Array.from(deps);
561
+ }
562
+ }
563
+ exports.FeatureAssemblyAgent = FeatureAssemblyAgent;
564
+ //# sourceMappingURL=FeatureAssemblyAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeatureAssemblyAgent.js","sourceRoot":"","sources":["../../../src/agents/implementations/FeatureAssemblyAgent.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,7 @@ export declare class PromptConstructorAgent implements SubAgent<PromptConstructi
34
34
  llmProvider: string;
35
35
  expertise: string[];
36
36
  run(context: PromptConstructionContext): Promise<ConstructedPrompt>;
37
+ private loadDesignContext;
37
38
  private analyzeContextFiles;
38
39
  private enhancePromptWithAI;
39
40
  private extractDomain;
@@ -59,5 +60,14 @@ export declare class PromptConstructorAgent implements SubAgent<PromptConstructi
59
60
  private extractUserInterfacePatterns;
60
61
  private extractUserAccessibilityNeeds;
61
62
  private extractUserPerformanceExpectations;
63
+ private formatDesignSystemForPrompt;
64
+ /**
65
+ * Filter enriched intents to find those relevant to the current component
66
+ */
67
+ private filterRelevantIntents;
68
+ /**
69
+ * Format an enriched intent as requirement strings
70
+ */
71
+ private formatIntentAsRequirements;
62
72
  }
63
73
  //# sourceMappingURL=PromptConstructorAgent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PromptConstructorAgent.d.ts","sourceRoot":"","sources":["../../../src/agents/implementations/PromptConstructorAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIlD,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,sBACX,YAAW,QAAQ,CAAC,yBAAyB,EAAE,iBAAiB,CAAC;IAEjE,IAAI,SAA4B;IAChC,WAAW,SACkG;IAC7G,WAAW,SAAgD;IAC3D,WAAW,EAAE,MAAM,CAAY;IAC/B,SAAS,WAKP;IAEI,GAAG,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,iBAAiB,CAAC;YA2B3D,mBAAmB;YAoEnB,mBAAmB;IAgGjC,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,4BAA4B;IAmBpC,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,yBAAyB;IAmBjC,OAAO,CAAC,iBAAiB;YA8BX,4BAA4B;YAgD5B,eAAe;IAoL7B,OAAO,CAAC,0BAA0B;IA6FlC,OAAO,CAAC,2BAA2B;IA6BnC,OAAO,CAAC,uBAAuB;IA6B/B,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,uBAAuB;IA0B/B,OAAO,CAAC,yBAAyB;IA6BjC,OAAO,CAAC,+BAA+B;IA6BvC,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,yBAAyB;IA2BjC,OAAO,CAAC,wBAAwB;IA0BhC,OAAO,CAAC,4BAA4B;IAiBpC,OAAO,CAAC,6BAA6B;IAiBrC,OAAO,CAAC,kCAAkC;CAc3C"}
1
+ {"version":3,"file":"PromptConstructorAgent.d.ts","sourceRoot":"","sources":["../../../src/agents/implementations/PromptConstructorAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAMlD,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,sBACX,YAAW,QAAQ,CAAC,yBAAyB,EAAE,iBAAiB,CAAC;IAEjE,IAAI,SAA4B;IAChC,WAAW,SACkG;IAC7G,WAAW,SAAgD;IAC3D,WAAW,EAAE,MAAM,CAAY;IAC/B,SAAS,WAKP;IAEI,GAAG,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAoC3D,iBAAiB;YAsBjB,mBAAmB;YAsFnB,mBAAmB;IAoGjC,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,4BAA4B;IAmBpC,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,yBAAyB;IAmBjC,OAAO,CAAC,iBAAiB;YA8BX,4BAA4B;YAgE5B,eAAe;IA0L7B,OAAO,CAAC,0BAA0B;IA6FlC,OAAO,CAAC,2BAA2B;IA6BnC,OAAO,CAAC,uBAAuB;IA6B/B,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,uBAAuB;IA0B/B,OAAO,CAAC,yBAAyB;IA6BjC,OAAO,CAAC,+BAA+B;IA6BvC,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,yBAAyB;IA2BjC,OAAO,CAAC,wBAAwB;IA0BhC,OAAO,CAAC,4BAA4B;IAiBpC,OAAO,CAAC,6BAA6B;IAiBrC,OAAO,CAAC,kCAAkC;IAe1C,OAAO,CAAC,2BAA2B;IA+EnC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA0B7B;;OAEG;IACH,OAAO,CAAC,0BAA0B;CAyEnC"}