@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
@@ -1,12 +1,11 @@
1
1
  import * as fs from "fs";
2
2
  import * as path from "path";
3
3
  import * as os from "os";
4
+ import { getInstance, initializeMarieMind, } from "../infrastructure/CoreInfrastructure.js";
5
+ import { safeStringify, safeGetEntries, } from "../plumbing/utils/PlumbingCore.js";
4
6
  export { fs, path };
5
7
  const MARIE_DIR = path.join(os.homedir(), ".marie");
6
- const SESSIONS_FILE = path.join(MARIE_DIR, "sessions.json");
7
- const METADATA_FILE = path.join(MARIE_DIR, "sessionMetadata.json");
8
8
  const CONFIG_FILE = path.join(MARIE_DIR, "config.json");
9
- const CURRENT_SESSION_FILE = path.join(MARIE_DIR, "currentSession.json");
10
9
  const defaultConfig = {
11
10
  aiProvider: "openrouter",
12
11
  model: "anthropic/claude-3.5-sonnet",
@@ -17,12 +16,41 @@ const defaultConfig = {
17
16
  ascensionMaxRequiredActions: 2,
18
17
  autonomyMode: "high",
19
18
  };
19
+ /**
20
+ * Storage - Now backed by Kysely + SQLite
21
+ */
20
22
  export class Storage {
23
+ static MarieMindReady = null;
24
+ static async withRetry(fn, retries = 5, delay = 500) {
25
+ let lastError;
26
+ for (let i = 0; i < retries; i++) {
27
+ try {
28
+ return await fn();
29
+ }
30
+ catch (e) {
31
+ lastError = e;
32
+ if (e?.code === "SQLITE_BUSY" ||
33
+ String(e).includes("database is locked")) {
34
+ await new Promise((resolve) => setTimeout(resolve, delay * (i + 1)));
35
+ continue;
36
+ }
37
+ throw e;
38
+ }
39
+ }
40
+ throw lastError;
41
+ }
42
+ static async ensureReady() {
43
+ if (!this.MarieMindReady) {
44
+ this.MarieMindReady = initializeMarieMind();
45
+ }
46
+ await this.MarieMindReady;
47
+ }
21
48
  static ensureDir() {
22
49
  if (!fs.existsSync(MARIE_DIR)) {
23
50
  fs.mkdirSync(MARIE_DIR, { recursive: true });
24
51
  }
25
52
  }
53
+ // --- Configuration (Remains JSON for bootstrapping) ---
26
54
  static getConfig() {
27
55
  this.ensureDir();
28
56
  if (!fs.existsSync(CONFIG_FILE)) {
@@ -32,7 +60,6 @@ export class Storage {
32
60
  const data = fs.readFileSync(CONFIG_FILE, "utf-8");
33
61
  const parsed = JSON.parse(data);
34
62
  const merged = { ...defaultConfig, ...parsed };
35
- // Backward compatibility for older configs that predate autonomyMode.
36
63
  if (!parsed.autonomyMode) {
37
64
  merged.autonomyMode = "high";
38
65
  }
@@ -45,75 +72,137 @@ export class Storage {
45
72
  static saveConfig(config) {
46
73
  this.ensureDir();
47
74
  const current = this.getConfig();
48
- fs.writeFileSync(CONFIG_FILE, JSON.stringify({ ...current, ...config }, null, 2));
75
+ fs.writeFileSync(CONFIG_FILE, safeStringify({ ...current, ...config }, 2));
49
76
  }
50
- static getSessions() {
51
- this.ensureDir();
52
- if (!fs.existsSync(SESSIONS_FILE)) {
53
- return {};
54
- }
55
- try {
56
- const data = fs.readFileSync(SESSIONS_FILE, "utf-8");
57
- return JSON.parse(data);
58
- }
59
- catch {
60
- return {};
61
- }
77
+ // --- Sessions (Kysely Structured) ---
78
+ static async getSessions() {
79
+ await this.ensureReady();
80
+ const db = await getInstance();
81
+ return this.withRetry(async () => {
82
+ const all = await db.kysely.selectFrom("sessions").selectAll().execute();
83
+ // Convert flat records back to Record<id, messages[]>
84
+ const grouped = {};
85
+ for (const entry of all) {
86
+ const { sessionId, role, content, metadata } = entry;
87
+ if (!grouped[sessionId])
88
+ grouped[sessionId] = [];
89
+ let parsedMeta = {};
90
+ if (typeof metadata === "string") {
91
+ try {
92
+ parsedMeta = JSON.parse(metadata);
93
+ }
94
+ catch { }
95
+ }
96
+ grouped[sessionId].push({ role, content, ...parsedMeta });
97
+ }
98
+ return grouped;
99
+ });
62
100
  }
63
- static saveSessions(sessions) {
64
- this.ensureDir();
65
- fs.writeFileSync(SESSIONS_FILE, JSON.stringify(sessions, null, 2));
101
+ static async saveSessions(sessions) {
102
+ await this.ensureReady();
103
+ const db = await getInstance();
104
+ await this.withRetry(async () => {
105
+ // Clear old sessions before saving new ones (Marie's current sync strategy)
106
+ await db.kysely.deleteFrom("sessions").execute();
107
+ // QUANTUM RESILIENCE: Limit session enumeration
108
+ const sessionEntries = safeGetEntries(sessions, 100);
109
+ for (const [sessionId, messages] of sessionEntries) {
110
+ for (const msg of messages) {
111
+ const { role, content, ...metadata } = msg;
112
+ await db.kysely.insertInto("sessions").values({
113
+ sessionId,
114
+ role,
115
+ content,
116
+ metadata: JSON.stringify(metadata),
117
+ }).execute();
118
+ }
119
+ }
120
+ });
66
121
  }
67
- static getSessionMetadata() {
68
- this.ensureDir();
69
- if (!fs.existsSync(METADATA_FILE)) {
70
- return [];
71
- }
72
- try {
73
- const data = fs.readFileSync(METADATA_FILE, "utf-8");
74
- return JSON.parse(data);
75
- }
76
- catch {
77
- return [];
78
- }
122
+ static async getSessionMetadata() {
123
+ await this.ensureReady();
124
+ const db = await getInstance();
125
+ return this.withRetry(async () => {
126
+ const records = await db.kysely.selectFrom("session_metadata")
127
+ .selectAll()
128
+ .orderBy("lastModified", "desc")
129
+ .execute();
130
+ return records.map(r => ({
131
+ ...r,
132
+ isPinned: !!r.isPinned
133
+ }));
134
+ });
79
135
  }
80
- static saveSessionMetadata(metadata) {
81
- this.ensureDir();
82
- fs.writeFileSync(METADATA_FILE, JSON.stringify(metadata, null, 2));
136
+ static async saveSessionMetadata(metadata) {
137
+ await this.ensureReady();
138
+ const db = await getInstance();
139
+ await this.withRetry(async () => {
140
+ await db.kysely.deleteFrom("session_metadata").execute();
141
+ for (const entry of metadata) {
142
+ await db.kysely.insertInto("session_metadata").values({
143
+ ...entry,
144
+ isPinned: entry.isPinned ? 1 : 0
145
+ }).execute();
146
+ }
147
+ });
83
148
  }
84
- static getCurrentSessionId() {
85
- this.ensureDir();
86
- if (!fs.existsSync(CURRENT_SESSION_FILE)) {
87
- return "default";
88
- }
89
- try {
90
- const data = fs.readFileSync(CURRENT_SESSION_FILE, "utf-8");
91
- return JSON.parse(data).id || "default";
92
- }
93
- catch {
94
- return "default";
95
- }
149
+ static async getCurrentSessionId() {
150
+ await this.ensureReady();
151
+ const db = await getInstance();
152
+ return this.withRetry(async () => {
153
+ const state = await db.kysely.selectFrom("current_session").selectAll().executeTakeFirst();
154
+ return state?.id || "default";
155
+ });
96
156
  }
97
- static setCurrentSessionId(id) {
98
- this.ensureDir();
99
- fs.writeFileSync(CURRENT_SESSION_FILE, JSON.stringify({ id }));
157
+ static async setCurrentSessionId(id) {
158
+ await this.ensureReady();
159
+ const db = await getInstance();
160
+ await this.withRetry(async () => {
161
+ await db.kysely.deleteFrom("current_session").execute();
162
+ await db.kysely.insertInto("current_session").values({ id }).execute();
163
+ });
100
164
  }
101
- static getLastTelemetry() {
102
- this.ensureDir();
103
- const file = path.join(MARIE_DIR, "lastTelemetry.json");
104
- if (!fs.existsSync(file))
105
- return undefined;
106
- try {
107
- return JSON.parse(fs.readFileSync(file, "utf-8"));
108
- }
109
- catch {
110
- return undefined;
111
- }
165
+ // --- Telemetry (Kysely Structured) ---
166
+ static async getLastTelemetry() {
167
+ await this.ensureReady();
168
+ const db = await getInstance();
169
+ return this.withRetry(async () => {
170
+ const entry = await db.kysely.selectFrom("telemetry")
171
+ .selectAll()
172
+ .where("key", "=", "last_telemetry")
173
+ .executeTakeFirst();
174
+ if (entry?.value) {
175
+ try {
176
+ return JSON.parse(entry.value);
177
+ }
178
+ catch {
179
+ return entry.value;
180
+ }
181
+ }
182
+ return null;
183
+ });
112
184
  }
113
- static setLastTelemetry(telemetry) {
114
- this.ensureDir();
115
- const file = path.join(MARIE_DIR, "lastTelemetry.json");
116
- fs.writeFileSync(file, JSON.stringify(telemetry, null, 2));
185
+ static async setLastTelemetry(telemetry) {
186
+ await this.ensureReady();
187
+ const db = await getInstance();
188
+ await this.withRetry(async () => {
189
+ const valStr = safeStringify(telemetry);
190
+ const existing = await db.kysely.selectFrom("telemetry")
191
+ .select("key")
192
+ .where("key", "=", "last_telemetry")
193
+ .executeTakeFirst();
194
+ if (existing) {
195
+ await db.kysely.updateTable("telemetry")
196
+ .set({ value: valStr })
197
+ .where("key", "=", "last_telemetry")
198
+ .execute();
199
+ }
200
+ else {
201
+ await db.kysely.insertInto("telemetry")
202
+ .values({ key: "last_telemetry", value: valStr })
203
+ .execute();
204
+ }
205
+ });
117
206
  }
118
207
  }
119
208
  //# sourceMappingURL=storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/monolith/cli/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/monolith/cli/storage.ts"],"names":[],"mappings":"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"}
@@ -1,51 +1,49 @@
1
- export class RitualService {
2
- /** Zone ranking hierarchy — hoisted to avoid per-call allocation */
3
- static ZONE_RANKINGS = {
4
- joyful: 3,
5
- infrastructure: 2,
6
- plumbing: 1,
7
- };
8
- /**
9
- * Dependency Law: Joyful -> Infrastructure -> Plumbing.
10
- * Never point upward.
11
- */
12
- static validateDependencies(sourceZone, targetFiles) {
13
- const violations = [];
14
- for (const target of targetFiles) {
15
- const targetZone = this.getZoneFromPath(target);
16
- if (this.isUpward(sourceZone, targetZone)) {
17
- violations.push({
18
- file: target,
19
- target: targetZone,
20
- message: `Conceptual Backflow: '${sourceZone}' code cannot depend on '${targetZone}' structure.`,
21
- });
22
- }
1
+ /** Zone ranking hierarchy — hoisted to avoid per-call allocation */
2
+ const ZONE_RANKINGS = {
3
+ joyful: 3,
4
+ infrastructure: 2,
5
+ plumbing: 1,
6
+ };
7
+ /**
8
+ * Dependency Law: Joyful -> Infrastructure -> Plumbing.
9
+ * Never point upward.
10
+ */
11
+ export function validateDependencies(sourceZone, targetFiles) {
12
+ const violations = [];
13
+ for (const target of targetFiles) {
14
+ const targetZone = getZoneFromPath(target);
15
+ if (isUpward(sourceZone, targetZone)) {
16
+ violations.push({
17
+ file: target,
18
+ target: targetZone,
19
+ message: `Conceptual Backflow: '${sourceZone}' code cannot depend on '${targetZone}' structure.`,
20
+ });
23
21
  }
24
- return violations;
25
22
  }
26
- static getZoneFromPath(filePath) {
27
- const normalized = filePath.replace(/\\/g, "/");
28
- if (normalized.includes("/domain/") || normalized.includes("/joy/"))
29
- return "joyful";
30
- if (normalized.includes("/infrastructure/") ||
31
- normalized.includes("/services/"))
32
- return "infrastructure";
33
- if (normalized.includes("/plumbing/") || normalized.includes("/utils/"))
34
- return "plumbing";
35
- // Default based on common patterns if not explicit
23
+ return violations;
24
+ }
25
+ export function getZoneFromPath(filePath) {
26
+ const normalized = filePath.replace(/\\/g, "/");
27
+ if (normalized.includes("/domain/") || normalized.includes("/joy/"))
36
28
  return "joyful";
37
- }
38
- static isUpward(source, target) {
39
- // Upward if target has a higher (more joyful) ranking than source
40
- return this.ZONE_RANKINGS[target] > this.ZONE_RANKINGS[source];
41
- }
42
- static getRitualGratefulnessPrompt(projectName, stage) {
43
- const messages = [
44
- `What part of '${projectName}' brings you the most clarity today?`,
45
- `As we ${stage} this code, what are we thanking it for?`,
46
- `How does this change protect the joyful core of our garden?`,
47
- ];
48
- return messages[Math.floor(Math.random() * messages.length)];
49
- }
29
+ if (normalized.includes("/infrastructure/") ||
30
+ normalized.includes("/services/"))
31
+ return "infrastructure";
32
+ if (normalized.includes("/plumbing/") || normalized.includes("/utils/"))
33
+ return "plumbing";
34
+ // Default based on common patterns if not explicit
35
+ return "joyful";
36
+ }
37
+ function isUpward(source, target) {
38
+ // Upward if target has a higher (more joyful) ranking than source
39
+ return ZONE_RANKINGS[target] > ZONE_RANKINGS[source];
40
+ }
41
+ export function getRitualGratefulnessPrompt(projectName, stage) {
42
+ const messages = [
43
+ `What part of '${projectName}' brings you the most clarity today?`,
44
+ `As we ${stage} this code, what are we thanking it for?`,
45
+ `How does this change protect the joyful core of our garden?`,
46
+ ];
47
+ return messages[Math.floor(Math.random() * messages.length)];
50
48
  }
51
49
  //# sourceMappingURL=RitualService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RitualService.js","sourceRoot":"","sources":["../../../../src/monolith/domain/joy/RitualService.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,aAAa;IACxB,oEAAoE;IAC5D,MAAM,CAAU,aAAa,GAA4B;QAC/D,MAAM,EAAE,CAAC;QACT,cAAc,EAAE,CAAC;QACjB,QAAQ,EAAE,CAAC;KACZ,CAAC;IAEF;;;OAGG;IACI,MAAM,CAAC,oBAAoB,CAChC,UAAmB,EACnB,WAAqB;QAErB,MAAM,UAAU,GAA0B,EAAE,CAAC;QAE7C,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAEhD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;gBAC1C,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,yBAAyB,UAAU,4BAA4B,UAAU,cAAc;iBACjG,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,QAAgB;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChD,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;YACjE,OAAO,QAAQ,CAAC;QAClB,IACE,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACvC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC;YAEjC,OAAO,gBAAgB,CAAC;QAC1B,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;YACrE,OAAO,UAAU,CAAC;QAEpB,mDAAmD;QACnD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,QAAQ,CAAC,MAAe,EAAE,MAAe;QACtD,kEAAkE;QAClE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAEM,MAAM,CAAC,2BAA2B,CACvC,WAAmB,EACnB,KAAa;QAEb,MAAM,QAAQ,GAAG;YACf,iBAAiB,WAAW,sCAAsC;YAClE,SAAS,KAAK,0CAA0C;YACxD,6DAA6D;SAC9D,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,CAAC"}
1
+ {"version":3,"file":"RitualService.js","sourceRoot":"","sources":["../../../../src/monolith/domain/joy/RitualService.ts"],"names":[],"mappings":"AAUA,oEAAoE;AACpE,MAAM,aAAa,GAA4B;IAC7C,MAAM,EAAE,CAAC;IACT,cAAc,EAAE,CAAC;IACjB,QAAQ,EAAE,CAAC;CACZ,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAmB,EACnB,WAAqB;IAErB,MAAM,UAAU,GAA0B,EAAE,CAAC;IAE7C,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAE3C,IAAI,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,yBAAyB,UAAU,4BAA4B,UAAU,cAAc;aACjG,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAChD,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;QACjE,OAAO,QAAQ,CAAC;IAClB,IACE,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACvC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC;QAEjC,OAAO,gBAAgB,CAAC;IAC1B,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;QACrE,OAAO,UAAU,CAAC;IAEpB,mDAAmD;IACnD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,QAAQ,CAAC,MAAe,EAAE,MAAe;IAChD,kEAAkE;IAClE,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,WAAmB,EACnB,KAAa;IAEb,MAAM,QAAQ,GAAG;QACf,iBAAiB,WAAW,sCAAsC;QAClE,SAAS,KAAK,0CAA0C;QACxD,6DAA6D;KAC9D,CAAC;IACF,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/D,CAAC"}
@@ -0,0 +1,148 @@
1
+ import { MarieEngine } from "../../infrastructure/ai/core/MarieEngine.js";
2
+ import { getInstance, } from "../../infrastructure/persistence/NoormmeEngine.js";
3
+ import { extractText } from "../../plumbing/utils/PlumbingCore.js";
4
+ // --- Personality Renderer (Unified) ---
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
+ export function renderStatus(stage) {
33
+ const options = LEXICON[stage] || [stage];
34
+ return options[Math.floor(Math.random() * options.length)];
35
+ }
36
+ export function renderMessage(content) {
37
+ if (!content)
38
+ return content;
39
+ let rendered = content;
40
+ if (rendered.length > 300) {
41
+ rendered = "◈ [Expanding] " + rendered.substring(0, 150) + " ... [Converged]";
42
+ }
43
+ rendered = rendered.replace(/working on/gi, "◈ shaping");
44
+ rendered = rendered.replace(/fixing|stabilizing/gi, "⚡ stabilizing");
45
+ rendered = rendered.replace(/anomaly|anomaly detected/gi, "⚠ anomaly");
46
+ rendered = rendered.replace(/successfully completed|converged/gi, "✔ converged");
47
+ rendered = rendered.replace(/feature|capability/gi, "🧬 capability");
48
+ return rendered;
49
+ }
50
+ export function getGreeting() {
51
+ const greetings = [
52
+ "The Continuum awaits. How shall we alter it today?",
53
+ "Memory Weaver active. Specify your target timeline.",
54
+ "Ascension protocol ready. Awaiting your command.",
55
+ ];
56
+ return greetings[Math.floor(Math.random() * greetings.length)];
57
+ }
58
+ export function isHighImpact(text) {
59
+ if (!text)
60
+ return false;
61
+ const lower = text.toLowerCase();
62
+ const highImpactWords = [
63
+ "start", "complete", "finish", "fail", "error", "critical",
64
+ "strategic", "decision", "warp", "thinking", "authorized",
65
+ "denied", "divergence",
66
+ ];
67
+ return highImpactWords.some((word) => lower.includes(word)) || text.length > 50;
68
+ }
69
+ let mode = "strategist";
70
+ const reasoningCache = new Map();
71
+ export function setMode(newMode) {
72
+ mode = newMode;
73
+ reasoningCache.clear();
74
+ }
75
+ export function getMode() {
76
+ return mode;
77
+ }
78
+ function calculateUncertainty(text) {
79
+ const lower = text.toLowerCase();
80
+ let score = 0.5;
81
+ if (text.length < 50)
82
+ score -= 0.2;
83
+ if (["ls", "pwd", "read", "cat", "whoami"].some((cmd) => lower.startsWith(cmd)))
84
+ score -= 0.3;
85
+ if (["refactor", "complex", "optimize", "architecture"].some((word) => lower.includes(word)))
86
+ score += 0.3;
87
+ if (text.length > 200)
88
+ score += 0.2;
89
+ return Math.max(0, Math.min(1, score));
90
+ }
91
+ export async function plan(text, history) {
92
+ const cacheKey = `${mode}:${text.trim().toLowerCase()}`;
93
+ if (reasoningCache.has(cacheKey))
94
+ return reasoningCache.get(cacheKey);
95
+ const uncertaintyScore = calculateUncertainty(text);
96
+ const lowerText = text.toLowerCase();
97
+ if (uncertaintyScore < 0.4 || mode === "warp") {
98
+ const p = {
99
+ strategy: "⚡ Heuristic Warp: Low uncertainty path active.",
100
+ objectives: ["Direct execution"],
101
+ useWarp: true,
102
+ uncertaintyScore,
103
+ };
104
+ reasoningCache.set(cacheKey, p);
105
+ return p;
106
+ }
107
+ if (lowerText.includes("extract function")) {
108
+ return {
109
+ strategy: "🛠 Specialized: Extract Function Pipeline.",
110
+ objectives: ["Isolate block", "Refactor", "Verify"],
111
+ useWarp: true,
112
+ uncertaintyScore: 0.2,
113
+ };
114
+ }
115
+ const p = {
116
+ strategy: "🧬 Standard: Cognitive One-Pass Strategy.",
117
+ objectives: ["Analyze", "Execute", "Verify"],
118
+ useWarp: false,
119
+ uncertaintyScore,
120
+ };
121
+ reasoningCache.set(cacheKey, p);
122
+ return p;
123
+ }
124
+ export async function processSessionEnd(sessionId, messages, renameCallback, providerFactory, config) {
125
+ const providerType = config.getAiProvider();
126
+ const key = config.getApiKey(providerType) || "";
127
+ const provider = providerFactory(providerType, key);
128
+ if (!provider)
129
+ return;
130
+ const engine = new MarieEngine(provider, undefined, async () => true);
131
+ try {
132
+ const firstMsg = messages.find((m) => m.role === "user")?.content || "New Session";
133
+ const title = extractText(firstMsg).substring(0, 30);
134
+ await renameCallback(sessionId, title);
135
+ void (async () => {
136
+ const db = await getInstance();
137
+ await db.agent.cortex.refiner.refineActions();
138
+ await db.agent.cortex.reasoner.synthesizeLessons();
139
+ })();
140
+ }
141
+ catch (e) {
142
+ console.error("[MarieCortex] Session end pass failed", e);
143
+ }
144
+ }
145
+ export function renderResponse(content) {
146
+ return renderMessage(content);
147
+ }
148
+ //# sourceMappingURL=MarieCortex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarieCortex.js","sourceRoot":"","sources":["../../../../src/monolith/domain/marie/MarieCortex.ts"],"names":[],"mappings":"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"}