mycontext-cli 4.2.6 → 4.2.8

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 (117) hide show
  1. package/README.md +531 -144
  2. package/dist/README.md +531 -144
  3. package/dist/cli.js +14 -5
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/generate.d.ts.map +1 -1
  6. package/dist/commands/generate.js +19 -47
  7. package/dist/commands/generate.js.map +1 -1
  8. package/dist/commands/init-interactive.d.ts +147 -0
  9. package/dist/commands/init-interactive.d.ts.map +1 -0
  10. package/dist/commands/init-interactive.js +917 -0
  11. package/dist/commands/init-interactive.js.map +1 -0
  12. package/dist/config/shadcn-catalog.json +93 -0
  13. package/dist/core/brain/BrainClient.d.ts +1 -1
  14. package/dist/core/brain/BrainClient.d.ts.map +1 -1
  15. package/dist/core/brain/BrainClient.js +5 -5
  16. package/dist/core/brain/BrainClient.js.map +1 -1
  17. package/dist/doctor/DoctorEngine.d.ts.map +1 -1
  18. package/dist/doctor/DoctorEngine.js +21 -11
  19. package/dist/doctor/DoctorEngine.js.map +1 -1
  20. package/dist/doctor/rules/dead-code-rules.d.ts.map +1 -1
  21. package/dist/doctor/rules/dead-code-rules.js +33 -0
  22. package/dist/doctor/rules/dead-code-rules.js.map +1 -1
  23. package/dist/doctor/rules/index.d.ts +3 -1
  24. package/dist/doctor/rules/index.d.ts.map +1 -1
  25. package/dist/doctor/rules/index.js +7 -1
  26. package/dist/doctor/rules/index.js.map +1 -1
  27. package/dist/doctor/rules/instantdb-rules.d.ts +3 -0
  28. package/dist/doctor/rules/instantdb-rules.d.ts.map +1 -0
  29. package/dist/doctor/rules/instantdb-rules.js +544 -0
  30. package/dist/doctor/rules/instantdb-rules.js.map +1 -0
  31. package/dist/doctor/rules/nextjs-rules.d.ts.map +1 -1
  32. package/dist/doctor/rules/nextjs-rules.js +53 -3
  33. package/dist/doctor/rules/nextjs-rules.js.map +1 -1
  34. package/dist/doctor/rules/typescript-rules.d.ts +3 -0
  35. package/dist/doctor/rules/typescript-rules.d.ts.map +1 -0
  36. package/dist/doctor/rules/typescript-rules.js +177 -0
  37. package/dist/doctor/rules/typescript-rules.js.map +1 -0
  38. package/dist/package.json +4 -2
  39. package/dist/services/ComponentInferenceEngine.d.ts +66 -0
  40. package/dist/services/ComponentInferenceEngine.d.ts.map +1 -0
  41. package/dist/services/ComponentInferenceEngine.js +302 -0
  42. package/dist/services/ComponentInferenceEngine.js.map +1 -0
  43. package/dist/services/ComponentRegistry.d.ts +61 -0
  44. package/dist/services/ComponentRegistry.d.ts.map +1 -0
  45. package/dist/services/ComponentRegistry.js +128 -0
  46. package/dist/services/ComponentRegistry.js.map +1 -0
  47. package/dist/services/InferenceEngine.d.ts +41 -0
  48. package/dist/services/InferenceEngine.d.ts.map +1 -0
  49. package/dist/services/InferenceEngine.js +307 -0
  50. package/dist/services/InferenceEngine.js.map +1 -0
  51. package/dist/services/Planner.d.ts +77 -0
  52. package/dist/services/Planner.d.ts.map +1 -0
  53. package/dist/services/Planner.js +828 -0
  54. package/dist/services/Planner.js.map +1 -0
  55. package/dist/services/ProjectScanner.d.ts.map +1 -1
  56. package/dist/services/ProjectScanner.js +15 -1
  57. package/dist/services/ProjectScanner.js.map +1 -1
  58. package/dist/services/ScaffoldEngine.d.ts +87 -0
  59. package/dist/services/ScaffoldEngine.d.ts.map +1 -0
  60. package/dist/services/ScaffoldEngine.js +409 -0
  61. package/dist/services/ScaffoldEngine.js.map +1 -0
  62. package/dist/services/ScaffoldPreview.d.ts +62 -0
  63. package/dist/services/ScaffoldPreview.d.ts.map +1 -0
  64. package/dist/services/ScaffoldPreview.js +292 -0
  65. package/dist/services/ScaffoldPreview.js.map +1 -0
  66. package/dist/services/TemplateEngine.d.ts +136 -0
  67. package/dist/services/TemplateEngine.d.ts.map +1 -0
  68. package/dist/services/TemplateEngine.js +483 -0
  69. package/dist/services/TemplateEngine.js.map +1 -0
  70. package/dist/services/TemplateHelpers.d.ts +9 -0
  71. package/dist/services/TemplateHelpers.d.ts.map +1 -0
  72. package/dist/services/TemplateHelpers.js +212 -0
  73. package/dist/services/TemplateHelpers.js.map +1 -0
  74. package/dist/templates/actions/auth-actions.ts.hbs +140 -0
  75. package/dist/templates/actions/crud-actions.ts.hbs +113 -0
  76. package/dist/templates/components/auth/login-form.tsx.hbs +67 -0
  77. package/dist/templates/components/auth/login-skeleton.tsx.hbs +24 -0
  78. package/dist/templates/components/auth/register-form.tsx.hbs +116 -0
  79. package/dist/templates/components/crud/entity-card.tsx.hbs +71 -0
  80. package/dist/templates/components/crud/entity-form.tsx.hbs +158 -0
  81. package/dist/templates/components/crud/entity-skeleton.tsx.hbs +90 -0
  82. package/dist/templates/components/crud/entity-table.tsx.hbs +129 -0
  83. package/dist/templates/components/ui/button.tsx.hbs +53 -0
  84. package/dist/templates/components/ui/card.tsx.hbs +68 -0
  85. package/dist/templates/components/ui/input.tsx.hbs +33 -0
  86. package/dist/templates/components/ui/label.tsx.hbs +20 -0
  87. package/dist/templates/components/ui/skeleton.tsx.hbs +15 -0
  88. package/dist/templates/components/ui/theme-provider.tsx.hbs +66 -0
  89. package/dist/templates/components/ui/theme-toggle.tsx.hbs +30 -0
  90. package/dist/templates/config/app.css.hbs +150 -0
  91. package/dist/templates/layouts/dashboard-layout.tsx.hbs +69 -0
  92. package/dist/templates/layouts/error.tsx.hbs +51 -0
  93. package/dist/templates/layouts/loading.tsx.hbs +22 -0
  94. package/dist/templates/layouts/not-found.tsx.hbs +24 -0
  95. package/dist/templates/layouts/root-layout.tsx.hbs +40 -0
  96. package/dist/templates/lib/instant.ts.hbs +19 -0
  97. package/dist/templates/lib/utils.ts.hbs +24 -0
  98. package/dist/templates/pages/auth/login-page.tsx.hbs +30 -0
  99. package/dist/templates/pages/auth/register-page.tsx.hbs +38 -0
  100. package/dist/templates/pages/crud/create-page.tsx.hbs +42 -0
  101. package/dist/templates/pages/crud/detail-page.tsx.hbs +90 -0
  102. package/dist/templates/pages/crud/list-page.tsx.hbs +60 -0
  103. package/dist/templates/pages/crud/loading.tsx.hbs +13 -0
  104. package/dist/templates/pages/landing-page.tsx.hbs +111 -0
  105. package/dist/types/asl.d.ts +387 -0
  106. package/dist/types/asl.d.ts.map +1 -0
  107. package/dist/types/asl.js +139 -0
  108. package/dist/types/asl.js.map +1 -0
  109. package/dist/types/living-context.d.ts +1 -1
  110. package/dist/types/living-context.d.ts.map +1 -1
  111. package/dist/utils/FileGenerator.js +3 -3
  112. package/dist/utils/FileGenerator.js.map +1 -1
  113. package/dist/utils/generateTypesFromSchema.d.ts +47 -0
  114. package/dist/utils/generateTypesFromSchema.d.ts.map +1 -0
  115. package/dist/utils/generateTypesFromSchema.js +298 -0
  116. package/dist/utils/generateTypesFromSchema.js.map +1 -0
  117. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"nextjs-rules.js","sourceRoot":"","sources":["../../../src/doctor/rules/nextjs-rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nextjs-rules.js","sourceRoot":"","sources":["../../../src/doctor/rules/nextjs-rules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { DoctorRule } from "../types";
2
+ export declare const typescriptRules: DoctorRule[];
3
+ //# sourceMappingURL=typescript-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-rules.d.ts","sourceRoot":"","sources":["../../../src/doctor/rules/typescript-rules.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,UAAU,CAAC;AAsOpE,eAAO,MAAM,eAAe,EAAE,UAAU,EAIvC,CAAC"}
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.typescriptRules = void 0;
4
+ // ─── Helper ───────────────────────────────────────────────────────
5
+ function diag(rule, filePath, message, opts = {}) {
6
+ return {
7
+ ruleId: rule.id,
8
+ filePath,
9
+ line: opts.line,
10
+ severity: rule.severity,
11
+ message,
12
+ help: opts.help || rule.help,
13
+ autoFixable: opts.autoFixable ?? false,
14
+ };
15
+ }
16
+ /**
17
+ * Find all occurrences of a pattern in content with line numbers
18
+ */
19
+ function findOccurrences(content, pattern) {
20
+ const lines = content.split("\n");
21
+ const occurrences = [];
22
+ lines.forEach((line, index) => {
23
+ const matches = line.match(pattern);
24
+ if (matches) {
25
+ occurrences.push({ line: index + 1, match: matches[0] });
26
+ }
27
+ });
28
+ return occurrences;
29
+ }
30
+ // ─── Rules ────────────────────────────────────────────────────────
31
+ const asAnyCasts = {
32
+ id: "typescript/as-any-casts",
33
+ name: "Avoid 'as any' Type Casts",
34
+ category: "node",
35
+ severity: "warning",
36
+ description: "Detects usage of 'as any' type casts which bypass TypeScript's type checking",
37
+ help: "Replace 'as any' with proper type annotations or type guards. Use Record<string, unknown> for dynamic objects.",
38
+ appliesTo: ["nextjs", "node"],
39
+ async check(ctx) {
40
+ const results = [];
41
+ // Find all TypeScript/JavaScript files
42
+ const files = await ctx.findFiles(/\.(tsx?|jsx?)$/);
43
+ // Pattern to match 'as any' (with word boundaries)
44
+ const asAnyPattern = /\s+as\s+any[\s\)\;\,\}\]\.]/g;
45
+ // Track files with most casts for summary
46
+ const fileStats = [];
47
+ for (const file of files) {
48
+ const content = await ctx.readFile(file);
49
+ if (!content)
50
+ continue;
51
+ const occurrences = findOccurrences(content, asAnyPattern);
52
+ if (occurrences.length > 0) {
53
+ fileStats.push({
54
+ file,
55
+ count: occurrences.length,
56
+ lines: occurrences.map(o => o.line)
57
+ });
58
+ const firstOccurrence = occurrences[0];
59
+ if (firstOccurrence) {
60
+ results.push(diag(this, file, `Found ${occurrences.length} 'as any' cast${occurrences.length > 1 ? 's' : ''}`, {
61
+ line: firstOccurrence.line,
62
+ help: `Replace 'as any' with proper type annotations. Consider using 'Record<string, unknown>' for dynamic objects or type guards for runtime checks.`
63
+ }));
64
+ }
65
+ }
66
+ }
67
+ return results;
68
+ },
69
+ };
70
+ const unknownTransactionArray = {
71
+ id: "typescript/instantdb-transaction-typing",
72
+ name: "InstantDB Transaction Array Typing",
73
+ category: "node",
74
+ severity: "error",
75
+ description: "Detects unknown[] arrays passed to adminDb.transact() which cause type errors",
76
+ help: "Change 'unknown[]' to 'TransactionChunk<any, any>[]' and import from '@instantdb/admin'",
77
+ appliesTo: ["nextjs", "node"],
78
+ async check(ctx) {
79
+ const results = [];
80
+ // Find all TypeScript files
81
+ const files = await ctx.findFiles(/\.tsx?$/);
82
+ for (const file of files) {
83
+ const content = await ctx.readFile(file);
84
+ if (!content)
85
+ continue;
86
+ // Check if file uses adminDb.transact
87
+ if (!content.includes("adminDb.transact") && !content.includes("db.transact")) {
88
+ continue;
89
+ }
90
+ // Look for unknown[] array declarations
91
+ const unknownArrayPattern = /const\s+(\w+):\s*unknown\[\]/g;
92
+ const matches = Array.from(content.matchAll(unknownArrayPattern));
93
+ for (const match of matches) {
94
+ const varName = match[1];
95
+ // Check if this array is passed to transact
96
+ const transactPattern = new RegExp(`\\.transact\\s*\\(\\s*${varName}`, "g");
97
+ if (transactPattern.test(content)) {
98
+ const lines = content.split("\n");
99
+ const lineNum = lines.findIndex(line => line.includes(match[0])) + 1;
100
+ results.push(diag(this, file, `'${varName}' is typed as 'unknown[]' but passed to transact()`, {
101
+ line: lineNum,
102
+ help: `Change 'const ${varName}: unknown[]' to 'const ${varName}: TransactionChunk<any, any>[]' and import { TransactionChunk } from '@instantdb/admin'`,
103
+ }));
104
+ }
105
+ }
106
+ }
107
+ return results;
108
+ },
109
+ };
110
+ const duplicateTypeDeclarations = {
111
+ id: "typescript/duplicate-type-declarations",
112
+ name: "Duplicate Type Declarations",
113
+ category: "node",
114
+ severity: "warning",
115
+ description: "Detects type/interface declarations that duplicate schema-derived types",
116
+ help: "Remove hand-written type declarations that duplicate schema types. Import from schema.ts instead.",
117
+ appliesTo: ["nextjs", "node"],
118
+ async check(ctx) {
119
+ const results = [];
120
+ // Find schema.ts file (could be in types/ or src/types/)
121
+ const schemaFiles = await ctx.findFiles(/types\/schema\.tsx?$/);
122
+ if (schemaFiles.length === 0) {
123
+ return results; // No schema file, skip check
124
+ }
125
+ const schemaFile = schemaFiles[0];
126
+ if (!schemaFile)
127
+ return results;
128
+ const schemaContent = await ctx.readFile(schemaFile);
129
+ if (!schemaContent)
130
+ return results;
131
+ // Extract exported types from schema (looking for InstaQLEntity pattern or interface/type declarations)
132
+ const schemaTypePattern = /export\s+(?:type|interface)\s+(\w+)/g;
133
+ const schemaTypes = new Set();
134
+ let match;
135
+ while ((match = schemaTypePattern.exec(schemaContent)) !== null) {
136
+ const typeName = match[1];
137
+ if (typeName) {
138
+ schemaTypes.add(typeName);
139
+ }
140
+ }
141
+ if (schemaTypes.size === 0) {
142
+ return results; // No types in schema, skip
143
+ }
144
+ // Check other files in types/ directory
145
+ const typeFiles = await ctx.findFiles(/types\/.*\.tsx?$/);
146
+ for (const file of typeFiles) {
147
+ if (file === schemaFile)
148
+ continue; // Skip the schema file itself
149
+ const content = await ctx.readFile(file);
150
+ if (!content)
151
+ continue;
152
+ // Find exported types/interfaces in this file
153
+ const fileTypePattern = /export\s+(?:type|interface)\s+(\w+)/g;
154
+ let typeMatch;
155
+ while ((typeMatch = fileTypePattern.exec(content)) !== null) {
156
+ const typeName = typeMatch[1];
157
+ if (typeName && schemaTypes.has(typeName)) {
158
+ const lines = content.split("\n");
159
+ const matchText = typeMatch[0];
160
+ const lineNum = lines.findIndex(line => line.includes(matchText)) + 1;
161
+ results.push(diag(this, file, `Type '${typeName}' duplicates schema type in ${schemaFile}`, {
162
+ line: lineNum,
163
+ help: `Remove this type declaration and import ${typeName} from '${schemaFile}' instead. The schema-derived type is canonical.`,
164
+ }));
165
+ }
166
+ }
167
+ }
168
+ return results;
169
+ },
170
+ };
171
+ // ─── Export ───────────────────────────────────────────────────────
172
+ exports.typescriptRules = [
173
+ asAnyCasts,
174
+ unknownTransactionArray,
175
+ duplicateTypeDeclarations,
176
+ ];
177
+ //# sourceMappingURL=typescript-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-rules.js","sourceRoot":"","sources":["../../../src/doctor/rules/typescript-rules.ts"],"names":[],"mappings":"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"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mycontext-cli",
3
- "version": "4.2.6",
3
+ "version": "4.2.8",
4
4
  "description": "CLI tool for spec-driven development - Generate comprehensive context, visual screens, and scaffolding for AI-powered coding",
