@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,91 @@
|
|
|
1
|
+
import { simpleGit } from "simple-git";
|
|
2
|
+
/**
|
|
3
|
+
* GitService - Singleton service for managing Git operations.
|
|
4
|
+
*/
|
|
5
|
+
export class GitService {
|
|
6
|
+
static instance = null;
|
|
7
|
+
git = null;
|
|
8
|
+
workingDir = "";
|
|
9
|
+
constructor() { }
|
|
10
|
+
static getInstance() {
|
|
11
|
+
if (!GitService.instance) {
|
|
12
|
+
GitService.instance = new GitService();
|
|
13
|
+
}
|
|
14
|
+
return GitService.instance;
|
|
15
|
+
}
|
|
16
|
+
initialize(workingDir) {
|
|
17
|
+
if (!this.git || this.workingDir !== workingDir) {
|
|
18
|
+
this.workingDir = workingDir;
|
|
19
|
+
this.git = simpleGit(workingDir);
|
|
20
|
+
}
|
|
21
|
+
return this.git;
|
|
22
|
+
}
|
|
23
|
+
async getStatus() {
|
|
24
|
+
if (!this.git)
|
|
25
|
+
return null;
|
|
26
|
+
try {
|
|
27
|
+
const status = await this.git.status();
|
|
28
|
+
const branch = await this.git.branch();
|
|
29
|
+
return {
|
|
30
|
+
branch: branch.current,
|
|
31
|
+
isClean: status.isClean(),
|
|
32
|
+
ahead: status.ahead,
|
|
33
|
+
behind: status.behind,
|
|
34
|
+
modified: status.modified,
|
|
35
|
+
staged: status.staged,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
async createCheckpoint(message) {
|
|
43
|
+
if (!this.git)
|
|
44
|
+
return null;
|
|
45
|
+
try {
|
|
46
|
+
const timestamp = new Date()
|
|
47
|
+
.toISOString()
|
|
48
|
+
.slice(0, 19)
|
|
49
|
+
.replace(/:/g, "-");
|
|
50
|
+
const commitMessage = message || `marie-checkpoint-${timestamp}`;
|
|
51
|
+
await this.git.add(".");
|
|
52
|
+
const result = await this.git.commit(commitMessage);
|
|
53
|
+
return result.commit;
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
console.error("Checkpoint failed:", error);
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async undoLastCommit() {
|
|
61
|
+
if (!this.git)
|
|
62
|
+
return { success: false, error: "Git not initialized" };
|
|
63
|
+
try {
|
|
64
|
+
const log = await this.git.log({ maxCount: 1 });
|
|
65
|
+
const lastCommit = log.latest;
|
|
66
|
+
if (!lastCommit?.message.startsWith("marie-checkpoint")) {
|
|
67
|
+
return {
|
|
68
|
+
success: false,
|
|
69
|
+
error: "Last commit is not a Marie checkpoint",
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
await this.git.reset(["--soft", "HEAD~1"]);
|
|
73
|
+
return { success: true, commit: lastCommit.hash };
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
return { success: false, error: String(error) };
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async hasUncommittedChanges() {
|
|
80
|
+
if (!this.git)
|
|
81
|
+
return false;
|
|
82
|
+
try {
|
|
83
|
+
const status = await this.git.status();
|
|
84
|
+
return !status.isClean();
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=GitService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitService.js","sourceRoot":"","sources":["../../../src/cli-new/services/GitService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { MarieCLI } from "../../monolith/adapters/CliMarieAdapter.js";
|
|
2
|
+
/**
|
|
3
|
+
* MarieService - Singleton service for managing the Marie CLI instance and session state.
|
|
4
|
+
*/
|
|
5
|
+
export class MarieService {
|
|
6
|
+
static instance = null;
|
|
7
|
+
marie = null;
|
|
8
|
+
workingDir = "";
|
|
9
|
+
constructor() { }
|
|
10
|
+
static getInstance() {
|
|
11
|
+
if (!MarieService.instance) {
|
|
12
|
+
MarieService.instance = new MarieService();
|
|
13
|
+
}
|
|
14
|
+
return MarieService.instance;
|
|
15
|
+
}
|
|
16
|
+
initialize(workingDir) {
|
|
17
|
+
if (!this.marie || this.workingDir !== workingDir) {
|
|
18
|
+
if (this.marie)
|
|
19
|
+
this.marie.dispose();
|
|
20
|
+
this.workingDir = workingDir;
|
|
21
|
+
this.marie = new MarieCLI(workingDir);
|
|
22
|
+
}
|
|
23
|
+
return this.marie;
|
|
24
|
+
}
|
|
25
|
+
getMarie() {
|
|
26
|
+
return this.marie;
|
|
27
|
+
}
|
|
28
|
+
async handleMessage(content, callbacks) {
|
|
29
|
+
if (!this.marie)
|
|
30
|
+
throw new Error("Marie is not initialized");
|
|
31
|
+
return await this.marie.handleMessage(content, callbacks);
|
|
32
|
+
}
|
|
33
|
+
stopGeneration() {
|
|
34
|
+
this.marie?.stopGeneration();
|
|
35
|
+
}
|
|
36
|
+
async createSession() {
|
|
37
|
+
return await this.marie?.createSession();
|
|
38
|
+
}
|
|
39
|
+
async loadSession(id) {
|
|
40
|
+
await this.marie?.loadSession(id);
|
|
41
|
+
}
|
|
42
|
+
async listSessions() {
|
|
43
|
+
return (await this.marie?.listSessions()) || [];
|
|
44
|
+
}
|
|
45
|
+
getCurrentSessionId() {
|
|
46
|
+
return this.marie?.getCurrentSessionId() || "";
|
|
47
|
+
}
|
|
48
|
+
async deleteSession(id) {
|
|
49
|
+
await this.marie?.deleteSession(id);
|
|
50
|
+
}
|
|
51
|
+
async renameSession(id, newTitle) {
|
|
52
|
+
await this.marie?.renameSession(id, newTitle);
|
|
53
|
+
}
|
|
54
|
+
async togglePinSession(id) {
|
|
55
|
+
await this.marie?.togglePinSession(id);
|
|
56
|
+
}
|
|
57
|
+
async clearCurrentSession() {
|
|
58
|
+
await this.marie?.clearCurrentSession();
|
|
59
|
+
}
|
|
60
|
+
updateSettings() {
|
|
61
|
+
this.marie?.updateSettings();
|
|
62
|
+
}
|
|
63
|
+
setMode(mode) {
|
|
64
|
+
this.marie?.setMode(mode);
|
|
65
|
+
}
|
|
66
|
+
getMode() {
|
|
67
|
+
return this.marie?.getMode() || "strategist";
|
|
68
|
+
}
|
|
69
|
+
getMessages() {
|
|
70
|
+
return this.marie?.getMessages() || [];
|
|
71
|
+
}
|
|
72
|
+
dispose() {
|
|
73
|
+
this.marie?.dispose();
|
|
74
|
+
this.marie = null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=MarieService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarieService.js","sourceRoot":"","sources":["../../../src/cli-new/services/MarieService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import http from "http";
|
|
2
|
+
import { parse } from "url";
|
|
3
|
+
/**
|
|
4
|
+
* Starts a temporary local server to handle the CLI-Web handshake.
|
|
5
|
+
* Features: Dynamic port scanning, State (nonce) verification, and Branded response.
|
|
6
|
+
*/
|
|
7
|
+
export function startAuthServer(preferredPort = 3333, expectedState, expectedChallenge, onPort) {
|
|
8
|
+
const MAX_PORT_ATTEMPTS = 10;
|
|
9
|
+
return new Promise((resolve, reject) => {
|
|
10
|
+
let currentPort = preferredPort;
|
|
11
|
+
let attempts = 0;
|
|
12
|
+
const createServer = (port) => {
|
|
13
|
+
const server = http.createServer((req, res) => {
|
|
14
|
+
const parsedUrl = parse(req.url || "", true);
|
|
15
|
+
// 1. Host Enforcement (Prevent DNS Rebinding / Cross-Site Handshakes)
|
|
16
|
+
const host = req.headers.host;
|
|
17
|
+
if (!host || (!host.startsWith("localhost:") && !host.startsWith("127.0.0.1:"))) {
|
|
18
|
+
res.writeHead(403, { "Content-Type": "text/plain" });
|
|
19
|
+
res.end("Forbidden: Handshake must be local.");
|
|
20
|
+
server.close();
|
|
21
|
+
reject(new Error(`Security Violation: Unauthorized Host header: ${host}`));
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
// Security Headers
|
|
25
|
+
res.setHeader("X-Content-Type-Options", "nosniff");
|
|
26
|
+
res.setHeader("Content-Security-Policy", "default-src 'self'; style-src 'unsafe-inline'");
|
|
27
|
+
if (parsedUrl.pathname === "/callback") {
|
|
28
|
+
const apiKey = parsedUrl.query.key;
|
|
29
|
+
const state = parsedUrl.query.state;
|
|
30
|
+
const challenge = parsedUrl.query.challenge;
|
|
31
|
+
// 2. Validate State (Nonce)
|
|
32
|
+
if (state !== expectedState) {
|
|
33
|
+
res.writeHead(403, { "Content-Type": "text/html" });
|
|
34
|
+
res.end(`
|
|
35
|
+
<html>
|
|
36
|
+
<body style="font-family: sans-serif; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100vh; background: #020617; color: #f43f5e;">
|
|
37
|
+
<h1>⚠️ Security Alert</h1>
|
|
38
|
+
<p>State mismatch detected. Authentication rejected.</p>
|
|
39
|
+
</body>
|
|
40
|
+
</html>
|
|
41
|
+
`);
|
|
42
|
+
server.close();
|
|
43
|
+
reject(new Error("Security Error: State mismatch."));
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
// 3. Challenge-Response Verification (PKCE-style)
|
|
47
|
+
if (challenge !== expectedChallenge) {
|
|
48
|
+
res.writeHead(403, { "Content-Type": "text/html" });
|
|
49
|
+
res.end(`
|
|
50
|
+
<html>
|
|
51
|
+
<body style="font-family: sans-serif; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100vh; background: #020617; color: #f43f5e;">
|
|
52
|
+
<h1>⚠️ Security Alert</h1>
|
|
53
|
+
<p>Handshake challenge failed. This request origin is untrustworthy.</p>
|
|
54
|
+
</body>
|
|
55
|
+
</html>
|
|
56
|
+
`);
|
|
57
|
+
server.close();
|
|
58
|
+
reject(new Error("Security Error: Handshake challenge mismatch."));
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (typeof apiKey === "string" && apiKey.length >= 10) {
|
|
62
|
+
// 4. Premium Branded Success Page
|
|
63
|
+
res.writeHead(200, { "Content-Type": "text/html" });
|
|
64
|
+
res.end(`
|
|
65
|
+
<!DOCTYPE html>
|
|
66
|
+
<html>
|
|
67
|
+
<head>
|
|
68
|
+
<title>Marie Authorized</title>
|
|
69
|
+
<style>
|
|
70
|
+
body { font-family: -apple-system, system-ui, sans-serif; background: #020617; color: #f8fafc; display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100vh; margin: 0; }
|
|
71
|
+
.card { background: rgba(30, 41, 59, 0.5); border: 1px solid #334155; padding: 3rem; border-radius: 1.5rem; text-align: center; backdrop-filter: blur(12px); box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5); }
|
|
72
|
+
.icon { font-size: 3rem; margin-bottom: 1.5rem; color: #38bdf8; }
|
|
73
|
+
h1 { color: #f8fafc; margin: 0 0 0.5rem 0; font-size: 1.75rem; font-weight: 700; }
|
|
74
|
+
p { color: #94a3b8; font-size: 1rem; margin-bottom: 1rem; }
|
|
75
|
+
.badge { display: inline-block; padding: 0.25rem 0.75rem; background: #064e3b; color: #34d399; border-radius: 9999px; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; }
|
|
76
|
+
</style>
|
|
77
|
+
</head>
|
|
78
|
+
<body>
|
|
79
|
+
<div class="card">
|
|
80
|
+
<div class="icon">✨</div>
|
|
81
|
+
<h1>Neural Link Secured</h1>
|
|
82
|
+
<p>The CLI has been authorized. Return to your terminal.</p>
|
|
83
|
+
<div class="badge">Connection Active</div>
|
|
84
|
+
</div>
|
|
85
|
+
<script>setTimeout(() => window.close(), 3000);</script>
|
|
86
|
+
</body>
|
|
87
|
+
</html>
|
|
88
|
+
`);
|
|
89
|
+
server.close();
|
|
90
|
+
resolve({ apiKey, port });
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
res.writeHead(400);
|
|
94
|
+
res.end("Invalid API Key.");
|
|
95
|
+
server.close();
|
|
96
|
+
reject(new Error("Malformed API key received."));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
res.writeHead(404);
|
|
101
|
+
res.end();
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
server.on("error", (err) => {
|
|
105
|
+
if (err.code === "EADDRINUSE" && attempts < MAX_PORT_ATTEMPTS) {
|
|
106
|
+
attempts++;
|
|
107
|
+
currentPort++;
|
|
108
|
+
createServer(currentPort);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
server.close();
|
|
112
|
+
reject(err);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
server.listen(port, "127.0.0.1", () => {
|
|
116
|
+
onPort(port);
|
|
117
|
+
setTimeout(() => {
|
|
118
|
+
if (server.listening) {
|
|
119
|
+
server.close();
|
|
120
|
+
reject(new Error("Authentication timed out."));
|
|
121
|
+
}
|
|
122
|
+
}, 5 * 60 * 1000);
|
|
123
|
+
});
|
|
124
|
+
};
|
|
125
|
+
createServer(currentPort);
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=auth-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-server.js","sourceRoot":"","sources":["../../../src/cli-new/services/auth-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,17 +14,17 @@ export const marieTheme = {
|
|
|
14
14
|
},
|
|
15
15
|
icons: {
|
|
16
16
|
assistant: "🌸",
|
|
17
|
-
user: "
|
|
17
|
+
user: "👤",
|
|
18
18
|
tool: "⚡",
|
|
19
19
|
file: "📄",
|
|
20
20
|
folder: "📁",
|
|
21
21
|
git: "⎇",
|
|
22
|
-
spinner: "
|
|
23
|
-
success: "
|
|
24
|
-
warning: "
|
|
25
|
-
error: "
|
|
26
|
-
info: "
|
|
27
|
-
checkpoint: "
|
|
22
|
+
spinner: "🫧",
|
|
23
|
+
success: "✨",
|
|
24
|
+
warning: "⚠️",
|
|
25
|
+
error: "❌",
|
|
26
|
+
info: "ℹ️",
|
|
27
|
+
checkpoint: "📜",
|
|
28
28
|
},
|
|
29
29
|
};
|
|
30
30
|
// Chalk color helpers
|
|
@@ -41,16 +41,16 @@ export const c = {
|
|
|
41
41
|
italic: chalk.italic,
|
|
42
42
|
};
|
|
43
43
|
export const toolIcons = {
|
|
44
|
-
read_file: "
|
|
45
|
-
write_file: "
|
|
46
|
-
delete_file: "
|
|
47
|
-
replace_in_file: "
|
|
48
|
-
list_dir: "
|
|
49
|
-
grep_search: "
|
|
50
|
-
run_command: "
|
|
51
|
-
get_folder_structure: "
|
|
52
|
-
get_git_context: "
|
|
53
|
-
perform_strategic_planning: "
|
|
44
|
+
read_file: "🔮",
|
|
45
|
+
write_file: "🖋️",
|
|
46
|
+
delete_file: "💥",
|
|
47
|
+
replace_in_file: "🧬",
|
|
48
|
+
list_dir: "🗺️",
|
|
49
|
+
grep_search: "🔦",
|
|
50
|
+
run_command: "🚀",
|
|
51
|
+
get_folder_structure: "🏗️",
|
|
52
|
+
get_git_context: "🌿",
|
|
53
|
+
perform_strategic_planning: "🧠",
|
|
54
54
|
};
|
|
55
55
|
export function getToolIcon(toolName) {
|
|
56
56
|
return toolIcons[toolName] || marieTheme.icons.tool;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/cli-new/styles/theme.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,UAAU,GAAU;IAC/B,MAAM,EAAE;QACN,OAAO,EAAE,SAAS,EAAE,aAAa;QACjC,SAAS,EAAE,SAAS,EAAE,YAAY;QAClC,OAAO,EAAE,SAAS,EAAE,aAAa;QACjC,OAAO,EAAE,SAAS,EAAE,aAAa;QACjC,KAAK,EAAE,SAAS,EAAE,WAAW;QAC7B,IAAI,EAAE,SAAS,EAAE,aAAa;QAC9B,KAAK,EAAE,SAAS,EAAE,OAAO;QACzB,UAAU,EAAE,SAAS,EAAE,kBAAkB;QACzC,UAAU,EAAE,SAAS,EAAE,aAAa;QACpC,MAAM,EAAE,SAAS,EAAE,cAAc;KAClC;IACD,KAAK,EAAE;QACL,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/cli-new/styles/theme.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,UAAU,GAAU;IAC/B,MAAM,EAAE;QACN,OAAO,EAAE,SAAS,EAAE,aAAa;QACjC,SAAS,EAAE,SAAS,EAAE,YAAY;QAClC,OAAO,EAAE,SAAS,EAAE,aAAa;QACjC,OAAO,EAAE,SAAS,EAAE,aAAa;QACjC,KAAK,EAAE,SAAS,EAAE,WAAW;QAC7B,IAAI,EAAE,SAAS,EAAE,aAAa;QAC9B,KAAK,EAAE,SAAS,EAAE,OAAO;QACzB,UAAU,EAAE,SAAS,EAAE,kBAAkB;QACzC,UAAU,EAAE,SAAS,EAAE,aAAa;QACpC,MAAM,EAAE,SAAS,EAAE,cAAc;KAClC;IACD,KAAK,EAAE;QACL,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,IAAI;QACZ,GAAG,EAAE,GAAG;QACR,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,IAAI;KACjB;CACF,CAAC;AAEF,sBAAsB;AACtB,MAAM,CAAC,MAAM,CAAC,GAAG;IACf,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7C,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;IACjD,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7C,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7C,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;IACzC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;IACvC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;IACzC,GAAG,EAAE,KAAK,CAAC,GAAG;IACd,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,MAAM,EAAE,KAAK,CAAC,MAAM;CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAA2B;IAC/C,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,IAAI;IACrB,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,oBAAoB,EAAE,KAAK;IAC3B,eAAe,EAAE,IAAI;IACrB,0BAA0B,EAAE,IAAI;CACjC,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAU;IACvC,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,GAAG,EAAE,IAAI,CAAC;IAChC,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,SAAiB;IACrD,IAAI,GAAG,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,GAAG,CAAC;IACxC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { readFileSync } from "fs";
|
|
2
|
+
import { fileURLToPath } from "url";
|
|
3
|
+
import { dirname, join } from "path";
|
|
4
|
+
/**
|
|
5
|
+
* Gets the version from package.json dynamically.
|
|
6
|
+
* Handles both source (src) and distribution (dist) paths.
|
|
7
|
+
*/
|
|
8
|
+
export function getVersion() {
|
|
9
|
+
try {
|
|
10
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
11
|
+
const __dirname = dirname(__filename);
|
|
12
|
+
// package.json is at the root, which is 3 levels up from this file
|
|
13
|
+
// (src/cli-new/utils/version.ts or dist/cli-new/utils/version.js)
|
|
14
|
+
const packageJsonPath = join(__dirname, "..", "..", "..", "package.json");
|
|
15
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf8"));
|
|
16
|
+
return packageJson.version || "0.0.0";
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
console.error("[VersionUtil] Failed to read version from package.json:", error);
|
|
20
|
+
return "0.0.0";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export const VERSION = getVersion();
|
|
24
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/cli-new/utils/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAErC;;;GAGG;AACH,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAEtC,mEAAmE;QACnE,kEAAkE;QAClE,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC1E,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;QACtE,OAAO,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,yDAAyD,EACzD,KAAK,CACN,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC"}
|
|
@@ -3,21 +3,16 @@ import { Storage } from "../cli/storage.js";
|
|
|
3
3
|
import { JoyServiceCLI } from "../cli/services/JoyServiceCLI.js";
|
|
4
4
|
import { MarieRuntime } from "../runtime/MarieRuntime.js";
|
|
5
5
|
import { JoyAutomationServiceCLI } from "../cli/services/JoyAutomationServiceCLI.js";
|
|
6
|
-
import {
|
|
6
|
+
import { createAIProvider } from "../infrastructure/ai/providers/AIProvider.js";
|
|
7
7
|
import { RuntimeAdapterBase } from "../runtime/RuntimeAdapterBase.js";
|
|
8
8
|
import { CliFileSystemPort } from "../cli/CliFileSystemPort.js";
|
|
9
|
+
import * as ConfigService from "../infrastructure/CoreInfrastructure.js";
|
|
9
10
|
class CliConfigPort {
|
|
10
11
|
getAiProvider() {
|
|
11
|
-
|
|
12
|
-
return config.aiProvider;
|
|
12
|
+
return ConfigService.getAiProvider();
|
|
13
13
|
}
|
|
14
14
|
getApiKey(provider) {
|
|
15
|
-
|
|
16
|
-
if (provider === "openrouter")
|
|
17
|
-
return config.openrouterApiKey || "";
|
|
18
|
-
if (provider === "cerebras")
|
|
19
|
-
return config.cerebrasApiKey || "";
|
|
20
|
-
return config.apiKey || "";
|
|
15
|
+
return ConfigService.getApiKey() || "";
|
|
21
16
|
}
|
|
22
17
|
}
|
|
23
18
|
class CliSessionStorePort {
|
|
@@ -25,25 +20,25 @@ class CliSessionStorePort {
|
|
|
25
20
|
return Storage.getSessions();
|
|
26
21
|
}
|
|
27
22
|
async saveSessions(sessions) {
|
|
28
|
-
Storage.saveSessions(sessions);
|
|
23
|
+
await Storage.saveSessions(sessions);
|
|
29
24
|
}
|
|
30
25
|
async getSessionMetadata() {
|
|
31
|
-
return Storage.getSessionMetadata();
|
|
26
|
+
return await Storage.getSessionMetadata();
|
|
32
27
|
}
|
|
33
28
|
async saveSessionMetadata(metadata) {
|
|
34
|
-
Storage.saveSessionMetadata(metadata);
|
|
29
|
+
await Storage.saveSessionMetadata(metadata);
|
|
35
30
|
}
|
|
36
31
|
async getCurrentSessionId() {
|
|
37
|
-
return Storage.getCurrentSessionId();
|
|
32
|
+
return await Storage.getCurrentSessionId();
|
|
38
33
|
}
|
|
39
34
|
async setCurrentSessionId(id) {
|
|
40
|
-
Storage.setCurrentSessionId(id);
|
|
35
|
+
await Storage.setCurrentSessionId(id);
|
|
41
36
|
}
|
|
42
37
|
async getLastTelemetry() {
|
|
43
|
-
return Storage.getLastTelemetry();
|
|
38
|
+
return await Storage.getLastTelemetry();
|
|
44
39
|
}
|
|
45
40
|
async setLastTelemetry(telemetry) {
|
|
46
|
-
Storage.setLastTelemetry(telemetry);
|
|
41
|
+
await Storage.setLastTelemetry(telemetry);
|
|
47
42
|
}
|
|
48
43
|
}
|
|
49
44
|
export class MarieCLI extends RuntimeAdapterBase {
|
|
@@ -55,8 +50,8 @@ export class MarieCLI extends RuntimeAdapterBase {
|
|
|
55
50
|
const runtime = new MarieRuntime({
|
|
56
51
|
config: new CliConfigPort(),
|
|
57
52
|
sessionStore: new CliSessionStorePort(),
|
|
58
|
-
toolRegistrar: (
|
|
59
|
-
providerFactory:
|
|
53
|
+
toolRegistrar: (automation) => registerMarieToolsCLI(automation, workingDir, fs),
|
|
54
|
+
providerFactory: createAIProvider,
|
|
60
55
|
automationService,
|
|
61
56
|
onProgressEvent: (event) => joyService.emitRunProgress(event),
|
|
62
57
|
shouldBypassApprovals: () => true,
|
|
@@ -65,6 +60,12 @@ export class MarieCLI extends RuntimeAdapterBase {
|
|
|
65
60
|
super(runtime);
|
|
66
61
|
this.joyService = joyService;
|
|
67
62
|
}
|
|
63
|
+
setMode(mode) {
|
|
64
|
+
this.runtime.setMode(mode);
|
|
65
|
+
}
|
|
66
|
+
getMode() {
|
|
67
|
+
return this.runtime.getMode();
|
|
68
|
+
}
|
|
68
69
|
dispose() {
|
|
69
70
|
super.dispose();
|
|
70
71
|
this.joyService.dispose();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CliMarieAdapter.js","sourceRoot":"","sources":["../../../src/monolith/adapters/CliMarieAdapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAmB,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"CliMarieAdapter.js","sourceRoot":"","sources":["../../../src/monolith/adapters/CliMarieAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,9 +16,14 @@ export class CliFileSystemPort {
|
|
|
16
16
|
? filePath
|
|
17
17
|
: path.resolve(this.workingDir, filePath);
|
|
18
18
|
}
|
|
19
|
-
async readFile(filePath,
|
|
19
|
+
async readFile(filePath, start, end, signal) {
|
|
20
20
|
try {
|
|
21
|
-
|
|
21
|
+
const content = await fs.readFile(this.resolve(filePath), "utf-8");
|
|
22
|
+
if (start !== undefined && end !== undefined) {
|
|
23
|
+
const lines = content.split("\n");
|
|
24
|
+
return lines.slice(start - 1, end).join("\n");
|
|
25
|
+
}
|
|
26
|
+
return content;
|
|
22
27
|
}
|
|
23
28
|
catch (error) {
|
|
24
29
|
throw new Error(`Failed to read file ${filePath}: ${error.message}`);
|
|
@@ -113,7 +118,7 @@ export class CliFileSystemPort {
|
|
|
113
118
|
if (signal?.aborted)
|
|
114
119
|
throw new Error("Aborted");
|
|
115
120
|
try {
|
|
116
|
-
const content = await this.readFile(filePath, signal);
|
|
121
|
+
const content = await this.readFile(filePath, undefined, undefined, signal);
|
|
117
122
|
this.backups.set(filePath, content);
|
|
118
123
|
}
|
|
119
124
|
catch {
|
|
@@ -152,5 +157,14 @@ export class CliFileSystemPort {
|
|
|
152
157
|
clearBackups() {
|
|
153
158
|
this.backups.clear();
|
|
154
159
|
}
|
|
160
|
+
async listFiles(dirPath) {
|
|
161
|
+
try {
|
|
162
|
+
const entries = await fs.readdir(this.resolve(dirPath), { withFileTypes: true });
|
|
163
|
+
return entries.map((e) => e.name);
|
|
164
|
+
}
|
|
165
|
+
catch (e) {
|
|
166
|
+
throw new Error(`Failed to list directory ${dirPath}: ${e.message}`);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
155
169
|
}
|
|
156
170
|
//# sourceMappingURL=CliFileSystemPort.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CliFileSystemPort.js","sourceRoot":"","sources":["../../../src/monolith/cli/CliFileSystemPort.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAIR;IAHJ,IAAI,GAAG,KAAK,CAAC;IACrB,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE5C,YAAoB,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;
|
|
1
|
+
{"version":3,"file":"CliFileSystemPort.js","sourceRoot":"","sources":["../../../src/monolith/cli/CliFileSystemPort.ts"],"names":[],"mappings":"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"}
|