@noorm/marie-cli 0.1.15 → 0.1.17

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 (103) hide show
  1. package/.marie_visual_verify_1771225696548/progress_bar_check.txt +1 -0
  2. package/SENTINEL.md +33 -0
  3. package/dist/cli-new/components/App.js +3 -1
  4. package/dist/cli-new/components/App.js.map +1 -1
  5. package/dist/cli-new/components/Banner.js +5 -5
  6. package/dist/cli-new/components/Banner.js.map +1 -1
  7. package/dist/cli-new/hooks/useUpdateCheck.js +17 -0
  8. package/dist/cli-new/hooks/useUpdateCheck.js.map +1 -0
  9. package/dist/domain/DomainEntity.js +7 -0
  10. package/dist/domain/DomainEntity.js.map +1 -0
  11. package/dist/extension.cjs +164 -154
  12. package/dist/extension.js +473 -0
  13. package/dist/extension.js.map +1 -0
  14. package/dist/infrastructure/BaseAdapter.js +3 -0
  15. package/dist/infrastructure/BaseAdapter.js.map +1 -0
  16. package/dist/monolith/cli/CliFileSystemPort.js +16 -8
  17. package/dist/monolith/cli/CliFileSystemPort.js.map +1 -1
  18. package/dist/monolith/cli/MarieToolDefinitionsCLI.js +9 -6
  19. package/dist/monolith/cli/MarieToolDefinitionsCLI.js.map +1 -1
  20. package/dist/monolith/cli/services/JoyAutomationServiceCLI.js +1 -1
  21. package/dist/monolith/cli/services/JoyAutomationServiceCLI.js.map +1 -1
  22. package/dist/monolith/infrastructure/ai/core/MarieEngine.js +29 -10
  23. package/dist/monolith/infrastructure/ai/core/MarieEngine.js.map +1 -1
  24. package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js +19 -13
  25. package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js.map +1 -1
  26. package/dist/monolith/infrastructure/ai/core/VscodeFileSystemPort.js +8 -8
  27. package/dist/monolith/infrastructure/ai/core/VscodeFileSystemPort.js.map +1 -1
  28. package/dist/monolith/infrastructure/config/ConfigService.js +2 -22
  29. package/dist/monolith/infrastructure/config/ConfigService.js.map +1 -1
  30. package/dist/monolith/infrastructure/joy/JoyTools.js +535 -0
  31. package/dist/monolith/infrastructure/joy/JoyTools.js.map +1 -0
  32. package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js +14 -13
  33. package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js.map +1 -1
  34. package/dist/monolith/plumbing/analysis/MarieSentinelService.js +23 -3
  35. package/dist/monolith/plumbing/analysis/MarieSentinelService.js.map +1 -1
  36. package/dist/monolith/plumbing/analysis/TestService.js +2 -1
  37. package/dist/monolith/plumbing/analysis/TestService.js.map +1 -1
  38. package/dist/monolith/plumbing/filesystem/FileService.js +22 -10
  39. package/dist/monolith/plumbing/filesystem/FileService.js.map +1 -1
  40. package/dist/monolith/plumbing/utils/EnvironmentUtils.js +59 -0
  41. package/dist/monolith/plumbing/utils/EnvironmentUtils.js.map +1 -0
  42. package/dist/monolith/plumbing/utils/MutexUtils.js +86 -0
  43. package/dist/monolith/plumbing/utils/MutexUtils.js.map +1 -0
  44. package/dist/monolith/runtime/MarieRuntime.js +250 -136
  45. package/dist/monolith/runtime/MarieRuntime.js.map +1 -1
  46. package/dist/monolith/runtime/RuntimeAdapterBase.js +6 -0
  47. package/dist/monolith/runtime/RuntimeAdapterBase.js.map +1 -1
  48. package/dist/monolith/services/JoyAutomationService.js +1 -1
  49. package/dist/monolith/services/JoyAutomationService.js.map +1 -1
  50. package/dist/monolith/services/JoyService.js +1 -1
  51. package/dist/monolith/services/JoyService.js.map +1 -1
  52. package/dist/monolith/services/UpdateService.js +61 -0
  53. package/dist/monolith/services/UpdateService.js.map +1 -0
  54. package/dist/plumbing/BaseTool.js +7 -0
  55. package/dist/plumbing/BaseTool.js.map +1 -0
  56. package/dist/prompts.js +90 -0
  57. package/dist/prompts.js.map +1 -0
  58. package/dist/test_agent_stream_control_plane.js +170 -0
  59. package/dist/test_agent_stream_control_plane.js.map +1 -0
  60. package/dist/test_content_buffer_cap.js +67 -0
  61. package/dist/test_content_buffer_cap.js.map +1 -0
  62. package/dist/test_prefix_tree.js +120 -0
  63. package/dist/test_prefix_tree.js.map +1 -0
  64. package/dist/test_retry_utils.js +169 -0
  65. package/dist/test_retry_utils.js.map +1 -0
  66. package/dist/test_strategy_integration.js +114 -0
  67. package/dist/test_strategy_integration.js.map +1 -0
  68. package/dist/test_streaming_fragility.js +191 -0
  69. package/dist/test_streaming_fragility.js.map +1 -0
  70. package/dist/webview-ui/App.js +16 -0
  71. package/dist/webview-ui/App.js.map +1 -0
  72. package/dist/webview-ui/Providers.js +6 -0
  73. package/dist/webview-ui/Providers.js.map +1 -0
  74. package/dist/webview-ui/components/ApprovalPanel.js +8 -0
  75. package/dist/webview-ui/components/ApprovalPanel.js.map +1 -0
  76. package/dist/webview-ui/components/ChatPanel.js +19 -0
  77. package/dist/webview-ui/components/ChatPanel.js.map +1 -0
  78. package/dist/webview-ui/components/Composer.js +19 -0
  79. package/dist/webview-ui/components/Composer.js.map +1 -0
  80. package/dist/webview-ui/components/HeaderBar.js +5 -0
  81. package/dist/webview-ui/components/HeaderBar.js.map +1 -0
  82. package/dist/webview-ui/components/SessionList.js +14 -0
  83. package/dist/webview-ui/components/SessionList.js.map +1 -0
  84. package/dist/webview-ui/context/WebviewStateContext.js +146 -0
  85. package/dist/webview-ui/context/WebviewStateContext.js.map +1 -0
  86. package/dist/webview-ui/main.css +1 -0
  87. package/dist/webview-ui/main.js +108 -0
  88. package/dist/webview-ui/main.js.map +1 -0
  89. package/dist/webview-ui/types.js +2 -0
  90. package/dist/webview-ui/types.js.map +1 -0
  91. package/dist/webview-ui/vscode.js +4 -0
  92. package/dist/webview-ui/vscode.js.map +1 -0
  93. package/lint_output.txt +705 -0
  94. package/lint_output_v2.txt +711 -0
  95. package/marie-coder-0.1.16.vsix +0 -0
  96. package/package.json +3 -10
  97. package/JOY_ZONING.md +0 -200
  98. package/dist/monolith/tests/FileAppendVerifyTest.js +0 -28
  99. package/dist/monolith/tests/FileAppendVerifyTest.js.map +0 -1
  100. package/dist/monolith/tests/StreamingVerifyTest.js +0 -100
  101. package/dist/monolith/tests/StreamingVerifyTest.js.map +0 -1
  102. package/dist/monolith/tests/VisualProgressTest.js +0 -86
  103. package/dist/monolith/tests/VisualProgressTest.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigService.js","sourceRoot":"","sources":["../../../../src/monolith/infrastructure/config/ConfigService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfigService.js","sourceRoot":"","sources":["../../../../src/monolith/infrastructure/config/ConfigService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,535 @@
