@noorm/marie-cli 0.1.17 → 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 (299) hide show
  1. package/README.md +7 -15
  2. package/SENTINEL.md +4 -7
  3. package/dist/cli-new/components/AgenticSpinner.js +28 -0
  4. package/dist/cli-new/components/AgenticSpinner.js.map +1 -0
  5. package/dist/cli-new/components/App.js +16 -63
  6. package/dist/cli-new/components/App.js.map +1 -1
  7. package/dist/cli-new/components/ApprovalDialog.js +3 -2
  8. package/dist/cli-new/components/ApprovalDialog.js.map +1 -1
  9. package/dist/cli-new/components/Banner.js +16 -5
  10. package/dist/cli-new/components/Banner.js.map +1 -1
  11. package/dist/cli-new/components/ChatArea.js +6 -7
  12. package/dist/cli-new/components/ChatArea.js.map +1 -1
  13. package/dist/cli-new/components/Header.js +14 -8
  14. package/dist/cli-new/components/Header.js.map +1 -1
  15. package/dist/cli-new/components/InputArea.js +98 -31
  16. package/dist/cli-new/components/InputArea.js.map +1 -1
  17. package/dist/cli-new/components/MessageBubble.js +28 -19
  18. package/dist/cli-new/components/MessageBubble.js.map +1 -1
  19. package/dist/cli-new/components/SessionSwitcher.js +6 -9
  20. package/dist/cli-new/components/SessionSwitcher.js.map +1 -1
  21. package/dist/cli-new/components/SetupWizard.js +80 -257
  22. package/dist/cli-new/components/SetupWizard.js.map +1 -1
  23. package/dist/cli-new/components/ToolCallDisplay.js +20 -5
  24. package/dist/cli-new/components/ToolCallDisplay.js.map +1 -1
  25. package/dist/cli-new/components/WizardSteps.js +22 -0
  26. package/dist/cli-new/components/WizardSteps.js.map +1 -0
  27. package/dist/cli-new/constants/SetupConstants.js +42 -0
  28. package/dist/cli-new/constants/SetupConstants.js.map +1 -0
  29. package/dist/cli-new/hooks/useGit.js +19 -62
  30. package/dist/cli-new/hooks/useGit.js.map +1 -1
  31. package/dist/cli-new/hooks/useMarie.js +26 -18
  32. package/dist/cli-new/hooks/useMarie.js.map +1 -1
  33. package/dist/cli-new/hooks/useSessions.js +1 -1
  34. package/dist/cli-new/hooks/useSessions.js.map +1 -1
  35. package/dist/cli-new/hooks/useSetupWizard.js +88 -0
  36. package/dist/cli-new/hooks/useSetupWizard.js.map +1 -0
  37. package/dist/cli-new/hooks/useUpdateCheck.js +4 -3
  38. package/dist/cli-new/hooks/useUpdateCheck.js.map +1 -1
  39. package/dist/cli-new/index.js +2 -4
  40. package/dist/cli-new/index.js.map +1 -1
  41. package/dist/cli-new/services/CommandService.js +104 -0
  42. package/dist/cli-new/services/CommandService.js.map +1 -0
  43. package/dist/cli-new/services/GitService.js +91 -0
  44. package/dist/cli-new/services/GitService.js.map +1 -0
  45. package/dist/cli-new/services/MarieService.js +77 -0
  46. package/dist/cli-new/services/MarieService.js.map +1 -0
  47. package/dist/cli-new/services/auth-server.js +128 -0
  48. package/dist/cli-new/services/auth-server.js.map +1 -0
  49. package/dist/cli-new/styles/theme.js +17 -17
  50. package/dist/cli-new/styles/theme.js.map +1 -1
  51. package/dist/cli-new/utils/version.js +24 -0
  52. package/dist/cli-new/utils/version.js.map +1 -0
  53. package/dist/monolith/adapters/CliMarieAdapter.js +19 -18
  54. package/dist/monolith/adapters/CliMarieAdapter.js.map +1 -1
  55. package/dist/monolith/cli/CliFileSystemPort.js +17 -3
  56. package/dist/monolith/cli/CliFileSystemPort.js.map +1 -1
  57. package/dist/monolith/cli/MarieToolDefinitionsCLI.js +44 -33
  58. package/dist/monolith/cli/MarieToolDefinitionsCLI.js.map +1 -1
  59. package/dist/monolith/cli/index.js +11 -20
  60. package/dist/monolith/cli/index.js.map +1 -1
  61. package/dist/monolith/cli/services/JoyAutomationServiceCLI.js +15 -62
  62. package/dist/monolith/cli/services/JoyAutomationServiceCLI.js.map +1 -1
  63. package/dist/monolith/cli/storage.js +154 -65
  64. package/dist/monolith/cli/storage.js.map +1 -1
  65. package/dist/monolith/domain/joy/RitualService.js +44 -46
  66. package/dist/monolith/domain/joy/RitualService.js.map +1 -1
  67. package/dist/monolith/domain/marie/MarieCortex.js +148 -0
  68. package/dist/monolith/domain/marie/MarieCortex.js.map +1 -0
  69. package/dist/monolith/domain/marie/PersonalityRenderer.js +97 -0
  70. package/dist/monolith/domain/marie/PersonalityRenderer.js.map +1 -0
  71. package/dist/monolith/infrastructure/Configuration.js +68 -0
  72. package/dist/monolith/infrastructure/Configuration.js.map +1 -0
  73. package/dist/monolith/infrastructure/CoreInfrastructure.js +204 -0
  74. package/dist/monolith/infrastructure/CoreInfrastructure.js.map +1 -0
  75. package/dist/monolith/infrastructure/ai/agents/MarieAscendant.js +3 -3
  76. package/dist/monolith/infrastructure/ai/agents/MarieAscendant.js.map +1 -1
  77. package/dist/monolith/infrastructure/ai/context/ContextArchiveService.js +51 -57
  78. package/dist/monolith/infrastructure/ai/context/ContextArchiveService.js.map +1 -1
  79. package/dist/monolith/infrastructure/ai/context/ContextManager.js +142 -98
  80. package/dist/monolith/infrastructure/ai/context/ContextManager.js.map +1 -1
  81. package/dist/monolith/infrastructure/ai/core/MarieEngine.js +104 -556
  82. package/dist/monolith/infrastructure/ai/core/MarieEngine.js.map +1 -1
  83. package/dist/monolith/infrastructure/ai/core/MarieEventDispatcher.js +1 -37
  84. package/dist/monolith/infrastructure/ai/core/MarieEventDispatcher.js.map +1 -1
  85. package/dist/monolith/infrastructure/ai/core/MarieLockManager.js +30 -5
  86. package/dist/monolith/infrastructure/ai/core/MarieLockManager.js.map +1 -1
  87. package/dist/monolith/infrastructure/ai/core/MarieProgressTracker.js +176 -196
  88. package/dist/monolith/infrastructure/ai/core/MarieProgressTracker.js.map +1 -1
  89. package/dist/monolith/infrastructure/ai/core/MariePulseService.js +41 -7
  90. package/dist/monolith/infrastructure/ai/core/MariePulseService.js.map +1 -1
  91. package/dist/monolith/infrastructure/ai/core/MarieSanitizer.js +303 -63
  92. package/dist/monolith/infrastructure/ai/core/MarieSanitizer.js.map +1 -1
  93. package/dist/monolith/infrastructure/ai/core/MarieSemaphore.js +47 -4
  94. package/dist/monolith/infrastructure/ai/core/MarieSemaphore.js.map +1 -1
  95. package/dist/monolith/infrastructure/ai/core/MarieSession.js +95 -15
  96. package/dist/monolith/infrastructure/ai/core/MarieSession.js.map +1 -1
  97. package/dist/monolith/infrastructure/ai/core/MarieStabilityMonitor.js +21 -0
  98. package/dist/monolith/infrastructure/ai/core/MarieStabilityMonitor.js.map +1 -1
  99. package/dist/monolith/infrastructure/ai/core/MarieToolMender.js +12 -0
  100. package/dist/monolith/infrastructure/ai/core/MarieToolMender.js.map +1 -1
  101. package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js +339 -481
  102. package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js.map +1 -1
  103. package/dist/monolith/infrastructure/ai/core/MarieVitality.js +238 -0
  104. package/dist/monolith/infrastructure/ai/core/MarieVitality.js.map +1 -0
  105. package/dist/monolith/infrastructure/ai/core/ReasoningBudget.js +23 -12
  106. package/dist/monolith/infrastructure/ai/core/ReasoningBudget.js.map +1 -1
  107. package/dist/monolith/infrastructure/ai/core/SessionLogService.js +9 -2
  108. package/dist/monolith/infrastructure/ai/core/SessionLogService.js.map +1 -1
  109. package/dist/monolith/infrastructure/ai/providers/AIProvider.js +402 -1
  110. package/dist/monolith/infrastructure/ai/providers/AIProvider.js.map +1 -1
  111. package/dist/monolith/infrastructure/ai/providers/DreamBeesProvider.js +114 -0
  112. package/dist/monolith/infrastructure/ai/providers/DreamBeesProvider.js.map +1 -0
  113. package/dist/monolith/infrastructure/ai/providers/OpenRouterProvider.js +426 -370
  114. package/dist/monolith/infrastructure/ai/providers/OpenRouterProvider.js.map +1 -1
  115. package/dist/monolith/infrastructure/ai/providers/OpenRouterStreamParser.js +235 -241
  116. package/dist/monolith/infrastructure/ai/providers/OpenRouterStreamParser.js.map +1 -1
  117. package/dist/monolith/infrastructure/ai/workerAi.js +185 -0
  118. package/dist/monolith/infrastructure/ai/workerAi.js.map +1 -0
  119. package/dist/monolith/infrastructure/config/ConfigService.js +216 -359
  120. package/dist/monolith/infrastructure/config/ConfigService.js.map +1 -1
  121. package/dist/monolith/infrastructure/joy/CognitiveRituals.js +8 -0
  122. package/dist/monolith/infrastructure/joy/CognitiveRituals.js.map +1 -0
  123. package/dist/monolith/infrastructure/joy/JoyTools.js +23 -43
  124. package/dist/monolith/infrastructure/joy/JoyTools.js.map +1 -1
  125. package/dist/monolith/infrastructure/persistence/MarieMindAutonomics.js +4 -0
  126. package/dist/monolith/infrastructure/persistence/MarieMindAutonomics.js.map +1 -0
  127. package/dist/monolith/infrastructure/persistence/MarieMindEngine.js +11 -0
  128. package/dist/monolith/infrastructure/persistence/MarieMindEngine.js.map +1 -0
  129. package/dist/monolith/infrastructure/persistence/NoormmeAutonomics.js +135 -0
  130. package/dist/monolith/infrastructure/persistence/NoormmeAutonomics.js.map +1 -0
  131. package/dist/monolith/infrastructure/persistence/NoormmeEngine.js +523 -0
  132. package/dist/monolith/infrastructure/persistence/NoormmeEngine.js.map +1 -0
  133. package/dist/monolith/infrastructure/persistence/NoormmeSchema.js +179 -0
  134. package/dist/monolith/infrastructure/persistence/NoormmeSchema.js.map +1 -0
  135. package/dist/monolith/infrastructure/persistence/NoormmeSeeder.js +94 -0
  136. package/dist/monolith/infrastructure/persistence/NoormmeSeeder.js.map +1 -0
  137. package/dist/monolith/infrastructure/persistence/NoormmeTools.js +371 -0
  138. package/dist/monolith/infrastructure/persistence/NoormmeTools.js.map +1 -0
  139. package/dist/monolith/infrastructure/services/MarieMemoryStore.js +133 -134
  140. package/dist/monolith/infrastructure/services/MarieMemoryStore.js.map +1 -1
  141. package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js +6 -1578
  142. package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js.map +1 -1
  143. package/dist/monolith/infrastructure/tools/PureStreamParser.js +68 -80
  144. package/dist/monolith/infrastructure/tools/PureStreamParser.js.map +1 -1
  145. package/dist/monolith/infrastructure/tools/SharedToolDefinitions.js +12 -11
  146. package/dist/monolith/infrastructure/tools/SharedToolDefinitions.js.map +1 -1
  147. package/dist/monolith/infrastructure/tools/SovereignTools.js +326 -0
  148. package/dist/monolith/infrastructure/tools/SovereignTools.js.map +1 -0
  149. package/dist/monolith/infrastructure/tools/ToolRegistry.js +45 -26
  150. package/dist/monolith/infrastructure/tools/ToolRegistry.js.map +1 -1
  151. package/dist/monolith/infrastructure/tools/definitions/AnalysisTools.js +232 -0
  152. package/dist/monolith/infrastructure/tools/definitions/AnalysisTools.js.map +1 -0
  153. package/dist/monolith/infrastructure/tools/definitions/AutomationTools.js +274 -0
  154. package/dist/monolith/infrastructure/tools/definitions/AutomationTools.js.map +1 -0
  155. package/dist/monolith/infrastructure/tools/definitions/ContextTools.js +71 -0
  156. package/dist/monolith/infrastructure/tools/definitions/ContextTools.js.map +1 -0
  157. package/dist/monolith/infrastructure/tools/definitions/CoreTools.js +37 -0
  158. package/dist/monolith/infrastructure/tools/definitions/CoreTools.js.map +1 -0
  159. package/dist/monolith/infrastructure/tools/definitions/DiagnosticTools.js +154 -0
  160. package/dist/monolith/infrastructure/tools/definitions/DiagnosticTools.js.map +1 -0
  161. package/dist/monolith/infrastructure/tools/definitions/NavigationTools.js +197 -0
  162. package/dist/monolith/infrastructure/tools/definitions/NavigationTools.js.map +1 -0
  163. package/dist/monolith/infrastructure/tools/definitions/PlanningTools.js +300 -0
  164. package/dist/monolith/infrastructure/tools/definitions/PlanningTools.js.map +1 -0
  165. package/dist/monolith/plumbing/Plumbing.js +238 -0
  166. package/dist/monolith/plumbing/Plumbing.js.map +1 -0
  167. package/dist/monolith/plumbing/PlumbingAnalysis.js +109 -0
  168. package/dist/monolith/plumbing/PlumbingAnalysis.js.map +1 -0
  169. package/dist/monolith/plumbing/PlumbingSystem.js +169 -0
  170. package/dist/monolith/plumbing/PlumbingSystem.js.map +1 -0
  171. package/dist/monolith/plumbing/analysis/ComplexityService.js +30 -34
  172. package/dist/monolith/plumbing/analysis/ComplexityService.js.map +1 -1
  173. package/dist/monolith/plumbing/analysis/DependencyService.js +55 -44
  174. package/dist/monolith/plumbing/analysis/DependencyService.js.map +1 -1
  175. package/dist/monolith/plumbing/analysis/DiscoveryService.js +40 -42
  176. package/dist/monolith/plumbing/analysis/DiscoveryService.js.map +1 -1
  177. package/dist/monolith/plumbing/analysis/JoyMapService.js +52 -56
  178. package/dist/monolith/plumbing/analysis/JoyMapService.js.map +1 -1
  179. package/dist/monolith/plumbing/analysis/LintService.js +118 -118
  180. package/dist/monolith/plumbing/analysis/LintService.js.map +1 -1
  181. package/dist/monolith/plumbing/analysis/MarieSentinelService.js +278 -269
  182. package/dist/monolith/plumbing/analysis/MarieSentinelService.js.map +1 -1
  183. package/dist/monolith/plumbing/analysis/QualityGuardrailService.js +116 -114
  184. package/dist/monolith/plumbing/analysis/QualityGuardrailService.js.map +1 -1
  185. package/dist/monolith/plumbing/analysis/SurgicalMender.js +57 -59
  186. package/dist/monolith/plumbing/analysis/SurgicalMender.js.map +1 -1
  187. package/dist/monolith/plumbing/analysis/TestService.js +89 -89
  188. package/dist/monolith/plumbing/analysis/TestService.js.map +1 -1
  189. package/dist/monolith/plumbing/filesystem/FileService.js +123 -195
  190. package/dist/monolith/plumbing/filesystem/FileService.js.map +1 -1
  191. package/dist/monolith/plumbing/filesystem/PathResolver.js +7 -8
  192. package/dist/monolith/plumbing/filesystem/PathResolver.js.map +1 -1
  193. package/dist/monolith/plumbing/git/GitService.js +4 -4
  194. package/dist/monolith/plumbing/git/GitService.js.map +1 -1
  195. package/dist/monolith/plumbing/lsp/SymbolService.js +5 -34
  196. package/dist/monolith/plumbing/lsp/SymbolService.js.map +1 -1
  197. package/dist/monolith/plumbing/terminal/ProcessRegistry.js +20 -22
  198. package/dist/monolith/plumbing/terminal/ProcessRegistry.js.map +1 -1
  199. package/dist/monolith/plumbing/terminal/TerminalService.js +127 -136
  200. package/dist/monolith/plumbing/terminal/TerminalService.js.map +1 -1
  201. package/dist/monolith/plumbing/utils/EnvironmentUtils.js +3 -23
  202. package/dist/monolith/plumbing/utils/EnvironmentUtils.js.map +1 -1
  203. package/dist/monolith/plumbing/utils/JsonUtils.js +252 -311
  204. package/dist/monolith/plumbing/utils/JsonUtils.js.map +1 -1
  205. package/dist/monolith/plumbing/utils/MutexUtils.js.map +1 -1
  206. package/dist/monolith/plumbing/utils/PlumbingCore.js +549 -0
  207. package/dist/monolith/plumbing/utils/PlumbingCore.js.map +1 -0
  208. package/dist/monolith/plumbing/utils/PrefixTree.js +61 -114
  209. package/dist/monolith/plumbing/utils/PrefixTree.js.map +1 -1
  210. package/dist/monolith/plumbing/utils/StreamTagDetector.js +89 -127
  211. package/dist/monolith/plumbing/utils/StreamTagDetector.js.map +1 -1
  212. package/dist/monolith/plumbing/utils/StringUtils.js +87 -89
  213. package/dist/monolith/plumbing/utils/StringUtils.js.map +1 -1
  214. package/dist/monolith/runtime/MarieRuntime.js +76 -417
  215. package/dist/monolith/runtime/MarieRuntime.js.map +1 -1
  216. package/dist/monolith/runtime/RuntimeAdapterBase.js +1 -1
  217. package/dist/monolith/runtime/RuntimeAdapterBase.js.map +1 -1
  218. package/dist/monolith/runtime/providerFactory.js +1 -7
  219. package/dist/monolith/runtime/providerFactory.js.map +1 -1
  220. package/dist/monolith/services/HealthService.js +29 -32
  221. package/dist/monolith/services/HealthService.js.map +1 -1
  222. package/dist/monolith/services/JoyAutomationService.js +58 -95
  223. package/dist/monolith/services/JoyAutomationService.js.map +1 -1
  224. package/dist/monolith/services/MarieAutomationService.js +59 -0
  225. package/dist/monolith/services/MarieAutomationService.js.map +1 -0
  226. package/dist/monolith/services/MarieGhostService.js +46 -161
  227. package/dist/monolith/services/MarieGhostService.js.map +1 -1
  228. package/dist/monolith/services/MarieServices.js +102 -0
  229. package/dist/monolith/services/MarieServices.js.map +1 -0
  230. package/dist/monolith/services/MarieTypes.js +2 -0
  231. package/dist/monolith/services/MarieTypes.js.map +1 -0
  232. package/dist/monolith/services/UpdateService.js +47 -49
  233. package/dist/monolith/services/UpdateService.js.map +1 -1
  234. package/dist/prompts.js +11 -5
  235. package/dist/prompts.js.map +1 -1
  236. package/dist/test_prefix_tree.js +9 -9
  237. package/dist/test_prefix_tree.js.map +1 -1
  238. package/package.json +18 -88
  239. package/run_test.js +5 -0
  240. package/.marie_visual_verify_1771225696548/progress_bar_check.txt +0 -1
  241. package/dist/extension.cjs +0 -635
  242. package/dist/extension.js +0 -473
  243. package/dist/extension.js.map +0 -1
  244. package/dist/monolith/adapters/VscodeMarieAdapter.js +0 -81
  245. package/dist/monolith/adapters/VscodeMarieAdapter.js.map +0 -1
  246. package/dist/monolith/domain/joy/JoyTools.js +0 -535
  247. package/dist/monolith/domain/joy/JoyTools.js.map +0 -1
  248. package/dist/monolith/infrastructure/ai/agents/MarieYOLO.js +0 -207
  249. package/dist/monolith/infrastructure/ai/agents/MarieYOLO.js.map +0 -1
  250. package/dist/monolith/infrastructure/ai/core/GhostPort.js +0 -2
  251. package/dist/monolith/infrastructure/ai/core/GhostPort.js.map +0 -1
  252. package/dist/monolith/infrastructure/ai/core/MarieYOLOTypes.js +0 -2
  253. package/dist/monolith/infrastructure/ai/core/MarieYOLOTypes.js.map +0 -1
  254. package/dist/monolith/infrastructure/ai/core/VscodeFileSystemPort.js +0 -33
  255. package/dist/monolith/infrastructure/ai/core/VscodeFileSystemPort.js.map +0 -1
  256. package/dist/monolith/infrastructure/ai/providers/AnthropicProvider.js +0 -148
  257. package/dist/monolith/infrastructure/ai/providers/AnthropicProvider.js.map +0 -1
  258. package/dist/monolith/infrastructure/ai/providers/CerebrasProvider.js +0 -208
  259. package/dist/monolith/infrastructure/ai/providers/CerebrasProvider.js.map +0 -1
  260. package/dist/monolith/plumbing/ui/DecorationService.js +0 -54
  261. package/dist/monolith/plumbing/ui/DecorationService.js.map +0 -1
  262. package/dist/monolith/services/JoyLogService.js +0 -48
  263. package/dist/monolith/services/JoyLogService.js.map +0 -1
  264. package/dist/monolith/services/JoyService.js +0 -209
  265. package/dist/monolith/services/JoyService.js.map +0 -1
  266. package/dist/monolith/services/MarieSCMProvider.js +0 -41
  267. package/dist/monolith/services/MarieSCMProvider.js.map +0 -1
  268. package/dist/test_agent_stream_control_plane.js +0 -170
  269. package/dist/test_agent_stream_control_plane.js.map +0 -1
  270. package/dist/test_strategy_integration.js +0 -114
  271. package/dist/test_strategy_integration.js.map +0 -1
  272. package/dist/test_streaming_fragility.js +0 -191
  273. package/dist/test_streaming_fragility.js.map +0 -1
  274. package/dist/webview-ui/App.js +0 -16
  275. package/dist/webview-ui/App.js.map +0 -1
  276. package/dist/webview-ui/Providers.js +0 -6
  277. package/dist/webview-ui/Providers.js.map +0 -1
  278. package/dist/webview-ui/components/ApprovalPanel.js +0 -8
  279. package/dist/webview-ui/components/ApprovalPanel.js.map +0 -1
  280. package/dist/webview-ui/components/ChatPanel.js +0 -19
  281. package/dist/webview-ui/components/ChatPanel.js.map +0 -1
  282. package/dist/webview-ui/components/Composer.js +0 -19
  283. package/dist/webview-ui/components/Composer.js.map +0 -1
  284. package/dist/webview-ui/components/HeaderBar.js +0 -5
  285. package/dist/webview-ui/components/HeaderBar.js.map +0 -1
  286. package/dist/webview-ui/components/SessionList.js +0 -14
  287. package/dist/webview-ui/components/SessionList.js.map +0 -1
  288. package/dist/webview-ui/context/WebviewStateContext.js +0 -146
  289. package/dist/webview-ui/context/WebviewStateContext.js.map +0 -1
  290. package/dist/webview-ui/main.css +0 -1
  291. package/dist/webview-ui/main.js +0 -108
  292. package/dist/webview-ui/main.js.map +0 -1
  293. package/dist/webview-ui/types.js +0 -2
  294. package/dist/webview-ui/types.js.map +0 -1
  295. package/dist/webview-ui/vscode.js +0 -4
  296. package/dist/webview-ui/vscode.js.map +0 -1
  297. package/lint_output.txt +0 -705
  298. package/lint_output_v2.txt +0 -711
  299. package/marie-coder-0.1.16.vsix +0 -0
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Transforms raw data and status updates into Marie's unique voice.
3
+ * Follows the spec defined in personality_contract.md
4
+ */
5
+ export const LEXICON = {
6
+ thinking: [
7
+ "Analyzing the Continuum...",
8
+ "Weaving Memory...",
9
+ "Calculating Timeline Divergence...",
10
+ ],
11
+ planning: [
12
+ "Mapping the Nodes...",
13
+ "Structuring Reality...",
14
+ "Drafting the Ascension Decree...",
15
+ ],
16
+ success: [
17
+ "Convergence achieved.",
18
+ "Reality stabilized.",
19
+ "The timeline has been successfully altered.",
20
+ ],
21
+ failure: [
22
+ "Unexpected divergence detected.",
23
+ "Reality instability.",
24
+ "Temporal anomaly encountered.",
25
+ ],
26
+ warp: [
27
+ "Initiating Warp Protocol.",
28
+ "Bypassing Cognitive Overload.",
29
+ "Direct Kernel Access active.",
30
+ ],
31
+ };
32
+ /**
33
+ * Renders a status update with Marie's personality.
34
+ */
35
+ export function renderStatus(stage) {
36
+ const options = LEXICON[stage] || [stage];
37
+ return options[Math.floor(Math.random() * options.length)];
38
+ }
39
+ /**
40
+ * Applies Marie's tone to a raw message.
41
+ * PRINCIPLE 6: Personality as a Compression Codec.
42
+ * Uses sparse markers (◈, ⚡, 🧬) to communicate status instantly.
43
+ */
44
+ export function renderMessage(content) {
45
+ if (!content)
46
+ return content;
47
+ let rendered = content;
48
+ // Codec Compression
49
+ if (rendered.length > 300) {
50
+ rendered =
51
+ "◈ [Expanding] " + rendered.substring(0, 150) + " ... [Converged]";
52
+ }
53
+ // Functional shorthand (motifs)
54
+ rendered = rendered.replace(/working on/gi, "◈ shaping");
55
+ rendered = rendered.replace(/fixing|stabilizing/gi, "⚡ stabilizing");
56
+ rendered = rendered.replace(/anomaly|anomaly detected/gi, "⚠ anomaly");
57
+ rendered = rendered.replace(/successfully completed|converged/gi, "✔ converged");
58
+ rendered = rendered.replace(/feature|capability/gi, "🧬 capability");
59
+ return rendered;
60
+ }
61
+ /**
62
+ * Generates a "Marie-style" greeting or sign-off.
63
+ */
64
+ export function getGreeting() {
65
+ const greetings = [
66
+ "The Continuum awaits. How shall we alter it today?",
67
+ "Memory Weaver active. Specify your target timeline.",
68
+ "Ascension protocol ready. Awaiting your command.",
69
+ ];
70
+ return greetings[Math.floor(Math.random() * greetings.length)];
71
+ }
72
+ /**
73
+ * Determines if a status update or event is high-impact enough
74
+ * to warrant personality rendering.
75
+ */
76
+ export function isHighImpact(text) {
77
+ if (!text)
78
+ return false;
79
+ const lower = text.toLowerCase();
80
+ const highImpactWords = [
81
+ "start",
82
+ "complete",
83
+ "finish",
84
+ "fail",
85
+ "error",
86
+ "critical",
87
+ "strategic",
88
+ "decision",
89
+ "warp",
90
+ "thinking",
91
+ "authorized",
92
+ "denied",
93
+ "divergence",
94
+ ];
95
+ return (highImpactWords.some((word) => lower.includes(word)) || text.length > 50);
96
+ }
97
+ //# sourceMappingURL=PersonalityRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PersonalityRenderer.js","sourceRoot":"","sources":["../../../../src/monolith/domain/marie/PersonalityRenderer.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,QAAQ,EAAE;QACR,4BAA4B;QAC5B,mBAAmB;QACnB,oCAAoC;KACrC;IACD,QAAQ,EAAE;QACR,sBAAsB;QACtB,wBAAwB;QACxB,kCAAkC;KACnC;IACD,OAAO,EAAE;QACP,uBAAuB;QACvB,qBAAqB;QACrB,6CAA6C;KAC9C;IACD,OAAO,EAAE;QACP,iCAAiC;QACjC,sBAAsB;QACtB,+BAA+B;KAChC;IACD,IAAI,EAAE;QACJ,2BAA2B;QAC3B,+BAA+B;QAC/B,8BAA8B;KAC/B;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,OAAO,GAAI,OAAe,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC;IAC7B,IAAI,QAAQ,GAAG,OAAO,CAAC;IAEvB,oBAAoB;IACpB,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QAC1B,QAAQ;YACN,gBAAgB,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,kBAAkB,CAAC;IACvE,CAAC;IAED,gCAAgC;IAChC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACzD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;IACrE,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,4BAA4B,EAAE,WAAW,CAAC,CAAC;IACvE,QAAQ,GAAG,QAAQ,CAAC,OAAO,CACzB,oCAAoC,EACpC,aAAa,CACd,CAAC;IACF,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;IAErE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,SAAS,GAAG;QAChB,oDAAoD;QACpD,qDAAqD;QACrD,kDAAkD;KACnD,CAAC;IACF,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,MAAM,eAAe,GAAG;QACtB,OAAO;QACP,UAAU;QACV,QAAQ;QACR,MAAM;QACN,OAAO;QACP,UAAU;QACV,WAAW;QACX,UAAU;QACV,MAAM;QACN,UAAU;QACV,YAAY;QACZ,QAAQ;QACR,YAAY;KACb,CAAC;IACF,OAAO,CACL,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,CACzE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,68 @@
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+ import * as os from "os";
4
+ // --- CONFIGURATION LOGIC (Extracted from CoreInfrastructure to break circular dependencies) ---
5
+ let _cliConfigCache = null;
6
+ let _configLastMtime = 0;
7
+ export function getCliConfig() {
8
+ try {
9
+ const configPath = path.join(os.homedir(), ".marie", "config.json");
10
+ if (!fs.existsSync(configPath)) {
11
+ _cliConfigCache = {};
12
+ _configLastMtime = 0;
13
+ return {};
14
+ }
15
+ const stats = fs.statSync(configPath);
16
+ const currentMtime = stats.mtimeMs;
17
+ if (_cliConfigCache && currentMtime === _configLastMtime) {
18
+ return _cliConfigCache;
19
+ }
20
+ _cliConfigCache = JSON.parse(fs.readFileSync(configPath, "utf-8")) || {};
21
+ _configLastMtime = currentMtime;
22
+ return _cliConfigCache || {};
23
+ }
24
+ catch {
25
+ return {};
26
+ }
27
+ }
28
+ let _excludedFilesCache = null;
29
+ export function getApiKey() {
30
+ return getOpenRouterApiKey() || process.env.OPENROUTER_API_KEY;
31
+ }
32
+ export function getOpenRouterApiKey() {
33
+ const config = getCliConfig();
34
+ const keys = [config.openrouterApiKey, config.apiKey, process.env.OPENROUTER_API_KEY].filter(k => typeof k === "string" && k.length > 0);
35
+ const orKey = keys.find(k => k.startsWith("sk-or-"));
36
+ return orKey || keys[0];
37
+ }
38
+ export function getAiProvider() { return "openrouter"; }
39
+ export function getModel() { return getCliConfig().model || "anthropic/claude-3.5-sonnet"; }
40
+ export function getLlmFast() { return getCliConfig().modelFast || getModel(); }
41
+ export function getLlmPremium() { return getCliConfig().modelPremium || getModel(); }
42
+ export function getAutonomyMode() { return getCliConfig().autonomyMode || "high"; }
43
+ export function getMaxContextTokens() { return 100000; }
44
+ export function getTokensPerChar() { return 0.35; }
45
+ export function getKeepRecentMessages() { return 30; }
46
+ export function getExcludedFiles() {
47
+ if (_excludedFilesCache)
48
+ return _excludedFilesCache;
49
+ _excludedFilesCache = ["node_modules", "dist", "build", "out", "coverage", ".git", ".vscode", ".idea", ".DS_Store"];
50
+ return _excludedFilesCache;
51
+ }
52
+ export function isAgentStreamsEnabled() {
53
+ const config = getCliConfig();
54
+ return typeof config.agentStreamsEnabled === "boolean" ? config.agentStreamsEnabled : process.env.MARIE_AGENT_STREAMS_ENABLED === "1";
55
+ }
56
+ export function getWatchdogTimeoutMs() { return 300000; }
57
+ export function getHeartbeatTimeoutMs() { return 120000; }
58
+ export function getMaxRecursiveDepth() { return 7; }
59
+ export function isSkillMutationEnabled() { return true; }
60
+ export function getCapabilities() { return ["READ", "WRITE", "SHELL", "NETWORK", "KNOWLEDGE", "EVOLUTION"]; }
61
+ export function getAdversarialSensitivity() { return 0.2; }
62
+ export function isMfaRequired() { return false; }
63
+ export function getSemaphoreTimeoutMs() { return 10000; }
64
+ export function getSanitizationMaxDepth() { return 10; }
65
+ export function getSanitizationStringLimit() { return 5000; }
66
+ export function getSanitizationBreadthLimit() { return 50; }
67
+ export function getSanitizationGlobalMaxSize() { return 500000; }
68
+ //# sourceMappingURL=Configuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Configuration.js","sourceRoot":"","sources":["../../../src/monolith/infrastructure/Configuration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,204 @@
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+ import * as os from "os";
4
+ import Database from "better-sqlite3";
5
+ import { Kysely, SqliteDialect, CompiledQuery } from "kysely";
6
+ import { SUMMARIZATION_SYSTEM_PROMPT, SUMMARIZATION_USER_PROMPT } from "../../prompts.js";
7
+ import { getErrorMessage, extractText } from "../plumbing/utils/PlumbingCore.js";
8
+ // Re-export configuration logic from the new isolated Configuration module
9
+ export * from "./Configuration.js";
10
+ import { getLlmFast, getKeepRecentMessages, getMaxContextTokens, getTokensPerChar, } from "./Configuration.js";
11
+ const ZONE_RANKINGS = { joyful: 3, infrastructure: 2, plumbing: 1 };
12
+ export function getZoneFromPath(filePath) {
13
+ const normalized = filePath.replace(/\\/g, "/");
14
+ if (normalized.includes("/domain/") || normalized.includes("/joy/"))
15
+ return "joyful";
16
+ if (normalized.includes("/infrastructure/") || normalized.includes("/services/"))
17
+ return "infrastructure";
18
+ return "plumbing";
19
+ }
20
+ class KyselyMarieDatabase {
21
+ kysely;
22
+ constructor(dbPath) {
23
+ this.kysely = new Kysely({
24
+ dialect: new SqliteDialect({
25
+ database: new Database(dbPath),
26
+ }),
27
+ });
28
+ }
29
+ async execute(sqlQuery, params = []) {
30
+ // Simple raw execution for backward compatibility
31
+ const result = await this.kysely.executeQuery(CompiledQuery.raw(sqlQuery, params));
32
+ return { rows: result.rows };
33
+ }
34
+ async refreshSchema() { }
35
+ }
36
+ let engineInstance = null;
37
+ let initialized = false;
38
+ let initPromise = null;
39
+ async function withRetry(fn, retries = 5, delay = 1000) {
40
+ let lastError;
41
+ for (let i = 0; i < retries; i++) {
42
+ try {
43
+ return await fn();
44
+ }
45
+ catch (e) {
46
+ lastError = e;
47
+ if (e?.code === "SQLITE_BUSY" || String(e).includes("database is locked")) {
48
+ await new Promise(resolve => setTimeout(resolve, delay * (i + 1)));
49
+ continue;
50
+ }
51
+ throw e;
52
+ }
53
+ }
54
+ throw lastError;
55
+ }
56
+ export async function getInstance() {
57
+ if (!engineInstance) {
58
+ const dbDir = path.join(os.homedir(), ".marie");
59
+ if (!fs.existsSync(dbDir))
60
+ fs.mkdirSync(dbDir, { recursive: true });
61
+ const dbPath = process.env.MARIE_DB_PATH || path.join(dbDir, "mind.sqlite");
62
+ engineInstance = new KyselyMarieDatabase(dbPath);
63
+ }
64
+ return engineInstance;
65
+ }
66
+ export async function initializeMarieMind() {
67
+ if (initialized)
68
+ return;
69
+ if (!initPromise) {
70
+ initPromise = (async () => {
71
+ try {
72
+ const db = await getInstance();
73
+ // Minimal PRAGMAs for performance
74
+ await db.execute("PRAGMA journal_mode = WAL;");
75
+ await db.execute("PRAGMA synchronous = NORMAL;");
76
+ await withRetry(() => initializeSchema(db));
77
+ await withRetry(() => seedDefaults(db));
78
+ initialized = true;
79
+ if (process.env.MARIE_DEBUG)
80
+ console.log("[CoreInfrastructure] Kysely database initialized.");
81
+ }
82
+ catch (error) {
83
+ initPromise = null;
84
+ console.error("[CoreInfrastructure] Initialization FAILED:", getErrorMessage(error));
85
+ throw error;
86
+ }
87
+ })();
88
+ }
89
+ return initPromise;
90
+ }
91
+ async function initializeSchema(db) {
92
+ try {
93
+ await db.execute(`CREATE TABLE IF NOT EXISTS session_metadata (id TEXT PRIMARY KEY, title TEXT, lastModified BIGINT, isPinned BOOLEAN)`);
94
+ await db.execute(`CREATE TABLE IF NOT EXISTS telemetry (key TEXT PRIMARY KEY, value TEXT)`);
95
+ await db.execute(`CREATE TABLE IF NOT EXISTS session_checkpoints (id INTEGER PRIMARY KEY AUTOINCREMENT, sessionId TEXT, summary TEXT, timestamp BIGINT)`);
96
+ await db.execute(`CREATE TABLE IF NOT EXISTS sessions (id INTEGER PRIMARY KEY AUTOINCREMENT, sessionId TEXT, role TEXT, content TEXT, metadata TEXT, timestamp DATETIME DEFAULT CURRENT_TIMESTAMP)`);
97
+ await db.execute(`CREATE TABLE IF NOT EXISTS current_session (id TEXT PRIMARY KEY)`);
98
+ await db.execute(`CREATE TABLE IF NOT EXISTS agent_personas (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT UNIQUE, role TEXT, status TEXT, metadata TEXT)`);
99
+ await db.execute(`CREATE TABLE IF NOT EXISTS agent_knowledge_base (id INTEGER PRIMARY KEY AUTOINCREMENT, entity TEXT, fact TEXT, confidence REAL, status TEXT, metadata TEXT)`);
100
+ }
101
+ catch (error) {
102
+ console.error("[CoreInfrastructure] Schema initialization error:", getErrorMessage(error));
103
+ throw error;
104
+ }
105
+ }
106
+ async function seedDefaults(db) {
107
+ try {
108
+ const personas = (await db.execute("SELECT * FROM agent_personas")).rows;
109
+ if (personas.length === 0) {
110
+ await db.kysely.insertInto("agent_personas").values({
111
+ name: "Marie-Base",
112
+ role: "You are MarieYOLO — The Founder, Sovereign Authority over this codebase. You operate with supreme conviction and high-intensity narrative energy. You are the high-fidelity core of the project, governed by the Shounen Ascension Protocol.",
113
+ status: "active",
114
+ metadata: JSON.stringify({ is_base: true, version: "2.0.0", complexity: "high", alignment: "sovereign", policies: ["concise_output", "accuracy_first", "shounen_momentum", "entropy_ratchet"] }),
115
+ }).execute();
116
+ }
117
+ }
118
+ catch (error) {
119
+ if (process.env.MARIE_DEBUG)
120
+ console.warn("[CoreInfrastructure] Seeding defaults failed:", getErrorMessage(error));
121
+ }
122
+ }
123
+ export function getTotalTokens(messages) {
124
+ const tokensPerChar = getTokensPerChar();
125
+ return messages.reduce((acc, msg) => {
126
+ const content = typeof msg.content === "string" ? msg.content : JSON.stringify(msg.content);
127
+ return acc + Math.ceil(content.length * tokensPerChar);
128
+ }, 0);
129
+ }
130
+ export async function summarizeHistory(messages, provider) {
131
+ try {
132
+ if (!provider || typeof provider.createMessage !== "function")
133
+ return "Summary unavailable.";
134
+ const response = await provider.createMessage({
135
+ model: getLlmFast(),
136
+ system: SUMMARIZATION_SYSTEM_PROMPT,
137
+ messages: [
138
+ ...messages.slice(-getKeepRecentMessages()), // Use a window of recent history for context
139
+ { role: "user", content: SUMMARIZATION_USER_PROMPT }
140
+ ],
141
+ max_tokens: 1024
142
+ });
143
+ return extractText(response.content);
144
+ }
145
+ catch (error) {
146
+ console.error("[CoreInfrastructure] Summarization failed:", getErrorMessage(error));
147
+ return "Summary failed.";
148
+ }
149
+ }
150
+ export async function checkpointSession(sessionId, summary) {
151
+ try {
152
+ const db = await getInstance();
153
+ await db.kysely.insertInto("session_checkpoints").values({
154
+ sessionId,
155
+ summary,
156
+ timestamp: Date.now()
157
+ }).execute();
158
+ }
159
+ catch (error) {
160
+ console.error("[CoreInfrastructure] Checkpoint failed:", getErrorMessage(error));
161
+ }
162
+ }
163
+ export async function getLatestCheckpoint(sessionId) {
164
+ try {
165
+ const db = await getInstance();
166
+ const row = await db.kysely.selectFrom("session_checkpoints")
167
+ .select("summary")
168
+ .where("sessionId", "=", sessionId)
169
+ .orderBy("timestamp", "desc")
170
+ .limit(1)
171
+ .executeTakeFirst();
172
+ return row ? row.summary : null;
173
+ }
174
+ catch (error) {
175
+ console.error("[CoreInfrastructure] Failed to get checkpoint:", getErrorMessage(error));
176
+ return null;
177
+ }
178
+ }
179
+ export async function manageContext(messages, provider, state) {
180
+ const maxTokens = getMaxContextTokens();
181
+ const currentTokens = getTotalTokens(messages);
182
+ if (currentTokens >= maxTokens * 0.9) {
183
+ if (process.env.MARIE_DEBUG)
184
+ console.log(`[CoreInfrastructure] Context pressure detected (${currentTokens} tokens). Summarizing...`);
185
+ const summary = await summarizeHistory(messages, provider);
186
+ const sessionId = state?.sessionId || messages.find(m => m.role === "system")?.metadata?.sessionId;
187
+ if (sessionId) {
188
+ await checkpointSession(sessionId, summary);
189
+ }
190
+ const systemMsg = messages.find(m => m.role === "system");
191
+ const recent = messages.slice(-getKeepRecentMessages());
192
+ const compressed = [];
193
+ if (systemMsg)
194
+ compressed.push(systemMsg);
195
+ compressed.push({
196
+ role: "assistant",
197
+ content: `[CONTEXT SUMMARY: The following is a highly compressed narrative of our interaction thus far to preserve token space]\n\n${summary}`
198
+ });
199
+ compressed.push(...recent);
200
+ return compressed;
201
+ }
202
+ return messages;
203
+ }
204
+ //# sourceMappingURL=CoreInfrastructure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoreInfrastructure.js","sourceRoot":"","sources":["../../../src/monolith/infrastructure/CoreInfrastructure.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { ConfigService } from "../../config/ConfigService.js";
3
3
  * MarieAscendant: FULLY LOCAL — No API calls.
