mycontext-cli 4.2.0 → 4.2.2

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 (92) hide show
  1. package/README.md +128 -133
  2. package/dist/README.md +128 -133
  3. package/dist/cli.js +76 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/doctor.d.ts +18 -0
  6. package/dist/commands/doctor.d.ts.map +1 -0
  7. package/dist/commands/doctor.js +53 -0
  8. package/dist/commands/doctor.js.map +1 -0
  9. package/dist/commands/init.d.ts.map +1 -1
  10. package/dist/commands/init.js +99 -2
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/core/brain/BrainClient.d.ts +2 -0
  13. package/dist/core/brain/BrainClient.d.ts.map +1 -1
  14. package/dist/core/brain/BrainClient.js +19 -0
  15. package/dist/core/brain/BrainClient.js.map +1 -1
  16. package/dist/doctor/DoctorEngine.d.ts +5 -0
  17. package/dist/doctor/DoctorEngine.d.ts.map +1 -0
  18. package/dist/doctor/DoctorEngine.js +491 -0
  19. package/dist/doctor/DoctorEngine.js.map +1 -0
  20. package/dist/doctor/api.d.ts +4 -0
  21. package/dist/doctor/api.d.ts.map +1 -0
  22. package/dist/doctor/api.js +19 -0
  23. package/dist/doctor/api.js.map +1 -0
  24. package/dist/doctor/rules/dead-code-rules.d.ts +3 -0
  25. package/dist/doctor/rules/dead-code-rules.d.ts.map +1 -0
  26. package/dist/doctor/rules/dead-code-rules.js +269 -0
  27. package/dist/doctor/rules/dead-code-rules.js.map +1 -0
  28. package/dist/doctor/rules/index.d.ts +11 -0
  29. package/dist/doctor/rules/index.d.ts.map +1 -0
  30. package/dist/doctor/rules/index.js +21 -0
  31. package/dist/doctor/rules/index.js.map +1 -0
  32. package/dist/doctor/rules/nextjs-rules.d.ts +3 -0
  33. package/dist/doctor/rules/nextjs-rules.d.ts.map +1 -0
  34. package/dist/doctor/rules/nextjs-rules.js +357 -0
  35. package/dist/doctor/rules/nextjs-rules.js.map +1 -0
  36. package/dist/doctor/rules/node-rules.d.ts +3 -0
  37. package/dist/doctor/rules/node-rules.d.ts.map +1 -0
  38. package/dist/doctor/rules/node-rules.js +290 -0
  39. package/dist/doctor/rules/node-rules.js.map +1 -0
  40. package/dist/doctor/rules/turbo-rules.d.ts +3 -0
  41. package/dist/doctor/rules/turbo-rules.d.ts.map +1 -0
  42. package/dist/doctor/rules/turbo-rules.js +215 -0
  43. package/dist/doctor/rules/turbo-rules.js.map +1 -0
  44. package/dist/doctor/types.d.ts +87 -0
  45. package/dist/doctor/types.d.ts.map +1 -0
  46. package/dist/doctor/types.js +6 -0
  47. package/dist/doctor/types.js.map +1 -0
  48. package/dist/package.json +4 -4
  49. package/dist/services/ContextSyncer.d.ts +40 -0
  50. package/dist/services/ContextSyncer.d.ts.map +1 -0
  51. package/dist/services/ContextSyncer.js +219 -0
  52. package/dist/services/ContextSyncer.js.map +1 -0
  53. package/dist/services/ProjectScanner.d.ts +74 -0
  54. package/dist/services/ProjectScanner.d.ts.map +1 -0
  55. package/dist/services/ProjectScanner.js +343 -0
  56. package/dist/services/ProjectScanner.js.map +1 -0
  57. package/dist/services/ScaffoldAgent.d.ts +35 -0
  58. package/dist/services/ScaffoldAgent.d.ts.map +1 -0
  59. package/dist/services/ScaffoldAgent.js +228 -0
  60. package/dist/services/ScaffoldAgent.js.map +1 -0
  61. package/dist/tui/PlanningMode.d.ts +42 -0
  62. package/dist/tui/PlanningMode.d.ts.map +1 -0
  63. package/dist/tui/PlanningMode.js +401 -0
  64. package/dist/tui/PlanningMode.js.map +1 -0
  65. package/dist/tui/TUIClient.d.ts +20 -0
  66. package/dist/tui/TUIClient.d.ts.map +1 -0
  67. package/dist/tui/TUIClient.js +50 -0
  68. package/dist/tui/TUIClient.js.map +1 -0
  69. package/dist/types/mega-context.d.ts +118 -0
  70. package/dist/types/mega-context.d.ts.map +1 -0
  71. package/dist/types/mega-context.js +3 -0
  72. package/dist/types/mega-context.js.map +1 -0
  73. package/dist/types/tui.d.ts +29 -0
  74. package/dist/types/tui.d.ts.map +1 -0
  75. package/dist/types/tui.js +8 -0
  76. package/dist/types/tui.js.map +1 -0
  77. package/dist/types/unified-context.d.ts +102 -0
  78. package/dist/types/unified-context.d.ts.map +1 -0
  79. package/dist/types/unified-context.js +50 -0
  80. package/dist/types/unified-context.js.map +1 -0
  81. package/dist/utils/FileGenerator.d.ts +5 -0
  82. package/dist/utils/FileGenerator.d.ts.map +1 -1
  83. package/dist/utils/FileGenerator.js +48 -0
  84. package/dist/utils/FileGenerator.js.map +1 -1
  85. package/dist/utils/deepMerge.d.ts +14 -0
  86. package/dist/utils/deepMerge.d.ts.map +1 -0
  87. package/dist/utils/deepMerge.js +87 -0
  88. package/dist/utils/deepMerge.js.map +1 -0
  89. package/dist/utils/fileSystem.d.ts.map +1 -1
  90. package/dist/utils/fileSystem.js +32 -4
  91. package/dist/utils/fileSystem.js.map +1 -1
  92. package/package.json +24 -22
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextSyncer.js","sourceRoot":"","sources":["../../src/services/ContextSyncer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ export interface FileEntry {
2
+ path: string;
3
+ type: "file" | "dir";
4
+ size?: number;
5
+ extension?: string;
6
+ }
7
+ export interface FileSnippet {
8
+ path: string;
9
+ content: string;
10
+ lines: number;
11
+ }
12
+ export interface ProjectSnapshot {
13
+ scannedAt: string;
14
+ projectRoot: string;
15
+ fileTree: FileEntry[];
16
+ keyFiles: FileSnippet[];
17
+ stats: {
18
+ totalFiles: number;
19
+ totalDirs: number;
20
+ routeFiles: number;
21
+ componentFiles: number;
22
+ apiFiles: number;
23
+ schemaFiles: number;
24
+ testFiles: number;
25
+ };
26
+ }
27
+ export interface ContextDiffItem {
28
+ type: "missing_in_context" | "missing_in_code" | "outdated" | "suggestion";
29
+ category: "route" | "component" | "entity" | "config" | "general";
30
+ description: string;
31
+ suggestion: string;
32
+ }
33
+ export interface ContextDiffReport {
34
+ assessedAt: string;
35
+ overallProgress: number;
36
+ progressSummary: string;
37
+ diffs: ContextDiffItem[];
38
+ suggestedContextMerge: any;
39
+ }
40
+ export declare class ProjectScanner {
41
+ private projectRoot;
42
+ private ai;
43
+ constructor(projectRoot?: string);
44
+ /**
45
+ * Full scan: walk tree + read key files + build snapshot
46
+ */
47
+ scan(): Promise<ProjectSnapshot>;
48
+ /**
49
+ * Recursively walk a directory
50
+ */
51
+ private walkDirectory;
52
+ /**
53
+ * Read a file, truncated to MAX_FILE_READ_SIZE
54
+ */
55
+ private readFileSnippet;
56
+ /**
57
+ * Compare a snapshot against context.json and get LLM assessment
58
+ */
59
+ assessProgress(snapshot: ProjectSnapshot, existingContext: any): Promise<ContextDiffReport>;
60
+ /**
61
+ * Display the scan results nicely
62
+ */
63
+ displaySnapshot(snapshot: ProjectSnapshot): void;
64
+ /**
65
+ * Display the diff report nicely
66
+ */
67
+ displayReport(report: ContextDiffReport): void;
68
+ /**
69
+ * Get or initialize AICore safely
70
+ */
71
+ private getAICore;
72
+ private makeProgressBar;
73
+ }
74
+ //# sourceMappingURL=ProjectScanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectScanner.d.ts","sourceRoot":"","sources":["../../src/services/ProjectScanner.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,GAAG,UAAU,GAAG,YAAY,CAAC;IAC3E,QAAQ,EAAE,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,qBAAqB,EAAE,GAAG,CAAC;CAC5B;AAgCD,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,EAAE,CAAuB;gBAErB,WAAW,GAAE,MAAsB;IAI/C;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC;IAqCtC;;OAEG;YACW,aAAa;IA8D3B;;OAEG;YACW,eAAe;IAe7B;;OAEG;IACG,cAAc,CAClB,QAAQ,EAAE,eAAe,EACzB,eAAe,EAAE,GAAG,GACnB,OAAO,CAAC,iBAAiB,CAAC;IA4E7B;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAYhD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IA8B9C;;OAEG;IACH,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,eAAe;CAMxB"}
@@ -0,0 +1,343 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.ProjectScanner = void 0;
40
+ /**
41
+ * ProjectScanner — Scans the real file structure and compares against context.json
42
+ *
43
+ * This is the "eyes" of the Living Brain:
44
+ * 1. Walks the actual project file tree
45
+ * 2. Reads key files (package.json, route files, components, schemas)
46
+ * 3. Builds a structured ProjectSnapshot
47
+ * 4. Passes snapshot + context.json to LLM for progress assessment
48
+ * 5. Returns a ContextDiffReport with suggested merges/updates
49
+ */
50
+ const fs = __importStar(require("fs-extra"));
51
+ const path = __importStar(require("path"));
52
+ const chalk_1 = __importDefault(require("chalk"));
53
+ const AICore_1 = require("../core/ai/AICore");
54
+ // --- Scanner ---
55
+ const IGNORE_DIRS = new Set([
56
+ "node_modules", ".next", ".git", "dist", "build", ".turbo",
57
+ ".pnpm-store", "coverage", ".cache", ".vercel", "__pycache__",
58
+ ]);
59
+ const IGNORE_EXTENSIONS = new Set([
60
+ ".png", ".jpg", ".jpeg", ".gif", ".svg", ".ico", ".woff", ".woff2",
61
+ ".ttf", ".eot", ".mp4", ".webm", ".mp3", ".wav", ".pdf", ".lock",
62
+ ".map",
63
+ ]);
64
+ const KEY_FILE_PATTERNS = [
65
+ /package\.json$/,
66
+ /tsconfig\.json$/,
67
+ /instant\.schema\.(ts|js)$/,
68
+ /instant\.perms\.(ts|js)$/,
69
+ /\.env\.example$/,
70
+ /layout\.(tsx|jsx|ts|js)$/,
71
+ /page\.(tsx|jsx|ts|js)$/,
72
+ /route\.(tsx|jsx|ts|js)$/,
73
+ /schema\.(ts|js|prisma)$/,
74
+ /globals\.css$/,
75
+ ];
76
+ const MAX_FILE_READ_SIZE = 3000; // chars per file
77
+ const MAX_KEY_FILES = 30; // cap to keep prompt manageable
78
+ const MAX_TREE_DEPTH = 6; // don't go too deep
79
+ class ProjectScanner {
80
+ constructor(projectRoot = process.cwd()) {
81
+ this.ai = null;
82
+ this.projectRoot = projectRoot;
83
+ }
84
+ /**
85
+ * Full scan: walk tree + read key files + build snapshot
86
+ */
87
+ async scan() {
88
+ const fileTree = [];
89
+ const keyFiles = [];
90
+ const stats = {
91
+ totalFiles: 0,
92
+ totalDirs: 0,
93
+ routeFiles: 0,
94
+ componentFiles: 0,
95
+ apiFiles: 0,
96
+ schemaFiles: 0,
97
+ testFiles: 0,
98
+ };
99
+ // Walk the tree
100
+ await this.walkDirectory("", fileTree, stats, 0);
101
+ // Read key files (truncated)
102
+ for (const entry of fileTree) {
103
+ if (entry.type !== "file")
104
+ continue;
105
+ if (keyFiles.length >= MAX_KEY_FILES)
106
+ break;
107
+ const isKeyFile = KEY_FILE_PATTERNS.some((p) => p.test(entry.path));
108
+ if (isKeyFile) {
109
+ const snippet = await this.readFileSnippet(entry.path);
110
+ if (snippet)
111
+ keyFiles.push(snippet);
112
+ }
113
+ }
114
+ return {
115
+ scannedAt: new Date().toISOString(),
116
+ projectRoot: this.projectRoot,
117
+ fileTree,
118
+ keyFiles,
119
+ stats,
120
+ };
121
+ }
122
+ /**
123
+ * Recursively walk a directory
124
+ */
125
+ async walkDirectory(relativePath, entries, stats, depth) {
126
+ if (depth > MAX_TREE_DEPTH)
127
+ return;
128
+ const fullPath = path.join(this.projectRoot, relativePath);
129
+ let items;
130
+ try {
131
+ items = await fs.readdir(fullPath);
132
+ }
133
+ catch {
134
+ return;
135
+ }
136
+ for (const item of items) {
137
+ if (IGNORE_DIRS.has(item) && depth < 2)
138
+ continue; // Allow nested dirs with same name
139
+ if (item.startsWith(".") && item !== ".env.example")
140
+ continue;
141
+ const itemRelPath = relativePath ? `${relativePath}/${item}` : item;
142
+ const itemFullPath = path.join(this.projectRoot, itemRelPath);
143
+ let stat;
144
+ try {
145
+ stat = await fs.stat(itemFullPath);
146
+ }
147
+ catch {
148
+ continue;
149
+ }
150
+ if (stat.isDirectory()) {
151
+ if (IGNORE_DIRS.has(item))
152
+ continue;
153
+ stats.totalDirs++;
154
+ entries.push({ path: itemRelPath, type: "dir" });
155
+ await this.walkDirectory(itemRelPath, entries, stats, depth + 1);
156
+ }
157
+ else if (stat.isFile()) {
158
+ const ext = path.extname(item);
159
+ if (IGNORE_EXTENSIONS.has(ext))
160
+ continue;
161
+ stats.totalFiles++;
162
+ entries.push({
163
+ path: itemRelPath,
164
+ type: "file",
165
+ size: stat.size,
166
+ extension: ext,
167
+ });
168
+ // Categorize
169
+ if (/page\.(tsx|jsx)$/.test(item) || /route\.(tsx|jsx|ts)$/.test(item))
170
+ stats.routeFiles++;
171
+ if (/^[A-Z].*\.(tsx|jsx)$/.test(item))
172
+ stats.componentFiles++;
173
+ if (itemRelPath.includes("/api/"))
174
+ stats.apiFiles++;
175
+ if (/schema|model|entity/i.test(item))
176
+ stats.schemaFiles++;
177
+ if (/\.(test|spec)\.(ts|tsx|js|jsx)$/.test(item))
178
+ stats.testFiles++;
179
+ }
180
+ }
181
+ }
182
+ /**
183
+ * Read a file, truncated to MAX_FILE_READ_SIZE
184
+ */
185
+ async readFileSnippet(relativePath) {
186
+ try {
187
+ const fullPath = path.join(this.projectRoot, relativePath);
188
+ const content = await fs.readFile(fullPath, "utf-8");
189
+ const lines = content.split("\n").length;
190
+ return {
191
+ path: relativePath,
192
+ content: content.substring(0, MAX_FILE_READ_SIZE),
193
+ lines,
194
+ };
195
+ }
196
+ catch {
197
+ return null;
198
+ }
199
+ }
200
+ /**
201
+ * Compare a snapshot against context.json and get LLM assessment
202
+ */
203
+ async assessProgress(snapshot, existingContext) {
204
+ // Build a compact representation for the LLM
205
+ const treeCompact = snapshot.fileTree
206
+ .filter((f) => f.type === "file")
207
+ .map((f) => f.path)
208
+ .join("\n");
209
+ const keyFilesCompact = snapshot.keyFiles
210
+ .map((f) => `--- ${f.path} (${f.lines} lines) ---\n${f.content}`)
211
+ .join("\n\n");
212
+ const contextStr = JSON.stringify(existingContext, null, 2).substring(0, 5000);
213
+ const prompt = `You are the Living Brain's Assessment Engine for a MyContext-managed project.
214
+
215
+ TASK: Compare the ACTUAL project file structure against the project's PLANNED context (context.json) and provide a progress assessment.
216
+
217
+ ## ACTUAL FILE STRUCTURE (${snapshot.stats.totalFiles} files, ${snapshot.stats.totalDirs} dirs)
218
+ Stats: ${snapshot.stats.routeFiles} route files, ${snapshot.stats.componentFiles} components, ${snapshot.stats.apiFiles} API routes, ${snapshot.stats.schemaFiles} schema files, ${snapshot.stats.testFiles} test files
219
+
220
+ File tree:
221
+ ${treeCompact.substring(0, 3000)}
222
+
223
+ ## KEY FILES CONTENT
224
+ ${keyFilesCompact.substring(0, 4000)}
225
+
226
+ ## PLANNED CONTEXT (context.json)
227
+ ${contextStr}
228
+
229
+ ## INSTRUCTIONS
230
+ Analyze the gap between PLANNED and ACTUAL. Return valid JSON:
231
+ {
232
+ "overallProgress": <0-100 int>,
233
+ "progressSummary": "<2-3 sentence summary of current state>",
234
+ "diffs": [
235
+ {
236
+ "type": "missing_in_context" | "missing_in_code" | "outdated" | "suggestion",
237
+ "category": "route" | "component" | "entity" | "config" | "general",
238
+ "description": "<what's missing/outdated>",
239
+ "suggestion": "<concrete fix>"
240
+ }
241
+ ],
242
+ "suggestedContextMerge": {
243
+ // Partial context.json structure with suggested additions/updates
244
+ // Only include NEW items that should be added to context.json
245
+ }
246
+ }
247
+
248
+ Rules:
249
+ - "missing_in_context": Code exists but context.json doesn't know about it
250
+ - "missing_in_code": context.json plans it but code doesn't have it yet
251
+ - "outdated": Code has evolved beyond what context.json describes
252
+ - Focus on actionable, specific findings. Max 10 diffs.`;
253
+ try {
254
+ const ai = this.getAICore();
255
+ const report = await ai.generateStructuredText(prompt, "ContextDiffReport");
256
+ return {
257
+ assessedAt: new Date().toISOString(),
258
+ overallProgress: report.overallProgress || 0,
259
+ progressSummary: report.progressSummary || "Assessment complete.",
260
+ diffs: report.diffs || [],
261
+ suggestedContextMerge: report.suggestedContextMerge || {},
262
+ };
263
+ }
264
+ catch (error) {
265
+ return {
266
+ assessedAt: new Date().toISOString(),
267
+ overallProgress: -1,
268
+ progressSummary: `LLM assessment failed: ${error.message}`,
269
+ diffs: [],
270
+ suggestedContextMerge: {},
271
+ };
272
+ }
273
+ }
274
+ /**
275
+ * Display the scan results nicely
276
+ */
277
+ displaySnapshot(snapshot) {
278
+ console.log(chalk_1.default.cyan("\n┌──────────────────────────────────────────────┐"));
279
+ console.log(chalk_1.default.cyan("│") + chalk_1.default.bold.white(" 📂 Project Scan Results") + " ".repeat(22) + chalk_1.default.cyan("│"));
280
+ console.log(chalk_1.default.cyan("├──────────────────────────────────────────────┤"));
281
+ console.log(chalk_1.default.cyan("│") + chalk_1.default.gray(` Files: ${String(snapshot.stats.totalFiles).padEnd(6)} Dirs: ${snapshot.stats.totalDirs}`.padEnd(45)) + chalk_1.default.cyan("│"));
282
+ console.log(chalk_1.default.cyan("│") + chalk_1.default.gray(` Routes: ${String(snapshot.stats.routeFiles).padEnd(6)} Components: ${snapshot.stats.componentFiles}`.padEnd(45)) + chalk_1.default.cyan("│"));
283
+ console.log(chalk_1.default.cyan("│") + chalk_1.default.gray(` API Routes: ${String(snapshot.stats.apiFiles).padEnd(6)} Schemas: ${snapshot.stats.schemaFiles}`.padEnd(45)) + chalk_1.default.cyan("│"));
284
+ console.log(chalk_1.default.cyan("│") + chalk_1.default.gray(` Tests: ${String(snapshot.stats.testFiles).padEnd(6)}`.padEnd(45)) + chalk_1.default.cyan("│"));
285
+ console.log(chalk_1.default.cyan("│") + chalk_1.default.gray(` Key Files: ${snapshot.keyFiles.length} read for analysis`.padEnd(45)) + chalk_1.default.cyan("│"));
286
+ console.log(chalk_1.default.cyan("└──────────────────────────────────────────────┘"));
287
+ }
288
+ /**
289
+ * Display the diff report nicely
290
+ */
291
+ displayReport(report) {
292
+ const progressBar = this.makeProgressBar(report.overallProgress, 20);
293
+ console.log(chalk_1.default.cyan("\n┌──────────────────────────────────────────────┐"));
294
+ console.log(chalk_1.default.cyan("│") + chalk_1.default.bold.white(" 🧠 Context Sync Assessment") + " ".repeat(18) + chalk_1.default.cyan("│"));
295
+ console.log(chalk_1.default.cyan("├──────────────────────────────────────────────┤"));
296
+ console.log(chalk_1.default.cyan("│") + chalk_1.default.white(` Progress: ${progressBar} ${report.overallProgress}%`.padEnd(45)) + chalk_1.default.cyan("│"));
297
+ console.log(chalk_1.default.cyan("│") + chalk_1.default.gray(` ${report.progressSummary.substring(0, 43)}`.padEnd(45)) + chalk_1.default.cyan("│"));
298
+ console.log(chalk_1.default.cyan("└──────────────────────────────────────────────┘"));
299
+ if (report.diffs.length > 0) {
300
+ console.log(chalk_1.default.yellow(`\n📋 Found ${report.diffs.length} items to sync:\n`));
301
+ for (const diff of report.diffs) {
302
+ const icon = {
303
+ missing_in_context: "🔵",
304
+ missing_in_code: "🔴",
305
+ outdated: "🟡",
306
+ suggestion: "💡",
307
+ }[diff.type];
308
+ console.log(` ${icon} [${diff.category}] ${diff.description}`);
309
+ console.log(chalk_1.default.gray(` → ${diff.suggestion}\n`));
310
+ }
311
+ }
312
+ if (Object.keys(report.suggestedContextMerge).length > 0) {
313
+ console.log(chalk_1.default.green("📦 Suggested context.json merge:"));
314
+ console.log(chalk_1.default.gray(JSON.stringify(report.suggestedContextMerge, null, 2).substring(0, 500)));
315
+ }
316
+ }
317
+ /**
318
+ * Get or initialize AICore safely
319
+ */
320
+ getAICore() {
321
+ if (this.ai)
322
+ return this.ai;
323
+ try {
324
+ this.ai = AICore_1.AICore.getInstance();
325
+ }
326
+ catch {
327
+ this.ai = AICore_1.AICore.getInstance({
328
+ fallbackEnabled: true,
329
+ workingDirectory: this.projectRoot,
330
+ });
331
+ }
332
+ return this.ai;
333
+ }
334
+ makeProgressBar(percent, width) {
335
+ if (percent < 0)
336
+ return "❌".padEnd(width);
337
+ const filled = Math.round((percent / 100) * width);
338
+ const empty = width - filled;
339
+ return "█".repeat(filled) + "░".repeat(empty);
340
+ }
341
+ }
342
+ exports.ProjectScanner = ProjectScanner;
343
+ //# sourceMappingURL=ProjectScanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectScanner.js","sourceRoot":"","sources":["../../src/services/ProjectScanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { MegaContext } from "../types/mega-context";
2
+ export declare class ScaffoldAgent {
3
+ private fs;
4
+ private spinner;
5
+ constructor();
6
+ /**
7
+ * Deterministically scaffold the project from the MegaContext
8
+ */
9
+ scaffold(context: MegaContext): Promise<void>;
10
+ /**
11
+ * Generate instant.schema.ts
12
+ */
13
+ private generateSchemaFile;
14
+ /**
15
+ * Generate Next.js App Router structure
16
+ */
17
+ private generateRoutes;
18
+ /**
19
+ * Create .env file with API keys
20
+ */
21
+ private createEnvFile;
22
+ /**
23
+ * Save the MegaContext to .mycontext/context.json
24
+ */
25
+ private saveContext;
26
+ /**
27
+ * Create the .mycontext/ALIGN file
28
+ */
29
+ private createAlign;
30
+ /**
31
+ * Generate a README.md based on the context
32
+ */
33
+ private createReadme;
34
+ }
35
+ //# sourceMappingURL=ScaffoldAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScaffoldAgent.d.ts","sourceRoot":"","sources":["../../src/services/ScaffoldAgent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAOpD,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAA2B;IACrC,OAAO,CAAC,OAAO,CAAkB;;IAMjC;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAsDnD;;OAEG;YACW,kBAAkB;IAoBhC;;OAEG;YACW,cAAc;IA2B5B;;OAEG;YACW,aAAa;IAmB3B;;OAEG;YACW,WAAW;IAMzB;;OAEG;YACW,WAAW;IAqBzB;;OAEG;YACW,YAAY;CA0B3B"}