@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.
- package/README.md +7 -15
- package/SENTINEL.md +4 -7
- package/dist/cli-new/components/AgenticSpinner.js +28 -0
- package/dist/cli-new/components/AgenticSpinner.js.map +1 -0
- package/dist/cli-new/components/App.js +16 -63
- package/dist/cli-new/components/App.js.map +1 -1
- package/dist/cli-new/components/ApprovalDialog.js +3 -2
- package/dist/cli-new/components/ApprovalDialog.js.map +1 -1
- package/dist/cli-new/components/Banner.js +16 -5
- package/dist/cli-new/components/Banner.js.map +1 -1
- package/dist/cli-new/components/ChatArea.js +6 -7
- package/dist/cli-new/components/ChatArea.js.map +1 -1
- package/dist/cli-new/components/Header.js +14 -8
- package/dist/cli-new/components/Header.js.map +1 -1
- package/dist/cli-new/components/InputArea.js +98 -31
- package/dist/cli-new/components/InputArea.js.map +1 -1
- package/dist/cli-new/components/MessageBubble.js +28 -19
- package/dist/cli-new/components/MessageBubble.js.map +1 -1
- package/dist/cli-new/components/SessionSwitcher.js +6 -9
- package/dist/cli-new/components/SessionSwitcher.js.map +1 -1
- package/dist/cli-new/components/SetupWizard.js +80 -257
- package/dist/cli-new/components/SetupWizard.js.map +1 -1
- package/dist/cli-new/components/ToolCallDisplay.js +20 -5
- package/dist/cli-new/components/ToolCallDisplay.js.map +1 -1
- package/dist/cli-new/components/WizardSteps.js +22 -0
- package/dist/cli-new/components/WizardSteps.js.map +1 -0
- package/dist/cli-new/constants/SetupConstants.js +42 -0
- package/dist/cli-new/constants/SetupConstants.js.map +1 -0
- package/dist/cli-new/hooks/useGit.js +19 -62
- package/dist/cli-new/hooks/useGit.js.map +1 -1
- package/dist/cli-new/hooks/useMarie.js +26 -18
- package/dist/cli-new/hooks/useMarie.js.map +1 -1
- package/dist/cli-new/hooks/useSessions.js +1 -1
- package/dist/cli-new/hooks/useSessions.js.map +1 -1
- package/dist/cli-new/hooks/useSetupWizard.js +88 -0
- package/dist/cli-new/hooks/useSetupWizard.js.map +1 -0
- package/dist/cli-new/hooks/useUpdateCheck.js +4 -3
- package/dist/cli-new/hooks/useUpdateCheck.js.map +1 -1
- package/dist/cli-new/index.js +2 -4
- package/dist/cli-new/index.js.map +1 -1
- package/dist/cli-new/services/CommandService.js +104 -0
- package/dist/cli-new/services/CommandService.js.map +1 -0
- package/dist/cli-new/services/GitService.js +91 -0
- package/dist/cli-new/services/GitService.js.map +1 -0
- package/dist/cli-new/services/MarieService.js +77 -0
- package/dist/cli-new/services/MarieService.js.map +1 -0
- package/dist/cli-new/services/auth-server.js +128 -0
- package/dist/cli-new/services/auth-server.js.map +1 -0
- package/dist/cli-new/styles/theme.js +17 -17
- package/dist/cli-new/styles/theme.js.map +1 -1
- package/dist/cli-new/utils/version.js +24 -0
- package/dist/cli-new/utils/version.js.map +1 -0
- package/dist/monolith/adapters/CliMarieAdapter.js +19 -18
- package/dist/monolith/adapters/CliMarieAdapter.js.map +1 -1
- package/dist/monolith/cli/CliFileSystemPort.js +17 -3
- package/dist/monolith/cli/CliFileSystemPort.js.map +1 -1
- package/dist/monolith/cli/MarieToolDefinitionsCLI.js +44 -33
- package/dist/monolith/cli/MarieToolDefinitionsCLI.js.map +1 -1
- package/dist/monolith/cli/index.js +11 -20
- package/dist/monolith/cli/index.js.map +1 -1
- package/dist/monolith/cli/services/JoyAutomationServiceCLI.js +15 -62
- package/dist/monolith/cli/services/JoyAutomationServiceCLI.js.map +1 -1
- package/dist/monolith/cli/storage.js +154 -65
- package/dist/monolith/cli/storage.js.map +1 -1
- package/dist/monolith/domain/joy/RitualService.js +44 -46
- package/dist/monolith/domain/joy/RitualService.js.map +1 -1
- package/dist/monolith/domain/marie/MarieCortex.js +148 -0
- package/dist/monolith/domain/marie/MarieCortex.js.map +1 -0
- package/dist/monolith/domain/marie/PersonalityRenderer.js +97 -0
- package/dist/monolith/domain/marie/PersonalityRenderer.js.map +1 -0
- package/dist/monolith/infrastructure/Configuration.js +68 -0
- package/dist/monolith/infrastructure/Configuration.js.map +1 -0
- package/dist/monolith/infrastructure/CoreInfrastructure.js +204 -0
- package/dist/monolith/infrastructure/CoreInfrastructure.js.map +1 -0
- package/dist/monolith/infrastructure/ai/agents/MarieAscendant.js +3 -3
- package/dist/monolith/infrastructure/ai/agents/MarieAscendant.js.map +1 -1
- package/dist/monolith/infrastructure/ai/context/ContextArchiveService.js +51 -57
- package/dist/monolith/infrastructure/ai/context/ContextArchiveService.js.map +1 -1
- package/dist/monolith/infrastructure/ai/context/ContextManager.js +142 -98
- package/dist/monolith/infrastructure/ai/context/ContextManager.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieEngine.js +104 -556
- package/dist/monolith/infrastructure/ai/core/MarieEngine.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieEventDispatcher.js +1 -37
- package/dist/monolith/infrastructure/ai/core/MarieEventDispatcher.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieLockManager.js +30 -5
- package/dist/monolith/infrastructure/ai/core/MarieLockManager.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieProgressTracker.js +176 -196
- package/dist/monolith/infrastructure/ai/core/MarieProgressTracker.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MariePulseService.js +41 -7
- package/dist/monolith/infrastructure/ai/core/MariePulseService.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieSanitizer.js +303 -63
- package/dist/monolith/infrastructure/ai/core/MarieSanitizer.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieSemaphore.js +47 -4
- package/dist/monolith/infrastructure/ai/core/MarieSemaphore.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieSession.js +95 -15
- package/dist/monolith/infrastructure/ai/core/MarieSession.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieStabilityMonitor.js +21 -0
- package/dist/monolith/infrastructure/ai/core/MarieStabilityMonitor.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieToolMender.js +12 -0
- package/dist/monolith/infrastructure/ai/core/MarieToolMender.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js +339 -481
- package/dist/monolith/infrastructure/ai/core/MarieToolProcessor.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/MarieVitality.js +238 -0
- package/dist/monolith/infrastructure/ai/core/MarieVitality.js.map +1 -0
- package/dist/monolith/infrastructure/ai/core/ReasoningBudget.js +23 -12
- package/dist/monolith/infrastructure/ai/core/ReasoningBudget.js.map +1 -1
- package/dist/monolith/infrastructure/ai/core/SessionLogService.js +9 -2
- package/dist/monolith/infrastructure/ai/core/SessionLogService.js.map +1 -1
- package/dist/monolith/infrastructure/ai/providers/AIProvider.js +402 -1
- package/dist/monolith/infrastructure/ai/providers/AIProvider.js.map +1 -1
- package/dist/monolith/infrastructure/ai/providers/DreamBeesProvider.js +114 -0
- package/dist/monolith/infrastructure/ai/providers/DreamBeesProvider.js.map +1 -0
- package/dist/monolith/infrastructure/ai/providers/OpenRouterProvider.js +426 -370
- package/dist/monolith/infrastructure/ai/providers/OpenRouterProvider.js.map +1 -1
- package/dist/monolith/infrastructure/ai/providers/OpenRouterStreamParser.js +235 -241
- package/dist/monolith/infrastructure/ai/providers/OpenRouterStreamParser.js.map +1 -1
- package/dist/monolith/infrastructure/ai/workerAi.js +185 -0
- package/dist/monolith/infrastructure/ai/workerAi.js.map +1 -0
- package/dist/monolith/infrastructure/config/ConfigService.js +216 -359
- package/dist/monolith/infrastructure/config/ConfigService.js.map +1 -1
- package/dist/monolith/infrastructure/joy/CognitiveRituals.js +8 -0
- package/dist/monolith/infrastructure/joy/CognitiveRituals.js.map +1 -0
- package/dist/monolith/infrastructure/joy/JoyTools.js +23 -43
- package/dist/monolith/infrastructure/joy/JoyTools.js.map +1 -1
- package/dist/monolith/infrastructure/persistence/MarieMindAutonomics.js +4 -0
- package/dist/monolith/infrastructure/persistence/MarieMindAutonomics.js.map +1 -0
- package/dist/monolith/infrastructure/persistence/MarieMindEngine.js +11 -0
- package/dist/monolith/infrastructure/persistence/MarieMindEngine.js.map +1 -0
- package/dist/monolith/infrastructure/persistence/NoormmeAutonomics.js +135 -0
- package/dist/monolith/infrastructure/persistence/NoormmeAutonomics.js.map +1 -0
- package/dist/monolith/infrastructure/persistence/NoormmeEngine.js +523 -0
- package/dist/monolith/infrastructure/persistence/NoormmeEngine.js.map +1 -0
- package/dist/monolith/infrastructure/persistence/NoormmeSchema.js +179 -0
- package/dist/monolith/infrastructure/persistence/NoormmeSchema.js.map +1 -0
- package/dist/monolith/infrastructure/persistence/NoormmeSeeder.js +94 -0
- package/dist/monolith/infrastructure/persistence/NoormmeSeeder.js.map +1 -0
- package/dist/monolith/infrastructure/persistence/NoormmeTools.js +371 -0
- package/dist/monolith/infrastructure/persistence/NoormmeTools.js.map +1 -0
- package/dist/monolith/infrastructure/services/MarieMemoryStore.js +133 -134
- package/dist/monolith/infrastructure/services/MarieMemoryStore.js.map +1 -1
- package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js +6 -1578
- package/dist/monolith/infrastructure/tools/MarieToolDefinitions.js.map +1 -1
- package/dist/monolith/infrastructure/tools/PureStreamParser.js +68 -80
- package/dist/monolith/infrastructure/tools/PureStreamParser.js.map +1 -1
- package/dist/monolith/infrastructure/tools/SharedToolDefinitions.js +12 -11
- package/dist/monolith/infrastructure/tools/SharedToolDefinitions.js.map +1 -1
- package/dist/monolith/infrastructure/tools/SovereignTools.js +326 -0
- package/dist/monolith/infrastructure/tools/SovereignTools.js.map +1 -0
- package/dist/monolith/infrastructure/tools/ToolRegistry.js +45 -26
- package/dist/monolith/infrastructure/tools/ToolRegistry.js.map +1 -1
- package/dist/monolith/infrastructure/tools/definitions/AnalysisTools.js +232 -0
- package/dist/monolith/infrastructure/tools/definitions/AnalysisTools.js.map +1 -0
- package/dist/monolith/infrastructure/tools/definitions/AutomationTools.js +274 -0
- package/dist/monolith/infrastructure/tools/definitions/AutomationTools.js.map +1 -0
- package/dist/monolith/infrastructure/tools/definitions/ContextTools.js +71 -0
- package/dist/monolith/infrastructure/tools/definitions/ContextTools.js.map +1 -0
- package/dist/monolith/infrastructure/tools/definitions/CoreTools.js +37 -0
- package/dist/monolith/infrastructure/tools/definitions/CoreTools.js.map +1 -0
- package/dist/monolith/infrastructure/tools/definitions/DiagnosticTools.js +154 -0
- package/dist/monolith/infrastructure/tools/definitions/DiagnosticTools.js.map +1 -0
- package/dist/monolith/infrastructure/tools/definitions/NavigationTools.js +197 -0
- package/dist/monolith/infrastructure/tools/definitions/NavigationTools.js.map +1 -0
- package/dist/monolith/infrastructure/tools/definitions/PlanningTools.js +300 -0
- package/dist/monolith/infrastructure/tools/definitions/PlanningTools.js.map +1 -0
- package/dist/monolith/plumbing/Plumbing.js +238 -0
- package/dist/monolith/plumbing/Plumbing.js.map +1 -0
- package/dist/monolith/plumbing/PlumbingAnalysis.js +109 -0
- package/dist/monolith/plumbing/PlumbingAnalysis.js.map +1 -0
- package/dist/monolith/plumbing/PlumbingSystem.js +169 -0
- package/dist/monolith/plumbing/PlumbingSystem.js.map +1 -0
- package/dist/monolith/plumbing/analysis/ComplexityService.js +30 -34
- package/dist/monolith/plumbing/analysis/ComplexityService.js.map +1 -1
- package/dist/monolith/plumbing/analysis/DependencyService.js +55 -44
- package/dist/monolith/plumbing/analysis/DependencyService.js.map +1 -1
- package/dist/monolith/plumbing/analysis/DiscoveryService.js +40 -42
- package/dist/monolith/plumbing/analysis/DiscoveryService.js.map +1 -1
- package/dist/monolith/plumbing/analysis/JoyMapService.js +52 -56
- package/dist/monolith/plumbing/analysis/JoyMapService.js.map +1 -1
- package/dist/monolith/plumbing/analysis/LintService.js +118 -118
- package/dist/monolith/plumbing/analysis/LintService.js.map +1 -1
- package/dist/monolith/plumbing/analysis/MarieSentinelService.js +278 -269
- package/dist/monolith/plumbing/analysis/MarieSentinelService.js.map +1 -1
- package/dist/monolith/plumbing/analysis/QualityGuardrailService.js +116 -114
- package/dist/monolith/plumbing/analysis/QualityGuardrailService.js.map +1 -1
- package/dist/monolith/plumbing/analysis/SurgicalMender.js +57 -59
- package/dist/monolith/plumbing/analysis/SurgicalMender.js.map +1 -1
- package/dist/monolith/plumbing/analysis/TestService.js +89 -89
- package/dist/monolith/plumbing/analysis/TestService.js.map +1 -1
- package/dist/monolith/plumbing/filesystem/FileService.js +123 -195
- package/dist/monolith/plumbing/filesystem/FileService.js.map +1 -1
- package/dist/monolith/plumbing/filesystem/PathResolver.js +7 -8
- package/dist/monolith/plumbing/filesystem/PathResolver.js.map +1 -1
- package/dist/monolith/plumbing/git/GitService.js +4 -4
- package/dist/monolith/plumbing/git/GitService.js.map +1 -1
- package/dist/monolith/plumbing/lsp/SymbolService.js +5 -34
- package/dist/monolith/plumbing/lsp/SymbolService.js.map +1 -1
- package/dist/monolith/plumbing/terminal/ProcessRegistry.js +20 -22
- package/dist/monolith/plumbing/terminal/ProcessRegistry.js.map +1 -1
- package/dist/monolith/plumbing/terminal/TerminalService.js +127 -136
- package/dist/monolith/plumbing/terminal/TerminalService.js.map +1 -1
- package/dist/monolith/plumbing/utils/EnvironmentUtils.js +3 -23
- package/dist/monolith/plumbing/utils/EnvironmentUtils.js.map +1 -1
- package/dist/monolith/plumbing/utils/JsonUtils.js +252 -311
- package/dist/monolith/plumbing/utils/JsonUtils.js.map +1 -1
- package/dist/monolith/plumbing/utils/MutexUtils.js.map +1 -1
- package/dist/monolith/plumbing/utils/PlumbingCore.js +549 -0
- package/dist/monolith/plumbing/utils/PlumbingCore.js.map +1 -0
- package/dist/monolith/plumbing/utils/PrefixTree.js +61 -114
- package/dist/monolith/plumbing/utils/PrefixTree.js.map +1 -1
- package/dist/monolith/plumbing/utils/StreamTagDetector.js +89 -127
- package/dist/monolith/plumbing/utils/StreamTagDetector.js.map +1 -1
- package/dist/monolith/plumbing/utils/StringUtils.js +87 -89
- package/dist/monolith/plumbing/utils/StringUtils.js.map +1 -1
- package/dist/monolith/runtime/MarieRuntime.js +76 -417
- package/dist/monolith/runtime/MarieRuntime.js.map +1 -1
- package/dist/monolith/runtime/RuntimeAdapterBase.js +1 -1
- package/dist/monolith/runtime/RuntimeAdapterBase.js.map +1 -1
- package/dist/monolith/runtime/providerFactory.js +1 -7
- package/dist/monolith/runtime/providerFactory.js.map +1 -1
- package/dist/monolith/services/HealthService.js +29 -32
- package/dist/monolith/services/HealthService.js.map +1 -1
- package/dist/monolith/services/JoyAutomationService.js +58 -95
- package/dist/monolith/services/JoyAutomationService.js.map +1 -1
- package/dist/monolith/services/MarieAutomationService.js +59 -0
- package/dist/monolith/services/MarieAutomationService.js.map +1 -0
- package/dist/monolith/services/MarieGhostService.js +46 -161
- package/dist/monolith/services/MarieGhostService.js.map +1 -1
- package/dist/monolith/services/MarieServices.js +102 -0
- package/dist/monolith/services/MarieServices.js.map +1 -0
- package/dist/monolith/services/MarieTypes.js +2 -0
- package/dist/monolith/services/MarieTypes.js.map +1 -0
- package/dist/monolith/services/UpdateService.js +47 -49
- package/dist/monolith/services/UpdateService.js.map +1 -1
- package/dist/prompts.js +11 -5
- package/dist/prompts.js.map +1 -1
- package/dist/test_prefix_tree.js +9 -9
- package/dist/test_prefix_tree.js.map +1 -1
- package/package.json +18 -88
- package/run_test.js +5 -0
- package/.marie_visual_verify_1771225696548/progress_bar_check.txt +0 -1
- package/dist/extension.cjs +0 -635
- package/dist/extension.js +0 -473
- package/dist/extension.js.map +0 -1
- package/dist/monolith/adapters/VscodeMarieAdapter.js +0 -81
- package/dist/monolith/adapters/VscodeMarieAdapter.js.map +0 -1
- package/dist/monolith/domain/joy/JoyTools.js +0 -535
- package/dist/monolith/domain/joy/JoyTools.js.map +0 -1
- package/dist/monolith/infrastructure/ai/agents/MarieYOLO.js +0 -207
- package/dist/monolith/infrastructure/ai/agents/MarieYOLO.js.map +0 -1
- package/dist/monolith/infrastructure/ai/core/GhostPort.js +0 -2
- package/dist/monolith/infrastructure/ai/core/GhostPort.js.map +0 -1
- package/dist/monolith/infrastructure/ai/core/MarieYOLOTypes.js +0 -2
- package/dist/monolith/infrastructure/ai/core/MarieYOLOTypes.js.map +0 -1
- package/dist/monolith/infrastructure/ai/core/VscodeFileSystemPort.js +0 -33
- package/dist/monolith/infrastructure/ai/core/VscodeFileSystemPort.js.map +0 -1
- package/dist/monolith/infrastructure/ai/providers/AnthropicProvider.js +0 -148
- package/dist/monolith/infrastructure/ai/providers/AnthropicProvider.js.map +0 -1
- package/dist/monolith/infrastructure/ai/providers/CerebrasProvider.js +0 -208
- package/dist/monolith/infrastructure/ai/providers/CerebrasProvider.js.map +0 -1
- package/dist/monolith/plumbing/ui/DecorationService.js +0 -54
- package/dist/monolith/plumbing/ui/DecorationService.js.map +0 -1
- package/dist/monolith/services/JoyLogService.js +0 -48
- package/dist/monolith/services/JoyLogService.js.map +0 -1
- package/dist/monolith/services/JoyService.js +0 -209
- package/dist/monolith/services/JoyService.js.map +0 -1
- package/dist/monolith/services/MarieSCMProvider.js +0 -41
- package/dist/monolith/services/MarieSCMProvider.js.map +0 -1
- package/dist/test_agent_stream_control_plane.js +0 -170
- package/dist/test_agent_stream_control_plane.js.map +0 -1
- package/dist/test_strategy_integration.js +0 -114
- package/dist/test_strategy_integration.js.map +0 -1
- package/dist/test_streaming_fragility.js +0 -191
- package/dist/test_streaming_fragility.js.map +0 -1
- package/dist/webview-ui/App.js +0 -16
- package/dist/webview-ui/App.js.map +0 -1
- package/dist/webview-ui/Providers.js +0 -6
- package/dist/webview-ui/Providers.js.map +0 -1
- package/dist/webview-ui/components/ApprovalPanel.js +0 -8
- package/dist/webview-ui/components/ApprovalPanel.js.map +0 -1
- package/dist/webview-ui/components/ChatPanel.js +0 -19
- package/dist/webview-ui/components/ChatPanel.js.map +0 -1
- package/dist/webview-ui/components/Composer.js +0 -19
- package/dist/webview-ui/components/Composer.js.map +0 -1
- package/dist/webview-ui/components/HeaderBar.js +0 -5
- package/dist/webview-ui/components/HeaderBar.js.map +0 -1
- package/dist/webview-ui/components/SessionList.js +0 -14
- package/dist/webview-ui/components/SessionList.js.map +0 -1
- package/dist/webview-ui/context/WebviewStateContext.js +0 -146
- package/dist/webview-ui/context/WebviewStateContext.js.map +0 -1
- package/dist/webview-ui/main.css +0 -1
- package/dist/webview-ui/main.js +0 -108
- package/dist/webview-ui/main.js.map +0 -1
- package/dist/webview-ui/types.js +0 -2
- package/dist/webview-ui/types.js.map +0 -1
- package/dist/webview-ui/vscode.js +0 -4
- package/dist/webview-ui/vscode.js.map +0 -1
- package/lint_output.txt +0 -705
- package/lint_output_v2.txt +0 -711
- 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":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAGzB,iGAAiG;AAEjG,IAAI,eAAe,GAAmC,IAAI,CAAC;AAC3D,IAAI,gBAAgB,GAAW,CAAC,CAAC;AAEjC,MAAM,UAAU,YAAY;IACxB,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QACpE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,eAAe,GAAG,EAAE,CAAC;YACrB,gBAAgB,GAAG,CAAC,CAAC;YACrB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;QAEnC,IAAI,eAAe,IAAI,YAAY,KAAK,gBAAgB,EAAE,CAAC;YACvD,OAAO,eAAe,CAAC;QAC3B,CAAC;QAED,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACzE,gBAAgB,GAAG,YAAY,CAAC;QAChC,OAAO,eAAe,IAAI,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AAC1B,CAAC;AAED,IAAI,mBAAmB,GAAoB,IAAI,CAAC;AAEhD,MAAM,UAAU,SAAS;IACrB,OAAO,mBAAmB,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,mBAAmB;IAC/B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,gBAA0B,EAAE,MAAM,CAAC,MAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7J,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,aAAa,KAAwB,OAAO,YAAY,CAAC,CAAC,CAAC;AAC3E,MAAM,UAAU,QAAQ,KAAa,OAAQ,YAAY,EAAE,CAAC,KAAgB,IAAI,6BAA6B,CAAC,CAAC,CAAC;AAChH,MAAM,UAAU,UAAU,KAAa,OAAQ,YAAY,EAAE,CAAC,SAAoB,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC;AACnG,MAAM,UAAU,aAAa,KAAa,OAAQ,YAAY,EAAE,CAAC,YAAuB,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC;AACzG,MAAM,UAAU,eAAe,KAAwC,OAAQ,YAAY,EAAE,CAAC,YAAoB,IAAI,MAAM,CAAC,CAAC,CAAC;AAC/H,MAAM,UAAU,mBAAmB,KAAa,OAAO,MAAM,CAAC,CAAC,CAAC;AAChE,MAAM,UAAU,gBAAgB,KAAa,OAAO,IAAI,CAAC,CAAC,CAAC;AAC3D,MAAM,UAAU,qBAAqB,KAAa,OAAO,EAAE,CAAC,CAAC,CAAC;AAE9D,MAAM,UAAU,gBAAgB;IAC5B,IAAI,mBAAmB;QAAE,OAAO,mBAAmB,CAAC;IACpD,mBAAmB,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACpH,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,qBAAqB;IACjC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,OAAO,OAAO,MAAM,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,GAAG,CAAC;AAC1I,CAAC;AAED,MAAM,UAAU,oBAAoB,KAAa,OAAO,MAAM,CAAC,CAAC,CAAC;AACjE,MAAM,UAAU,qBAAqB,KAAa,OAAO,MAAM,CAAC,CAAC,CAAC;AAClE,MAAM,UAAU,oBAAoB,KAAa,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5D,MAAM,UAAU,sBAAsB,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;AAElE,MAAM,UAAU,eAAe,KAAe,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AACvH,MAAM,UAAU,yBAAyB,KAAa,OAAO,GAAG,CAAC,CAAC,CAAC;AACnE,MAAM,UAAU,aAAa,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;AAE1D,MAAM,UAAU,qBAAqB,KAAa,OAAO,KAAK,CAAC,CAAC,CAAC;AACjE,MAAM,UAAU,uBAAuB,KAAa,OAAO,EAAE,CAAC,CAAC,CAAC;AAChE,MAAM,UAAU,0BAA0B,KAAa,OAAO,IAAI,CAAC,CAAC,CAAC;AACrE,MAAM,UAAU,2BAA2B,KAAa,OAAO,EAAE,CAAC,CAAC,CAAC;AACpE,MAAM,UAAU,4BAA4B,KAAa,OAAO,MAAM,CAAC,CAAC,CAAC"}
|
|
@@ -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
|
-
*
|
|
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}
|
|
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
|
-
//
|
|
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":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAS9D;;;;;;GAMG;AACH,MAAM,OAAO,cAAc;IA0BL;IAzBZ,cAAc,GAAW,GAAG,CAAC;IAC7B,oBAAoB,GAAW,CAAC,CAAC;IAEzC,0CAA0C;IAClC,MAAM,CAAU,cAAc,GAAa;QACjD,+CAA+C;QAC/C,iDAAiD;QACjD,oDAAoD;QACpD,wDAAwD;QACxD,uDAAuD;QACvD,oDAAoD;QACpD,uDAAuD;QACvD,sDAAsD;QACtD,wDAAwD;QACxD,oDAAoD;KACrD,CAAC;IAEM,MAAM,CAAU,WAAW,GAAa;QAC9C,iDAAiD;QACjD,2CAA2C;QAC3C,gCAAgC;QAChC,qDAAqD;QACrD,6CAA6C;KAC9C,CAAC;IAEF,YAAoB,QAAoB;QAApB,aAAQ,GAAR,QAAQ,CAAY;IAAG,CAAC;IAE5C;;;OAGG;IACI,KAAK,CAAC,QAAQ,CACnB,QAAe,EACf,KAAqB,EACrB,OAIC;QAED,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,aAAa,CAAC,mBAAmB,EAAE,CAAC;QACxE,MAAM,UAAU,GACd,OAAO,EAAE,UAAU,IAAI,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAE/D,iCAAiC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEjE,8BAA8B;QAC9B,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAClC,UAAU,EACV,OAAO,EACP,UAAU,EACV,KAAK,CAAC,eAAe,GAAG,CAAC,EACzB,KAAK,CAAC,aAAa,CACpB,CAAC;QAEF,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAChE,IACE,mBAAmB;YACnB,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,MAAM,CAAC,EAC/C,CAAC;YACD,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,GAAG,CAAC,CAAC;QAC/C,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;QACjC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YAClD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,oCAAoC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACrE,MAAM,SAAS,GACb,KAAK,CAAC,aAAa,IAAI,CAAC;YACtB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC;YACpD,CAAC,CAAC,SAAS,CAAC;QAEhB,4CAA4C;QAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;aAClD,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;aAC1B,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;aACrC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEf,MAAM,qBAAqB,GAAG,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;QACxD,MAAM,aAAa,GAA2B,qBAAqB;YACjE,CAAC,CAAC,wBAAwB;YAC1B,CAAC,CAAC,QAAQ,CAAC;QAEb,MAAM,UAAU,GAAG,oBAAoB,QAAQ,YAAY,OAAO,eAAe,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,aAAa,
|
|
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.
|
|
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
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
43
|
-
//
|
|
44
|
-
await this.
|
|
36
|
+
else {
|
|
37
|
+
// 3. Fallback to Disk/Migration if NOORMME is empty
|
|
38
|
+
await this.loadFromLegacyDisk();
|
|
45
39
|
}
|
|
46
40
|
}
|
|
47
|
-
async
|
|
48
|
-
|
|
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
|
-
|
|
57
|
-
|
|
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
|
|
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
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
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
|
-
|
|
77
|
+
const fullAnchor = {
|
|
92
78
|
...anchor,
|
|
93
79
|
timestamp: Date.now(),
|
|
94
|
-
}
|
|
95
|
-
this.
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
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
|
-
|
|
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,
|
|
1
|
+
{"version":3,"file":"ContextArchiveService.js","sourceRoot":"","sources":["../../../../../src/monolith/infrastructure/ai/context/ContextArchiveService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAU/E;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IACxB,MAAM,CAAC,QAAQ,CAAwB;IACvC,OAAO,GAAiC,IAAI,GAAG,EAAE,CAAC;IAClD,KAAK,CAAgB;IAE7B;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACvC,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,gBAAgB;QAC5B,+BAA+B;QAC/B,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;QAEjC,oCAAoC;QACpC,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAEzC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,kCAAkC,OAAO,CAAC,MAAM,+BAA+B,CAAC,CAAC;QAC/F,CAAC;aAAM,CAAC;YACN,oDAAoD;YACpD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,2EAA2E;QAC3E,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;IACxC,CAAC;IAEO,KAAK,CAAC,wBAAwB;QACpC,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;QAChC,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,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAE9B,kBAAkB;YAClB,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CACT,gDAAgD,OAAO,oBAAoB,CAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,yBAAyB;QAC3B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAEzC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAClD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,iDAAiD,OAAO,CAAC,MAAM,sBAAsB,CAAC,CAAC;IACrG,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,MAAM,CACjB,MAA0C;QAE1C,MAAM,IAAI,CAAC,KAAK,CAAC;QACjB,MAAM,UAAU,GAAG;YACjB,GAAG,MAAM;YACT,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAExC,kBAAkB;QAClB,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAEzC,MAAM,OAAO,GAAG,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACnF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QACtE,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,EAAE,CAAC,OAAO,CAAC,+BAA+B,OAAO,CAAC,KAAK,iBAAiB,OAAO,CAAC,OAAO,cAAc,OAAO,CAAC,IAAI,kBAAkB,OAAO,CAAC,SAAS,gBAAgB,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3L,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;IACH,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,EAAE,CAAC;YACZ,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;YAC7C,MAAM,EAAE,CAAC,OAAO,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
|