@noorm/marie-cli 0.1.18 → 0.1.25

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 (251) hide show
  1. package/README.md +7 -15
  2. package/SENTINEL.md +4 -7
  3. package/dist/cli-new/components/App.js +16 -63
  4. package/dist/cli-new/components/App.js.map +1 -1
  5. package/dist/cli-new/components/ApprovalDialog.js +2 -1
  6. package/dist/cli-new/components/ApprovalDialog.js.map +1 -1
  7. package/dist/cli-new/components/Banner.js +4 -3
  8. package/dist/cli-new/components/Banner.js.map +1 -1
  9. package/dist/cli-new/components/ChatArea.js +6 -7
  10. package/dist/cli-new/components/ChatArea.js.map +1 -1
  11. package/dist/cli-new/components/Header.js +13 -7
  12. package/dist/cli-new/components/Header.js.map +1 -1
  13. package/dist/cli-new/components/InputArea.js +73 -12
  14. package/dist/cli-new/components/InputArea.js.map +1 -1
  15. package/dist/cli-new/components/MessageBubble.js +26 -18
  16. package/dist/cli-new/components/MessageBubble.js.map +1 -1
  17. package/dist/cli-new/components/SessionSwitcher.js +4 -7
  18. package/dist/cli-new/components/SessionSwitcher.js.map +1 -1
  19. package/dist/cli-new/components/SetupWizard.js +80 -257
  20. package/dist/cli-new/components/SetupWizard.js.map +1 -1
  21. package/dist/cli-new/components/ToolCallDisplay.js +20 -5
  22. package/dist/cli-new/components/ToolCallDisplay.js.map +1 -1
  23. package/dist/cli-new/components/WizardSteps.js +22 -0
  24. package/dist/cli-new/components/WizardSteps.js.map +1 -0
  25. package/dist/cli-new/constants/SetupConstants.js +42 -0
  26. package/dist/cli-new/constants/SetupConstants.js.map +1 -0
  27. package/dist/cli-new/hooks/useGit.js +19 -62
  28. package/dist/cli-new/hooks/useGit.js.map +1 -1
  29. package/dist/cli-new/hooks/useMarie.js +26 -18
  30. package/dist/cli-new/hooks/useMarie.js.map +1 -1
  31. package/dist/cli-new/hooks/useSessions.js +1 -1
  32. package/dist/cli-new/hooks/useSessions.js.map +1 -1
  33. package/dist/cli-new/hooks/useSetupWizard.js +88 -0
  34. package/dist/cli-new/hooks/useSetupWizard.js.map +1 -0
  35. package/dist/cli-new/hooks/useUpdateCheck.js +4 -3
  36. package/dist/cli-new/hooks/useUpdateCheck.js.map +1 -1
  37. package/dist/cli-new/index.js +2 -4
  38. package/dist/cli-new/index.js.map +1 -1
  39. package/dist/cli-new/services/CommandService.js +104 -0
  40. package/dist/cli-new/services/CommandService.js.map +1 -0
  41. package/dist/cli-new/services/GitService.js +91 -0
  42. package/dist/cli-new/services/GitService.js.map +1 -0
  43. package/dist/cli-new/services/MarieService.js +77 -0
  44. package/dist/cli-new/services/MarieService.js.map +1 -0
  45. package/dist/cli-new/services/auth-server.js +128 -0
  46. package/dist/cli-new/services/auth-server.js.map +1 -0
  47. package/dist/cli-new/utils/version.js +24 -0
  48. package/dist/cli-new/utils/version.js.map +1 -0
  49. package/dist/monolith/adapters/CliMarieAdapter.js +12 -11
  50. package/dist/monolith/adapters/CliMarieAdapter.js.map +1 -1
  51. package/dist/monolith/cli/CliFileSystemPort.js +17 -3
  52. package/dist/monolith/cli/CliFileSystemPort.js.map +1 -1
  53. package/dist/monolith/cli/MarieToolDefinitionsCLI.js +39 -31
  54. package/dist/monolith/cli/MarieToolDefinitionsCLI.js.map +1 -1
  55. package/dist/monolith/cli/index.js +5 -20
  56. package/dist/monolith/cli/index.js.map +1 -1
  57. package/dist/monolith/cli/services/JoyAutomationServiceCLI.js +15 -62
  58. package/dist/monolith/cli/services/JoyAutomationServiceCLI.js.map +1 -1
  59. package/dist/monolith/cli/storage.js +142 -72
  60. package/dist/monolith/cli/storage.js.map +1 -1
  61. package/dist/monolith/domain/joy/RitualService.js +44 -46
  62. package/dist/monolith/domain/joy/RitualService.js.map +1 -1
  63. package/dist/monolith/domain/marie/MarieCortex.js +148 -0
  64. package/dist/monolith/domain/marie/MarieCortex.js.map +1 -0
  65. package/dist/monolith/domain/marie/PersonalityRenderer.js +97 -0
  66. package/dist/monolith/domain/marie/PersonalityRenderer.js.map +1 -0
  67. package/dist/monolith/infrastructure/Configuration.js +68 -0
  68. package/dist/monolith/infrastructure/Configuration.js.map +1 -0
  69. package/dist/monolith/infrastructure/CoreInfrastructure.js +204 -0
  70. package/dist/monolith/infrastructure/CoreInfrastructure.js.map +1 -0
  71. package/dist/monolith/infrastructure/ai/agents/MarieAscendant.js +3 -3
  72. package/dist/monolith/infrastructure/ai/agents/MarieAscendant.js.map +1 -1
  73. package/dist/monolith/infrastructure/ai/context/ContextArchiveService.js +6 -27
  74. package/dist/monolith/infrastructure/ai/context/ContextArchiveService.js.map +1 -1
  75. package/dist/monolith/infrastructure/ai/context/ContextManager.js +142 -131
  76. package/dist/monolith/infrastructure/ai/context/ContextManager.js.map +1 -1
  77. package/dist/monolith/infrastructure/ai/core/MarieEngine.js +115 -1077
  78. package/dist/monolith/infrastructure/ai/core/MarieEngine.js.map +1 -1
  79. package/dist/monolith/infrastructure/ai/core/MarieEventDispatcher.js +1 -37
  80. package/dist/monolith/infrastructure/ai/core/MarieEventDispatcher.js.map +1 -1
  81. package/dist/monolith/infrastructure/ai/core/MarieLockManager.js +6 -1
  82. package/dist/monolith/infrastructure/ai/core/MarieLockManager.js.map +1 -1
  83. package/dist/monolith/infrastructure/ai/core/MarieProgressTracker.js +172 -221
  84. package/dist/monolith/infrastructure/ai/core/MarieProgressTracker.js.map +1 -1
  85. package/dist/monolith/infrastructure/ai/core/MarieSanitizer.js +292 -141
  86. package/dist/monolith/infrastructure/ai/core/MarieSanitizer.js.map +1 -1
  87. package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js +331 -614
  88. package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js.map +1 -1
  89. package/dist/monolith/infrastructure/ai/core/MarieVitality.js +238 -0
  90. package/dist/monolith/infrastructure/ai/core/MarieVitality.js.map +1 -0
  91. package/dist/monolith/infrastructure/ai/core/SessionLogService.js +9 -2
  92. package/dist/monolith/infrastructure/ai/core/SessionLogService.js.map +1 -1
  93. package/dist/monolith/infrastructure/ai/providers/AIProvider.js +402 -1
  94. package/dist/monolith/infrastructure/ai/providers/AIProvider.js.map +1 -1
  95. package/dist/monolith/infrastructure/ai/providers/DreamBeesProvider.js +114 -0
  96. package/dist/monolith/infrastructure/ai/providers/DreamBeesProvider.js.map +1 -0
  97. package/dist/monolith/infrastructure/ai/providers/OpenRouterProvider.js +426 -392
  98. package/dist/monolith/infrastructure/ai/providers/OpenRouterProvider.js.map +1 -1
  99. package/dist/monolith/infrastructure/ai/providers/OpenRouterStreamParser.js +235 -241
  100. package/dist/monolith/infrastructure/ai/providers/OpenRouterStreamParser.js.map +1 -1
  101. package/dist/monolith/infrastructure/ai/workerAi.js +185 -0
  102. package/dist/monolith/infrastructure/ai/workerAi.js.map +1 -0
  103. package/dist/monolith/infrastructure/config/ConfigService.js +216 -503
  104. package/dist/monolith/infrastructure/config/ConfigService.js.map +1 -1
  105. package/dist/monolith/infrastructure/joy/CognitiveRituals.js +4 -165
  106. package/dist/monolith/infrastructure/joy/CognitiveRituals.js.map +1 -1
  107. package/dist/monolith/infrastructure/joy/JoyTools.js +14 -47
  108. package/dist/monolith/infrastructure/joy/JoyTools.js.map +1 -1
  109. package/dist/monolith/infrastructure/persistence/MarieMindAutonomics.js +4 -0
  110. package/dist/monolith/infrastructure/persistence/MarieMindAutonomics.js.map +1 -0
  111. package/dist/monolith/infrastructure/persistence/MarieMindEngine.js +11 -0
  112. package/dist/monolith/infrastructure/persistence/MarieMindEngine.js.map +1 -0
  113. package/dist/monolith/infrastructure/persistence/NoormmeAutonomics.js +123 -106
  114. package/dist/monolith/infrastructure/persistence/NoormmeAutonomics.js.map +1 -1
  115. package/dist/monolith/infrastructure/persistence/NoormmeEngine.js +508 -63
  116. package/dist/monolith/infrastructure/persistence/NoormmeEngine.js.map +1 -1
  117. package/dist/monolith/infrastructure/persistence/NoormmeSchema.js +68 -39
  118. package/dist/monolith/infrastructure/persistence/NoormmeSchema.js.map +1 -1
  119. package/dist/monolith/infrastructure/persistence/NoormmeSeeder.js +80 -67
  120. package/dist/monolith/infrastructure/persistence/NoormmeSeeder.js.map +1 -1
  121. package/dist/monolith/infrastructure/persistence/NoormmeTools.js +122 -75
  122. package/dist/monolith/infrastructure/persistence/NoormmeTools.js.map +1 -1
  123. package/dist/monolith/infrastructure/services/MarieMemoryStore.js +133 -134
  124. package/dist/monolith/infrastructure/services/MarieMemoryStore.js.map +1 -1
  125. package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js +6 -30
  126. package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js.map +1 -1
  127. package/dist/monolith/infrastructure/tools/PureStreamParser.js +68 -80
  128. package/dist/monolith/infrastructure/tools/PureStreamParser.js.map +1 -1
  129. package/dist/monolith/infrastructure/tools/SharedToolDefinitions.js +12 -11
  130. package/dist/monolith/infrastructure/tools/SharedToolDefinitions.js.map +1 -1
  131. package/dist/monolith/infrastructure/tools/SovereignTools.js +326 -0
  132. package/dist/monolith/infrastructure/tools/SovereignTools.js.map +1 -0
  133. package/dist/monolith/infrastructure/tools/ToolRegistry.js +45 -26
  134. package/dist/monolith/infrastructure/tools/ToolRegistry.js.map +1 -1
  135. package/dist/monolith/infrastructure/tools/definitions/AnalysisTools.js +39 -153
  136. package/dist/monolith/infrastructure/tools/definitions/AnalysisTools.js.map +1 -1
  137. package/dist/monolith/infrastructure/tools/definitions/AutomationTools.js +31 -46
  138. package/dist/monolith/infrastructure/tools/definitions/AutomationTools.js.map +1 -1
  139. package/dist/monolith/infrastructure/tools/definitions/ContextTools.js +41 -13
  140. package/dist/monolith/infrastructure/tools/definitions/ContextTools.js.map +1 -1
  141. package/dist/monolith/infrastructure/tools/definitions/CoreTools.js +10 -14
  142. package/dist/monolith/infrastructure/tools/definitions/CoreTools.js.map +1 -1
  143. package/dist/monolith/infrastructure/tools/definitions/DiagnosticTools.js +39 -70
  144. package/dist/monolith/infrastructure/tools/definitions/DiagnosticTools.js.map +1 -1
  145. package/dist/monolith/infrastructure/tools/definitions/NavigationTools.js +30 -181
  146. package/dist/monolith/infrastructure/tools/definitions/NavigationTools.js.map +1 -1
  147. package/dist/monolith/infrastructure/tools/definitions/PlanningTools.js +12 -9
  148. package/dist/monolith/infrastructure/tools/definitions/PlanningTools.js.map +1 -1
  149. package/dist/monolith/plumbing/Plumbing.js +238 -0
  150. package/dist/monolith/plumbing/Plumbing.js.map +1 -0
  151. package/dist/monolith/plumbing/PlumbingAnalysis.js +109 -0
  152. package/dist/monolith/plumbing/PlumbingAnalysis.js.map +1 -0
  153. package/dist/monolith/plumbing/PlumbingSystem.js +169 -0
  154. package/dist/monolith/plumbing/PlumbingSystem.js.map +1 -0
  155. package/dist/monolith/plumbing/analysis/ComplexityService.js +30 -34
  156. package/dist/monolith/plumbing/analysis/ComplexityService.js.map +1 -1
  157. package/dist/monolith/plumbing/analysis/DependencyService.js +55 -44
  158. package/dist/monolith/plumbing/analysis/DependencyService.js.map +1 -1
  159. package/dist/monolith/plumbing/analysis/DiscoveryService.js +40 -42
  160. package/dist/monolith/plumbing/analysis/DiscoveryService.js.map +1 -1
  161. package/dist/monolith/plumbing/analysis/JoyMapService.js +52 -56
  162. package/dist/monolith/plumbing/analysis/JoyMapService.js.map +1 -1
  163. package/dist/monolith/plumbing/analysis/LintService.js +118 -118
  164. package/dist/monolith/plumbing/analysis/LintService.js.map +1 -1
  165. package/dist/monolith/plumbing/analysis/MarieSentinelService.js +278 -268
  166. package/dist/monolith/plumbing/analysis/MarieSentinelService.js.map +1 -1
  167. package/dist/monolith/plumbing/analysis/QualityGuardrailService.js +116 -114
  168. package/dist/monolith/plumbing/analysis/QualityGuardrailService.js.map +1 -1
  169. package/dist/monolith/plumbing/analysis/SurgicalMender.js +57 -59
  170. package/dist/monolith/plumbing/analysis/SurgicalMender.js.map +1 -1
  171. package/dist/monolith/plumbing/analysis/TestService.js +89 -89
  172. package/dist/monolith/plumbing/analysis/TestService.js.map +1 -1
  173. package/dist/monolith/plumbing/filesystem/FileService.js +123 -195
  174. package/dist/monolith/plumbing/filesystem/FileService.js.map +1 -1
  175. package/dist/monolith/plumbing/filesystem/PathResolver.js +7 -8
  176. package/dist/monolith/plumbing/filesystem/PathResolver.js.map +1 -1
  177. package/dist/monolith/plumbing/git/GitService.js +4 -4
  178. package/dist/monolith/plumbing/git/GitService.js.map +1 -1
  179. package/dist/monolith/plumbing/lsp/SymbolService.js +5 -34
  180. package/dist/monolith/plumbing/lsp/SymbolService.js.map +1 -1
  181. package/dist/monolith/plumbing/terminal/ProcessRegistry.js +20 -22
  182. package/dist/monolith/plumbing/terminal/ProcessRegistry.js.map +1 -1
  183. package/dist/monolith/plumbing/terminal/TerminalService.js +127 -141
  184. package/dist/monolith/plumbing/terminal/TerminalService.js.map +1 -1
  185. package/dist/monolith/plumbing/utils/EnvironmentUtils.js +3 -23
  186. package/dist/monolith/plumbing/utils/EnvironmentUtils.js.map +1 -1
  187. package/dist/monolith/plumbing/utils/JsonUtils.js +252 -311
  188. package/dist/monolith/plumbing/utils/JsonUtils.js.map +1 -1
  189. package/dist/monolith/plumbing/utils/PlumbingCore.js +549 -0
  190. package/dist/monolith/plumbing/utils/PlumbingCore.js.map +1 -0
  191. package/dist/monolith/plumbing/utils/PrefixTree.js +61 -114
  192. package/dist/monolith/plumbing/utils/PrefixTree.js.map +1 -1
  193. package/dist/monolith/plumbing/utils/StreamTagDetector.js +89 -127
  194. package/dist/monolith/plumbing/utils/StreamTagDetector.js.map +1 -1
  195. package/dist/monolith/plumbing/utils/StringUtils.js +87 -89
  196. package/dist/monolith/plumbing/utils/StringUtils.js.map +1 -1
  197. package/dist/monolith/runtime/MarieRuntime.js +76 -499
  198. package/dist/monolith/runtime/MarieRuntime.js.map +1 -1
  199. package/dist/monolith/runtime/RuntimeAdapterBase.js +1 -1
  200. package/dist/monolith/runtime/RuntimeAdapterBase.js.map +1 -1
  201. package/dist/monolith/runtime/providerFactory.js +1 -7
  202. package/dist/monolith/runtime/providerFactory.js.map +1 -1
  203. package/dist/monolith/services/HealthService.js +29 -32
  204. package/dist/monolith/services/HealthService.js.map +1 -1
  205. package/dist/monolith/services/JoyAutomationService.js +58 -95
  206. package/dist/monolith/services/JoyAutomationService.js.map +1 -1
  207. package/dist/monolith/services/MarieAutomationService.js +59 -0
  208. package/dist/monolith/services/MarieAutomationService.js.map +1 -0
  209. package/dist/monolith/services/MarieGhostService.js +46 -173
  210. package/dist/monolith/services/MarieGhostService.js.map +1 -1
  211. package/dist/monolith/services/MarieServices.js +102 -0
  212. package/dist/monolith/services/MarieServices.js.map +1 -0
  213. package/dist/monolith/services/MarieTypes.js +2 -0
  214. package/dist/monolith/services/MarieTypes.js.map +1 -0
  215. package/dist/monolith/services/UpdateService.js +47 -49
  216. package/dist/monolith/services/UpdateService.js.map +1 -1
  217. package/dist/prompts.js +11 -5
  218. package/dist/prompts.js.map +1 -1
  219. package/dist/test_prefix_tree.js +9 -9
  220. package/dist/test_prefix_tree.js.map +1 -1
  221. package/package.json +18 -89
  222. package/run_test.js +5 -0
  223. package/.marie_visual_verify_1771225696548/progress_bar_check.txt +0 -1
  224. package/dist/extension.cjs +0 -1155
  225. package/dist/extension.js +0 -474
  226. package/dist/extension.js.map +0 -1
  227. package/dist/monolith/adapters/VscodeMarieAdapter.js +0 -81
  228. package/dist/monolith/adapters/VscodeMarieAdapter.js.map +0 -1
  229. package/dist/monolith/infrastructure/ai/core/GhostPort.js +0 -2
  230. package/dist/monolith/infrastructure/ai/core/GhostPort.js.map +0 -1
  231. package/dist/monolith/infrastructure/ai/core/VscodeFileSystemPort.js +0 -33
  232. package/dist/monolith/infrastructure/ai/core/VscodeFileSystemPort.js.map +0 -1
  233. package/dist/monolith/infrastructure/ai/providers/AnthropicProvider.js +0 -154
  234. package/dist/monolith/infrastructure/ai/providers/AnthropicProvider.js.map +0 -1
  235. package/dist/monolith/infrastructure/ai/providers/CerebrasProvider.js +0 -214
  236. package/dist/monolith/infrastructure/ai/providers/CerebrasProvider.js.map +0 -1
  237. package/dist/monolith/plumbing/ui/DecorationService.js +0 -54
  238. package/dist/monolith/plumbing/ui/DecorationService.js.map +0 -1
  239. package/dist/monolith/services/JoyLogService.js +0 -48
  240. package/dist/monolith/services/JoyLogService.js.map +0 -1
  241. package/dist/monolith/services/JoyService.js +0 -209
  242. package/dist/monolith/services/JoyService.js.map +0 -1
  243. package/dist/monolith/services/MarieSCMProvider.js +0 -41
  244. package/dist/monolith/services/MarieSCMProvider.js.map +0 -1
  245. package/dist/webview-ui/main.css +0 -1
  246. package/dist/webview-ui/main.js +0 -108
  247. package/lint_output.txt +0 -705
  248. package/lint_output_v2.txt +0 -711
  249. package/test-mind-p6.sqlite +0 -0
  250. package/test-mind-p6.sqlite-shm +0 -0
  251. package/test-mind-p6.sqlite-wal +0 -0
