@noorm/marie-cli 0.1.0

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 (193) hide show
  1. package/JOY_ZONING.md +200 -0
  2. package/LICENSE.md +190 -0
  3. package/README.md +94 -0
  4. package/dist/cli-new/components/App.js +138 -0
  5. package/dist/cli-new/components/App.js.map +1 -0
  6. package/dist/cli-new/components/ApprovalDialog.js +31 -0
  7. package/dist/cli-new/components/ApprovalDialog.js.map +1 -0
  8. package/dist/cli-new/components/Banner.js +23 -0
  9. package/dist/cli-new/components/Banner.js.map +1 -0
  10. package/dist/cli-new/components/ChatArea.js +49 -0
  11. package/dist/cli-new/components/ChatArea.js.map +1 -0
  12. package/dist/cli-new/components/Header.js +20 -0
  13. package/dist/cli-new/components/Header.js.map +1 -0
  14. package/dist/cli-new/components/InputArea.js +97 -0
  15. package/dist/cli-new/components/InputArea.js.map +1 -0
  16. package/dist/cli-new/components/MessageBubble.js +114 -0
  17. package/dist/cli-new/components/MessageBubble.js.map +1 -0
  18. package/dist/cli-new/components/SessionSwitcher.js +46 -0
  19. package/dist/cli-new/components/SessionSwitcher.js.map +1 -0
  20. package/dist/cli-new/components/SetupWizard.js +283 -0
  21. package/dist/cli-new/components/SetupWizard.js.map +1 -0
  22. package/dist/cli-new/components/ToolCallDisplay.js +45 -0
  23. package/dist/cli-new/components/ToolCallDisplay.js.map +1 -0
  24. package/dist/cli-new/hooks/useGit.js +99 -0
  25. package/dist/cli-new/hooks/useGit.js.map +1 -0
  26. package/dist/cli-new/hooks/useMarie.js +249 -0
  27. package/dist/cli-new/hooks/useMarie.js.map +1 -0
  28. package/dist/cli-new/hooks/useSessions.js +75 -0
  29. package/dist/cli-new/hooks/useSessions.js.map +1 -0
  30. package/dist/cli-new/index.js +52 -0
  31. package/dist/cli-new/index.js.map +1 -0
  32. package/dist/cli-new/styles/theme.js +68 -0
  33. package/dist/cli-new/styles/theme.js.map +1 -0
  34. package/dist/cli-new/types/cli.js +2 -0
  35. package/dist/cli-new/types/cli.js.map +1 -0
  36. package/dist/extension.cjs +655 -0
  37. package/dist/monolith/adapters/CliMarieAdapter.js +72 -0
  38. package/dist/monolith/adapters/CliMarieAdapter.js.map +1 -0
  39. package/dist/monolith/adapters/VscodeMarieAdapter.js +81 -0
  40. package/dist/monolith/adapters/VscodeMarieAdapter.js.map +1 -0
  41. package/dist/monolith/cli/CliFileSystemPort.js +83 -0
  42. package/dist/monolith/cli/CliFileSystemPort.js.map +1 -0
  43. package/dist/monolith/cli/MarieToolDefinitionsCLI.js +438 -0
  44. package/dist/monolith/cli/MarieToolDefinitionsCLI.js.map +1 -0
  45. package/dist/monolith/cli/index.js +272 -0
  46. package/dist/monolith/cli/index.js.map +1 -0
  47. package/dist/monolith/cli/services/JoyAutomationServiceCLI.js +80 -0
  48. package/dist/monolith/cli/services/JoyAutomationServiceCLI.js.map +1 -0
  49. package/dist/monolith/cli/services/JoyServiceCLI.js +63 -0
  50. package/dist/monolith/cli/services/JoyServiceCLI.js.map +1 -0
  51. package/dist/monolith/cli/storage.js +119 -0
  52. package/dist/monolith/cli/storage.js.map +1 -0
  53. package/dist/monolith/domain/joy/JoyTools.js +513 -0
  54. package/dist/monolith/domain/joy/JoyTools.js.map +1 -0
  55. package/dist/monolith/domain/joy/RitualService.js +51 -0
  56. package/dist/monolith/domain/joy/RitualService.js.map +1 -0
  57. package/dist/monolith/domain/marie/MarieTypes.js +2 -0
  58. package/dist/monolith/domain/marie/MarieTypes.js.map +1 -0
  59. package/dist/monolith/infrastructure/ai/agents/MarieAscendant.js +230 -0
  60. package/dist/monolith/infrastructure/ai/agents/MarieAscendant.js.map +1 -0
  61. package/dist/monolith/infrastructure/ai/agents/MarieYOLO.js +207 -0
  62. package/dist/monolith/infrastructure/ai/agents/MarieYOLO.js.map +1 -0
  63. package/dist/monolith/infrastructure/ai/context/ContextArchiveService.js +129 -0
  64. package/dist/monolith/infrastructure/ai/context/ContextArchiveService.js.map +1 -0
  65. package/dist/monolith/infrastructure/ai/context/ContextManager.js +118 -0
  66. package/dist/monolith/infrastructure/ai/context/ContextManager.js.map +1 -0
  67. package/dist/monolith/infrastructure/ai/core/FileSystemPort.js +2 -0
  68. package/dist/monolith/infrastructure/ai/core/FileSystemPort.js.map +1 -0
  69. package/dist/monolith/infrastructure/ai/core/GhostPort.js +2 -0
  70. package/dist/monolith/infrastructure/ai/core/GhostPort.js.map +1 -0
  71. package/dist/monolith/infrastructure/ai/core/MarieAscensionTypes.js +2 -0
  72. package/dist/monolith/infrastructure/ai/core/MarieAscensionTypes.js.map +1 -0
  73. package/dist/monolith/infrastructure/ai/core/MarieEngine.js +590 -0
  74. package/dist/monolith/infrastructure/ai/core/MarieEngine.js.map +1 -0
  75. package/dist/monolith/infrastructure/ai/core/MarieEventDispatcher.js +161 -0
  76. package/dist/monolith/infrastructure/ai/core/MarieEventDispatcher.js.map +1 -0
  77. package/dist/monolith/infrastructure/ai/core/MarieLockManager.js +121 -0
  78. package/dist/monolith/infrastructure/ai/core/MarieLockManager.js.map +1 -0
  79. package/dist/monolith/infrastructure/ai/core/MarieProgressTracker.js +256 -0
  80. package/dist/monolith/infrastructure/ai/core/MarieProgressTracker.js.map +1 -0
  81. package/dist/monolith/infrastructure/ai/core/MariePulseService.js +67 -0
  82. package/dist/monolith/infrastructure/ai/core/MariePulseService.js.map +1 -0
  83. package/dist/monolith/infrastructure/ai/core/MarieResponse.js +101 -0
  84. package/dist/monolith/infrastructure/ai/core/MarieResponse.js.map +1 -0
  85. package/dist/monolith/infrastructure/ai/core/MarieSanitizer.js +86 -0
  86. package/dist/monolith/infrastructure/ai/core/MarieSanitizer.js.map +1 -0
  87. package/dist/monolith/infrastructure/ai/core/MarieSession.js +202 -0
  88. package/dist/monolith/infrastructure/ai/core/MarieSession.js.map +1 -0
  89. package/dist/monolith/infrastructure/ai/core/MarieStabilityMonitor.js +58 -0
  90. package/dist/monolith/infrastructure/ai/core/MarieStabilityMonitor.js.map +1 -0
  91. package/dist/monolith/infrastructure/ai/core/MarieToolMender.js +127 -0
  92. package/dist/monolith/infrastructure/ai/core/MarieToolMender.js.map +1 -0
  93. package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js +548 -0
  94. package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js.map +1 -0
  95. package/dist/monolith/infrastructure/ai/core/MarieYOLOTypes.js +2 -0
  96. package/dist/monolith/infrastructure/ai/core/MarieYOLOTypes.js.map +1 -0
  97. package/dist/monolith/infrastructure/ai/core/ReasoningBudget.js +125 -0
  98. package/dist/monolith/infrastructure/ai/core/ReasoningBudget.js.map +1 -0
  99. package/dist/monolith/infrastructure/ai/core/VscodeFileSystemPort.js +30 -0
  100. package/dist/monolith/infrastructure/ai/core/VscodeFileSystemPort.js.map +1 -0
  101. package/dist/monolith/infrastructure/ai/providers/AIProvider.js +2 -0
  102. package/dist/monolith/infrastructure/ai/providers/AIProvider.js.map +1 -0
  103. package/dist/monolith/infrastructure/ai/providers/AnthropicProvider.js +148 -0
  104. package/dist/monolith/infrastructure/ai/providers/AnthropicProvider.js.map +1 -0
  105. package/dist/monolith/infrastructure/ai/providers/CerebrasProvider.js +208 -0
  106. package/dist/monolith/infrastructure/ai/providers/CerebrasProvider.js.map +1 -0
  107. package/dist/monolith/infrastructure/ai/providers/OpenRouterProvider.js +404 -0
  108. package/dist/monolith/infrastructure/ai/providers/OpenRouterProvider.js.map +1 -0
  109. package/dist/monolith/infrastructure/ai/providers/OpenRouterStreamParser.js +283 -0
  110. package/dist/monolith/infrastructure/ai/providers/OpenRouterStreamParser.js.map +1 -0
  111. package/dist/monolith/infrastructure/config/ConfigService.js +398 -0
  112. package/dist/monolith/infrastructure/config/ConfigService.js.map +1 -0
  113. package/dist/monolith/infrastructure/services/MarieMemoryStore.js +140 -0
  114. package/dist/monolith/infrastructure/services/MarieMemoryStore.js.map +1 -0
  115. package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js +1568 -0
  116. package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js.map +1 -0
  117. package/dist/monolith/infrastructure/tools/PureStreamParser.js +147 -0
  118. package/dist/monolith/infrastructure/tools/PureStreamParser.js.map +1 -0
  119. package/dist/monolith/infrastructure/tools/SharedToolDefinitions.js +223 -0
  120. package/dist/monolith/infrastructure/tools/SharedToolDefinitions.js.map +1 -0
  121. package/dist/monolith/infrastructure/tools/ToolRegistry.js +29 -0
  122. package/dist/monolith/infrastructure/tools/ToolRegistry.js.map +1 -0
  123. package/dist/monolith/infrastructure/tools/ToolUtils.js +59 -0
  124. package/dist/monolith/infrastructure/tools/ToolUtils.js.map +1 -0
  125. package/dist/monolith/plumbing/analysis/CodeHealthService.js +146 -0
  126. package/dist/monolith/plumbing/analysis/CodeHealthService.js.map +1 -0
  127. package/dist/monolith/plumbing/analysis/ComplexityService.js +43 -0
  128. package/dist/monolith/plumbing/analysis/ComplexityService.js.map +1 -0
  129. package/dist/monolith/plumbing/analysis/DependencyService.js +51 -0
  130. package/dist/monolith/plumbing/analysis/DependencyService.js.map +1 -0
  131. package/dist/monolith/plumbing/analysis/DiscoveryService.js +49 -0
  132. package/dist/monolith/plumbing/analysis/DiscoveryService.js.map +1 -0
  133. package/dist/monolith/plumbing/analysis/JoyMapService.js +66 -0
  134. package/dist/monolith/plumbing/analysis/JoyMapService.js.map +1 -0
  135. package/dist/monolith/plumbing/analysis/LintService.js +132 -0
  136. package/dist/monolith/plumbing/analysis/LintService.js.map +1 -0
  137. package/dist/monolith/plumbing/analysis/MarieSentinelService.js +276 -0
  138. package/dist/monolith/plumbing/analysis/MarieSentinelService.js.map +1 -0
  139. package/dist/monolith/plumbing/analysis/QualityGuardrailService.js +119 -0
  140. package/dist/monolith/plumbing/analysis/QualityGuardrailService.js.map +1 -0
  141. package/dist/monolith/plumbing/analysis/SurgicalMender.js +70 -0
  142. package/dist/monolith/plumbing/analysis/SurgicalMender.js.map +1 -0
  143. package/dist/monolith/plumbing/analysis/TestService.js +104 -0
  144. package/dist/monolith/plumbing/analysis/TestService.js.map +1 -0
  145. package/dist/monolith/plumbing/filesystem/FileService.js +406 -0
  146. package/dist/monolith/plumbing/filesystem/FileService.js.map +1 -0
  147. package/dist/monolith/plumbing/filesystem/PathResolver.js +26 -0
  148. package/dist/monolith/plumbing/filesystem/PathResolver.js.map +1 -0
  149. package/dist/monolith/plumbing/git/GitService.js +71 -0
  150. package/dist/monolith/plumbing/git/GitService.js.map +1 -0
  151. package/dist/monolith/plumbing/lsp/SymbolService.js +36 -0
  152. package/dist/monolith/plumbing/lsp/SymbolService.js.map +1 -0
  153. package/dist/monolith/plumbing/terminal/ProcessRegistry.js +31 -0
  154. package/dist/monolith/plumbing/terminal/ProcessRegistry.js.map +1 -0
  155. package/dist/monolith/plumbing/terminal/TerminalService.js +180 -0
  156. package/dist/monolith/plumbing/terminal/TerminalService.js.map +1 -0
  157. package/dist/monolith/plumbing/ui/DecorationService.js +54 -0
  158. package/dist/monolith/plumbing/ui/DecorationService.js.map +1 -0
  159. package/dist/monolith/plumbing/utils/ErrorUtils.js +11 -0
  160. package/dist/monolith/plumbing/utils/ErrorUtils.js.map +1 -0
  161. package/dist/monolith/plumbing/utils/JsonUtils.js +360 -0
  162. package/dist/monolith/plumbing/utils/JsonUtils.js.map +1 -0
  163. package/dist/monolith/plumbing/utils/PrefixTree.js +153 -0
  164. package/dist/monolith/plumbing/utils/PrefixTree.js.map +1 -0
  165. package/dist/monolith/plumbing/utils/RetryUtils.js +141 -0
  166. package/dist/monolith/plumbing/utils/RetryUtils.js.map +1 -0
  167. package/dist/monolith/plumbing/utils/StreamTagDetector.js +128 -0
  168. package/dist/monolith/plumbing/utils/StreamTagDetector.js.map +1 -0
  169. package/dist/monolith/plumbing/utils/StringUtils.js +97 -0
  170. package/dist/monolith/plumbing/utils/StringUtils.js.map +1 -0
  171. package/dist/monolith/plumbing/utils/TimeoutUtils.js +21 -0
  172. package/dist/monolith/plumbing/utils/TimeoutUtils.js.map +1 -0
  173. package/dist/monolith/runtime/MarieRuntime.js +354 -0
  174. package/dist/monolith/runtime/MarieRuntime.js.map +1 -0
  175. package/dist/monolith/runtime/RuntimeAdapterBase.js +59 -0
  176. package/dist/monolith/runtime/RuntimeAdapterBase.js.map +1 -0
  177. package/dist/monolith/runtime/providerFactory.js +11 -0
  178. package/dist/monolith/runtime/providerFactory.js.map +1 -0
  179. package/dist/monolith/runtime/types.js +2 -0
  180. package/dist/monolith/runtime/types.js.map +1 -0
  181. package/dist/monolith/services/HealthService.js +38 -0
  182. package/dist/monolith/services/HealthService.js.map +1 -0
  183. package/dist/monolith/services/JoyAutomationService.js +131 -0
  184. package/dist/monolith/services/JoyAutomationService.js.map +1 -0
  185. package/dist/monolith/services/JoyLogService.js +48 -0
  186. package/dist/monolith/services/JoyLogService.js.map +1 -0
  187. package/dist/monolith/services/JoyService.js +190 -0
  188. package/dist/monolith/services/JoyService.js.map +1 -0
  189. package/dist/monolith/services/MarieGhostService.js +168 -0
  190. package/dist/monolith/services/MarieGhostService.js.map +1 -0
  191. package/dist/monolith/services/MarieSCMProvider.js +41 -0
  192. package/dist/monolith/services/MarieSCMProvider.js.map +1 -0
  193. package/package.json +168 -0
