@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
package/dist/extension.js DELETED
@@ -1,474 +0,0 @@
1
- import * as vscode from "vscode";
2
- import { Marie } from "./monolith/adapters/VscodeMarieAdapter.js";
3
- import { JoyService } from "./monolith/services/JoyService.js";
4
- import { JoyLogService } from "./monolith/services/JoyLogService.js";
5
- import { ConfigService } from "./monolith/infrastructure/config/ConfigService.js";
6
- import { UpdateService } from "./monolith/services/UpdateService.js";
7
- let marie;
8
- let joyService;
9
- let mariePanel;
10
- let webviewHost;
11
- class MarieWebviewHost {
12
- context;
13
- marieInstance;
14
- webviews = new Set();
15
- stateSubscription;
16
- constructor(context, marieInstance) {
17
- this.context = context;
18
- this.marieInstance = marieInstance;
19
- this.stateSubscription = this.marieInstance.onStateChanged((state) => {
20
- this.pushState(state);
21
- });
22
- }
23
- attach(webview) {
24
- console.log("[MarieHost] Attaching new webview");
25
- this.webviews.add(webview);
26
- webview.options = {
27
- enableScripts: true,
28
- localResourceRoots: [
29
- vscode.Uri.joinPath(this.context.extensionUri, "dist", "webview-ui"),
30
- vscode.Uri.joinPath(this.context.extensionUri, "assets"),
31
- ],
32
- };
33
- const scriptDiskPath = vscode.Uri.joinPath(this.context.extensionUri, "dist", "webview-ui", "main.js");
34
- vscode.workspace.fs.stat(scriptDiskPath).then(() => undefined, () => {
35
- void vscode.window.showErrorMessage("Marie webview bundle missing (dist/webview-ui/main.js). Run `npm run build` and reinstall the extension.");
36
- });
37
- webview.html = this.getHtml(webview);
38
- webview.onDidReceiveMessage((message) => this.onMessage(message));
39
- // Refined: push initial state ONLY to this webview immediately after attach
40
- this.pushInitState(webview).catch(() => undefined);
41
- }
42
- detach(webview) {
43
- this.webviews.delete(webview);
44
- }
45
- dispose() {
46
- if (this.stateSubscription) {
47
- this.stateSubscription();
48
- this.stateSubscription = undefined;
49
- }
50
- }
51
- post(message) {
52
- const enriched = {
53
- ...message,
54
- sequenceNumber: this.marieInstance.getSequenceNumber(),
55
- };
56
- for (const webview of this.webviews) {
57
- void webview.postMessage(enriched);
58
- }
59
- }
60
- async pushState(runtimeState) {
61
- const config = this.getConfigSnapshot();
62
- const sessions = await this.marieInstance.listSessions();
63
- const uiMessages = runtimeState.messages.map((message, index) => ({
64
- id: `hist_${index}`,
65
- role: (message.role || "assistant"),
66
- content: this.extractMessageText(message),
67
- timestamp: message.timestamp || Date.now(),
68
- }));
69
- this.post({
70
- type: "init_state",
71
- state: {
72
- messages: uiMessages,
73
- config: config,
74
- currentSessionId: runtimeState.currentSessionId,
75
- sessions: sessions,
76
- availableModels: await this.marieInstance.getModels(),
77
- sequenceNumber: runtimeState.sequenceNumber,
78
- },
79
- });
80
- }
81
- async onMessage(message) {
82
- console.log("[MarieHost] Received message from webview:", message?.type);
83
- switch (message?.type) {
84
- case "ready":
85
- await this.pushInitState();
86
- return;
87
- case "send_message":
88
- await this.handleSendMessage(String(message.text || ""));
89
- return;
90
- case "stop_generation":
91
- this.marieInstance.stopGeneration();
92
- this.post({ type: "status", isLoading: false });
93
- return;
94
- case "approval_response":
95
- if (message.id && typeof message.approved === "boolean") {
96
- this.marieInstance.resolveApproval(String(message.id), Boolean(message.approved));
97
- }
98
- return;
99
- case "create_session":
100
- await this.marieInstance.createSession();
101
- await this.pushInitState();
102
- return;
103
- case "clear_session":
104
- await this.marieInstance.clearCurrentSession();
105
- await this.pushInitState();
106
- return;
107
- case "list_sessions":
108
- await this.pushSessions();
109
- return;
110
- case "load_session":
111
- if (message.id) {
112
- await this.marieInstance.loadSession(String(message.id));
113
- await this.pushInitState();
114
- }
115
- return;
116
- case "delete_session":
117
- if (message.id) {
118
- await this.marieInstance.deleteSession(String(message.id));
119
- await this.pushInitState();
120
- }
121
- return;
122
- case "rename_session":
123
- if (message.id && message.title) {
124
- await this.marieInstance.renameSession(String(message.id), String(message.title));
125
- await this.pushSessions();
126
- }
127
- return;
128
- case "toggle_pin_session":
129
- if (message.id) {
130
- await this.marieInstance.togglePinSession(String(message.id));
131
- await this.pushSessions();
132
- }
133
- return;
134
- case "get_models":
135
- // Models are now part of init_state, but we keep this for manual refreshes
136
- this.post({
137
- type: "models",
138
- models: await this.marieInstance.getModels(),
139
- });
140
- return;
141
- case "set_provider":
142
- await this.setProvider(String(message.provider || "anthropic"));
143
- return;
144
- case "set_model":
145
- await this.setModel(String(message.model || ""));
146
- return;
147
- case "set_autonomy_mode":
148
- await this.setAutonomyMode(String(message.mode || "balanced"));
149
- return;
150
- case "set_api_key":
151
- await this.setApiKey(String(message.provider || "anthropic"), String(message.apiKey || ""));
152
- return;
153
- case "open_settings":
154
- await vscode.commands.executeCommand("workbench.action.openSettings", "@ext:cardsorting.marie");
155
- return;
156
- default:
157
- return;
158
- }
159
- }
160
- async handleSendMessage(text) {
161
- const trimmed = text.trim();
162
- if (!trimmed)
163
- return;
164
- this.post({ type: "status", isLoading: true });
165
- this.post({ type: "user_echo", text: trimmed });
166
- try {
167
- const response = await this.marieInstance.handleMessage(trimmed, {
168
- onStream: (chunk) => {
169
- this.post({ type: "message_stream", chunk });
170
- },
171
- onTool: (tool) => {
172
- this.post({ type: "tool_event", tool });
173
- },
174
- onToolDelta: (delta) => {
175
- this.post({ type: "tool_delta", delta });
176
- },
177
- onApprovalRequest: (request) => {
178
- this.post({ type: "approval_request", request });
179
- },
180
- onEvent: (event) => {
181
- this.post({ type: "runtime_event", event });
182
- },
183
- });
184
- this.post({ type: "assistant_response", text: response });
185
- }
186
- catch (error) {
187
- this.post({ type: "error", message: String(error) });
188
- }
189
- finally {
190
- this.post({ type: "status", isLoading: false });
191
- await this.pushSessions();
192
- }
193
- }
194
- async setAutonomyMode(rawMode) {
195
- const mode = rawMode === "yolo" || rawMode === "high" ? rawMode : "balanced";
196
- const cfg = vscode.workspace.getConfiguration("marie");
197
- await cfg.update("autonomyMode", mode, vscode.ConfigurationTarget.Global);
198
- this.marieInstance.updateSettings();
199
- this.post({ type: "config", config: this.getConfigSnapshot() });
200
- }
201
- async setProvider(rawProvider) {
202
- const provider = rawProvider === "openrouter" || rawProvider === "cerebras"
203
- ? rawProvider
204
- : "anthropic";
205
- const cfg = vscode.workspace.getConfiguration("marie");
206
- // Get the current model to check if we need to reset it for the new provider
207
- const currentModel = ConfigService.getModel();
208
- // Define sensible default models for each provider
209
- let newModel;
210
- if (provider === "openrouter") {
211
- // For OpenRouter, use the OpenRouter format for Claude
212
- newModel = "anthropic/claude-3.5-sonnet";
213
- }
214
- else if (provider === "cerebras") {
215
- // For Cerebras, use Llama
216
- newModel = "llama3.1-8b";
217
- }
218
- else {
219
- // For Anthropic, use the default Claude model
220
- newModel = "claude-3-5-sonnet-20241022";
221
- }
222
- // Only update model if it's not already set to a compatible model for the provider
223
- // Check if current model would work with the new provider
224
- const needsModelReset = !this.isModelCompatibleWithProvider(currentModel, provider);
225
- await cfg.update("aiProvider", provider, vscode.ConfigurationTarget.Global);
226
- if (needsModelReset) {
227
- await cfg.update("model", newModel, vscode.ConfigurationTarget.Global);
228
- }
229
- this.marieInstance.updateSettings();
230
- this.post({ type: "config", config: this.getConfigSnapshot() });
231
- this.post({ type: "models", models: await this.marieInstance.getModels() });
232
- }
233
- isModelCompatibleWithProvider(model, provider) {
234
- if (provider === "anthropic") {
235
- // Anthropic accepts claude-* models
236
- return model.startsWith("claude-");
237
- }
238
- else if (provider === "openrouter") {
239
- // OpenRouter accepts models in various formats (anthropic/*, openai/*, google/*, etc.)
240
- // or common models like llama-*
241
- return (model.includes("/") ||
242
- model.startsWith("llama-") ||
243
- model.startsWith("gpt-"));
244
- }
245
- else if (provider === "cerebras") {
246
- // Cerebras accepts llama-* models
247
- return model.startsWith("llama-");
248
- }
249
- return false;
250
- }
251
- async setModel(rawModel) {
252
- const model = rawModel.trim();
253
- if (!model)
254
- return;
255
- const cfg = vscode.workspace.getConfiguration("marie");
256
- await cfg.update("model", model, vscode.ConfigurationTarget.Global);
257
- this.marieInstance.updateSettings();
258
- this.post({ type: "config", config: this.getConfigSnapshot() });
259
- }
260
- async setApiKey(rawProvider, rawKey) {
261
- const provider = rawProvider === "openrouter" || rawProvider === "cerebras"
262
- ? rawProvider
263
- : "anthropic";
264
- const apiKey = rawKey.trim();
265
- if (!apiKey)
266
- return;
267
- const cfg = vscode.workspace.getConfiguration("marie");
268
- const settingKey = provider === "openrouter"
269
- ? "openrouterApiKey"
270
- : provider === "cerebras"
271
- ? "cerebrasApiKey"
272
- : "apiKey";
273
- await cfg.update(settingKey, apiKey, vscode.ConfigurationTarget.Global);
274
- this.marieInstance.updateSettings();
275
- this.post({ type: "config", config: this.getConfigSnapshot() });
276
- this.post({ type: "models", models: await this.marieInstance.getModels() });
277
- }
278
- async pushInitState(targetWebview) {
279
- console.log("[MarieHost] Pushing initial state...");
280
- const config = this.getConfigSnapshot();
281
- const messages = this.getUiMessages();
282
- const sessions = await this.marieInstance.listSessions();
283
- const currentSessionId = this.marieInstance.getCurrentSessionId();
284
- const payload = {
285
- type: "init_state",
286
- state: {
287
- messages: messages,
288
- config: config,
289
- currentSessionId: currentSessionId,
290
- sessions: sessions,
291
- availableModels: await this.marieInstance.getModels(),
292
- },
293
- };
294
- if (targetWebview) {
295
- void targetWebview.postMessage(payload);
296
- }
297
- else {
298
- this.post(payload);
299
- }
300
- }
301
- async pushSessions() {
302
- const sessions = await this.marieInstance.listSessions();
303
- this.post({
304
- type: "sessions",
305
- sessions,
306
- currentSessionId: this.marieInstance.getCurrentSessionId(),
307
- });
308
- }
309
- getConfigSnapshot() {
310
- const provider = ConfigService.getAiProvider();
311
- const providerKey = provider === "openrouter"
312
- ? ConfigService.getOpenRouterApiKey()
313
- : provider === "cerebras"
314
- ? ConfigService.getCerebrasApiKey()
315
- : ConfigService.getApiKey();
316
- return {
317
- provider,
318
- model: ConfigService.getModel(),
319
- autonomyMode: ConfigService.getAutonomyMode(),
320
- hasAnyApiKey: Boolean(ConfigService.getApiKey() ||
321
- ConfigService.getOpenRouterApiKey() ||
322
- ConfigService.getCerebrasApiKey()),
323
- hasProviderApiKey: Boolean(providerKey),
324
- };
325
- }
326
- getUiMessages() {
327
- return this.marieInstance
328
- .getMessages()
329
- .map((message, index) => ({
330
- id: `hist_${index}`,
331
- role: (message.role || "assistant"),
332
- content: this.extractMessageText(message),
333
- timestamp: Date.now(),
334
- }));
335
- }
336
- extractMessageText(message) {
337
- if (typeof message?.content === "string") {
338
- return message.content;
339
- }
340
- if (!Array.isArray(message?.content)) {
341
- return String(message?.content ?? "");
342
- }
343
- const parts = [];
344
- for (const block of message.content) {
345
- if (block?.type === "text") {
346
- parts.push(block.text || "");
347
- }
348
- else if (block?.type === "tool_use") {
349
- parts.push(`[Tool Use: ${block.name}]`);
350
- }
351
- else if (block?.type === "tool_result") {
352
- const content = typeof block.content === "string"
353
- ? block.content
354
- : JSON.stringify(block.content);
355
- const summary = content.length > 100 ? content.substring(0, 100) + "..." : content;
356
- parts.push(`[Tool Result: ${summary}]`);
357
- }
358
- }
359
- return parts.join("\n").trim() || "(empty content)";
360
- }
361
- getHtml(webview) {
362
- const scriptUri = webview.asWebviewUri(vscode.Uri.joinPath(this.context.extensionUri, "dist", "webview-ui", "main.js"));
363
- const styleUri = webview.asWebviewUri(vscode.Uri.joinPath(this.context.extensionUri, "dist", "webview-ui", "main.css"));
364
- const nonce = `${Date.now()}${Math.random().toString(36).slice(2)}`;
365
- return `<!DOCTYPE html>
366
- <html lang="en">
367
- <head>
368
- <meta charset="UTF-8" />
369
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
370
- <meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src ${webview.cspSource} https: data:; style-src ${webview.cspSource} 'unsafe-inline'; script-src ${webview.cspSource} 'nonce-${nonce}';" />
371
- <link rel="stylesheet" type="text/css" href="${styleUri}" />
372
- <title>Marie</title>
373
- </head>
374
- <body>
375
- <div id="app" style="padding:12px;font-family:var(--vscode-font-family);color:var(--vscode-foreground);">Loading Marie UI…</div>
376
- <script nonce="${nonce}">
377
- try {
378
- const el = document.getElementById('app');
379
- if (el) el.textContent = 'Marie script bootstrapping…';
380
- } catch {}
381
- </script>
382
- <script nonce="${nonce}" src="${scriptUri}"></script>
383
- </body>
384
- </html>`;
385
- }
386
- }
387
- class MarieSidebarProvider {
388
- static viewType = "marieView";
389
- resolveWebviewView(webviewView) {
390
- webviewHost?.attach(webviewView.webview);
391
- webviewHost?.["pushInitState"]?.(webviewView.webview);
392
- webviewView.onDidDispose(() => {
393
- webviewHost?.detach(webviewView.webview);
394
- });
395
- }
396
- }
397
- function showMarieWebview(context) {
398
- if (mariePanel) {
399
- mariePanel.reveal(vscode.ViewColumn.Beside);
400
- return mariePanel;
401
- }
402
- mariePanel = vscode.window.createWebviewPanel("marieUi", "Marie", vscode.ViewColumn.Beside, {
403
- enableScripts: true,
404
- retainContextWhenHidden: true,
405
- });
406
- webviewHost?.attach(mariePanel.webview);
407
- webviewHost?.["pushInitState"]?.(mariePanel.webview);
408
- mariePanel.onDidDispose(() => {
409
- if (mariePanel) {
410
- webviewHost?.detach(mariePanel.webview);
411
- }
412
- mariePanel = undefined;
413
- }, null, context.subscriptions);
414
- return mariePanel;
415
- }
416
- export function activate(context) {
417
- console.log("[Marie] Activating extension...");
418
- // Initialize JoyLog service
419
- const joyLog = new JoyLogService(context);
420
- console.log("[Marie] JoyLogService initialized");
421
- // Initialize Joy service
422
- joyService = new JoyService(context, joyLog);
423
- console.log("[Marie] JoyService initialized");
424
- // Initialize Marie
425
- marie = new Marie(context, joyService);
426
- console.log("[Marie] Marie adapter initialized");
427
- webviewHost = new MarieWebviewHost(context, marie);
428
- console.log("[Marie] MarieWebviewHost initialized");
429
- // Check for updates
430
- const currentVersion = context.extension.packageJSON.version;
431
- UpdateService.checkUpdate(currentVersion).then((info) => {
432
- if (info?.isUpdateAvailable) {
433
- vscode.window
434
- .showInformationMessage(`A new version of Marie (${info.latestVersion}) is available.`, "Update Now", "View Release Notes")
435
- .then((selection) => {
436
- if (selection === "Update Now" ||
437
- selection === "View Release Notes") {
438
- vscode.env.openExternal(vscode.Uri.parse("https://github.com/DreamBeesAI/Marie-Coder-New-the-vatican/releases"));
439
- }
440
- });
441
- }
442
- });
443
- // Register commands
444
- const disposable = vscode.commands.registerCommand("marie.start", () => {
445
- return showMarieWebview(context);
446
- });
447
- const sidebarProvider = vscode.window.registerWebviewViewProvider(MarieSidebarProvider.viewType, new MarieSidebarProvider());
448
- context.subscriptions.push(disposable);
449
- context.subscriptions.push(sidebarProvider);
450
- context.subscriptions.push(marie);
451
- console.log("[Marie] Commands and providers registered");
452
- return {
453
- getWebviewHtml: () => webviewHost?.["getHtml"]?.call(webviewHost, {
454
- asWebviewUri: (uri) => uri,
455
- cspSource: "vscode-resource:",
456
- }),
457
- };
458
- }
459
- export function deactivate() {
460
- if (mariePanel) {
461
- mariePanel.dispose();
462
- mariePanel = undefined;
463
- }
464
- if (webviewHost) {
465
- webviewHost.dispose();
466
- webviewHost = undefined;
467
- }
468
- if (marie) {
469
- marie.dispose();
470
- marie = undefined;
471
- }
472
- joyService = undefined;
473
- }
474
- //# sourceMappingURL=extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,2CAA2C,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,IAAI,KAAwB,CAAC;AAC7B,IAAI,UAAkC,CAAC;AACvC,IAAI,UAA2C,CAAC;AAChD,IAAI,WAAyC,CAAC;AAS9C,MAAM,gBAAgB;IAKD;IACA;IALX,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IACrC,iBAAiB,CAA2B;IAEpD,YACmB,OAAgC,EAChC,aAAoB;QADpB,YAAO,GAAP,OAAO,CAAyB;QAChC,kBAAa,GAAb,aAAa,CAAO;QAErC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE;YACnE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,OAAuB;QACnC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE3B,OAAO,CAAC,OAAO,GAAG;YAChB,aAAa,EAAE,IAAI;YACnB,kBAAkB,EAAE;gBAClB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC;gBACpE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC;aACzD;SACF,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CACxC,IAAI,CAAC,OAAO,CAAC,YAAY,EACzB,MAAM,EACN,YAAY,EACZ,SAAS,CACV,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAC3C,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE;YACH,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,CACjC,0GAA0G,CAC3G,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAElE,4EAA4E;QAC5E,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IAEM,MAAM,CAAC,OAAuB;QACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAEM,OAAO;QACZ,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACrC,CAAC;IACH,CAAC;IAEO,IAAI,CAAC,OAAY;QACvB,MAAM,QAAQ,GAAG;YACf,GAAG,OAAO;YACV,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE;SACvD,CAAC;QACF,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,KAAK,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,YAAiB;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QACzD,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAC1C,CAAC,OAAY,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC;YAChC,EAAE,EAAE,QAAQ,KAAK,EAAE;YACnB,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW,CAAsB;YACxD,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;YACzC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;SAC3C,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,MAAM,EAAE,MAAM;gBACd,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;gBAC/C,QAAQ,EAAE,QAAQ;gBAClB,eAAe,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;gBACrD,cAAc,EAAE,YAAY,CAAC,cAAc;aAC5C;SACF,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,OAAY;QAClC,OAAO,CAAC,GAAG,CAAC,4CAA4C,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACzE,QAAQ,OAAO,EAAE,IAAI,EAAE,CAAC;YACtB,KAAK,OAAO;gBACV,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC3B,OAAO;YACT,KAAK,cAAc;gBACjB,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;gBACzD,OAAO;YACT,KAAK,iBAAiB;gBACpB,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;gBAChD,OAAO;YACT,KAAK,mBAAmB;gBACtB,IAAI,OAAO,CAAC,EAAE,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACxD,IAAI,CAAC,aAAa,CAAC,eAAe,CAChC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAClB,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAC1B,CAAC;gBACJ,CAAC;gBACD,OAAO;YACT,KAAK,gBAAgB;gBACnB,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;gBACzC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC3B,OAAO;YACT,KAAK,eAAe;gBAClB,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;gBAC/C,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC3B,OAAO;YACT,KAAK,eAAe;gBAClB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC1B,OAAO;YACT,KAAK,cAAc;gBACjB,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;oBACf,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;oBACzD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC7B,CAAC;gBACD,OAAO;YACT,KAAK,gBAAgB;gBACnB,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;oBACf,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC3D,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC7B,CAAC;gBACD,OAAO;YACT,KAAK,gBAAgB;gBACnB,IAAI,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBAChC,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CACpC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAClB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CACtB,CAAC;oBACF,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC5B,CAAC;gBACD,OAAO;YACT,KAAK,oBAAoB;gBACvB,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;oBACf,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC9D,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC5B,CAAC;gBACD,OAAO;YACT,KAAK,YAAY;gBACf,2EAA2E;gBAC3E,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;iBAC7C,CAAC,CAAC;gBACH,OAAO;YACT,KAAK,cAAc;gBACjB,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC;gBAChE,OAAO;YACT,KAAK,WAAW;gBACd,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;gBACjD,OAAO;YACT,KAAK,mBAAmB;gBACtB,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC;gBAC/D,OAAO;YACT,KAAK,aAAa;gBAChB,MAAM,IAAI,CAAC,SAAS,CAClB,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC,EACvC,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAC7B,CAAC;gBACF,OAAO;YACT,KAAK,eAAe;gBAClB,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,CAClC,+BAA+B,EAC/B,wBAAwB,CACzB,CAAC;gBACF,OAAO;YACT;gBACE,OAAO;QACX,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAEhD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE;gBAC/D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC/C,CAAC;gBACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACf,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1C,CAAC;gBACD,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;oBACrB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC3C,CAAC;gBACD,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE;oBAC7B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,CAAC;gBACnD,CAAC;gBACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACjB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC9C,CAAC;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAChD,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,OAAe;QAC3C,MAAM,IAAI,GACR,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;QAClE,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,WAAmB;QAC3C,MAAM,QAAQ,GACZ,WAAW,KAAK,YAAY,IAAI,WAAW,KAAK,UAAU;YACxD,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,WAAW,CAAC;QAClB,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEvD,6EAA6E;QAC7E,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;QAE9C,mDAAmD;QACnD,IAAI,QAAgB,CAAC;QACrB,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC9B,uDAAuD;YACvD,QAAQ,GAAG,6BAA6B,CAAC;QAC3C,CAAC;aAAM,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YACnC,0BAA0B;YAC1B,QAAQ,GAAG,aAAa,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,8CAA8C;YAC9C,QAAQ,GAAG,4BAA4B,CAAC;QAC1C,CAAC;QAED,mFAAmF;QACnF,0DAA0D;QAC1D,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,6BAA6B,CACzD,YAAY,EACZ,QAAQ,CACT,CAAC;QAEF,MAAM,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC5E,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IAEO,6BAA6B,CACnC,KAAa,EACb,QAAgB;QAEhB,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC7B,oCAAoC;YACpC,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YACrC,uFAAuF;YACvF,gCAAgC;YAChC,OAAO,CACL,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACnB,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAC1B,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CACzB,CAAC;QACJ,CAAC;aAAM,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YACnC,kCAAkC;YAClC,OAAO,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,QAAgB;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,WAAmB,EAAE,MAAc;QACzD,MAAM,QAAQ,GACZ,WAAW,KAAK,YAAY,IAAI,WAAW,KAAK,UAAU;YACxD,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,WAAW,CAAC;QAClB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,UAAU,GACd,QAAQ,KAAK,YAAY;YACvB,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,QAAQ,KAAK,UAAU;gBACvB,CAAC,CAAC,gBAAgB;gBAClB,CAAC,CAAC,QAAQ,CAAC;QAEjB,MAAM,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACxE,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,aAA8B;QACxD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QACzD,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;QAElE,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE;gBACL,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,MAAM;gBACd,gBAAgB,EAAE,gBAAgB;gBAClC,QAAQ,EAAE,QAAQ;gBAClB,eAAe,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;aACtD;SACF,CAAC;QAEF,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,UAAU;YAChB,QAAQ;YACR,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE;SAC3D,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB;QACvB,MAAM,QAAQ,GAAG,aAAa,CAAC,aAAa,EAAE,CAAC;QAC/C,MAAM,WAAW,GACf,QAAQ,KAAK,YAAY;YACvB,CAAC,CAAC,aAAa,CAAC,mBAAmB,EAAE;YACrC,CAAC,CAAC,QAAQ,KAAK,UAAU;gBACvB,CAAC,CAAC,aAAa,CAAC,iBAAiB,EAAE;gBACnC,CAAC,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;QAClC,OAAO;YACL,QAAQ;YACR,KAAK,EAAE,aAAa,CAAC,QAAQ,EAAE;YAC/B,YAAY,EAAE,aAAa,CAAC,eAAe,EAAE;YAC7C,YAAY,EAAE,OAAO,CACnB,aAAa,CAAC,SAAS,EAAE;gBACzB,aAAa,CAAC,mBAAmB,EAAE;gBACnC,aAAa,CAAC,iBAAiB,EAAE,CAClC;YACD,iBAAiB,EAAE,OAAO,CAAC,WAAW,CAAC;SACxC,CAAC;IACJ,CAAC;IAEO,aAAa;QACnB,OAAO,IAAI,CAAC,aAAa;aACtB,WAAW,EAAE;aACb,GAAG,CAAC,CAAC,OAAY,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC;YACrC,EAAE,EAAE,QAAQ,KAAK,EAAE;YACnB,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW,CAAsB;YACxD,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;YACzC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC,CAAC;IACR,CAAC;IAEO,kBAAkB,CAAC,OAAY;QACrC,IAAI,OAAO,OAAO,EAAE,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzC,OAAO,OAAO,CAAC,OAAO,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YACrC,OAAO,MAAM,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,KAAK,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAC/B,CAAC;iBAAM,IAAI,KAAK,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;YAC1C,CAAC;iBAAM,IAAI,KAAK,EAAE,IAAI,KAAK,aAAa,EAAE,CAAC;gBACzC,MAAM,OAAO,GACX,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;oBAC/B,CAAC,CAAC,KAAK,CAAC,OAAO;oBACf,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACpC,MAAM,OAAO,GACX,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;gBACrE,KAAK,CAAC,IAAI,CAAC,iBAAiB,OAAO,GAAG,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,iBAAiB,CAAC;IACtD,CAAC;IAEO,OAAO,CAAC,OAAuB;QACrC,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CACpC,MAAM,CAAC,GAAG,CAAC,QAAQ,CACjB,IAAI,CAAC,OAAO,CAAC,YAAY,EACzB,MAAM,EACN,YAAY,EACZ,SAAS,CACV,CACF,CAAC;QACF,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CACnC,MAAM,CAAC,GAAG,CAAC,QAAQ,CACjB,IAAI,CAAC,OAAO,CAAC,YAAY,EACzB,MAAM,EACN,YAAY,EACZ,UAAU,CACX,CACF,CAAC;QACF,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAEpE,OAAO;;;;;sFAK2E,OAAO,CAAC,SAAS,4BAA4B,OAAO,CAAC,SAAS,gCAAgC,OAAO,CAAC,SAAS,WAAW,KAAK;mDAClK,QAAQ;;;;;qBAKtC,KAAK;;;;;;qBAML,KAAK,UAAU,SAAS;;QAErC,CAAC;IACP,CAAC;CACF;AAED,MAAM,oBAAoB;IACjB,MAAM,CAAU,QAAQ,GAAG,WAAW,CAAC;IAE9C,kBAAkB,CAAC,WAA+B;QAChD,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACzC,WAAW,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACtD,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE;YAC5B,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;;AAGH,SAAS,gBAAgB,CACvB,OAAgC;IAEhC,IAAI,UAAU,EAAE,CAAC;QACf,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAC3C,SAAS,EACT,OAAO,EACP,MAAM,CAAC,UAAU,CAAC,MAAM,EACxB;QACE,aAAa,EAAE,IAAI;QACnB,uBAAuB,EAAE,IAAI;KAC9B,CACF,CAAC;IACF,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACxC,WAAW,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAErD,UAAU,CAAC,YAAY,CACrB,GAAG,EAAE;QACH,IAAI,UAAU,EAAE,CAAC;YACf,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC,EACD,IAAI,EACJ,OAAO,CAAC,aAAa,CACtB,CAAC;IAEF,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAgC;IACvD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAE/C,4BAA4B;IAC5B,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IAEjD,yBAAyB;IACzB,UAAU,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAE9C,mBAAmB;IACnB,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IAEjD,WAAW,GAAG,IAAI,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IAEpD,oBAAoB;IACpB,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC;IAC7D,aAAa,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACtD,IAAI,IAAI,EAAE,iBAAiB,EAAE,CAAC;YAC5B,MAAM,CAAC,MAAM;iBACV,sBAAsB,CACrB,2BAA2B,IAAI,CAAC,aAAa,iBAAiB,EAC9D,YAAY,EACZ,oBAAoB,CACrB;iBACA,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;gBAClB,IACE,SAAS,KAAK,YAAY;oBAC1B,SAAS,KAAK,oBAAoB,EAClC,CAAC;oBACD,MAAM,CAAC,GAAG,CAAC,YAAY,CACrB,MAAM,CAAC,GAAG,CAAC,KAAK,CACd,qEAAqE,CACtE,CACF,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,oBAAoB;IACpB,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,aAAa,EAAE,GAAG,EAAE;QACrE,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAC/D,oBAAoB,CAAC,QAAQ,EAC7B,IAAI,oBAAoB,EAAE,CAC3B,CAAC;IAEF,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5C,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAElC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAEzD,OAAO;QACL,cAAc,EAAE,GAAG,EAAE,CACnB,WAAW,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE;YAC1C,YAAY,EAAE,CAAC,GAAe,EAAE,EAAE,CAAC,GAAG;YACtC,SAAS,EAAE,kBAAkB;SACvB,CAAC;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,UAAU,EAAE,CAAC;QACf,UAAU,CAAC,OAAO,EAAE,CAAC;QACrB,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,WAAW,CAAC,OAAO,EAAE,CAAC;QACtB,WAAW,GAAG,SAAS,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,KAAK,GAAG,SAAS,CAAC;IACpB,CAAC;IACD,UAAU,GAAG,SAAS,CAAC;AACzB,CAAC"}
@@ -1,81 +0,0 @@
1
- import { registerMarieTools } from "../infrastructure/tools/MarieToolDefinitions.js";
2
- import { JoyAutomationService } from "../services/JoyAutomationService.js";
3
- import { ConfigService } from "../infrastructure/config/ConfigService.js";
4
- import { MarieRuntime } from "../runtime/MarieRuntime.js";
5
- import { createDefaultProvider } from "../runtime/providerFactory.js";
6
- import { RuntimeAdapterBase } from "../runtime/RuntimeAdapterBase.js";
7
- import { VscodeFileSystemPort } from "../infrastructure/ai/core/VscodeFileSystemPort.js";
8
- import { MarieGhostService } from "../services/MarieGhostService.js";
9
- import { Storage } from "../cli/storage.js";
10
- class VscodeConfigPort {
11
- getAiProvider() {
12
- return ConfigService.getAiProvider();
13
- }
14
- getApiKey(provider) {
15
- if (provider === "openrouter")
16
- return ConfigService.getOpenRouterApiKey() || "";
17
- if (provider === "cerebras")
18
- return ConfigService.getCerebrasApiKey() || "";
19
- return ConfigService.getApiKey() || "";
20
- }
21
- }
22
- class VscodeSessionStorePort {
23
- context;
24
- constructor(context) {
25
- this.context = context;
26
- }
27
- async getSessions() {
28
- return await Storage.getSessions();
29
- }
30
- async saveSessions(sessions) {
31
- await Storage.saveSessions(sessions);
32
- }
33
- async getSessionMetadata() {
34
- return await Storage.getSessionMetadata();
35
- }
36
- async saveSessionMetadata(metadata) {
37
- await Storage.saveSessionMetadata(metadata);
38
- }
39
- async getCurrentSessionId() {
40
- return await Storage.getCurrentSessionId();
41
- }
42
- async setCurrentSessionId(id) {
43
- await Storage.setCurrentSessionId(id);
44
- }
45
- async getLastTelemetry() {
46
- return await Storage.getLastTelemetry();
47
- }
48
- async setLastTelemetry(telemetry) {
49
- await Storage.setLastTelemetry(telemetry);
50
- }
51
- }
52
- export class Marie extends RuntimeAdapterBase {
53
- context;
54
- joyService;
55
- constructor(context, joyService) {
56
- const automationService = new JoyAutomationService(context, joyService);
57
- if (!process.env.MARIE_EXTENSION_TESTS) {
58
- automationService.startAutonomousHeartbeat();
59
- }
60
- const runtime = new MarieRuntime({
61
- config: new VscodeConfigPort(),
62
- sessionStore: new VscodeSessionStorePort(context),
63
- toolRegistrar: registerMarieTools,
64
- providerFactory: createDefaultProvider,
65
- automationService,
66
- onProgressEvent: (event) => this.joyService.fireRunProgress(event),
67
- shouldBypassApprovals: () => ConfigService.getAutonomyMode() !== "balanced",
68
- fs: new VscodeFileSystemPort(),
69
- ghostPort: {
70
- handleDelta: (id, name, delta) => MarieGhostService.handleDelta(id, name, delta),
71
- },
72
- });
73
- super(runtime);
74
- this.context = context;
75
- this.joyService = joyService;
76
- }
77
- dispose() {
78
- super.dispose();
79
- }
80
- }
81
- //# sourceMappingURL=VscodeMarieAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VscodeMarieAdapter.js","sourceRoot":"","sources":["../../../src/monolith/adapters/VscodeMarieAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=GhostPort.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GhostPort.js","sourceRoot":"","sources":["../../../../../src/monolith/infrastructure/ai/core/GhostPort.ts"],"names":[],"mappings":""}
@@ -1,33 +0,0 @@
1
- import { backupFile, restoreFile, clearBackups, rollbackAll, readFile, writeFile, appendToFile, deleteFile, } from "../../../plumbing/filesystem/FileService.js";
2
- /**
3
- * VscodeFileSystemPort - Implementation of FileSystemPort for the VS Code extension.
4
- * Delegates all operations to the existing FileService which uses vscode.workspace.fs.
5
- */
6
- export class VscodeFileSystemPort {
7
- type = "vscode";
8
- async readFile(path, signal) {
9
- return readFile(path, undefined, undefined, signal);
10
- }
11
- async writeFile(path, content, signal, onProgress) {
12
- return writeFile(path, content, signal, undefined, onProgress);
13
- }
14
- async appendFile(path, content, signal, onProgress) {
15
- return appendToFile(path, content, signal, onProgress);
16
- }
17
- async deleteFile(path, signal) {
18
- return deleteFile(path, signal);
19
- }
20
- async backupFile(path, signal) {
21
- return backupFile(path, signal);
22
- }
23
- async restoreFile(path, signal) {
24
- return restoreFile(path, signal);
25
- }
26
- async rollbackAll(signal) {
27
- return rollbackAll(signal);
28
- }
29
- clearBackups() {
30
- clearBackups();
31
- }
32
- }
33
- //# sourceMappingURL=VscodeFileSystemPort.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VscodeFileSystemPort.js","sourceRoot":"","sources":["../../../../../src/monolith/infrastructure/ai/core/VscodeFileSystemPort.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,UAAU,GACX,MAAM,6CAA6C,CAAC;AAErD;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IACf,IAAI,GAAG,QAAQ,CAAC;IAChC,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,MAAoB;QAC/C,OAAO,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,SAAS,CACb,IAAY,EACZ,OAAe,EACf,MAAoB,EACpB,UAAyD;QAEzD,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,UAAU,CACd,IAAY,EACZ,OAAe,EACf,MAAoB,EACpB,UAAoC;QAEpC,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,MAAoB;QACjD,OAAO,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,MAAoB;QACjD,OAAO,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,MAAoB;QAClD,OAAO,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAoB;QACpC,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,YAAY;QACV,YAAY,EAAE,CAAC;IACjB,CAAC;CACF"}