@@ -1,9 +1,9 @@
1
- import * as vscode from "vscode";
2
1
  import * as fs from "fs/promises";
3
2
  import * as path from "path";
4
3
  import { exec } from "child_process";
5
4
  import { promisify } from "util";
6
5
  import { getErrorMessage } from "../utils/ErrorUtils.js";
6
+ import { getWorkspaceRoot } from "../utils/EnvironmentUtils.js";
7
7
  const execAsync = promisify(exec);
8
8
  export async function gitStatus(cwd) {
9
9
  try {
@@ -52,10 +52,10 @@ export async function getFileHistory(cwd, filePath) {
52
52
  }
53
53
  }
54
54
  export async function logReflection(message) {
55
- const workspaceFolders = vscode.workspace.workspaceFolders;
56
- if (!workspaceFolders)
55
+ const root = getWorkspaceRoot();
56
+ if (!root)
57
57
  return;
58
- const journalPath = path.join(workspaceFolders[0].uri.fsPath, "JOURNAL.md");
58
+ const journalPath = path.join(root, "JOURNAL.md");
59
59
  const date = new Date().toISOString().split("T")[0];
60
60
  const time = new Date().toLocaleTimeString();
61
61
  const entry = `\n### ${date} ${time}\n${message}\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"GitService.js","sourceRoot":"","sources":["../../../../src/monolith/plumbing/git/GitService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GitService.js","sourceRoot":"","sources":["../../../../src/monolith/plumbing/git/GitService.ts"],"names":[],"mappings":"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"}
@@ -1,36 +1,7 @@
1
- import * as vscode from "vscode";
2
- export class SymbolService {
3
- /**
4
- * Finds the definition(s) of a symbol at the specified position in a document.
5
- */
6
- static async getDefinitions(uri, position) {
7
- const definitions = await vscode.commands.executeCommand("vscode.executeDefinitionProvider", uri, position);
8
- if (!definitions || definitions.length === 0) {
9
- return "No definitions found.";
10
- }
11
- let result = `Found ${definitions.length} definition(s):\n`;
12
- for (const def of definitions) {
13
- const range = "range" in def ? def.range : def.targetRange;
14
- const targetUri = "uri" in def ? def.uri : def.targetUri;
15
- result += `- ${targetUri.fsPath} [L${range.start.line + 1}:C${range.start.character + 1}]\n`;
16
- }
17
- return result;
18
- }
19
- /**
20
- * Finds the type definition of a symbol at the specified position.
21
- */
22
- static async getTypeDefinitions(uri, position) {
23
- const typeDefs = await vscode.commands.executeCommand("vscode.executeTypeDefinitionProvider", uri, position);
24
- if (!typeDefs || typeDefs.length === 0) {
25
- return "No type definitions found.";
26
- }
27
- let result = `Found ${typeDefs.length} type definition(s):\n`;
28
- for (const def of typeDefs) {
29
- const range = "range" in def ? def.range : def.targetRange;
30
- const targetUri = "uri" in def ? def.uri : def.targetUri;
31
- result += `- ${targetUri.fsPath} [L${range.start.line + 1}:C${range.start.character + 1}]\n`;
32
- }
33
- return result;
34
- }
1
+ export async function getDefinitions(filePath, line, character) {
2
+ return "Definition lookup is currently restricted to VS Code environment. Use 'grep_search' for manual symbol discovery. ✨";
3
+ }
4
+ export async function getTypeDefinitions(filePath, line, character) {
5
+ return "Type definition lookup is currently restricted to VS Code environment. ✨";
35
6
  }
36
7
  //# sourceMappingURL=SymbolService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SymbolService.js","sourceRoot":"","sources":["../../../../src/monolith/plumbing/lsp/SymbolService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,MAAM,OAAO,aAAa;IACxB;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,cAAc,CAChC,GAAe,EACf,QAAyB;QAEzB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,CAEtD,kCAAkC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAErD,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,OAAO,uBAAuB,CAAC;QACjC,CAAC;QAED,IAAI,MAAM,GAAG,SAAS,WAAW,CAAC,MAAM,mBAAmB,CAAC;QAC5D,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;YAC3D,MAAM,SAAS,GAAG,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;YACzD,MAAM,IAAI,KAAK,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC;QAC/F,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,kBAAkB,CACpC,GAAe,EACf,QAAyB;QAEzB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,CAEnD,sCAAsC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAEzD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,4BAA4B,CAAC;QACtC,CAAC;QAED,IAAI,MAAM,GAAG,SAAS,QAAQ,CAAC,MAAM,wBAAwB,CAAC;QAC9D,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;YAC3D,MAAM,SAAS,GAAG,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;YACzD,MAAM,IAAI,KAAK,SAAS,CAAC,MAAM,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC;QAC/F,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"SymbolService.js","sourceRoot":"","sources":["../../../../src/monolith/plumbing/lsp/SymbolService.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,IAAY,EACZ,SAAiB;IAEjB,OAAO,oHAAoH,CAAC;AAC9H,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAgB,EAChB,IAAY,EACZ,SAAiB;IAEjB,OAAO,0EAA0E,CAAC;AACpF,CAAC"}
@@ -2,30 +2,28 @@
2
2
  * ZOMBIE LIFECYCLE GUARD: ProcessRegistry
3
3
  * Tracks all active child processes and ensures they are killed when Marie is deactivated.
4
4
  */
5
- export class ProcessRegistry {
6
- static activeProcesses = new Set();
7
- static register(process) {
8
- this.activeProcesses.add(process);
9
- process.on("exit", () => {
10
- this.activeProcesses.delete(process);
11
- });
12
- process.on("error", () => {
13
- this.activeProcesses.delete(process);
14
- });
15
- }
16
- static killAll() {
17
- console.log(`[MarieRegistry] Killing ${this.activeProcesses.size} active child processes...`);
18
- for (const process of this.activeProcesses) {
19
- try {
20
- if (!process.killed) {
21
- process.kill("SIGKILL");
22
- }
23
- }
24
- catch (e) {
25
- console.error("[MarieRegistry] Failed to kill process:", e);
5
+ const activeProcesses = new Set();
6
+ export function register(process) {
7
+ activeProcesses.add(process);
8
+ process.on("exit", () => {
9
+ activeProcesses.delete(process);
10
+ });
11
+ process.on("error", () => {
12
+ activeProcesses.delete(process);
13
+ });
14
+ }
15
+ export function killAll() {
16
+ console.log(`[MarieRegistry] Killing ${activeProcesses.size} active child processes...`);
17
+ for (const process of activeProcesses) {
18
+ try {
19
+ if (!process.killed) {
20
+ process.kill("SIGKILL");
26
21
  }
27
22
  }
28
- this.activeProcesses.clear();
23
+ catch (e) {
24
+ console.error("[MarieRegistry] Failed to kill process:", e);
25
+ }
29
26
  }
27
+ activeProcesses.clear();
30
28
  }
31
29
  //# sourceMappingURL=ProcessRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProcessRegistry.js","sourceRoot":"","sources":["../../../../src/monolith/plumbing/terminal/ProcessRegistry.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,eAAe;IAClB,MAAM,CAAC,eAAe,GAAG,IAAI,GAAG,EAAgB,CAAC;IAElD,MAAM,CAAC,QAAQ,CAAC,OAAqB;QAC1C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,OAAO;QACnB,OAAO,CAAC,GAAG,CACT,2BAA2B,IAAI,CAAC,eAAe,CAAC,IAAI,4BAA4B,CACjF,CAAC;QACF,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBACpB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC"}
1
+ {"version":3,"file":"ProcessRegistry.js","sourceRoot":"","sources":["../../../../src/monolith/plumbing/terminal/ProcessRegistry.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,EAAgB,CAAC;AAEhD,MAAM,UAAU,QAAQ,CAAC,OAAqB;IAC5C,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACtB,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACvB,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,CAAC,GAAG,CACT,2BAA2B,eAAe,CAAC,IAAI,4BAA4B,CAC5E,CAAC;IACF,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,eAAe,CAAC,KAAK,EAAE,CAAC;AAC1B,CAAC"}
@@ -1,8 +1,8 @@
1
- import * as vscode from "vscode";
2
1
  import { exec, spawn } from "child_process";
3
2
  import { promisify } from "util";
4
- import { ProcessRegistry } from "./ProcessRegistry.js";
5
- import { ConfigService } from "../../infrastructure/config/ConfigService.js";
3
+ import { register } from "./ProcessRegistry.js";
4
+ import { getCapabilities } from "../../infrastructure/config/ConfigService.js";
5
+ import { getWorkspaceRoot } from "../utils/EnvironmentUtils.js";
6
6
  const execAsync = promisify(exec);
7
7
  // Patterns that usually indicate an interactive or blocking command
8
8
  const INTERACTIVE_PATTERNS = [
@@ -21,165 +21,151 @@ const MAX_OUTPUT_LENGTH = 10000; // ~10KB limit for context safety
21
21
  const ANSI_REGEX = new RegExp("[\x1b\x9b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]", "g");
22
22
  const stripAnsi = (t) => t.replace(ANSI_REGEX, "");
23
23
  /* eslint-enable no-control-regex */
24
- export class TerminalService {
25
- static terminal;
26
- static activeProcesses = new Set();
27
- static getTerminal() {
28
- if (this.terminal && !this.terminal.exitStatus) {
29
- return this.terminal;
30
- }
31
- this.terminal = vscode.window.createTerminal("Marie's Workshop");
32
- return this.terminal;
24
+ const activeProcesses = new Set();
25
+ export async function runCommand(command, signal) {
26
+ // PHASE 17: Capability Check
27
+ if (!getCapabilities().includes("SHELL")) {
28
+ return `Sovereign Capability Breach: Direct shell execution is disabled in the current engine configuration. 🛑`;
33
29
  }
34
- static async runCommand(command, signal) {
35
- // PHASE 17: Capability Check
36
- if (!ConfigService.getCapabilities().includes("SHELL")) {
37
- return `Sovereign Capability Breach: Direct shell execution is disabled in the current engine configuration. 🛑`;
38
- }
39
- if (INTERACTIVE_PATTERNS.some((p) => p.test(command))) {
40
- return `Error: Command '${command}' appears to be interactive or potentially blocking. Please use non-interactive flags (e.g., -y, -m) or run it manually.`;
30
+ if (INTERACTIVE_PATTERNS.some((p) => p.test(command))) {
31
+ return `Error: Command '${command}' appears to be interactive or potentially blocking. Please use non-interactive flags (e.g., -y, -m) or run it manually.`;
32
+ }
33
+ // 2. Shell Injection Guard (Sub-Atomic Integrity)
34
+ const suspiciousChars = /[;&|`$(){}]/;
35
+ if (suspiciousChars.test(command)) {
36
+ // Check if it's a "known safe" complex command (e.g. npm run build -- --noEmit || npx tsc --noEmit)
37
+ const isSafeHeuristic = command.includes("--noEmit") || command.includes("npm run bloom");
38
+ if (!isSafeHeuristic) {
39
+ return `Security Error: Command '${command}' contains suspicious shell metacharacters. High-order tools reject unvetted complex logic for systemic safety. 🛑`;
41
40
  }
42
- // 2. Shell Injection Guard (Sub-Atomic Integrity)
43
- const suspiciousChars = /[;&|`$(){}]/;
44
- if (suspiciousChars.test(command)) {
45
- // Check if it's a "known safe" complex command (e.g. npm run build -- --noEmit || npx tsc --noEmit)
46
- const isSafeHeuristic = command.includes("--noEmit") || command.includes("npm run bloom");
47
- if (!isSafeHeuristic) {
48
- return `Security Error: Command '${command}' contains suspicious shell metacharacters. High-order tools reject unvetted complex logic for systemic safety. 🛑`;
49
- }
41
+ }
42
+ if (signal?.aborted) {
43
+ return "Command aborted before execution.";
44
+ }
45
+ const rootPath = getWorkspaceRoot();
46
+ const shell = process.env.SHELL || "/bin/sh";
47
+ let childProcess;
48
+ const spawnPromise = new Promise((resolve, reject) => {
49
+ try {
50
+ // Use shell: true to support command strings with pipes/redirects
51
+ childProcess = spawn(command, {
52
+ cwd: rootPath,
53
+ shell: shell,
54
+ stdio: ["ignore", "pipe", "pipe"],
55
+ detached: true, // Spectral Integrity: Detach to allow PGID killing
56
+ });
57
+ register(childProcess);
58
+ let stdout = "";
59
+ let stderr = "";
60
+ childProcess.stdout?.on("data", (data) => {
61
+ stdout += data.toString();
62
+ if (stdout.length > MAX_OUTPUT_LENGTH * 2) {
63
+ stdout = stdout.substring(stdout.length - MAX_OUTPUT_LENGTH * 2);
64
+ }
65
+ });
66
+ childProcess.stderr?.on("data", (data) => {
67
+ stderr += data.toString();
68
+ if (stderr.length > MAX_OUTPUT_LENGTH * 2) {
69
+ stderr = stderr.substring(stderr.length - MAX_OUTPUT_LENGTH * 2);
70
+ }
71
+ });
72
+ childProcess.on("close", (code) => {
73
+ resolve({ stdout, stderr, code });
74
+ });
75
+ childProcess.on("error", (err) => {
76
+ reject(err);
77
+ });
50
78
  }
51
- if (signal?.aborted) {
52
- return "Command aborted before execution.";
79
+ catch (err) {
80
+ reject(err);
53
81
  }
54
- // 2. Show in terminal for user visibility
55
- const terminal = this.getTerminal();
56
- terminal.show();
57
- terminal.sendText(command);
58
- const rootPath = vscode.workspace.workspaceFolders?.[0].uri.fsPath;
59
- const shell = process.env.SHELL || "/bin/sh";
60
- let childProcess;
61
- const spawnPromise = new Promise((resolve, reject) => {
82
+ });
83
+ const onAbort = () => {
84
+ if (childProcess && childProcess.pid) {
85
+ console.log(`[Terminal] Killing process GROUP for command: ${command}`);
62
86
  try {
63
- // Use shell: true to support command strings with pipes/redirects
64
- childProcess = spawn(command, {
65
- cwd: rootPath,
66
- shell: shell,
67
- stdio: ["ignore", "pipe", "pipe"],
68
- detached: true, // Spectral Integrity: Detach to allow PGID killing
69
- });
70
- ProcessRegistry.register(childProcess);
71
- let stdout = "";
72
- let stderr = "";
73
- childProcess.stdout?.on("data", (data) => {
74
- stdout += data.toString();
75
- if (stdout.length > MAX_OUTPUT_LENGTH * 2) {
76
- stdout = stdout.substring(stdout.length - MAX_OUTPUT_LENGTH * 2);
77
- }
78
- });
79
- childProcess.stderr?.on("data", (data) => {
80
- stderr += data.toString();
81
- if (stderr.length > MAX_OUTPUT_LENGTH * 2) {
82
- stderr = stderr.substring(stderr.length - MAX_OUTPUT_LENGTH * 2);
83
- }
84
- });
85
- childProcess.on("close", (code) => {
86
- resolve({ stdout, stderr, code });
87
- });
88
- childProcess.on("error", (err) => {
89
- reject(err);
90
- });
87
+ // Kill the entire process group (PGID)
88
+ process.kill(-childProcess.pid, "SIGTERM");
91
89
  }
92
- catch (err) {
93
- reject(err);
90
+ catch (e) {
91
+ childProcess.kill("SIGTERM");
94
92
  }
95
- });
96
- const onAbort = () => {
97
- if (childProcess && childProcess.pid) {
98
- console.log(`[Terminal] Killing process GROUP for command: ${command}`);
93
+ // Definitive Reap: Force kill PG if it doesn't shut down quickly
94
+ setTimeout(() => {
99
95
  try {
100
- // Kill the entire process group (PGID)
101
- process.kill(-childProcess.pid, "SIGTERM");
96
+ if (childProcess.pid) {
97
+ process.kill(-childProcess.pid, "SIGKILL");
98
+ }
102
99
  }
103
100
  catch (e) {
104
- childProcess.kill("SIGTERM");
105
- }
106
- // Definitive Reap: Force kill PG if it doesn't shut down quickly
107
- setTimeout(() => {
108
101
  try {
109
- if (childProcess.pid) {
110
- process.kill(-childProcess.pid, "SIGKILL");
111
- }
102
+ childProcess.kill("SIGKILL");
112
103
  }
113
- catch (e) {
114
- try {
115
- childProcess.kill("SIGKILL");
116
- }
117
- catch (e2) {
118
- // Ignore further kill errors
119
- }
104
+ catch (e2) {
105
+ // Ignore further kill errors
120
106
  }
121
- }, 1000);
122
- }
123
- };
124
- if (signal) {
125
- signal.addEventListener("abort", onAbort);
126
- }
127
- try {
128
- this.activeProcesses.add(childProcess);
129
- const { stdout, stderr, code } = await spawnPromise;
130
- this.activeProcesses.delete(childProcess);
131
- if (signal?.aborted) {
132
- return `Command aborted by user. Process cleanup initiated. 🛑`;
133
- }
134
- if (code !== 0 && code !== null) {
135
- let cleanedStderr = stripAnsi(stderr);
136
- if (cleanedStderr.length > MAX_OUTPUT_LENGTH) {
137
- cleanedStderr =
138
- `... [Truncated] ...\n` +
139
- cleanedStderr.substring(cleanedStderr.length - MAX_OUTPUT_LENGTH);
140
107
  }
141
- return `Command failed (Exit Code: ${code}):\n${cleanedStderr ? `**Error Output:**\n\`\`\`\n${cleanedStderr}\n\`\`\`` : "No error output captured."}`;
142
- }
143
- let result = `Command executed successfully (Exit Code: 0). ✨\n\n`;
144
- const formatOutput = (text, label) => {
145
- if (!text)
146
- return "";
147
- let content = stripAnsi(text);
148
- if (content.length > MAX_OUTPUT_LENGTH) {
149
- content =
150
- `... [Truncated for brevity] ...\n` +
151
- content.substring(content.length - MAX_OUTPUT_LENGTH);
152
- }
153
- return `**${label}:**\n\`\`\`\n${content}\n\`\`\`\n`;
154
- };
155
- result += formatOutput(stdout, "Output");
156
- result += formatOutput(stderr, "Errors/Warnings");
157
- return result || "Command completed with no output.";
108
+ }, 1000);
109
+ }
110
+ };
111
+ if (signal) {
112
+ signal.addEventListener("abort", onAbort);
113
+ }
114
+ try {
115
+ activeProcesses.add(childProcess);
116
+ const { stdout, stderr, code } = await spawnPromise;
117
+ activeProcesses.delete(childProcess);
118
+ if (signal?.aborted) {
119
+ return `Command aborted by user. Process cleanup initiated. 🛑`;
158
120
  }
159
- catch (error) {
160
- if (signal?.aborted) {
161
- return `Command aborted by user. Process cleanup initiated. 🛑`;
121
+ if (code !== 0 && code !== null) {
122
+ let cleanedStderr = stripAnsi(stderr);
123
+ if (cleanedStderr.length > MAX_OUTPUT_LENGTH) {
124
+ cleanedStderr =
125
+ `... [Truncated] ...\n` +
126
+ cleanedStderr.substring(cleanedStderr.length - MAX_OUTPUT_LENGTH);
162
127
  }
163
- return `Command execution failed: ${error.message}`;
128
+ return `Command failed (Exit Code: ${code}):\n${cleanedStderr ? `**Error Output:**\n\`\`\`\n${cleanedStderr}\n\`\`\`` : "No error output captured."}`;
164
129
  }
165
- finally {
166
- this.activeProcesses.delete(childProcess);
167
- if (signal) {
168
- signal.removeEventListener("abort", onAbort);
130
+ let result = `Command executed successfully (Exit Code: 0). ✨\n\n`;
131
+ const formatOutput = (text, label) => {
132
+ if (!text)
133
+ return "";
134
+ let content = stripAnsi(text);
135
+ if (content.length > MAX_OUTPUT_LENGTH) {
136
+ content =
137
+ `... [Truncated for brevity] ...\n` +
138
+ content.substring(content.length - MAX_OUTPUT_LENGTH);
169
139
  }
140
+ return `**${label}:**\n\`\`\`\n${content}\n\`\`\`\n`;
141
+ };
142
+ result += formatOutput(stdout, "Output");
143
+ result += formatOutput(stderr, "Errors/Warnings");
144
+ return result || "Command completed with no output.";
145
+ }
146
+ catch (error) {
147
+ if (signal?.aborted) {
148
+ return `Command aborted by user. Process cleanup initiated. 🛑`;
170
149
  }
150
+ return `Command execution failed: ${error.message}`;
171
151
  }
172
- static cleanup() {
173
- console.log(`[Terminal] Cleaning up ${this.activeProcesses.size} active processes...`);
174
- for (const cp of this.activeProcesses) {
175
- try {
176
- cp.kill("SIGKILL");
177
- }
178
- catch (e) {
179
- // Ignore errors during cleanup
180
- }
152
+ finally {
153
+ activeProcesses.delete(childProcess);
154
+ if (signal) {
155
+ signal.removeEventListener("abort", onAbort);
156
+ }
157
+ }
158
+ }
159
+ export function cleanupProcesses() {
160
+ console.log(`[Terminal] Cleaning up ${activeProcesses.size} active processes...`);
161
+ for (const cp of activeProcesses) {
162
+ try {
163
+ cp.kill("SIGKILL");
164
+ }
165
+ catch (e) {
166
+ // Ignore errors during cleanup
181
167
  }
182
- this.activeProcesses.clear();
183
168
  }
169
+ activeProcesses.clear();
184
170
  }
185
171
  //# sourceMappingURL=TerminalService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TerminalService.js","sourceRoot":"","sources":["../../../../src/monolith/plumbing/terminal/TerminalService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TerminalService.js","sourceRoot":"","sources":["../../../../src/monolith/plumbing/terminal/TerminalService.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,13 @@
1
1
  import { createRequire } from "module";
2
2
  /**
3
3
  * Robust environment detection for Marie.
4
- * Distinguishes between VS Code Extension Host and CLI/Standalone modes.
4
+ * Distinguishes between CLI/Standalone modes.
5
5
  */
6
6
  export function isVsCodeExtension() {
7
- return Boolean((process.env.VSCODE_IPC_HOOK ||
8
- process.env.VSCODE_PID ||
9
- process.env.VSCODE_CWD ||
10
- process.env.VSCODE_NLS_CONFIG) &&
11
- !process.env.MARIE_FORCE_CLI);
7
+ return false;
12
8
  }
13
9
  /**
14
10
  * Isomorphic require implementation that works in both ESM and CJS.
15
- * Prevents build-time and runtime crashes in bundled environments like VS Code.
16
11
  */
17
12
  export const nodeRequire = (() => {
18
13
  // Use globalThis to avoid shadowing/hoisting issues with 'require'
@@ -21,8 +16,6 @@ export const nodeRequire = (() => {
21
16
  return g.require;
22
17
  }
23
18
  // In ESM environments, we must create a require function using import.meta.url
24
- // We use an indirect eval to prevent bundlers (like esbuild) from
25
- // attempting to polyfill or complain about import.meta in non-ESM output.
26
19
  try {
27
20
  const metaUrl = (0, eval)("import.meta.url");
28
21
  if (metaUrl) {
@@ -32,28 +25,15 @@ export const nodeRequire = (() => {
32
25
  catch {
33
26
  // Fallback or ignore
34
27
  }
35
- // Final fallback for environments where neither require nor createRequire is feasible
28
+ // Final fallback
36
29
  return (id) => {
37
30
  throw new Error(`Execution Environment Error: Cannot require "${id}". Environment is incompatible with module resolution.`);
38
31
  };
39
32
  })();
40
33
  /**
41
34
  * Safely resolves the workspace root directory.
42
- * In VS Code, it uses the first workspace folder.
43
- * In CLI or tests, it defaults to the current working directory.
44
35
  */
45
36
  export function getWorkspaceRoot() {
46
- if (isVsCodeExtension()) {
47
- try {
48
- const vscode = nodeRequire("vscode");
49
- const root = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath;
50
- if (root)
51
- return root;
52
- }
53
- catch {
54
- // Fallback
55
- }
56
- }
57
37
  return process.cwd();
58
38
  }
59
39
  //# sourceMappingURL=EnvironmentUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EnvironmentUtils.js","sourceRoot":"","sources":["../../../../src/monolith/plumbing/utils/EnvironmentUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,OAAO,CACZ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe;QAC1B,OAAO,CAAC,GAAG,CAAC,UAAU;QACtB,OAAO,CAAC,GAAG,CAAC,UAAU;QACtB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAChC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAC7B,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE;IAC/B,mEAAmE;IACnE,MAAM,CAAC,GAAG,UAAiB,CAAC;IAC5B,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO,CAAC,CAAC,OAAO,CAAC;IACnB,CAAC;IAED,+EAA+E;IAC/E,kEAAkE;IAClE,0EAA0E;IAC1E,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;IAED,sFAAsF;IACtF,OAAO,CAAC,EAAU,EAAE,EAAE;QACpB,MAAM,IAAI,KAAK,CACb,gDAAgD,EAAE,wDAAwD,CAC3G,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC,EAAE,CAAC;AAEL;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,iBAAiB,EAAE,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAA4B,CAAC;YAChE,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;YAChE,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,WAAW;QACb,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"EnvironmentUtils.js","sourceRoot":"","sources":["../../../../src/monolith/plumbing/utils/EnvironmentUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE;IAC/B,mEAAmE;IACnE,MAAM,CAAC,GAAG,UAAiB,CAAC;IAC5B,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO,CAAC,CAAC,OAAO,CAAC;IACnB,CAAC;IAED,+EAA+E;IAC/E,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;IAED,iBAAiB;IACjB,OAAO,CAAC,EAAU,EAAE,EAAE;QACpB,MAAM,IAAI,KAAK,CACb,gDAAgD,EAAE,wDAAwD,CAC3G,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC,EAAE,CAAC;AAEL;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC"}