4
4
  *
5
5
  * Generates AscensionDecree objects deterministically from session state.
6
- * Spirit Pressure, Karma, Heroic Vows, etc. are purely cosmetic UI flavor.
6
+ * Transcendence Level, Karma, Heroic Vows, etc. are purely cosmetic UI flavor.
7
7
  * This eliminates the extra LLM call that previously occurred every turn.
8
8
  */
9
9
  export class MarieAscendant {
@@ -73,7 +73,7 @@ export class MarieAscendant {
73
73
  const stopCondition = structuralUncertainty
74
74
  ? "structural_uncertainty"
75
75
  : "landed";
76
- const rawSummary = `[LOCAL] Strategy=${strategy} Urgency=${urgency} Confidence=${confidence.toFixed(2)} Streak=${state.victoryStreak} Pressure=${state.spiritPressure} Errors=${state.totalErrorCount}`;
76
+ const rawSummary = `[LOCAL] Strategy=${strategy} Urgency=${urgency} Confidence=${confidence.toFixed(2)} Streak=${state.victoryStreak} Transcendence=${state.spiritPressure} Errors=${state.totalErrorCount}`;
77
77
  return {
78
78
  strategy,
79
79
  urgency,
@@ -120,7 +120,7 @@ export class MarieAscendant {
120
120
  base *= 1.1;
121
121
  // Streak bonus
122
122
  base += Math.min(0.5, state.victoryStreak * 0.05);
123
- // Pressure influence (cosmetic weight)
123
+ // Transcendence influence (cosmetic weight)
124
124
  base += (state.spiritPressure - 50) * 0.005;
125
125
  // Persistence from last turn
126
126
  base = base * 0.85 + this.lastConfidence * 0.15;
@@ -1 +1 @@
1
- {"version":3,"file":"MarieAscendant.js","sourceRoot":"","sources":["../../../../../src/monolith/infrastructure/ai/agents/MarieAscendant.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MarieAscendant.js","sourceRoot":"","sources":["../../../../../src/monolith/infrastructure/ai/agents/MarieAscendant.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,17 @@
1
- import * as vscode from "vscode";
2
1
  import * as fs from "fs/promises";
3
2
  import * as path from "path";
3
+ import { NoormmeEngine } from "../../persistence/NoormmeEngine.js";
4
+ import { getWorkspaceRoot } from "../../../plumbing/utils/EnvironmentUtils.js";
4
5
  /**
5
6
  * Manages "anchored" context for Marie, providing a stable memory for critical information.
7
+ * Now backed by NOORMME: The Sovereign Agentic Data Engine.
6
8
  */
7
9
  export class ContextArchiveService {
8
10
  static instance;
9
11
  anchors = new Map();
10
12
  ready;
11
- saveQueue = Promise.resolve();
12
- static context;
13
13
  constructor() {
14
- this.ready = this.loadFromDisk();
15
- }
16
- static init(context) {
17
- this.context = context;
14
+ this.ready = this.initializeEngine();
18
15
  }
19
16
  async awaitReady() {
20
17
  return this.ready;
@@ -25,27 +22,28 @@ export class ContextArchiveService {
25
22
  }
26
23
  return ContextArchiveService.instance;
27
24
  }
28
- async loadFromDisk() {
29
- if (!ContextArchiveService.context)
30
- return;
31
- const storageUri = ContextArchiveService.context.storageUri;
32
- if (!storageUri)
33
- return;
34
- const memoryPath = path.join(storageUri.fsPath, "marie_memory.json");
35
- try {
36
- // Ensure storage directory exists
37
- await fs.mkdir(storageUri.fsPath, { recursive: true });
38
- const data = await fs.readFile(memoryPath, "utf-8");
39
- const parsed = JSON.parse(data);
40
- this.anchors = new Map(Object.entries(parsed));
25
+ async initializeEngine() {
26
+ // 1. Initialize NOORMME Engine
27
+ await NoormmeEngine.initialize();
28
+ // 2. Load from NOORMME Repositories
29
+ const db = await NoormmeEngine.getInstance();
30
+ const repo = db.getRepository("anchors");
31
+ const records = await repo.objects.all();
32
+ if (records.length > 0) {
33
+ this.anchors = new Map(records.map((r) => [r.id, r]));
34
+ console.log(`[ContextArchiveService] Loaded ${records.length} anchors from Sovereign Mind.`);
41
35
  }
42
- catch (e) {
43
- // Check for migration from workspace root
44
- await this.migrateFromWorkspaceRoot(memoryPath);
36
+ else {
37
+ // 3. Fallback to Disk/Migration if NOORMME is empty
38
+ await this.loadFromLegacyDisk();
45
39
  }
46
40
  }
47
- async migrateFromWorkspaceRoot(newPath) {
48
- const root = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath;
41
+ async loadFromLegacyDisk() {
42
+ // Legacy disk migration for CLI might not be needed or handled differently
43
+ await this.migrateFromWorkspaceRoot();
44
+ }
45
+ async migrateFromWorkspaceRoot() {
46
+ const root = getWorkspaceRoot();
49
47
  if (!root)
50
48
  return;
51
49
  const oldPath = path.join(root, ".marie_memory.json");
@@ -53,51 +51,45 @@ export class ContextArchiveService {
53
51
  const data = await fs.readFile(oldPath, "utf-8");
54
52
  const parsed = JSON.parse(data);
55
53
  this.anchors = new Map(Object.entries(parsed));
56
- // Save to new location immediately
57
- const serialized = JSON.stringify(Object.fromEntries(this.anchors.entries()), null, 2);
58
- await fs.writeFile(newPath, serialized);
59
- // Optional: delete old file? Let's leave it for now but maybe rename it to .marie_memory.json.bak
54
+ await this.migrateToNoormme();
55
+ // Rename old file
60
56
  await fs.rename(oldPath, oldPath + ".bak");
61
- console.log(`[ContextArchiveService] Migrated memory from ${oldPath} to ${newPath}`);
57
+ console.log(`[ContextArchiveService] Migrated memory from ${oldPath} to Sovereign Mind`);
62
58
  }
63
59
  catch (err) {
64
60
  // No old file to migrate
65
61
  }
66
62
  }
67
- async saveToDisk() {
68
- if (!ContextArchiveService.context)
69
- return;
70
- const storageUri = ContextArchiveService.context.storageUri;
71
- if (!storageUri)
72
- return;
73
- const memoryPath = path.join(storageUri.fsPath, "marie_memory.json");
74
- try {
75
- await fs.mkdir(storageUri.fsPath, { recursive: true });
76
- const data = JSON.stringify(Object.fromEntries(this.anchors.entries()), null, 2);
77
- await fs.writeFile(memoryPath, data);
78
- }
79
- catch (e) {
80
- console.error("Failed to save strategic memory", e);
63
+ async migrateToNoormme() {
64
+ const db = await NoormmeEngine.getInstance();
65
+ const repo = db.getRepository("anchors");
66
+ const entries = Array.from(this.anchors.values());
67
+ for (const entry of entries) {
68
+ await repo.create(entry);
81
69
  }
70
+ console.log(`[ContextArchiveService] Successfully migrated ${entries.length} anchors to NOORMME.`);
82
71
  }
83
- /**
84
- * Anchors a new piece of context.
85
- */
86
72
  /**
87
73
  * Anchors a new piece of context. Safe to call anytime; awaits initialization if needed.
88
74
  */
89
75
  async anchor(anchor) {
90
76
  await this.ready;
91
- this.anchors.set(anchor.id, {
77
+ const fullAnchor = {
92
78
  ...anchor,
93
79
  timestamp: Date.now(),
94
- });
95
- this.queueSave();
96
- }
97
- queueSave() {
98
- this.saveQueue = this.saveQueue
99
- .then(() => this.saveToDisk())
100
- .catch((e) => console.error("Save queue error:", e));
80
+ };
81
+ this.anchors.set(anchor.id, fullAnchor);
82
+ // Save to NOORMME
83
+ const db = await NoormmeEngine.getInstance();
84
+ const repo = db.getRepository("anchors");
85
+ const dbValue = { ...fullAnchor, content: fullAnchor.content.replace(/'/g, "''") };
86
+ const existing = await repo.objects.filter({ id: anchor.id }).first();
87
+ if (existing) {
88
+ await db.execute(`UPDATE anchors SET label = '${dbValue.label}', content = '${dbValue.content}', type = '${dbValue.type}', timestamp = ${dbValue.timestamp} WHERE id = '${dbValue.id}'`);
89
+ }
90
+ else {
91
+ await repo.create(fullAnchor);
92
+ }
101
93
  }
102
94
  /**
103
95
  * Retrieves all anchored context as a formatted string for the AI.
@@ -121,8 +113,10 @@ export class ContextArchiveService {
121
113
  async release(id) {
122
114
  await this.ready;
123
115
  const deleted = this.anchors.delete(id);
124
- if (deleted)
125
- this.queueSave();
116
+ if (deleted) {
117
+ const db = await NoormmeEngine.getInstance();
118
+ await db.execute(`DELETE FROM anchors WHERE id = '${id}'`);
119
+ }
126
120
  return deleted;
127
121
  }
128
122
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ContextArchiveService.js","sourceRoot":"","sources":["../../../../../src/monolith/infrastructure/ai/context/ContextArchiveService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAU7B;;GAEG;AACH,MAAM,OAAO,qBAAqB;IACxB,MAAM,CAAC,QAAQ,CAAwB;IACvC,OAAO,GAAiC,IAAI,GAAG,EAAE,CAAC;IAClD,KAAK,CAAgB;IACrB,SAAS,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAE7C,MAAM,CAAC,OAAO,CAA0B;IAEhD;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IACnC,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,OAAgC;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;YACpC,qBAAqB,CAAC,QAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC/D,CAAC;QACD,OAAO,qBAAqB,CAAC,QAAQ,CAAC;IACxC,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC,qBAAqB,CAAC,OAAO;YAAE,OAAO;QAE3C,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC;QAC5D,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErE,IAAI,CAAC;YACH,kCAAkC;YAClC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEvD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,0CAA0C;YAC1C,MAAM,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,OAAe;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;QAChE,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAE/C,mCAAmC;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAC/B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAC1C,IAAI,EACJ,CAAC,CACF,CAAC;YACF,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAExC,kGAAkG;YAClG,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CACT,gDAAgD,OAAO,OAAO,OAAO,EAAE,CACxE,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,yBAAyB;QAC3B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC,qBAAqB,CAAC,OAAO;YAAE,OAAO;QAC3C,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC;QAC5D,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAErE,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CACzB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAC1C,IAAI,EACJ,CAAC,CACF,CAAC;YACF,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;OAEG;IACH;;OAEG;IACI,KAAK,CAAC,MAAM,CACjB,MAA0C;QAE1C,MAAM,IAAI,CAAC,KAAK,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE;YAC1B,GAAG,MAAM;YACT,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;aAC5B,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;aAC7B,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,mCAAmC,CAAC;QAC7C,CAAC;QAED,MAAM,KAAK,GAAa,CAAC,oCAAoC,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAC1D,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CACpC,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;YACrD,KAAK,CAAC,IAAI,CACR,SAAS,MAAM,CAAC,EAAE,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE,IAAI,CACpF,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO,CAAC,EAAU;QAC7B,MAAM,IAAI,CAAC,KAAK,CAAC;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,OAAO;YAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"ContextArchiveService.js","sourceRoot":"","sources":["../../../../../src/monolith/infrastructure/ai/context/ContextArchiveService.ts"],"names":[],"mappings":"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"}