5
5
  "main": "dist/cli.js",
6
6
  "bin": {
@@ -54,9 +54,10 @@
54
54
  "@google/generative-ai": "^0.24.1",
55
55
  "@huggingface/inference": "^4.11.1",
56
56
  "@modelcontextprotocol/sdk": "^1.26.0",
57
- "@myycontext/core": "^1.0.5",
57
+ "@myycontext/core": "workspace:*",
58
58
  "@playwright/test": "^1.58.2",
59
59
  "@types/figlet": "^1.7.0",
60
+ "@types/handlebars": "^4.1.0",
60
61
  "axios": "^1.6.0",
61
62
  "chalk": "^5.6.2",
62
63
  "commander": "^11.1.0",
@@ -68,6 +69,7 @@
68
69
  "fuse.js": "^7.1.0",
69
70
  "glob": "^10.3.10",
70
71
  "gradient-string": "^3.0.0",
72
+ "handlebars": "^4.7.8",
71
73
  "inquirer": "^9.2.12",
72
74
  "mdast-util-to-markdown": "^2.1.2",
73
75
  "node-fetch": "^2.7.0",
@@ -0,0 +1,66 @@
1
+ import { ASL } from "../types/asl";
2
+ export interface ShadCNComponent {
3
+ name: string;
4
+ dependencies: string[];
5
+ useCases: string[];
6
+ description: string;
7
+ required: boolean;
8
+ }
9
+ export interface ShadCNCatalog {
10
+ components: ShadCNComponent[];
11
+ metadata: {
12
+ version: string;
13
+ totalComponents: number;
14
+ lastUpdated: string;
15
+ };
16
+ }
17
+ /**
18
+ * ComponentInferenceEngine - Smart inference of needed shadCN components
19
+ *
20
+ * Analyzes ASL specification to determine which shadCN UI components
21
+ * are needed for the project. Automatically resolves dependencies.
22
+ *
23
+ * Benefits:
24
+ * - Only installs what's needed (saves tokens and time)
25
+ * - Resolves dependencies automatically
26
+ * - Provides reasoning for each component choice
27
+ */
28
+ export declare class ComponentInferenceEngine {
29
+ private catalog;
30
+ constructor();
31
+ /**
32
+ * Infer which shadCN components are needed based on ASL
33
+ * Returns array of component names to install
34
+ */
35
+ inferNeededComponents(asl: ASL): string[];
36
+ /**
37
+ * Check if ASL has list/table views
38
+ */
39
+ private hasListViews;
40
+ /**
41
+ * Check if a page is an entity list page
42
+ */
43
+ private isEntityListPage;
44
+ /**
45
+ * Check if ASL has admin/RBAC features
46
+ */
47
+ private hasAdminFeatures;
48
+ /**
49
+ * Resolve component dependencies
50
+ * E.g., if we need 'form', we also need 'button' and 'label'
51
+ */
52
+ private resolveDependencies;
53
+ /**
54
+ * Load shadCN component catalog
55
+ */
56
+ private loadCatalog;
57
+ /**
58
+ * Default catalog (used if shadcn-catalog.json doesn't exist yet)
59
+ */
60
+ private getDefaultCatalog;
61
+ /**
62
+ * Explain why each component was chosen
63
+ */
64
+ explainChoices(asl: ASL): Map<string, string>;
65
+ }
66
+ //# sourceMappingURL=ComponentInferenceEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentInferenceEngine.d.ts","sourceRoot":"","sources":["../../src/services/ComponentInferenceEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAwB,MAAM,cAAc,CAAC;AAIzD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;;;;;;;;;GAUG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,OAAO,CAAgB;;IAM/B;;;OAGG;IACH,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE;IAwCzC;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA0B3B;;OAEG;IACH,OAAO,CAAC,WAAW;IAUnB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgGzB;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;CAkC9C"}
@@ -0,0 +1,302 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ComponentInferenceEngine = void 0;
37
+ const path = __importStar(require("path"));
38
+ const fs = __importStar(require("fs-extra"));
39
+ /**
40
+ * ComponentInferenceEngine - Smart inference of needed shadCN components
41
+ *
42
+ * Analyzes ASL specification to determine which shadCN UI components
43
+ * are needed for the project. Automatically resolves dependencies.
44
+ *
45
+ * Benefits:
46
+ * - Only installs what's needed (saves tokens and time)
47
+ * - Resolves dependencies automatically
48
+ * - Provides reasoning for each component choice
49
+ */
50
+ class ComponentInferenceEngine {
51
+ constructor() {
52
+ this.catalog = this.loadCatalog();
53
+ }
54
+ /**
55
+ * Infer which shadCN components are needed based on ASL
56
+ * Returns array of component names to install
57
+ */
58
+ inferNeededComponents(asl) {
59
+ const needed = new Set();
60
+ // Base components (always needed for any app)
61
+ needed.add('button');
62
+ needed.add('card');
63
+ // Auth-based components
64
+ if (asl.auth) {
65
+ needed.add('form');
66
+ needed.add('input');
67
+ needed.add('label');
68
+ needed.add('toast'); // for error messages
69
+ }
70
+ // Entity CRUD forms
71
+ if (asl.entities && Object.keys(asl.entities).length > 0) {
72
+ needed.add('form');
73
+ needed.add('input');
74
+ needed.add('textarea'); // for long text fields
75
+ needed.add('select'); // for references/dropdowns
76
+ needed.add('dialog'); // for create/edit modals
77
+ needed.add('label');
78
+ }
79
+ // List views (tables for data display)
80
+ if (this.hasListViews(asl)) {
81
+ needed.add('table');
82
+ }
83
+ // Admin/RBAC features
84
+ if (this.hasAdminFeatures(asl)) {
85
+ needed.add('dropdown-menu'); // for actions
86
+ needed.add('badge'); // for status/roles
87
+ }
88
+ // Resolve dependencies (e.g., form needs button, label)
89
+ return this.resolveDependencies(needed);
90
+ }
91
+ /**
92
+ * Check if ASL has list/table views
93
+ */
94
+ hasListViews(asl) {
95
+ // Entities imply list views
96
+ if (asl.entities && Object.keys(asl.entities).length > 0) {
97
+ return true;
98
+ }
99
+ // Check for explicit list pages
100
+ return asl.pages.some(p => p.path.includes('/list') ||
101
+ this.isEntityListPage(p, asl.entities));
102
+ }
103
+ /**
104
+ * Check if a page is an entity list page
105
+ */
106
+ isEntityListPage(page, entities) {
107
+ if (!entities)
108
+ return false;
109
+ const entityNames = Object.keys(entities).map(name => name.toLowerCase() + 's');
110
+ return entityNames.some(name => page.path.includes('/' + name));
111
+ }
112
+ /**
113
+ * Check if ASL has admin/RBAC features
114
+ */
115
+ hasAdminFeatures(asl) {
116
+ if (!asl.permissions)
117
+ return false;
118
+ return asl.permissions.some(p => p.role === 'admin' ||
119
+ p.role === 'moderator' ||
120
+ p.actions.includes('manage'));
121
+ }
122
+ /**
123
+ * Resolve component dependencies
124
+ * E.g., if we need 'form', we also need 'button' and 'label'
125
+ */
126
+ resolveDependencies(components) {
127
+ const resolved = new Set(components);
128
+ // Keep resolving until no new dependencies are added
129
+ let changed = true;
130
+ while (changed) {
131
+ changed = false;
132
+ const current = Array.from(resolved);
133
+ for (const comp of current) {
134
+ const definition = this.catalog.components.find(c => c.name === comp);
135
+ if (definition) {
136
+ for (const dep of definition.dependencies) {
137
+ if (!resolved.has(dep)) {
138
+ resolved.add(dep);
139
+ changed = true;
140
+ }
141
+ }
142
+ }
143
+ }
144
+ }
145
+ // Return sorted array
146
+ return Array.from(resolved).sort();
147
+ }
148
+ /**
149
+ * Load shadCN component catalog
150
+ */
151
+ loadCatalog() {
152
+ try {
153
+ const catalogPath = path.join(__dirname, '../config/shadcn-catalog.json');
154
+ return fs.readJSONSync(catalogPath);
155
+ }
156
+ catch (error) {
157
+ // Return minimal catalog if file doesn't exist yet
158
+ return this.getDefaultCatalog();
159
+ }
160
+ }
161
+ /**
162
+ * Default catalog (used if shadcn-catalog.json doesn't exist yet)
163
+ */
164
+ getDefaultCatalog() {
165
+ return {
166
+ components: [
167
+ {
168
+ name: 'button',
169
+ dependencies: [],
170
+ useCases: ['forms', 'actions', 'navigation'],
171
+ description: 'Interactive button component with variants',
172
+ required: true
173
+ },
174
+ {
175
+ name: 'form',
176
+ dependencies: ['label', 'button'],
177
+ useCases: ['auth', 'crud', 'settings'],
178
+ description: 'Form wrapper with validation support',
179
+ required: false
180
+ },
181
+ {
182
+ name: 'input',
183
+ dependencies: ['label'],
184
+ useCases: ['auth', 'forms'],
185
+ description: 'Text input field',
186
+ required: false
187
+ },
188
+ {
189
+ name: 'card',
190
+ dependencies: [],
191
+ useCases: ['lists', 'dashboard'],
192
+ description: 'Container with header, content, footer',
193
+ required: false
194
+ },
195
+ {
196
+ name: 'table',
197
+ dependencies: [],
198
+ useCases: ['lists', 'admin', 'data-display'],
199
+ description: 'Data table component',
200
+ required: false
201
+ },
202
+ {
203
+ name: 'dialog',
204
+ dependencies: ['button'],
205
+ useCases: ['modals', 'forms', 'confirmations'],
206
+ description: 'Modal dialog component',
207
+ required: false
208
+ },
209
+ {
210
+ name: 'toast',
211
+ dependencies: [],
212
+ useCases: ['notifications', 'feedback'],
213
+ description: 'Toast notification system',
214
+ required: false
215
+ },
216
+ {
217
+ name: 'select',
218
+ dependencies: [],
219
+ useCases: ['forms', 'filters'],
220
+ description: 'Dropdown select component',
221
+ required: false
222
+ },
223
+ {
224
+ name: 'label',
225
+ dependencies: [],
226
+ useCases: ['forms'],
227
+ description: 'Form label component',
228
+ required: false
229
+ },
230
+ {
231
+ name: 'textarea',
232
+ dependencies: ['label'],
233
+ useCases: ['forms', 'comments'],
234
+ description: 'Multi-line text input',
235
+ required: false
236
+ },
237
+ {
238
+ name: 'dropdown-menu',
239
+ dependencies: ['button'],
240
+ useCases: ['navigation', 'actions', 'admin'],
241
+ description: 'Dropdown menu component',
242
+ required: false
243
+ },
244
+ {
245
+ name: 'badge',
246
+ dependencies: [],
247
+ useCases: ['status', 'labels', 'counts'],
248
+ description: 'Badge/pill component for status',
249
+ required: false
250
+ }
251
+ ],
252
+ metadata: {
253
+ version: 'latest',
254
+ totalComponents: 12,
255
+ lastUpdated: '2026-02-22'
256
+ }
257
+ };
258
+ }
259
+ /**
260
+ * Explain why each component was chosen
261
+ */
262
+ explainChoices(asl) {
263
+ const explanations = new Map();
264
+ const components = this.inferNeededComponents(asl);
265
+ components.forEach(comp => {
266
+ const definition = this.catalog.components.find(c => c.name === comp);
267
+ if (!definition)
268
+ return;
269
+ if (comp === 'button' || comp === 'card') {
270
+ explanations.set(comp, 'Always needed for UI');
271
+ }
272
+ else if (asl.auth && ['form', 'input', 'label', 'toast'].includes(comp)) {
273
+ explanations.set(comp, 'Required for authentication');
274
+ }
275
+ else if (asl.entities && Object.keys(asl.entities).length > 0 && ['textarea', 'select', 'dialog'].includes(comp)) {
276
+ explanations.set(comp, 'Required for CRUD forms');
277
+ }
278
+ else if (comp === 'table') {
279
+ explanations.set(comp, 'Required for entity lists');
280
+ }
281
+ else if (this.hasAdminFeatures(asl) && ['dropdown-menu', 'badge'].includes(comp)) {
282
+ explanations.set(comp, 'Required for admin features');
283
+ }
284
+ else {
285
+ // Dependency
286
+ const parent = components.find(c => {
287
+ const def = this.catalog.components.find(d => d.name === c);
288
+ return def?.dependencies.includes(comp);
289
+ });
290
+ if (parent) {
291
+ explanations.set(comp, `Dependency of ${parent}`);
292
+ }
293
+ else {
294
+ explanations.set(comp, definition.description);
295
+ }
296
+ }
297
+ });
298
+ return explanations;
299
+ }
300
+ }
301
+ exports.ComponentInferenceEngine = ComponentInferenceEngine;
302
+ //# sourceMappingURL=ComponentInferenceEngine.js.map