@@ -0,0 +1,272 @@
1
+ #!/usr/bin/env node
2
+ import * as readline from "readline";
3
+ import * as process from "process";
4
+ import { MarieCLI } from "../adapters/CliMarieAdapter.js";
5
+ import { Storage } from "./storage.js";
6
+ const ANSI = {
7
+ reset: "\x1b[0m",
8
+ bold: "\x1b[1m",
9
+ dim: "\x1b[2m",
10
+ italic: "\x1b[3m",
11
+ underline: "\x1b[4m",
12
+ red: "\x1b[31m",
13
+ green: "\x1b[32m",
14
+ yellow: "\x1b[33m",
15
+ blue: "\x1b[34m",
16
+ magenta: "\x1b[35m",
17
+ cyan: "\x1b[36m",
18
+ gray: "\x1b[90m",
19
+ clearLine: "\x1b[2K\r",
20
+ moveUp: "\x1b[1A",
21
+ };
22
+ class MarieTerminal {
23
+ marie;
24
+ rl;
25
+ isRunning = false;
26
+ currentStream = "";
27
+ isStreaming = false;
28
+ constructor() {
29
+ this.marie = new MarieCLI(process.cwd());
30
+ this.rl = readline.createInterface({
31
+ input: process.stdin,
32
+ output: process.stdout,
33
+ terminal: true,
34
+ prompt: `${ANSI.cyan}›${ANSI.reset} `,
35
+ });
36
+ }
37
+ async start() {
38
+ this.printHeader();
39
+ this.loadEnvConfig();
40
+ const config = Storage.getConfig();
41
+ if (!config.apiKey && !config.openrouterApiKey && !config.cerebrasApiKey) {
42
+ if (!process.env.ANTHROPIC_API_KEY &&
43
+ !process.env.OPENROUTER_API_KEY &&
44
+ !process.env.CEREBRAS_API_KEY) {
45
+ console.log(`${ANSI.yellow}⚠ No API key configured${ANSI.reset}`);
46
+ console.log(`Set one of these environment variables:`);
47
+ console.log(` - ANTHROPIC_API_KEY`);
48
+ console.log(` - OPENROUTER_API_KEY`);
49
+ console.log(` - CEREBRAS_API_KEY`);
50
+ console.log();
51
+ }
52
+ }
53
+ this.isRunning = true;
54
+ this.showPrompt();
55
+ this.rl.on("line", async (input) => {
56
+ await this.handleInput(input.trim());
57
+ });
58
+ this.rl.on("close", () => {
59
+ this.shutdown();
60
+ });
61
+ // Handle Ctrl+C gracefully
62
+ process.on("SIGINT", () => {
63
+ if (this.isStreaming) {
64
+ this.marie.stopGeneration();
65
+ console.log("\n\nStopped.");
66
+ this.showPrompt();
67
+ }
68
+ else {
69
+ this.shutdown();
70
+ }
71
+ });
72
+ }
73
+ loadEnvConfig() {
74
+ const config = Storage.getConfig();
75
+ // Override with environment variables
76
+ if (process.env.ANTHROPIC_API_KEY) {
77
+ config.apiKey = process.env.ANTHROPIC_API_KEY;
78
+ config.aiProvider = "anthropic";
79
+ }
80
+ if (process.env.OPENROUTER_API_KEY) {
81
+ config.openrouterApiKey = process.env.OPENROUTER_API_KEY;
82
+ if (!config.apiKey)
83
+ config.aiProvider = "openrouter";
84
+ }
85
+ if (process.env.CEREBRAS_API_KEY) {
86
+ config.cerebrasApiKey = process.env.CEREBRAS_API_KEY;
87
+ if (!config.apiKey && !config.openrouterApiKey)
88
+ config.aiProvider = "cerebras";
89
+ }
90
+ if (process.env.MARIE_MODEL) {
91
+ config.model = process.env.MARIE_MODEL;
92
+ }
93
+ Storage.saveConfig(config);
94
+ }
95
+ printHeader() {
96
+ console.log();
97
+ console.log(`${ANSI.cyan}${ANSI.bold} __ ___ __ __${ANSI.reset}`);
98
+ console.log(`${ANSI.cyan}${ANSI.bold} / |/ /___ _/ /_____ _/ /_ ____ _________${ANSI.reset}`);
99
+ console.log(`${ANSI.cyan}${ANSI.bold} / /|_/ / __ '/ //_/ _ '/ __ \\/ __ '/ ___/ _ \\${ANSI.reset}`);
100
+ console.log(`${ANSI.cyan}${ANSI.bold} / / / / /_/ / ,< / /_/ / /_/ / /_/ (__ ) __/${ANSI.reset}`);
101
+ console.log(`${ANSI.cyan}${ANSI.bold}/_/ /_/\\__,_/_/|_|\\__,_/_.___/\\__,_/____/\\___/${ANSI.reset}`);
102
+ console.log(`${ANSI.gray} CLI Agent v0.1${ANSI.reset}`);
103
+ console.log();
104
+ console.log(`${ANSI.dim}Type /help for commands, Ctrl+C to exit${ANSI.reset}`);
105
+ console.log();
106
+ }
107
+ showPrompt() {
108
+ process.stdout.write(this.rl.getPrompt());
109
+ }
110
+ async handleInput(input) {
111
+ if (!input) {
112
+ this.showPrompt();
113
+ return;
114
+ }
115
+ // Handle commands
116
+ if (input.startsWith("/")) {
117
+ await this.handleCommand(input);
118
+ return;
119
+ }
120
+ // Send message to Marie
121
+ await this.sendMessage(input);
122
+ }
123
+ async handleCommand(command) {
124
+ const parts = command.slice(1).split(" ");
125
+ const cmd = parts[0];
126
+ const args = parts.slice(1);
127
+ switch (cmd) {
128
+ case "help":
129
+ this.showHelp();
130
+ break;
131
+ case "clear":
132
+ console.clear();
133
+ this.printHeader();
134
+ break;
135
+ case "new":
136
+ await this.marie.createSession();
137
+ console.log(`${ANSI.green}✓ Started new session${ANSI.reset}`);
138
+ break;
139
+ case "sessions":
140
+ await this.listSessions();
141
+ break;
142
+ case "load":
143
+ if (args[0]) {
144
+ await this.marie.loadSession(args[0]);
145
+ console.log(`${ANSI.green}✓ Loaded session${ANSI.reset}`);
146
+ }
147
+ else {
148
+ console.log(`${ANSI.yellow}Usage: /load <session-id>${ANSI.reset}`);
149
+ }
150
+ break;
151
+ case "config":
152
+ this.showConfig();
153
+ break;
154
+ case "models":
155
+ await this.listModels();
156
+ break;
157
+ case "exit":
158
+ case "quit":
159
+ this.shutdown();
160
+ return;
161
+ default:
162
+ console.log(`${ANSI.yellow}Unknown command: ${cmd}${ANSI.reset}`);
163
+ }
164
+ this.showPrompt();
165
+ }
166
+ showHelp() {
167
+ console.log();
168
+ console.log(`${ANSI.bold}Commands:${ANSI.reset}`);
169
+ console.log(` ${ANSI.cyan}/help${ANSI.reset} Show this help message`);
170
+ console.log(` ${ANSI.cyan}/clear${ANSI.reset} Clear the screen`);
171
+ console.log(` ${ANSI.cyan}/new${ANSI.reset} Start a new session`);
172
+ console.log(` ${ANSI.cyan}/sessions${ANSI.reset} List all sessions`);
173
+ console.log(` ${ANSI.cyan}/load${ANSI.reset} Load a session by ID`);
174
+ console.log(` ${ANSI.cyan}/config${ANSI.reset} Show current configuration`);
175
+ console.log(` ${ANSI.cyan}/models${ANSI.reset} List available models`);
176
+ console.log(` ${ANSI.cyan}/exit${ANSI.reset} Exit the CLI`);
177
+ console.log();
178
+ console.log(`${ANSI.bold}Keyboard shortcuts:${ANSI.reset}`);
179
+ console.log(` ${ANSI.cyan}Ctrl+C${ANSI.reset} Stop generation / Exit`);
180
+ console.log();
181
+ }
182
+ async listSessions() {
183
+ const sessions = await this.marie.listSessions();
184
+ console.log();
185
+ if (sessions.length === 0) {
186
+ console.log(`${ANSI.gray}No saved sessions${ANSI.reset}`);
187
+ }
188
+ else {
189
+ console.log(`${ANSI.bold}Sessions:${ANSI.reset}`);
190
+ sessions.forEach((s) => {
191
+ const current = s.id === this.marie.getCurrentSessionId();
192
+ const pin = s.isPinned ? "📌 " : "";
193
+ const date = new Date(s.lastModified).toLocaleDateString();
194
+ console.log(` ${current ? "›" : " "} ${pin}${s.title} ${ANSI.gray}(${date})${ANSI.reset}`);
195
+ });
196
+ }
197
+ console.log();
198
+ }
199
+ showConfig() {
200
+ const config = Storage.getConfig();
201
+ console.log();
202
+ console.log(`${ANSI.bold}Configuration:${ANSI.reset}`);
203
+ console.log(` Provider: ${config.aiProvider}`);
204
+ console.log(` Model: ${config.model}`);
205
+ console.log(` API Key: ${config.apiKey ? "***" + config.apiKey.slice(-4) : "Not set"}`);
206
+ console.log();
207
+ }
208
+ async listModels() {
209
+ console.log(`${ANSI.gray}Fetching models...${ANSI.reset}`);
210
+ try {
211
+ const models = await this.marie.getModels();
212
+ console.log();
213
+ console.log(`${ANSI.bold}Available Models:${ANSI.reset}`);
214
+ models.forEach((m) => {
215
+ console.log(` ${m.id || m.name || m}`);
216
+ });
217
+ console.log();
218
+ }
219
+ catch (e) {
220
+ console.log(`${ANSI.red}Failed to fetch models: ${e}${ANSI.reset}`);
221
+ }
222
+ }
223
+ async sendMessage(message) {
224
+ this.isStreaming = true;
225
+ this.currentStream = "";
226
+ // Print user message
227
+ console.log(`${ANSI.bold}You:${ANSI.reset} ${message}`);
228
+ console.log();
229
+ process.stdout.write(`${ANSI.cyan}Marie:${ANSI.reset} `);
230
+ try {
231
+ const response = await this.marie.handleMessage(message, {
232
+ onStream: (chunk) => {
233
+ this.currentStream += chunk;
234
+ process.stdout.write(chunk);
235
+ },
236
+ onTool: (tool) => {
237
+ console.log();
238
+ console.log(`${ANSI.gray}▸ ${tool.name}${ANSI.reset}`);
239
+ process.stdout.write(`${ANSI.cyan}Marie:${ANSI.reset} `);
240
+ },
241
+ onEvent: () => { },
242
+ });
243
+ if (!this.currentStream && response) {
244
+ process.stdout.write(response);
245
+ }
246
+ this.isStreaming = false;
247
+ console.log();
248
+ console.log();
249
+ this.showPrompt();
250
+ }
251
+ catch (error) {
252
+ this.isStreaming = false;
253
+ console.log();
254
+ console.log(`${ANSI.red}Error: ${error}${ANSI.reset}`);
255
+ console.log();
256
+ this.showPrompt();
257
+ }
258
+ }
259
+ shutdown() {
260
+ console.log("\nGoodbye! 👋");
261
+ this.marie.dispose();
262
+ this.rl.close();
263
+ process.exit(0);
264
+ }
265
+ }
266
+ // Start the CLI
267
+ const terminal = new MarieTerminal();
268
+ terminal.start().catch((err) => {
269
+ console.error("Failed to start:", err);
270
+ process.exit(1);
271
+ });
272
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/monolith/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ import { ensureJoyZoningFolders, executeGenesisRitual, scaffoldZoneAbstractions, sowFeature, synthesizeZoneManuals, isProjectJoyful, proposeReorganization, proposeClustering, generateJoyDashboard, generateTidyChecklist, executeRestoration, } from "../../domain/joy/JoyTools.js";
2
+ export class JoyAutomationServiceCLI {
3
+ workingDir;
4
+ joyService;
5
+ currentRun;
6
+ constructor(workingDir, joyService) {
7
+ this.workingDir = workingDir;
8
+ this.joyService = joyService;
9
+ }
10
+ async ensureWorkingDir() {
11
+ const fs = await import("fs/promises");
12
+ await fs.mkdir(this.workingDir, { recursive: true });
13
+ }
14
+ setCurrentRun(run) {
15
+ this.currentRun = run;
16
+ }
17
+ getCurrentRun() {
18
+ return this.currentRun;
19
+ }
20
+ async triggerGenesis() {
21
+ await this.ensureWorkingDir();
22
+ const result = await executeGenesisRitual(this.workingDir);
23
+ await this.joyService.addAchievement("Performed Genesis Ritual in CLI mode. Project reborn in JOY. ✨", 50);
24
+ return result;
25
+ }
26
+ async sowJoyFeature(name, _intent) {
27
+ await this.ensureWorkingDir();
28
+ const result = await sowFeature(this.workingDir, name, _intent);
29
+ await this.joyService.addAchievement(`Sowed feature '${name}' in CLI mode. 🌱`, 10);
30
+ return result;
31
+ }
32
+ async performGardenPulse() {
33
+ await this.ensureWorkingDir();
34
+ let finalReport = "";
35
+ try {
36
+ const joyful = await isProjectJoyful(this.workingDir);
37
+ await ensureJoyZoningFolders(this.workingDir);
38
+ const scaffolded = await scaffoldZoneAbstractions(this.workingDir);
39
+ finalReport += scaffolded;
40
+ const proposals = await proposeReorganization(this.workingDir);
41
+ const clustering = await proposeClustering(this.workingDir);
42
+ const manuals = await synthesizeZoneManuals(this.workingDir);
43
+ if (!joyful) {
44
+ finalReport += `\n- ⚠️ **Architectural Void**: This project has not yet embraced the JOY structure. Use the Genesis Ritual to begin your journey.`;
45
+ }
46
+ if (proposals.length > 0)
47
+ finalReport += `\n- ${proposals.length} structural drifts detected.`;
48
+ if (clustering.length > 0)
49
+ finalReport += `\n- ${clustering.length} zones ripe for clustering.`;
50
+ await this.joyService.addAchievement("Performed garden pulse in CLI mode. 🌸", 5);
51
+ return `${finalReport}\n${manuals}\n\nThe garden continues to evolve in harmony. ✨`;
52
+ }
53
+ catch (e) {
54
+ return `\n- ❌ **Pulse Interrupted**: A structural error occurred during synthesis: ${e.message}`;
55
+ }
56
+ }
57
+ async triggerReview() {
58
+ const dashboard = await generateJoyDashboard(this.workingDir);
59
+ const checklist = await generateTidyChecklist(this.workingDir);
60
+ return `# 🌸 Joy Review\n\n${dashboard}\n\n## 📋 Tidy Checklist\n${checklist}`;
61
+ }
62
+ async autoScaffold() {
63
+ await this.ensureWorkingDir();
64
+ await scaffoldZoneAbstractions(this.workingDir);
65
+ }
66
+ async executeAutonomousRestoration() {
67
+ await this.ensureWorkingDir();
68
+ const result = await executeRestoration(this.workingDir);
69
+ await this.joyService.addAchievement("The Garden was autonomously restored to harmony in CLI. ✨", 50);
70
+ return result;
71
+ }
72
+ async executeSelfHealing(failedPath, errorReason) {
73
+ await this.joyService.addAchievement("Self-healing initiated in CLI. 🧬", 15);
74
+ return `Self-healing: Analyzing \`${failedPath}\` to resolve: ${errorReason}. \nPlease retry the operation to refresh context. ✨`;
75
+ }
76
+ dispose() {
77
+ void this.workingDir;
78
+ }
79
+ }
80
+ //# sourceMappingURL=JoyAutomationServiceCLI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JoyAutomationServiceCLI.js","sourceRoot":"","sources":["../../../../src/monolith/cli/services/JoyAutomationServiceCLI.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import { EventEmitter } from "events";
2
+ export class JoyServiceCLI {
3
+ intention = null;
4
+ _onJoyScoreChange = new EventEmitter();
5
+ _onRunProgress = new EventEmitter();
6
+ _onLettingGoRequest = new EventEmitter();
7
+ onJoyScoreChange = this._onJoyScoreChange;
8
+ onRunProgress = this._onRunProgress;
9
+ onLettingGoRequest = this._onLettingGoRequest;
10
+ constructor() { }
11
+ async addAchievement(message, points = 5) {
12
+ if (process.env.MARIE_DEBUG) {
13
+ console.log(`[JOY +${points}] ${message}`);
14
+ }
15
+ this._onJoyScoreChange.emit("score", {
16
+ delta: points,
17
+ reason: message,
18
+ });
19
+ }
20
+ async setIntention(intention) {
21
+ this.intention = intention;
22
+ if (process.env.MARIE_DEBUG) {
23
+ console.log(`[JOY] Intention set: ${intention}`);
24
+ }
25
+ }
26
+ async getProjectHealth() {
27
+ return {
28
+ average: 100,
29
+ fileCount: 0,
30
+ zoningViolations: 0,
31
+ joyfulFiles: 0,
32
+ plumbingFiles: 0,
33
+ isJoyful: true,
34
+ log: [],
35
+ migrationAlerts: [],
36
+ clusteringAlerts: [],
37
+ };
38
+ }
39
+ async requestLettingGo(path) {
40
+ let lines = 0;
41
+ try {
42
+ const fs = await import("fs");
43
+ const content = fs.readFileSync(path, "utf-8");
44
+ lines = content.split("\n").length;
45
+ }
46
+ catch {
47
+ lines = 0;
48
+ }
49
+ this._onLettingGoRequest.emit("request", {
50
+ path,
51
+ lines,
52
+ });
53
+ }
54
+ emitRunProgress(progress) {
55
+ this._onRunProgress.emit("progress", progress);
56
+ }
57
+ dispose() {
58
+ this._onJoyScoreChange.removeAllListeners();
59
+ this._onRunProgress.removeAllListeners();
60
+ this._onLettingGoRequest.removeAllListeners();
61
+ }
62
+ }
63
+ //# sourceMappingURL=JoyServiceCLI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JoyServiceCLI.js","sourceRoot":"","sources":["../../../../src/monolith/cli/services/JoyServiceCLI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAoBtC,MAAM,OAAO,aAAa;IAChB,SAAS,GAAkB,IAAI,CAAC;IACvB,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;IACvC,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;IACpC,mBAAmB,GAAG,IAAI,YAAY,EAAE,CAAC;IAE1C,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC;IAC1C,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;IACpC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC;IAE9D,gBAAe,CAAC;IAET,KAAK,CAAC,cAAc,CACzB,OAAe,EACf,SAAiB,CAAC;QAElB,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE;YACnC,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,OAAO;SACC,CAAC,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,SAAiB;QACzC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC3B,OAAO;YACL,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,CAAC;YACZ,gBAAgB,EAAE,CAAC;YACnB,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,CAAC;YAChB,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,EAAc;YACnB,eAAe,EAAE,EAAc;YAC/B,gBAAgB,EAAE,EAAc;SACjC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,IAAY;QACxC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC/C,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE;YACvC,IAAI;YACJ,KAAK;SACc,CAAC,CAAC;IACzB,CAAC;IAEM,eAAe,CAAC,QAA0B;QAC/C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;QAC5C,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC;QACzC,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,CAAC;IAChD,CAAC;CACF"}
@@ -0,0 +1,119 @@
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+ import * as os from "os";
4
+ export { fs, path };
5
+ const MARIE_DIR = path.join(os.homedir(), ".marie");
6
+ const SESSIONS_FILE = path.join(MARIE_DIR, "sessions.json");
7
+ const METADATA_FILE = path.join(MARIE_DIR, "sessionMetadata.json");
8
+ const CONFIG_FILE = path.join(MARIE_DIR, "config.json");
9
+ const CURRENT_SESSION_FILE = path.join(MARIE_DIR, "currentSession.json");
10
+ const defaultConfig = {
11
+ aiProvider: "openrouter",
12
+ model: "anthropic/claude-3.5-sonnet",
13
+ maxContextTokens: 100000,
14
+ ascensionEnabled: true,
15
+ ascensionProfile: "balanced",
16
+ ascensionIntensity: 1,
17
+ ascensionMaxRequiredActions: 2,
18
+ autonomyMode: "high",
19
+ };
20
+ export class Storage {
21
+ static ensureDir() {
22
+ if (!fs.existsSync(MARIE_DIR)) {
23
+ fs.mkdirSync(MARIE_DIR, { recursive: true });
24
+ }
25
+ }
26
+ static getConfig() {
27
+ this.ensureDir();
28
+ if (!fs.existsSync(CONFIG_FILE)) {
29
+ return { ...defaultConfig };
30
+ }
31
+ try {
32
+ const data = fs.readFileSync(CONFIG_FILE, "utf-8");
33
+ const parsed = JSON.parse(data);
34
+ const merged = { ...defaultConfig, ...parsed };
35
+ // Backward compatibility for older configs that predate autonomyMode.
36
+ if (!parsed.autonomyMode) {
37
+ merged.autonomyMode = "high";
38
+ }
39
+ return merged;
40
+ }
41
+ catch {
42
+ return { ...defaultConfig };
43
+ }
44
+ }
45
+ static saveConfig(config) {
46
+ this.ensureDir();
47
+ const current = this.getConfig();
48
+ fs.writeFileSync(CONFIG_FILE, JSON.stringify({ ...current, ...config }, null, 2));
49
+ }
50
+ static getSessions() {
51
+ this.ensureDir();
52
+ if (!fs.existsSync(SESSIONS_FILE)) {
53
+ return {};
54
+ }
55
+ try {
56
+ const data = fs.readFileSync(SESSIONS_FILE, "utf-8");
57
+ return JSON.parse(data);
58
+ }
59
+ catch {
60
+ return {};
61
+ }
62
+ }
63
+ static saveSessions(sessions) {
64
+ this.ensureDir();
65
+ fs.writeFileSync(SESSIONS_FILE, JSON.stringify(sessions, null, 2));
66
+ }
67
+ static getSessionMetadata() {
68
+ this.ensureDir();
69
+ if (!fs.existsSync(METADATA_FILE)) {
70
+ return [];
71
+ }
72
+ try {
73
+ const data = fs.readFileSync(METADATA_FILE, "utf-8");
74
+ return JSON.parse(data);
75
+ }
76
+ catch {
77
+ return [];
78
+ }
79
+ }
80
+ static saveSessionMetadata(metadata) {
81
+ this.ensureDir();
82
+ fs.writeFileSync(METADATA_FILE, JSON.stringify(metadata, null, 2));
83
+ }
84
+ static getCurrentSessionId() {
85
+ this.ensureDir();
86
+ if (!fs.existsSync(CURRENT_SESSION_FILE)) {
87
+ return "default";
88
+ }
89
+ try {
90
+ const data = fs.readFileSync(CURRENT_SESSION_FILE, "utf-8");
91
+ return JSON.parse(data).id || "default";
92
+ }
93
+ catch {
94
+ return "default";
95
+ }
96
+ }
97
+ static setCurrentSessionId(id) {
98
+ this.ensureDir();
99
+ fs.writeFileSync(CURRENT_SESSION_FILE, JSON.stringify({ id }));
100
+ }
101
+ static getLastTelemetry() {
102
+ this.ensureDir();
103
+ const file = path.join(MARIE_DIR, "lastTelemetry.json");
104
+ if (!fs.existsSync(file))
105
+ return undefined;
106
+ try {
107
+ return JSON.parse(fs.readFileSync(file, "utf-8"));
108
+ }
109
+ catch {
110
+ return undefined;
111
+ }
112
+ }
113
+ static setLastTelemetry(telemetry) {
114
+ this.ensureDir();
115
+ const file = path.join(MARIE_DIR, "lastTelemetry.json");
116
+ fs.writeFileSync(file, JSON.stringify(telemetry, null, 2));
117
+ }
118
+ }
119
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/monolith/cli/storage.ts"],"names":[],"mappings":"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"}