repoburg 1.2.12 → 1.3.0
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/CODEMAP.md +5 -6
- package/backend/.env +4 -0
- package/backend/dist/src/ai-actions/ai-action-batch.service.d.ts +10 -3
- package/backend/dist/src/ai-actions/ai-action-batch.service.js +134 -12
- package/backend/dist/src/ai-actions/ai-action-batch.service.js.map +1 -1
- package/backend/dist/src/ai-actions/ai-actions.module.js +2 -7
- package/backend/dist/src/ai-actions/ai-actions.module.js.map +1 -1
- package/backend/dist/src/ai-actions/ai-actions.service.d.ts +16 -3
- package/backend/dist/src/ai-actions/ai-actions.service.js +75 -11
- package/backend/dist/src/ai-actions/ai-actions.service.js.map +1 -1
- package/backend/dist/src/app.module.js +0 -4
- package/backend/dist/src/app.module.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/action-handler.interface.d.ts +7 -0
- package/backend/dist/src/llm-orchestration/action-handlers/action-handler.interface.js +3 -0
- package/backend/dist/src/llm-orchestration/action-handlers/action-handler.interface.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/create-file.handler.d.ts +11 -0
- package/backend/dist/src/llm-orchestration/action-handlers/create-file.handler.js +65 -0
- package/backend/dist/src/llm-orchestration/action-handlers/create-file.handler.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/delete-file.handler.d.ts +12 -0
- package/backend/dist/src/llm-orchestration/action-handlers/delete-file.handler.js +85 -0
- package/backend/dist/src/llm-orchestration/action-handlers/delete-file.handler.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/create-file.args.dto.d.ts +4 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/create-file.args.dto.js +29 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/create-file.args.dto.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/delete-file.args.dto.d.ts +3 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/delete-file.args.dto.js +22 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/delete-file.args.dto.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/edit-file.args.dto.d.ts +4 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/edit-file.args.dto.js +29 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/edit-file.args.dto.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/final.args.dto.d.ts +3 -0
- package/backend/dist/src/{llm-response-parser/llm-response-parser.module.js → llm-orchestration/action-handlers/dto/final.args.dto.js} +14 -13
- package/backend/dist/src/llm-orchestration/action-handlers/dto/final.args.dto.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/new-session.args.dto.d.ts +3 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/new-session.args.dto.js +22 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/new-session.args.dto.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/request-context.args.dto.d.ts +11 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/request-context.args.dto.js +50 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/request-context.args.dto.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/run-command.args.dto.d.ts +4 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/run-command.args.dto.js +27 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/run-command.args.dto.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/sanitizer.decorator.d.ts +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/sanitizer.decorator.js +15 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/sanitizer.decorator.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/use-mcp-tool.args.dto.d.ts +5 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/use-mcp-tool.args.dto.js +49 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/use-mcp-tool.args.dto.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/edit-file.handler.d.ts +12 -0
- package/backend/dist/src/llm-orchestration/action-handlers/edit-file.handler.js +78 -0
- package/backend/dist/src/llm-orchestration/action-handlers/edit-file.handler.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/final.handler.d.ts +8 -0
- package/backend/dist/src/llm-orchestration/action-handlers/final.handler.js +40 -0
- package/backend/dist/src/llm-orchestration/action-handlers/final.handler.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/new-session.handler.d.ts +8 -0
- package/backend/dist/src/llm-orchestration/action-handlers/new-session.handler.js +45 -0
- package/backend/dist/src/llm-orchestration/action-handlers/new-session.handler.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/request-context.handler.d.ts +8 -0
- package/backend/dist/src/llm-orchestration/action-handlers/request-context.handler.js +49 -0
- package/backend/dist/src/llm-orchestration/action-handlers/request-context.handler.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/run-command.handler.d.ts +10 -0
- package/backend/dist/src/llm-orchestration/action-handlers/run-command.handler.js +73 -0
- package/backend/dist/src/llm-orchestration/action-handlers/run-command.handler.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/use-mcp-tool.handler.d.ts +12 -0
- package/backend/dist/src/llm-orchestration/action-handlers/use-mcp-tool.handler.js +61 -0
- package/backend/dist/src/llm-orchestration/action-handlers/use-mcp-tool.handler.js.map +1 -0
- package/backend/dist/src/llm-orchestration/errors/handler-validation.error.d.ts +4 -0
- package/backend/dist/src/llm-orchestration/errors/handler-validation.error.js +12 -0
- package/backend/dist/src/llm-orchestration/errors/handler-validation.error.js.map +1 -0
- package/backend/dist/src/llm-orchestration/hooks/follow-up-post-execution.hook.d.ts +25 -0
- package/backend/dist/src/llm-orchestration/hooks/follow-up-post-execution.hook.js +144 -0
- package/backend/dist/src/llm-orchestration/hooks/follow-up-post-execution.hook.js.map +1 -0
- package/backend/dist/src/llm-orchestration/hooks/frontend-notification.hook.d.ts +10 -0
- package/backend/dist/src/llm-orchestration/hooks/frontend-notification.hook.js +38 -0
- package/backend/dist/src/llm-orchestration/hooks/frontend-notification.hook.js.map +1 -0
- package/backend/dist/src/llm-orchestration/hooks/post-execution-hook.interface.d.ts +5 -0
- package/backend/dist/src/llm-orchestration/hooks/post-execution-hook.interface.js +3 -0
- package/backend/dist/src/llm-orchestration/hooks/post-execution-hook.interface.js.map +1 -0
- package/backend/dist/src/llm-orchestration/hooks/yolo-mode-post-execution.hook.d.ts +12 -0
- package/backend/dist/src/llm-orchestration/hooks/yolo-mode-post-execution.hook.js +55 -0
- package/backend/dist/src/llm-orchestration/hooks/yolo-mode-post-execution.hook.js.map +1 -0
- package/backend/dist/src/llm-orchestration/llm-orchestration.interfaces.d.ts +52 -0
- package/backend/dist/src/llm-orchestration/llm-orchestration.interfaces.js +13 -0
- package/backend/dist/src/llm-orchestration/llm-orchestration.interfaces.js.map +1 -0
- package/backend/dist/src/llm-orchestration/llm-orchestration.module.d.ts +2 -0
- package/backend/dist/src/llm-orchestration/llm-orchestration.module.js +88 -0
- package/backend/dist/src/llm-orchestration/llm-orchestration.module.js.map +1 -0
- package/backend/dist/src/llm-orchestration/llm-turn-processor.service.d.ts +20 -0
- package/backend/dist/src/llm-orchestration/llm-turn-processor.service.js +156 -0
- package/backend/dist/src/llm-orchestration/llm-turn-processor.service.js.map +1 -0
- package/backend/dist/src/llm-orchestration/parser/llm-output-parser.service.d.ts +5 -0
- package/backend/dist/src/llm-orchestration/parser/llm-output-parser.service.js +105 -0
- package/backend/dist/src/llm-orchestration/parser/llm-output-parser.service.js.map +1 -0
- package/backend/dist/src/llm-orchestration/parser/parsing.constants.d.ts +7 -0
- package/backend/dist/src/llm-orchestration/parser/parsing.constants.js +11 -0
- package/backend/dist/src/llm-orchestration/parser/parsing.constants.js.map +1 -0
- package/backend/dist/src/llm-responses/llm-responses.module.js +2 -0
- package/backend/dist/src/llm-responses/llm-responses.module.js.map +1 -1
- package/backend/dist/src/llm-responses/llm-responses.service.d.ts +3 -6
- package/backend/dist/src/llm-responses/llm-responses.service.js +9 -112
- package/backend/dist/src/llm-responses/llm-responses.service.js.map +1 -1
- package/backend/dist/src/seeding/data/system-prompts/carryover-agent.d.ts +1 -1
- package/backend/dist/src/seeding/data/system-prompts/carryover-agent.js +8 -8
- package/backend/dist/src/seeding/data/system-prompts/default_master-agent.d.ts +1 -1
- package/backend/dist/src/seeding/data/system-prompts/default_master-agent.js +77 -87
- package/backend/dist/src/seeding/data/system-prompts/default_master-agent.js.map +1 -1
- package/backend/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/platform-cli.js +2 -1
- package/backend/dist/src/action-execution/action-execution.module.d.ts +0 -2
- package/backend/dist/src/action-execution/action-execution.module.js +0 -23
- package/backend/dist/src/action-execution/action-execution.module.js.map +0 -1
- package/backend/dist/src/action-execution/action-execution.service.d.ts +0 -19
- package/backend/dist/src/action-execution/action-execution.service.js +0 -149
- package/backend/dist/src/action-execution/action-execution.service.js.map +0 -1
- package/backend/dist/src/ai-actions/ai-action-creation.service.d.ts +0 -29
- package/backend/dist/src/ai-actions/ai-action-creation.service.js +0 -416
- package/backend/dist/src/ai-actions/ai-action-creation.service.js.map +0 -1
- package/backend/dist/src/llm-response-parser/dto/ai-action.dto.d.ts +0 -30
- package/backend/dist/src/llm-response-parser/dto/ai-action.dto.js +0 -162
- package/backend/dist/src/llm-response-parser/dto/ai-action.dto.js.map +0 -1
- package/backend/dist/src/llm-response-parser/errors/parsing.error.d.ts +0 -4
- package/backend/dist/src/llm-response-parser/errors/parsing.error.js +0 -13
- package/backend/dist/src/llm-response-parser/errors/parsing.error.js.map +0 -1
- package/backend/dist/src/llm-response-parser/llm-response-parser.module.d.ts +0 -2
- package/backend/dist/src/llm-response-parser/llm-response-parser.module.js.map +0 -1
- package/backend/dist/src/llm-response-parser/llm-response-parser.service.d.ts +0 -9
- package/backend/dist/src/llm-response-parser/llm-response-parser.service.js +0 -215
- package/backend/dist/src/llm-response-parser/llm-response-parser.service.js.map +0 -1
- package/backend/dist/src/llm-response-parser/parsing.constants.d.ts +0 -20
- package/backend/dist/src/llm-response-parser/parsing.constants.js +0 -24
- package/backend/dist/src/llm-response-parser/parsing.constants.js.map +0 -1
package/CODEMAP.md
CHANGED
|
@@ -14,7 +14,7 @@ Repoburg's architecture consists of several key components working together:
|
|
|
14
14
|
6. **The `daemon-desktop`**: An Electron-based desktop application that provides a graphical user interface (GUI) for the `daemon`. It allows users to manage services without using the command line.
|
|
15
15
|
7. **The `visual-editor-proxy`**: A local proxy server that injects a client script into a target frontend application, enabling developers to visually select components and send prompts to the `backend` from their running app.
|
|
16
16
|
|
|
17
|
-
The core loop is: **Frontend** sends a prompt to the **Backend** -> **Backend** generates context and sends it to an LLM -> The LLM response is sent back to the **Backend** -> **Backend** parses
|
|
17
|
+
The core loop is: **Frontend** sends a prompt to the **Backend** -> **Backend** generates context and sends it to an LLM -> The LLM response is sent back to the **Backend** -> **Backend's** new `llm-orchestration` module parses the response into a plan of actions, executes them, and runs post-execution hooks -> **Frontend** displays the resulting plan for user review and action. The **Daemon** and **Daemon Desktop** work in the background, managing the lifecycle of the **Backend** service itself. The **Website** handles user accounts and authorizes local devices to use the service. The **Visual Editor Proxy** provides an alternative entry point for initiating this loop directly from a user's own application.
|
|
18
18
|
|
|
19
19
|
---
|
|
20
20
|
|
|
@@ -35,11 +35,10 @@ The local server that contains the core application logic.
|
|
|
35
35
|
- **`/session-inputs`**: Handles a single turn of interaction (prompt creation, context generation).
|
|
36
36
|
- **`/session-followup`**: Handles creating new sessions that inherit context from previous ones.
|
|
37
37
|
- **`/session-transfer`**: Manages the import and export of session data.
|
|
38
|
-
- **`/llm-responses`**: Receives
|
|
39
|
-
- **`/llm-
|
|
40
|
-
- **`/ai-actions`**: Manages the individual actions (`create_file`, `run_command`) proposed by the AI.
|
|
41
|
-
- **`/
|
|
42
|
-
- **`/execution-logs`**: Stores logs from `action-execution`.
|
|
38
|
+
- **`/llm-responses`**: Receives raw text responses from the LLM and hands them off to the `llm-orchestration` module for processing. Also includes an endpoint (`/sync-conversation`) to receive entire conversation histories from external tools like the userscript.
|
|
39
|
+
- **`/llm-orchestration`**: The new core engine for processing an AI turn. It follows a pipeline model: parsing the LLM response, validating and executing each action via a dedicated handler (e.g., for `create_file` or `run_command`), and running post-execution hooks for cross-cutting concerns like triggering follow-up AI calls or notifying the frontend.
|
|
40
|
+
- **`/ai-actions`**: Manages the individual actions (`create_file`, `run_command`) proposed by the AI. Its services also contain the file system logic for user-driven UI actions like applying or reverting changes.
|
|
41
|
+
- **`/execution-logs`**: Stores logs from action execution.
|
|
43
42
|
- **`/interactive-chat`**: Orchestrates sending prompts to an LLM for both integrated and manual modes.
|
|
44
43
|
|
|
45
44
|
#### Context & Prompting
|
package/backend/.env
CHANGED
|
@@ -2,21 +2,28 @@ import { Repository } from 'typeorm';
|
|
|
2
2
|
import { AIAction, SessionInput } from '../core-entities';
|
|
3
3
|
import { AIActionsService, ActionResult, ConfirmedActionInfo, DiscardedActionInfo } from './ai-actions.service';
|
|
4
4
|
import { ExecutionLogsService } from '../execution-logs/execution-logs.service';
|
|
5
|
-
import { ActionExecutionService } from '../action-execution/action-execution.service';
|
|
6
5
|
import { ApplicationStateService } from '../application-state/application-state.service';
|
|
7
6
|
import { ChatService } from '../interactive-chat/chat.service';
|
|
8
7
|
import { LlmResponsesService } from '../llm-responses/llm-responses.service';
|
|
8
|
+
import { McpService } from '../mcp/mcp.service';
|
|
9
9
|
export declare class AIActionBatchService {
|
|
10
10
|
private aiActionsRepository;
|
|
11
11
|
private sessionInputsRepository;
|
|
12
12
|
private readonly aiActionsService;
|
|
13
13
|
private readonly executionLogsService;
|
|
14
|
-
private readonly actionExecutionService;
|
|
15
14
|
private readonly applicationStateService;
|
|
16
15
|
private readonly chatService;
|
|
17
16
|
private readonly llmResponsesService;
|
|
17
|
+
private readonly mcpService;
|
|
18
18
|
private readonly logger;
|
|
19
|
-
|
|
19
|
+
private readonly projectRoot;
|
|
20
|
+
constructor(aiActionsRepository: Repository<AIAction>, sessionInputsRepository: Repository<SessionInput>, aiActionsService: AIActionsService, executionLogsService: ExecutionLogsService, applicationStateService: ApplicationStateService, chatService: ChatService, llmResponsesService: LlmResponsesService, mcpService: McpService);
|
|
21
|
+
private resolveAndValidatePath;
|
|
22
|
+
private createFile;
|
|
23
|
+
private editFile;
|
|
24
|
+
private deleteFile;
|
|
25
|
+
private runCommand;
|
|
26
|
+
private useMcpTool;
|
|
20
27
|
applyApprovedActions(inputId: string): Promise<ActionResult[]>;
|
|
21
28
|
discardAllActionsForInput(inputId: string): Promise<DiscardedActionInfo[]>;
|
|
22
29
|
confirmAllAppliedActionsForInput(inputId: string): Promise<ConfirmedActionInfo[]>;
|
|
@@ -17,24 +17,116 @@ exports.AIActionBatchService = void 0;
|
|
|
17
17
|
const common_1 = require("@nestjs/common");
|
|
18
18
|
const typeorm_1 = require("@nestjs/typeorm");
|
|
19
19
|
const typeorm_2 = require("typeorm");
|
|
20
|
+
const fs = require("fs/promises");
|
|
21
|
+
const path = require("path");
|
|
22
|
+
const child_process_1 = require("child_process");
|
|
23
|
+
const util_1 = require("util");
|
|
20
24
|
const core_entities_1 = require("../core-entities");
|
|
21
25
|
const ai_actions_service_1 = require("./ai-actions.service");
|
|
22
26
|
const execution_logs_service_1 = require("../execution-logs/execution-logs.service");
|
|
23
|
-
const action_execution_service_1 = require("../action-execution/action-execution.service");
|
|
24
27
|
const application_state_service_1 = require("../application-state/application-state.service");
|
|
25
28
|
const chat_service_1 = require("../interactive-chat/chat.service");
|
|
26
29
|
const llm_responses_service_1 = require("../llm-responses/llm-responses.service");
|
|
30
|
+
const mcp_service_1 = require("../mcp/mcp.service");
|
|
31
|
+
const utils_1 = require("../utils");
|
|
32
|
+
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
27
33
|
let AIActionBatchService = AIActionBatchService_1 = class AIActionBatchService {
|
|
28
|
-
constructor(aiActionsRepository, sessionInputsRepository, aiActionsService, executionLogsService,
|
|
34
|
+
constructor(aiActionsRepository, sessionInputsRepository, aiActionsService, executionLogsService, applicationStateService, chatService, llmResponsesService, mcpService) {
|
|
29
35
|
this.aiActionsRepository = aiActionsRepository;
|
|
30
36
|
this.sessionInputsRepository = sessionInputsRepository;
|
|
31
37
|
this.aiActionsService = aiActionsService;
|
|
32
38
|
this.executionLogsService = executionLogsService;
|
|
33
|
-
this.actionExecutionService = actionExecutionService;
|
|
34
39
|
this.applicationStateService = applicationStateService;
|
|
35
40
|
this.chatService = chatService;
|
|
36
41
|
this.llmResponsesService = llmResponsesService;
|
|
42
|
+
this.mcpService = mcpService;
|
|
37
43
|
this.logger = new common_1.Logger(AIActionBatchService_1.name);
|
|
44
|
+
this.projectRoot = process.env.REPOBURG_PROJECT_PATH || process.cwd();
|
|
45
|
+
}
|
|
46
|
+
resolveAndValidatePath(unsafePath) {
|
|
47
|
+
const normalizedPath = path.normalize(unsafePath);
|
|
48
|
+
if (path.isAbsolute(normalizedPath)) {
|
|
49
|
+
throw new common_1.BadRequestException(`Absolute paths are not allowed: ${unsafePath}`);
|
|
50
|
+
}
|
|
51
|
+
const resolvedPath = path.resolve(this.projectRoot, normalizedPath);
|
|
52
|
+
if (!resolvedPath.startsWith(this.projectRoot)) {
|
|
53
|
+
this.logger.warn(`Path traversal attempt detected: ${unsafePath}`);
|
|
54
|
+
throw new common_1.BadRequestException(`Path traversal is not allowed. Access denied for path: ${unsafePath}`);
|
|
55
|
+
}
|
|
56
|
+
return resolvedPath;
|
|
57
|
+
}
|
|
58
|
+
async createFile(filePath, content) {
|
|
59
|
+
const safePath = this.resolveAndValidatePath(filePath);
|
|
60
|
+
const dir = path.dirname(safePath);
|
|
61
|
+
try {
|
|
62
|
+
await fs.mkdir(dir, { recursive: true });
|
|
63
|
+
await fs.writeFile(safePath, content, 'utf8');
|
|
64
|
+
this.logger.log(`Created file: ${safePath}`);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
this.logger.error(`Error creating file ${safePath}: ${error.message}`);
|
|
68
|
+
throw new common_1.InternalServerErrorException(`Failed to create file "${filePath}": ${error.message}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
async editFile(filePath, newContent) {
|
|
72
|
+
const safePath = this.resolveAndValidatePath(filePath);
|
|
73
|
+
try {
|
|
74
|
+
const dir = path.dirname(safePath);
|
|
75
|
+
await fs.mkdir(dir, { recursive: true });
|
|
76
|
+
await fs.writeFile(safePath, newContent, 'utf8');
|
|
77
|
+
this.logger.log(`Edited file: ${safePath}`);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
this.logger.error(`Error editing file ${safePath}: ${error.message}`);
|
|
81
|
+
throw new common_1.InternalServerErrorException(`Failed to edit file "${filePath}": ${error.message}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async deleteFile(filePath) {
|
|
85
|
+
const safePath = this.resolveAndValidatePath(filePath);
|
|
86
|
+
try {
|
|
87
|
+
await fs.access(safePath);
|
|
88
|
+
await fs.unlink(safePath);
|
|
89
|
+
this.logger.log(`Deleted file: ${safePath}`);
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
this.logger.error(`Error deleting file ${safePath}: ${error.message}`);
|
|
93
|
+
if (error.code === 'ENOENT') {
|
|
94
|
+
throw new common_1.NotFoundException(`File not found, cannot delete: "${filePath}"`);
|
|
95
|
+
}
|
|
96
|
+
throw new common_1.InternalServerErrorException(`Failed to delete file "${filePath}": ${error.message}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
async runCommand(commandString) {
|
|
100
|
+
this.logger.log(`Executing command: ${commandString}`);
|
|
101
|
+
try {
|
|
102
|
+
const { stdout, stderr } = await execAsync(commandString, {
|
|
103
|
+
cwd: this.projectRoot,
|
|
104
|
+
maxBuffer: 128 * 1024 * 1024,
|
|
105
|
+
timeout: 15000,
|
|
106
|
+
});
|
|
107
|
+
if (stderr) {
|
|
108
|
+
this.logger.warn(`Command "${commandString}" produced stderr: ${stderr}`);
|
|
109
|
+
}
|
|
110
|
+
this.logger.log(`Command "${commandString}" stdout: ${stdout || '(no stdout)'}`);
|
|
111
|
+
return { stdout, stderr };
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
this.logger.error(`Error executing command "${commandString}": ${error.message}`, error.stack);
|
|
115
|
+
const execError = error;
|
|
116
|
+
const unifiedOutput = `COMMAND FAILED: ${execError.message}\n\nSTDOUT:\n${execError.stdout || 'N/A'}\n\nSTDERR:\n${execError.stderr || 'N/A'}`;
|
|
117
|
+
return { stdout: unifiedOutput, stderr: '' };
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
async useMcpTool(serverName, toolName, args) {
|
|
121
|
+
this.logger.log(`Executing MCP tool: ${serverName}.${toolName} with args ${JSON.stringify(args)}`);
|
|
122
|
+
try {
|
|
123
|
+
return await this.mcpService.executeMcpTool(serverName, toolName, args);
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
this.logger.error(`Error executing MCP tool "${serverName}.${toolName}": ${error.message}`, error.stack);
|
|
127
|
+
const unifiedOutput = `MCP TOOL FAILED: ${error.message}`;
|
|
128
|
+
return { stdout: unifiedOutput, stderr: '' };
|
|
129
|
+
}
|
|
38
130
|
}
|
|
39
131
|
async applyApprovedActions(inputId) {
|
|
40
132
|
const sessionInput = await this.sessionInputsRepository.findOneBy({
|
|
@@ -68,7 +160,7 @@ let AIActionBatchService = AIActionBatchService_1 = class AIActionBatchService {
|
|
|
68
160
|
action.content === undefined) {
|
|
69
161
|
throw new Error('Missing file_path or content for create_file action.');
|
|
70
162
|
}
|
|
71
|
-
await this.
|
|
163
|
+
await this.createFile(action.file_path, action.content);
|
|
72
164
|
outcomeMessage = `File "${action.file_path}" created successfully.`;
|
|
73
165
|
break;
|
|
74
166
|
case 'edit_file':
|
|
@@ -77,21 +169,21 @@ let AIActionBatchService = AIActionBatchService_1 = class AIActionBatchService {
|
|
|
77
169
|
action.content === undefined) {
|
|
78
170
|
throw new Error('Missing file_path or content for edit_file action.');
|
|
79
171
|
}
|
|
80
|
-
await this.
|
|
172
|
+
await this.editFile(action.file_path, action.content);
|
|
81
173
|
outcomeMessage = `File "${action.file_path}" edited successfully.`;
|
|
82
174
|
break;
|
|
83
175
|
case 'delete_file':
|
|
84
176
|
if (!action.file_path) {
|
|
85
177
|
throw new Error('Missing file_path for delete_file action.');
|
|
86
178
|
}
|
|
87
|
-
await this.
|
|
179
|
+
await this.deleteFile(action.file_path);
|
|
88
180
|
outcomeMessage = `File "${action.file_path}" deleted successfully.`;
|
|
89
181
|
break;
|
|
90
182
|
case 'run_command':
|
|
91
183
|
if (!action.command_string) {
|
|
92
184
|
throw new Error('Missing command_string for run_command action.');
|
|
93
185
|
}
|
|
94
|
-
const cmdResult = await this.
|
|
186
|
+
const cmdResult = await this.runCommand(action.command_string);
|
|
95
187
|
outcomeMessage = `Command "${action.command_string}" executed. Output: ${cmdResult.stdout || '(no stdout)'}`;
|
|
96
188
|
if (cmdResult.stderr) {
|
|
97
189
|
this.logger.warn(`Command stderr for action ${action.id}: ${cmdResult.stderr}`);
|
|
@@ -109,7 +201,7 @@ let AIActionBatchService = AIActionBatchService_1 = class AIActionBatchService {
|
|
|
109
201
|
if (!action.server_name || !action.tool_name || !action.arguments) {
|
|
110
202
|
throw new Error('Missing server_name, tool_name, or arguments for use_mcp_tool action.');
|
|
111
203
|
}
|
|
112
|
-
const mcpResult = await this.
|
|
204
|
+
const mcpResult = await this.useMcpTool(action.server_name, action.tool_name, JSON.parse(action.arguments));
|
|
113
205
|
outcomeMessage = `MCP Tool "${action.server_name}.${action.tool_name}" executed. Output: ${mcpResult.stdout || '(no stdout)'}`;
|
|
114
206
|
if (mcpResult.stderr) {
|
|
115
207
|
this.logger.warn(`MCP Tool stderr for action ${action.id}: ${mcpResult.stderr}`);
|
|
@@ -244,19 +336,49 @@ let AIActionBatchService = AIActionBatchService_1 = class AIActionBatchService {
|
|
|
244
336
|
}
|
|
245
337
|
};
|
|
246
338
|
exports.AIActionBatchService = AIActionBatchService;
|
|
339
|
+
__decorate([
|
|
340
|
+
(0, utils_1.Trace)(),
|
|
341
|
+
__metadata("design:type", Function),
|
|
342
|
+
__metadata("design:paramtypes", [String, String]),
|
|
343
|
+
__metadata("design:returntype", Promise)
|
|
344
|
+
], AIActionBatchService.prototype, "createFile", null);
|
|
345
|
+
__decorate([
|
|
346
|
+
(0, utils_1.Trace)(),
|
|
347
|
+
__metadata("design:type", Function),
|
|
348
|
+
__metadata("design:paramtypes", [String, String]),
|
|
349
|
+
__metadata("design:returntype", Promise)
|
|
350
|
+
], AIActionBatchService.prototype, "editFile", null);
|
|
351
|
+
__decorate([
|
|
352
|
+
(0, utils_1.Trace)(),
|
|
353
|
+
__metadata("design:type", Function),
|
|
354
|
+
__metadata("design:paramtypes", [String]),
|
|
355
|
+
__metadata("design:returntype", Promise)
|
|
356
|
+
], AIActionBatchService.prototype, "deleteFile", null);
|
|
357
|
+
__decorate([
|
|
358
|
+
(0, utils_1.Trace)(),
|
|
359
|
+
__metadata("design:type", Function),
|
|
360
|
+
__metadata("design:paramtypes", [String]),
|
|
361
|
+
__metadata("design:returntype", Promise)
|
|
362
|
+
], AIActionBatchService.prototype, "runCommand", null);
|
|
363
|
+
__decorate([
|
|
364
|
+
(0, utils_1.Trace)(),
|
|
365
|
+
__metadata("design:type", Function),
|
|
366
|
+
__metadata("design:paramtypes", [String, String, Object]),
|
|
367
|
+
__metadata("design:returntype", Promise)
|
|
368
|
+
], AIActionBatchService.prototype, "useMcpTool", null);
|
|
247
369
|
exports.AIActionBatchService = AIActionBatchService = AIActionBatchService_1 = __decorate([
|
|
248
370
|
(0, common_1.Injectable)(),
|
|
249
371
|
__param(0, (0, typeorm_1.InjectRepository)(core_entities_1.AIAction)),
|
|
250
372
|
__param(1, (0, typeorm_1.InjectRepository)(core_entities_1.SessionInput)),
|
|
251
|
-
__param(
|
|
252
|
-
__param(
|
|
373
|
+
__param(5, (0, common_1.Inject)((0, common_1.forwardRef)(() => chat_service_1.ChatService))),
|
|
374
|
+
__param(6, (0, common_1.Inject)((0, common_1.forwardRef)(() => llm_responses_service_1.LlmResponsesService))),
|
|
253
375
|
__metadata("design:paramtypes", [typeorm_2.Repository,
|
|
254
376
|
typeorm_2.Repository,
|
|
255
377
|
ai_actions_service_1.AIActionsService,
|
|
256
378
|
execution_logs_service_1.ExecutionLogsService,
|
|
257
|
-
action_execution_service_1.ActionExecutionService,
|
|
258
379
|
application_state_service_1.ApplicationStateService,
|
|
259
380
|
chat_service_1.ChatService,
|
|
260
|
-
llm_responses_service_1.LlmResponsesService
|
|
381
|
+
llm_responses_service_1.LlmResponsesService,
|
|
382
|
+
mcp_service_1.McpService])
|
|
261
383
|
], AIActionBatchService);
|
|
262
384
|
//# sourceMappingURL=ai-action-batch.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-action-batch.service.js","sourceRoot":"","sources":["../../../src/ai-actions/ai-action-batch.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ai-action-batch.service.js","sourceRoot":"","sources":["../../../src/ai-actions/ai-action-batch.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,10 +12,7 @@ const typeorm_1 = require("@nestjs/typeorm");
|
|
|
12
12
|
const core_entities_1 = require("../core-entities");
|
|
13
13
|
const ai_actions_service_1 = require("./ai-actions.service");
|
|
14
14
|
const ai_actions_controller_1 = require("./ai-actions.controller");
|
|
15
|
-
const llm_response_parser_module_1 = require("../llm-response-parser/llm-response-parser.module");
|
|
16
15
|
const execution_logs_module_1 = require("../execution-logs/execution-logs.module");
|
|
17
|
-
const action_execution_module_1 = require("../action-execution/action-execution.module");
|
|
18
|
-
const ai_action_creation_service_1 = require("./ai-action-creation.service");
|
|
19
16
|
const ai_action_batch_service_1 = require("./ai-action-batch.service");
|
|
20
17
|
const application_state_module_1 = require("../application-state/application-state.module");
|
|
21
18
|
const events_module_1 = require("../events/events.module");
|
|
@@ -30,9 +27,7 @@ exports.AIActionsModule = AIActionsModule = __decorate([
|
|
|
30
27
|
(0, common_1.Module)({
|
|
31
28
|
imports: [
|
|
32
29
|
typeorm_1.TypeOrmModule.forFeature([core_entities_1.AIAction, core_entities_1.SessionInput]),
|
|
33
|
-
llm_response_parser_module_1.LlmResponseParserModule,
|
|
34
30
|
execution_logs_module_1.ExecutionLogsModule,
|
|
35
|
-
action_execution_module_1.ActionExecutionModule,
|
|
36
31
|
application_state_module_1.ApplicationStateModule,
|
|
37
32
|
events_module_1.EventsModule,
|
|
38
33
|
mcp_module_1.McpModule,
|
|
@@ -41,8 +36,8 @@ exports.AIActionsModule = AIActionsModule = __decorate([
|
|
|
41
36
|
(0, common_1.forwardRef)(() => llm_responses_module_1.LlmResponsesModule),
|
|
42
37
|
],
|
|
43
38
|
controllers: [ai_actions_controller_1.AIActionsController],
|
|
44
|
-
providers: [ai_actions_service_1.AIActionsService,
|
|
45
|
-
exports: [ai_actions_service_1.AIActionsService,
|
|
39
|
+
providers: [ai_actions_service_1.AIActionsService, ai_action_batch_service_1.AIActionBatchService],
|
|
40
|
+
exports: [ai_actions_service_1.AIActionsService, ai_action_batch_service_1.AIActionBatchService],
|
|
46
41
|
})
|
|
47
42
|
], AIActionsModule);
|
|
48
43
|
//# sourceMappingURL=ai-actions.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-actions.module.js","sourceRoot":"","sources":["../../../src/ai-actions/ai-actions.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,6CAAgD;AAChD,oDAA0D;AAC1D,6DAAwD;AACxD,mEAA8D;AAC9D,
|
|
1
|
+
{"version":3,"file":"ai-actions.module.js","sourceRoot":"","sources":["../../../src/ai-actions/ai-actions.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,6CAAgD;AAChD,oDAA0D;AAC1D,6DAAwD;AACxD,mEAA8D;AAC9D,mFAA8E;AAC9E,uEAAiE;AACjE,4FAAuF;AACvF,2DAAuD;AACvD,mFAA8E;AAC9E,iEAAwE;AACxE,gFAA2E;AAC3E,kDAA8C;AAiBvC,IAAM,eAAe,GAArB,MAAM,eAAe;CAAG,CAAA;AAAlB,0CAAe;0BAAf,eAAe;IAf3B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC,CAAC,wBAAQ,EAAE,4BAAY,CAAC,CAAC;YAClD,2CAAmB;YACnB,iDAAsB;YACtB,4BAAY;YACZ,sBAAS;YACT,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,2CAAmB,CAAC;YACrC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,mCAAqB,CAAC;YACvC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,yCAAkB,CAAC;SACrC;QACD,WAAW,EAAE,CAAC,2CAAmB,CAAC;QAClC,SAAS,EAAE,CAAC,qCAAgB,EAAE,8CAAoB,CAAC;QACnD,OAAO,EAAE,CAAC,qCAAgB,EAAE,8CAAoB,CAAC;KAClD,CAAC;GACW,eAAe,CAAG"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Repository } from 'typeorm';
|
|
2
2
|
import { AIAction, SessionInput, ExecutionLog } from '../core-entities';
|
|
3
3
|
import { ExecutionLogsService } from '../execution-logs/execution-logs.service';
|
|
4
|
-
import { ActionExecutionService } from '../action-execution/action-execution.service';
|
|
5
4
|
export declare enum AIActionStatus {
|
|
6
5
|
PROPOSED = "proposed",
|
|
7
6
|
AWAITING_CONTEXT = "awaiting_context",
|
|
@@ -14,6 +13,16 @@ export declare enum AIActionStatus {
|
|
|
14
13
|
EXECUTION_FAILED = "execution_failed",
|
|
15
14
|
REVERT_FAILED = "revert_failed"
|
|
16
15
|
}
|
|
16
|
+
export declare enum AIActionType {
|
|
17
|
+
CREATE_FILE = "create_file",
|
|
18
|
+
EDIT_FILE = "edit_file",
|
|
19
|
+
DELETE_FILE = "delete_file",
|
|
20
|
+
RUN_COMMAND = "run_command",
|
|
21
|
+
REQUEST_CONTEXT = "request_context",
|
|
22
|
+
FINAL = "final",
|
|
23
|
+
USE_MCP_TOOL = "use_mcp_tool",
|
|
24
|
+
NEW_SESSION = "new_session"
|
|
25
|
+
}
|
|
17
26
|
export interface ActionResult {
|
|
18
27
|
action_id: string;
|
|
19
28
|
status: string;
|
|
@@ -31,9 +40,13 @@ export declare class AIActionsService {
|
|
|
31
40
|
private aiActionsRepository;
|
|
32
41
|
private sessionInputsRepository;
|
|
33
42
|
private executionLogsService;
|
|
34
|
-
private readonly actionExecutionService;
|
|
35
43
|
private readonly logger;
|
|
36
|
-
|
|
44
|
+
private readonly projectRoot;
|
|
45
|
+
constructor(aiActionsRepository: Repository<AIAction>, sessionInputsRepository: Repository<SessionInput>, executionLogsService: ExecutionLogsService);
|
|
46
|
+
private resolveAndValidatePath;
|
|
47
|
+
private createFile;
|
|
48
|
+
private editFile;
|
|
49
|
+
private deleteFile;
|
|
37
50
|
findAllByInputId(inputId: string): Promise<AIAction[]>;
|
|
38
51
|
findOne(actionId: string): Promise<AIAction>;
|
|
39
52
|
approveAction(actionId: string): Promise<AIAction>;
|
|
@@ -13,13 +13,14 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
13
13
|
};
|
|
14
14
|
var AIActionsService_1;
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.AIActionsService = exports.AIActionStatus = void 0;
|
|
16
|
+
exports.AIActionsService = exports.AIActionType = exports.AIActionStatus = void 0;
|
|
17
17
|
const common_1 = require("@nestjs/common");
|
|
18
18
|
const typeorm_1 = require("@nestjs/typeorm");
|
|
19
19
|
const typeorm_2 = require("typeorm");
|
|
20
|
+
const fs = require("fs/promises");
|
|
21
|
+
const path = require("path");
|
|
20
22
|
const core_entities_1 = require("../core-entities");
|
|
21
23
|
const execution_logs_service_1 = require("../execution-logs/execution-logs.service");
|
|
22
|
-
const action_execution_service_1 = require("../action-execution/action-execution.service");
|
|
23
24
|
const utils_1 = require("../utils");
|
|
24
25
|
var AIActionStatus;
|
|
25
26
|
(function (AIActionStatus) {
|
|
@@ -34,13 +35,77 @@ var AIActionStatus;
|
|
|
34
35
|
AIActionStatus["EXECUTION_FAILED"] = "execution_failed";
|
|
35
36
|
AIActionStatus["REVERT_FAILED"] = "revert_failed";
|
|
36
37
|
})(AIActionStatus || (exports.AIActionStatus = AIActionStatus = {}));
|
|
38
|
+
var AIActionType;
|
|
39
|
+
(function (AIActionType) {
|
|
40
|
+
AIActionType["CREATE_FILE"] = "create_file";
|
|
41
|
+
AIActionType["EDIT_FILE"] = "edit_file";
|
|
42
|
+
AIActionType["DELETE_FILE"] = "delete_file";
|
|
43
|
+
AIActionType["RUN_COMMAND"] = "run_command";
|
|
44
|
+
AIActionType["REQUEST_CONTEXT"] = "request_context";
|
|
45
|
+
AIActionType["FINAL"] = "final";
|
|
46
|
+
AIActionType["USE_MCP_TOOL"] = "use_mcp_tool";
|
|
47
|
+
AIActionType["NEW_SESSION"] = "new_session";
|
|
48
|
+
})(AIActionType || (exports.AIActionType = AIActionType = {}));
|
|
37
49
|
let AIActionsService = AIActionsService_1 = class AIActionsService {
|
|
38
|
-
constructor(aiActionsRepository, sessionInputsRepository, executionLogsService
|
|
50
|
+
constructor(aiActionsRepository, sessionInputsRepository, executionLogsService) {
|
|
39
51
|
this.aiActionsRepository = aiActionsRepository;
|
|
40
52
|
this.sessionInputsRepository = sessionInputsRepository;
|
|
41
53
|
this.executionLogsService = executionLogsService;
|
|
42
|
-
this.actionExecutionService = actionExecutionService;
|
|
43
54
|
this.logger = new common_1.Logger(AIActionsService_1.name);
|
|
55
|
+
this.projectRoot = process.env.REPOBURG_PROJECT_PATH || process.cwd();
|
|
56
|
+
}
|
|
57
|
+
resolveAndValidatePath(unsafePath) {
|
|
58
|
+
const normalizedPath = path.normalize(unsafePath);
|
|
59
|
+
if (path.isAbsolute(normalizedPath)) {
|
|
60
|
+
throw new common_1.BadRequestException(`Absolute paths are not allowed: ${unsafePath}`);
|
|
61
|
+
}
|
|
62
|
+
const resolvedPath = path.resolve(this.projectRoot, normalizedPath);
|
|
63
|
+
if (!resolvedPath.startsWith(this.projectRoot)) {
|
|
64
|
+
this.logger.warn(`Path traversal attempt detected: ${unsafePath}`);
|
|
65
|
+
throw new common_1.BadRequestException(`Path traversal is not allowed. Access denied for path: ${unsafePath}`);
|
|
66
|
+
}
|
|
67
|
+
return resolvedPath;
|
|
68
|
+
}
|
|
69
|
+
async createFile(filePath, content) {
|
|
70
|
+
const safePath = this.resolveAndValidatePath(filePath);
|
|
71
|
+
const dir = path.dirname(safePath);
|
|
72
|
+
try {
|
|
73
|
+
await fs.mkdir(dir, { recursive: true });
|
|
74
|
+
await fs.writeFile(safePath, content, 'utf8');
|
|
75
|
+
this.logger.log(`Created file: ${safePath}`);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
this.logger.error(`Error creating file ${safePath}: ${error.message}`);
|
|
79
|
+
throw new common_1.InternalServerErrorException(`Failed to create file "${filePath}": ${error.message}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
async editFile(filePath, newContent) {
|
|
83
|
+
const safePath = this.resolveAndValidatePath(filePath);
|
|
84
|
+
try {
|
|
85
|
+
const dir = path.dirname(safePath);
|
|
86
|
+
await fs.mkdir(dir, { recursive: true });
|
|
87
|
+
await fs.writeFile(safePath, newContent, 'utf8');
|
|
88
|
+
this.logger.log(`Edited file: ${safePath}`);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
this.logger.error(`Error editing file ${safePath}: ${error.message}`);
|
|
92
|
+
throw new common_1.InternalServerErrorException(`Failed to edit file "${filePath}": ${error.message}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
async deleteFile(filePath) {
|
|
96
|
+
const safePath = this.resolveAndValidatePath(filePath);
|
|
97
|
+
try {
|
|
98
|
+
await fs.access(safePath);
|
|
99
|
+
await fs.unlink(safePath);
|
|
100
|
+
this.logger.log(`Deleted file: ${safePath}`);
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
this.logger.error(`Error deleting file ${safePath}: ${error.message}`);
|
|
104
|
+
if (error.code === 'ENOENT') {
|
|
105
|
+
throw new common_1.NotFoundException(`File not found, cannot delete: "${filePath}"`);
|
|
106
|
+
}
|
|
107
|
+
throw new common_1.InternalServerErrorException(`Failed to delete file "${filePath}": ${error.message}`);
|
|
108
|
+
}
|
|
44
109
|
}
|
|
45
110
|
async findAllByInputId(inputId) {
|
|
46
111
|
const sessionInput = await this.sessionInputsRepository.findOneBy({
|
|
@@ -106,11 +171,11 @@ let AIActionsService = AIActionsService_1 = class AIActionsService {
|
|
|
106
171
|
if (!action.file_path)
|
|
107
172
|
throw new Error('Missing file_path for edit_file revert.');
|
|
108
173
|
if (action.original_content_for_revert !== null) {
|
|
109
|
-
await this.
|
|
174
|
+
await this.editFile(action.file_path, action.original_content_for_revert);
|
|
110
175
|
revertOutcomeMessage = `File "${action.file_path}" content reverted to original.`;
|
|
111
176
|
}
|
|
112
177
|
else {
|
|
113
|
-
await this.
|
|
178
|
+
await this.deleteFile(action.file_path);
|
|
114
179
|
revertOutcomeMessage = `File "${action.file_path}" (created by edit) was deleted.`;
|
|
115
180
|
}
|
|
116
181
|
revertSucceeded = true;
|
|
@@ -119,12 +184,12 @@ let AIActionsService = AIActionsService_1 = class AIActionsService {
|
|
|
119
184
|
if (!action.file_path)
|
|
120
185
|
throw new Error('Missing file_path for delete_file revert.');
|
|
121
186
|
if (action.original_content_for_revert !== null) {
|
|
122
|
-
await this.
|
|
187
|
+
await this.createFile(action.file_path, action.original_content_for_revert);
|
|
123
188
|
revertOutcomeMessage = `Deleted file "${action.file_path}" restored with original content.`;
|
|
124
189
|
}
|
|
125
190
|
else {
|
|
126
191
|
try {
|
|
127
|
-
await this.
|
|
192
|
+
await this.deleteFile(action.file_path);
|
|
128
193
|
revertOutcomeMessage = `Ensured file "${action.file_path}" (originally non-existent or empty) remains deleted.`;
|
|
129
194
|
}
|
|
130
195
|
catch (e) {
|
|
@@ -142,7 +207,7 @@ let AIActionsService = AIActionsService_1 = class AIActionsService {
|
|
|
142
207
|
if (!action.file_path)
|
|
143
208
|
throw new Error('Missing file_path for create_file revert.');
|
|
144
209
|
try {
|
|
145
|
-
await this.
|
|
210
|
+
await this.deleteFile(action.file_path);
|
|
146
211
|
revertOutcomeMessage = `Created file "${action.file_path}" deleted.`;
|
|
147
212
|
}
|
|
148
213
|
catch (e) {
|
|
@@ -243,7 +308,6 @@ exports.AIActionsService = AIActionsService = AIActionsService_1 = __decorate([
|
|
|
243
308
|
__param(1, (0, typeorm_1.InjectRepository)(core_entities_1.SessionInput)),
|
|
244
309
|
__metadata("design:paramtypes", [typeorm_2.Repository,
|
|
245
310
|
typeorm_2.Repository,
|
|
246
|
-
execution_logs_service_1.ExecutionLogsService
|
|
247
|
-
action_execution_service_1.ActionExecutionService])
|
|
311
|
+
execution_logs_service_1.ExecutionLogsService])
|
|
248
312
|
], AIActionsService);
|
|
249
313
|
//# sourceMappingURL=ai-actions.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-actions.service.js","sourceRoot":"","sources":["../../../src/ai-actions/ai-actions.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"ai-actions.service.js","sourceRoot":"","sources":["../../../src/ai-actions/ai-actions.service.ts"],"names":[],"mappings":"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"}
|