1
+ import * as fs from "fs/promises";
2
+ import * as path from "path";
3
+ import { ConfigService } from "../../infrastructure/config/ConfigService.js";
4
+ /**
5
+ * Lazy-load vscode to avoid crashes in CLI mode.
6
+ */
7
+ async function getVscode() {
8
+ try {
9
+ return await import("vscode");
10
+ }
11
+ catch {
12
+ return null;
13
+ }
14
+ }
15
+ export async function logGratitude(message, rootPath) {
16
+ let workspaceRoot = rootPath;
17
+ if (!workspaceRoot) {
18
+ const vscode = await getVscode();
19
+ workspaceRoot =
20
+ vscode?.workspace.workspaceFolders?.[0]?.uri.fsPath || process.cwd();
21
+ }
22
+ const gratitudePath = path.join(workspaceRoot, "GRATITUDE.md");
23
+ const date = new Date().toISOString().split("T")[0];
24
+ const entry = `- **${date}**: ${message}\n`;
25
+ try {
26
+ await fs.appendFile(gratitudePath, entry, "utf-8");
27
+ }
28
+ catch (e) {
29
+ // If file doesn't exist, create it with header
30
+ const header = "# Gratitude Journal\n\nA record of things that have served their purpose and passed on.\n\n";
31
+ await fs.writeFile(gratitudePath, header + entry, "utf-8");
32
+ }
33
+ }
34
+ export async function generateJoyDashboard(rootPath, signal) {
35
+ const { checkCodeHealth } = await import("../../plumbing/analysis/CodeHealthService.js");
36
+ const files = await getAllFiles(rootPath, signal);
37
+ let totalScore = 0;
38
+ let scoredFiles = 0;
39
+ const hallOfFame = [];
40
+ const needsCare = [];
41
+ for (const file of files) {
42
+ if (file.includes("node_modules") ||
43
+ file.includes(".git") ||
44
+ file.includes("dist"))
45
+ continue;
46
+ if (file.endsWith(".ts") ||
47
+ file.endsWith(".js") ||
48
+ file.endsWith(".tsx") ||
49
+ file.endsWith(".jsx")) {
50
+ try {
51
+ const health = await checkCodeHealth(file);
52
+ totalScore += health.joyScore;
53
+ scoredFiles++;
54
+ if (health.joyScore === 100) {
55
+ hallOfFame.push(`- 🏆 **${path.basename(file)}**`);
56
+ }
57
+ else if (health.joyScore < 50) {
58
+ needsCare.push(`- ❤️‍🩹 **${path.basename(file)}** (Score: ${health.joyScore})`);
59
+ }
60
+ }
61
+ catch {
62
+ /* Skip files that can't be analyzed */
63
+ }
64
+ }
65
+ }
66
+ const avgScore = scoredFiles > 0 ? Math.round(totalScore / scoredFiles) : 0;
67
+ // Read Logic for Journals
68
+ const getRecentLines = async (filename, count) => {
69
+ try {
70
+ const content = await fs.readFile(path.join(rootPath, filename), "utf-8");
71
+ const lines = content
72
+ .split("\n")
73
+ .filter((l) => l.trim().length > 0 && !l.startsWith("#"));
74
+ return lines.slice(-count);
75
+ }
76
+ catch {
77
+ return ["*No entries yet.*"];
78
+ }
79
+ };
80
+ const recentGratitude = await getRecentLines("GRATITUDE.md", 3);
81
+ const recentReflections = await getRecentLines("JOURNAL.md", 3);
82
+ let output = `# Joy Dashboard 🌟\n\n`;
83
+ output += `**Workspace Joy Score**: ${avgScore}/100\n\n`;
84
+ if (avgScore >= 90)
85
+ output += `*Your workspace is radiating joy!* ✨\n\n`;
86
+ else if (avgScore >= 70)
87
+ output += `*A tidy and functional space. Keep going!* 🌿\n\n`;
88
+ else
89
+ output += `*Your workspace needs some love and attention.* ❤️\n\n`;
90
+ output += `## 🏆 Hall of Fame (Perfect Score)\n${hallOfFame.length > 0 ? hallOfFame.join("\n") : "*No perfect files yet. Keep polishing!*"}\n\n`;
91
+ output += `## ❤️‍🩹 Needs Care (Score < 50)\n${needsCare.length > 0 ? needsCare.join("\n") : "*Everything is in decent shape!*"}\n\n`;
92
+ output += `## 🙏 Recent Gratitude\n${recentGratitude.join("\n")}\n\n`;
93
+ output += `## 📓 Recent Reflections\n${recentReflections.join("\n")}\n`;
94
+ const dashboardPath = path.join(rootPath, "JOY.md");
95
+ await fs.writeFile(dashboardPath, output, "utf-8");
96
+ return `Joy Dashboard generated at ${dashboardPath}`;
97
+ }
98
+ export async function cherishFile(filePath) {
99
+ const now = new Date();
100
+ await fs.utimes(filePath, now, now);
101
+ return `File '${path.basename(filePath)}' has been cherished. It is deemed active and sparks joy.`;
102
+ }
103
+ export async function foldCode(filePath) {
104
+ const vscode = await getVscode();
105
+ if (!vscode || !vscode.workspace) {
106
+ return `Mental folding successful for '${path.basename(filePath)}'. (Full formatting requires VS Code environment)`;
107
+ }
108
+ const uri = vscode.Uri.file(filePath);
109
+ try {
110
+ const doc = await vscode.workspace.openTextDocument(uri);
111
+ const editor = await vscode.window.showTextDocument(doc);
112
+ // The Art of Folding: Organize Imports then Format
113
+ await vscode.commands.executeCommand("editor.action.organizeImports");
114
+ await vscode.commands.executeCommand("editor.action.formatDocument");
115
+ await doc.save();
116
+ // Close the editor to keep the space tidy (optional, but nice)
117
+ await vscode.commands.executeCommand("workbench.action.closeActiveEditor");
118
+ return `File '${path.basename(filePath)}' has been folded neatly.`;
119
+ }
120
+ catch (e) {
121
+ return `Could not fold '${path.basename(filePath)}': ${e.message}`;
122
+ }
123
+ }
124
+ export async function generateTidyChecklist(rootPath, signal) {
125
+ const { checkCodeHealth } = await import("../../plumbing/analysis/CodeHealthService.js");
126
+ const files = await getAllFiles(rootPath, signal);
127
+ const clothes = []; // Source code
128
+ const papers = []; // Docs
129
+ const komono = []; // Config/Misc
130
+ const sentimental = []; // Aged files (> 90 days)
131
+ const now = new Date();
132
+ const SENTIMENTAL_AGE_MS = 90 * 24 * 60 * 60 * 1000; // 90 days
133
+ let output = "# Tidying Checklist 🧹\n\n";
134
+ for (const file of files) {
135
+ if (file.includes("node_modules") ||
136
+ file.includes(".git") ||
137
+ file.includes("dist"))
138
+ continue;
139
+ // Check for Sentimental items (Age)
140
+ try {
141
+ const stats = await fs.stat(file);
142
+ const age = now.getTime() - stats.mtime.getTime();
143
+ if (age > SENTIMENTAL_AGE_MS) {
144
+ sentimental.push(`- [ ] **${path.basename(file)}** (Last modified: ${stats.mtime.toISOString().split("T")[0]})`);
145
+ }
146
+ }
147
+ catch {
148
+ /* Ignore stat errors for individual files */
149
+ }
150
+ if (file.endsWith(".ts") ||
151
+ file.endsWith(".js") ||
152
+ file.endsWith(".tsx") ||
153
+ file.endsWith(".jsx")) {
154
+ // Check joy score for source code
155
+ try {
156
+ const health = await checkCodeHealth(file);
157
+ if (health.joyScore < 80) {
158
+ clothes.push(`- [ ] **${path.basename(file)}** (Score: ${health.joyScore}): ${health.joyStatus}`);
159
+ }
160
+ }
161
+ catch {
162
+ /* Skip files that can't be analyzed */
163
+ }
164
+ }
165
+ else if (file.endsWith(".md") || file.endsWith(".txt")) {
166
+ papers.push(`- [ ] ${path.basename(file)}`);
167
+ }
168
+ else if (file.endsWith(".json") || file.endsWith(".config")) {
169
+ komono.push(`- [ ] ${path.basename(file)}`);
170
+ }
171
+ }
172
+ if (clothes.length > 0) {
173
+ output +=
174
+ "## 👕 Clothes (Source Code)\n*Focus on files with low Joy Scores.*\n";
175
+ output += clothes.join("\n") + "\n\n";
176
+ }
177
+ if (papers.length > 0) {
178
+ output += "## 📄 Papers (Documentation)\n*Ensure these are up to date.*\n";
179
+ output += papers.join("\n") + "\n\n";
180
+ }
181
+ if (komono.length > 0) {
182
+ output +=
183
+ "## 🧶 Komono (Config & Misc)\n*Is this configuration still essential?*\n";
184
+ output += komono.join("\n") + "\n\n";
185
+ }
186
+ if (sentimental.length > 0) {
187
+ output +=
188
+ "## 🧸 Sentimental (Legacy)\n*These items haven't been touched in over 90 days. Do they still serve a purpose?*\n";
189
+ output += sentimental.join("\n") + "\n\n";
190
+ }
191
+ if (clothes.length === 0 &&
192
+ papers.length === 0 &&
193
+ komono.length === 0 &&
194
+ sentimental.length === 0) {
195
+ output += "Your workspace is pristine! ✨";
196
+ }
197
+ const tidyPath = path.join(rootPath, "TIDYING.md");
198
+ await fs.writeFile(tidyPath, output, "utf-8");
199
+ return `Tidy checklist generated at ${tidyPath}`;
200
+ }
201
+ export async function ensureJoyZoningFolders(rootPath) {
202
+ const zones = ["domain", "infrastructure", "plumbing"];
203
+ const srcPath = path.join(rootPath, "src");
204
+ try {
205
+ await fs.mkdir(srcPath, { recursive: true });
206
+ for (const zone of zones) {
207
+ const zonePath = path.join(srcPath, zone);
208
+ await fs.mkdir(zonePath, { recursive: true });
209
+ // Add a friendly README if missing
210
+ const readmePath = path.join(zonePath, "README.md");
211
+ try {
212
+ await fs.access(readmePath);
213
+ }
214
+ catch {
215
+ const zoneCapitalized = zone.charAt(0).toUpperCase() + zone.slice(1);
216
+ await fs.writeFile(readmePath, `# ${zoneCapitalized} Zone\n\nThis directory belongs to the ${zone.toUpperCase()} zone of the JOY concept.\n`, "utf-8");
217
+ }
218
+ }
219
+ }
220
+ catch (e) {
221
+ console.error("Failed to ensure JOY folders:", e);
222
+ }
223
+ }
224
+ export function autoZonePath(fileName, intent) {
225
+ const lowerIntent = intent.toLowerCase();
226
+ const lowerFileName = fileName.toLowerCase();
227
+ // Heuristics for Joyful (Domain)
228
+ if (lowerIntent.includes("logic") ||
229
+ lowerIntent.includes("business") ||
230
+ lowerIntent.includes("core") ||
231
+ lowerIntent.includes("rule") ||
232
+ lowerIntent.includes("domain") ||
233
+ lowerFileName.includes("model")) {
234
+ if (lowerFileName.includes("entity"))
235
+ return "src/domain/entities";
236
+ if (lowerFileName.includes("value"))
237
+ return "src/domain/values";
238
+ if (lowerFileName.includes("event"))
239
+ return "src/domain/events";
240
+ return "src/domain";
241
+ }
242
+ // Heuristics for Infrastructure
243
+ if (lowerIntent.includes("service") ||
244
+ lowerIntent.includes("api") ||
245
+ lowerIntent.includes("database") ||
246
+ lowerIntent.includes("adapter") ||
247
+ lowerIntent.includes("infrastructure") ||
248
+ lowerIntent.includes("client")) {
249
+ if (lowerFileName.includes("gateway") || lowerFileName.includes("client"))
250
+ return "src/infrastructure/gateways";
251
+ if (lowerFileName.includes("adapter"))
252
+ return "src/infrastructure/adapters";
253
+ if (lowerFileName.includes("repository"))
254
+ return "src/infrastructure/repositories";
255
+ return "src/infrastructure";
256
+ }
257
+ // Heuristics for Plumbing
258
+ if (lowerIntent.includes("util") ||
259
+ lowerIntent.includes("tool") ||
260
+ lowerIntent.includes("system") ||
261
+ lowerIntent.includes("format") ||
262
+ lowerIntent.includes("parse") ||
263
+ lowerIntent.includes("plumbing")) {
264
+ if (lowerFileName.includes("tool"))
265
+ return "src/plumbing/tools";
266
+ if (lowerFileName.includes("util"))
267
+ return "src/plumbing/utils";
268
+ return "src/plumbing";
269
+ }
270
+ return "src"; // Default fallback
271
+ }
272
+ export async function proposeReorganization(rootPath, signal) {
273
+ const files = await getAllFiles(rootPath, signal);
274
+ const proposals = [];
275
+ for (const file of files) {
276
+ if (file.includes("node_modules") ||
277
+ file.includes(".git") ||
278
+ file.includes("dist"))
279
+ continue;
280
+ if (!file.endsWith(".ts") &&
281
+ !file.endsWith(".tsx") &&
282
+ !file.endsWith(".js"))
283
+ continue;
284
+ const relativePath = path.relative(rootPath, file);
285
+ const content = await fs.readFile(file, "utf-8");
286
+ const suggestedZone = autoZonePath(path.basename(file), content);
287
+ const suggestedPath = path.join(suggestedZone, path.basename(file));
288
+ if (!relativePath.startsWith(suggestedZone)) {
289
+ proposals.push({
290
+ file: path.basename(file),
291
+ currentPath: relativePath,
292
+ suggestedPath: suggestedPath,
293
+ reason: `Heuristics suggest this belongs in ${suggestedZone} based on purpose and content.`,
294
+ });
295
+ }
296
+ }
297
+ return proposals;
298
+ }
299
+ export async function synthesizeZoneManuals(rootPath) {
300
+ const zones = ["domain", "infrastructure", "plumbing"];
301
+ let updatedCount = 0;
302
+ for (const zone of zones) {
303
+ const zonePath = path.join(rootPath, "src", zone);
304
+ try {
305
+ const entries = await fs.readdir(zonePath, { withFileTypes: true });
306
+ const files = entries.filter((e) => e.isFile() && !e.name.startsWith("."));
307
+ if (files.length === 0)
308
+ continue;
309
+ const fileList = files.map((f) => `- \`${f.name}\``).join("\n");
310
+ const summary = `This zone currently contains ${files.length} sprouts that define our ${zone.toUpperCase()} layer.`;
311
+ const readmePath = path.join(zonePath, "README.md");
312
+ const content = `# ${zone.charAt(0).toUpperCase() + zone.slice(1)} Zone\n\n${summary}\n\n### Current Inhabitants:\n${fileList}\n\n*Last synthesized by Marie on ${new Date().toLocaleDateString()}*`;
313
+ await fs.writeFile(readmePath, content, "utf-8");
314
+ updatedCount++;
315
+ }
316
+ catch (e) {
317
+ console.error(`Failed to synthesize manual for ${zone}:`, e);
318
+ }
319
+ }
320
+ return `Synthesized ${updatedCount} zone manuals. The knowledge is now fresh. ✨`;
321
+ }
322
+ export async function executeRestoration(rootPath, signal) {
323
+ const proposals = await proposeReorganization(rootPath, signal);
324
+ if (proposals.length === 0)
325
+ return "No restoration needed. Project order is absolute. ✨";
326
+ let movedCount = 0;
327
+ for (const p of proposals) {
328
+ try {
329
+ const from = path.join(rootPath, p.currentPath);
330
+ const to = path.join(rootPath, p.suggestedPath);
331
+ await fs.mkdir(path.dirname(to), { recursive: true });
332
+ await fs.rename(from, to);
333
+ movedCount++;
334
+ }
335
+ catch (e) {
336
+ console.error(`Restoration failed for ${p.file}:`, e);
337
+ }
338
+ }
339
+ return `Restoration complete. Moved ${movedCount} files to their rightful homes. 🌸`;
340
+ }
341
+ export async function scaffoldZoneAbstractions(rootPath) {
342
+ const zones = [
343
+ {
344
+ name: "domain",
345
+ file: "DomainEntity.ts",
346
+ content: `export abstract class DomainEntity {\n constructor(public readonly id: string) {}\n // The Domain is pure logic. No dependencies here. ✨\n}\n`,
347
+ },
348
+ {
349
+ name: "infrastructure",
350
+ file: "BaseAdapter.ts",
351
+ content: `export abstract class BaseAdapter {\n // Infrastructure connects the Domain to the world. 🌍\n protected abstract connect(): Promise<void>;\n}\n`,
352
+ },
353
+ {
354
+ name: "plumbing",
355
+ file: "BaseTool.ts",
356
+ content: `export abstract class BaseTool {\n // Plumbing is mechanical. Low-level work. 🔧\n protected format(input: string): string {\n return input.trim();\n }\n}\n`,
357
+ },
358
+ ];
359
+ let createdCount = 0;
360
+ for (const zone of zones) {
361
+ const zonePath = path.join(rootPath, "src", zone.name);
362
+ const filePath = path.join(zonePath, zone.file);
363
+ try {
364
+ await fs.mkdir(zonePath, { recursive: true });
365
+ try {
366
+ await fs.access(filePath);
367
+ }
368
+ catch {
369
+ await fs.writeFile(filePath, zone.content, "utf-8");
370
+ createdCount++;
371
+ }
372
+ }
373
+ catch (e) {
374
+ console.error(`Scaffolding failed for ${zone.name}:`, e);
375
+ }
376
+ }
377
+ return createdCount > 0
378
+ ? `Scaffolded ${createdCount} zone abstractions. The patterns are set. 🏛️`
379
+ : "Zones are already well-guarded.";
380
+ }
381
+ export async function sowFeature(rootPath, featureName, intent) {
382
+ const zones = [
383
+ {
384
+ name: "domain",
385
+ suffix: "Entity.ts",
386
+ comment: "Core logic and business rules. Purity and intent reside here. ✨",
387
+ },
388
+ {
389
+ name: "infrastructure",
390
+ suffix: "Repository.ts",
391
+ comment: "Connecting the core to the world. Adapters and data reside here. 🌍",
392
+ },
393
+ {
394
+ name: "plumbing",
395
+ suffix: "Utils.ts",
396
+ comment: "The mechanical support. Technical utilities reside here. 🔧",
397
+ },
398
+ ];
399
+ const kebabName = featureName
400
+ .replace(/([a-z0-9])([A-Z])/g, "$1_$2")
401
+ .toLowerCase();
402
+ const pascalName = featureName.charAt(0).toUpperCase() + featureName.slice(1);
403
+ let createdCount = 0;
404
+ for (const zone of zones) {
405
+ const zonePath = path.join(rootPath, "src", zone.name, kebabName);
406
+ const fileName = `${pascalName}${zone.suffix}`;
407
+ const filePath = path.join(zonePath, fileName);
408
+ const content = `/**\n * ${pascalName} ${zone.name.charAt(0).toUpperCase() + zone.name.slice(1)}\n * Intent: ${intent}\n * \n * ${zone.comment}\n */\n\nexport class ${pascalName}${zone.suffix.replace(".ts", "")} {\n // A new sprout in the ${zone.name} zone.\n}\n`;
409
+ try {
410
+ await fs.mkdir(zonePath, { recursive: true });
411
+ await fs.writeFile(filePath, content, "utf-8");
412
+ createdCount++;
413
+ }
414
+ catch (e) {
415
+ console.error(`Sowing failed for ${zone.name}:`, e);
416
+ }
417
+ }
418
+ return `Successfully sowed '${featureName}' across ${createdCount} JOY zones. Your feature has taken root. 🌱`;
419
+ }
420
+ export async function proposeClustering(rootPath) {
421
+ const zones = ["domain", "infrastructure", "plumbing"];
422
+ const proposals = [];
423
+ for (const zone of zones) {
424
+ const zonePath = path.join(rootPath, "src", zone);
425
+ try {
426
+ const entries = await fs.readdir(zonePath, { withFileTypes: true });
427
+ const files = entries.filter((e) => e.isFile() && !e.name.startsWith("."));
428
+ if (files.length > 10) {
429
+ // Heuristic: suggest clusters based on common prefixes/suffixes
430
+ const names = files.map((f) => f.name);
431
+ const suffixes = [
432
+ "Service",
433
+ "Repository",
434
+ "Entity",
435
+ "Tool",
436
+ "Util",
437
+ "Adapter",
438
+ ];
439
+ const clusters = suffixes.filter((s) => names.some((n) => n.includes(s)));
440
+ proposals.push({
441
+ zone,
442
+ fileCount: files.length,
443
+ suggestedClusters: clusters.length > 0 ? clusters : ["common", "core", "shared"],
444
+ reason: `The ${zone} zone is becoming a bit crowded with ${files.length} files. Clustering will restore clarity.`,
445
+ });
446
+ }
447
+ }
448
+ catch {
449
+ /* Zone directory may not exist yet */
450
+ }
451
+ }
452
+ return proposals;
453
+ }
454
+ export async function isProjectJoyful(rootPath) {
455
+ try {
456
+ const zones = ["src/domain", "src/infrastructure", "src/plumbing"];
457
+ for (const zone of zones) {
458
+ await fs.access(path.join(rootPath, zone));
459
+ }
460
+ return true;
461
+ }
462
+ catch {
463
+ return false;
464
+ }
465
+ }
466
+ export async function executeGenesisRitual(rootPath, signal) {
467
+ const files = await getAllFiles(rootPath, signal);
468
+ let totalMoved = 0;
469
+ for (const file of files) {
470
+ if (file.includes("node_modules") ||
471
+ file.includes(".git") ||
472
+ file.includes("dist"))
473
+ continue;
474
+ if (!file.endsWith(".ts") &&
475
+ !file.endsWith(".tsx") &&
476
+ !file.endsWith(".js"))
477
+ continue;
478
+ const relativePath = path.relative(rootPath, file);
479
+ // Skip if already in JOY structure
480
+ if (relativePath.startsWith("src/domain") ||
481
+ relativePath.startsWith("src/infrastructure") ||
482
+ relativePath.startsWith("src/plumbing"))
483
+ continue;
484
+ const content = await fs.readFile(file, "utf-8");
485
+ const suggestedZone = autoZonePath(path.basename(file), content);
486
+ const targetPath = path.join(rootPath, suggestedZone, path.basename(file));
487
+ try {
488
+ await fs.mkdir(path.dirname(targetPath), { recursive: true });
489
+ await fs.rename(file, targetPath);
490
+ totalMoved++;
491
+ }
492
+ catch (e) {
493
+ console.error(`Genesis move failed for ${file}:`, e);
494
+ }
495
+ }
496
+ await ensureJoyZoningFolders(rootPath);
497
+ await synthesizeZoneManuals(rootPath);
498
+ return `Genesis Ritual complete. Converted ${totalMoved} files to the JOY ecosystem. Your project is reborn. ✨`;
499
+ }
500
+ async function getAllFiles(dir, signal) {
501
+ const results = [];
502
+ const excludedDirs = new Set(ConfigService.getExcludedFiles());
503
+ const MAX_FILES = 5000;
504
+ async function scan(directory) {
505
+ if (signal?.aborted || results.length >= MAX_FILES)
506
+ return;
507
+ try {
508
+ const entries = await fs.readdir(directory, { withFileTypes: true });
509
+ for (const entry of entries) {
510
+ if (signal?.aborted || results.length >= MAX_FILES)
511
+ return;
512
+ const fullPath = path.join(directory, entry.name);
513
+ if (entry.isDirectory()) {
514
+ if (!excludedDirs.has(entry.name)) {
515
+ await scan(fullPath);
516
+ }
517
+ }
518
+ else {
519
+ results.push(fullPath);
520
+ }
521
+ }
522
+ }
523
+ catch (e) {
524
+ // Ignore errors for unreadable directories
525
+ }
526
+ }
527
+ try {
528
+ await scan(dir);
529
+ }
530
+ catch (e) {
531
+ console.error(`[JoyTools] Scan failed for ${dir}:`, e);
532
+ }
533
+ return results;
534
+ }
535
+ //# sourceMappingURL=JoyTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JoyTools.js","sourceRoot":"","sources":["../../../../src/monolith/infrastructure/joy/JoyTools.ts"],"names":[],"mappings":"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"}