repoburg 1.3.10 → 1.3.12
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/backend/dist/packages/tokenpatch/index.js +3 -2
- package/backend/dist/packages/tokenpatch/index.js.map +1 -1
- package/backend/dist/packages/tokenpatch/patcher.js +5 -4
- package/backend/dist/packages/tokenpatch/patcher.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/action-handler.interface.d.ts +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/apply-diff.handler.d.ts +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/apply-diff.handler.js +35 -0
- package/backend/dist/src/llm-orchestration/action-handlers/apply-diff.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/create-file.handler.d.ts +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/create-file.handler.js +48 -0
- package/backend/dist/src/llm-orchestration/action-handlers/create-file.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/delete-file.handler.d.ts +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/delete-file.handler.js +21 -0
- package/backend/dist/src/llm-orchestration/action-handlers/delete-file.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/dto/howto.args.dto.d.ts +2 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/howto.args.dto.js +7 -0
- package/backend/dist/src/llm-orchestration/action-handlers/dto/howto.args.dto.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/edit-file.handler.d.ts +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/edit-file.handler.js +55 -0
- package/backend/dist/src/llm-orchestration/action-handlers/edit-file.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/final.handler.d.ts +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/final.handler.js +20 -0
- package/backend/dist/src/llm-orchestration/action-handlers/final.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/howto.handler.d.ts +9 -0
- package/backend/dist/src/llm-orchestration/action-handlers/howto.handler.js +85 -0
- package/backend/dist/src/llm-orchestration/action-handlers/howto.handler.js.map +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/new-session.handler.d.ts +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/new-session.handler.js +21 -0
- package/backend/dist/src/llm-orchestration/action-handlers/new-session.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/patch.handler.d.ts +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/patch.handler.js +106 -0
- package/backend/dist/src/llm-orchestration/action-handlers/patch.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/quick-edit.handler.d.ts +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/quick-edit.handler.js +53 -0
- package/backend/dist/src/llm-orchestration/action-handlers/quick-edit.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/request-context.handler.d.ts +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/request-context.handler.js +30 -0
- package/backend/dist/src/llm-orchestration/action-handlers/request-context.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/run-command.handler.d.ts +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/run-command.handler.js +45 -0
- package/backend/dist/src/llm-orchestration/action-handlers/run-command.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/use-mcp-tool.handler.d.ts +1 -0
- package/backend/dist/src/llm-orchestration/action-handlers/use-mcp-tool.handler.js +29 -0
- package/backend/dist/src/llm-orchestration/action-handlers/use-mcp-tool.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/llm-orchestration.module.js +4 -2
- package/backend/dist/src/llm-orchestration/llm-orchestration.module.js.map +1 -1
- package/backend/dist/src/llm-orchestration/parser/parsing.constants.d.ts +2 -0
- package/backend/dist/src/llm-orchestration/parser/parsing.constants.js +3 -1
- package/backend/dist/src/llm-orchestration/parser/parsing.constants.js.map +1 -1
- package/backend/dist/src/seeding/data/custom-snippets/eta-for.d.ts +4 -0
- package/backend/dist/src/seeding/data/custom-snippets/eta-for.js +8 -0
- package/backend/dist/src/seeding/data/custom-snippets/eta-for.js.map +1 -0
- package/backend/dist/src/seeding/data/custom-snippets/eta-if.d.ts +4 -0
- package/backend/dist/src/seeding/data/custom-snippets/eta-if.js +8 -0
- package/backend/dist/src/seeding/data/custom-snippets/eta-if.js.map +1 -0
- package/backend/dist/src/seeding/data/custom-snippets/eta-ifelse.d.ts +4 -0
- package/backend/dist/src/seeding/data/custom-snippets/eta-ifelse.js +8 -0
- package/backend/dist/src/seeding/data/custom-snippets/eta-ifelse.js.map +1 -0
- package/backend/dist/src/seeding/data/custom-snippets/it-mcp.d.ts +4 -0
- package/backend/dist/src/seeding/data/custom-snippets/it-mcp.js +8 -0
- package/backend/dist/src/seeding/data/custom-snippets/it-mcp.js.map +1 -0
- package/backend/dist/src/seeding/data/custom-snippets/it-tools.d.ts +4 -0
- package/backend/dist/src/seeding/data/custom-snippets/it-tools.js +8 -0
- package/backend/dist/src/seeding/data/custom-snippets/it-tools.js.map +1 -0
- 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 +1 -1
- package/backend/dist/src/seeding/data/system-prompts/experimental_eta_master-agent.d.ts +2 -0
- package/backend/dist/src/seeding/data/system-prompts/experimental_eta_master-agent.js +62 -0
- package/backend/dist/src/seeding/data/system-prompts/experimental_eta_master-agent.js.map +1 -0
- package/backend/dist/src/system-prompts/dto/system-prompt.dto.d.ts +6 -0
- package/backend/dist/src/system-prompts/dto/system-prompt.dto.js +12 -1
- package/backend/dist/src/system-prompts/dto/system-prompt.dto.js.map +1 -1
- package/backend/dist/src/system-prompts/system-prompts.controller.d.ts +3 -1
- package/backend/dist/src/system-prompts/system-prompts.controller.js +20 -0
- package/backend/dist/src/system-prompts/system-prompts.controller.js.map +1 -1
- package/backend/dist/src/system-prompts/system-prompts.module.js +11 -1
- package/backend/dist/src/system-prompts/system-prompts.module.js.map +1 -1
- package/backend/dist/src/system-prompts/system-prompts.service.d.ts +11 -3
- package/backend/dist/src/system-prompts/system-prompts.service.js +39 -12
- package/backend/dist/src/system-prompts/system-prompts.service.js.map +1 -1
- package/backend/dist/src/utils/ai-format-generator.d.ts +1 -0
- package/backend/dist/src/utils/ai-format-generator.js +23 -0
- package/backend/dist/src/utils/ai-format-generator.js.map +1 -0
- package/backend/dist/src/utils/index.d.ts +1 -0
- package/backend/dist/src/utils/index.js +1 -0
- package/backend/dist/src/utils/index.js.map +1 -1
- package/backend/dist/tsconfig.build.tsbuildinfo +1 -1
- package/backend/packages/tokenpatch/index.spec.ts +13 -9
- package/backend/packages/tokenpatch/index.ts +10 -2
- package/backend/packages/tokenpatch/patcher.ts +12 -4
- package/package.json +1 -1
|
@@ -4,6 +4,7 @@ exports.applySnippetPatch = applySnippetPatch;
|
|
|
4
4
|
const parser_1 = require("./parser");
|
|
5
5
|
const tokens_1 = require("./tokens");
|
|
6
6
|
const patcher_1 = require("./patcher");
|
|
7
|
+
const parsing_constants_1 = require("../../src/llm-orchestration/parser/parsing.constants");
|
|
7
8
|
async function applySnippetPatch(sourceCode, patchCode, grammarPath) {
|
|
8
9
|
const parser = await (0, parser_1.initializeParser)(grammarPath);
|
|
9
10
|
const sourceTree = parser.parse(sourceCode);
|
|
@@ -13,8 +14,8 @@ async function applySnippetPatch(sourceCode, patchCode, grammarPath) {
|
|
|
13
14
|
const sourceTokens = (0, tokens_1.collectTokens)(sourceTree, sourceCode);
|
|
14
15
|
let patchResult;
|
|
15
16
|
let processedPatchCode = patchCode;
|
|
16
|
-
const beginOfFileRegex =
|
|
17
|
-
const endOfFileRegex =
|
|
17
|
+
const beginOfFileRegex = new RegExp(`//\\s*${parsing_constants_1.SPECIAL_PATCH_BEGIN_FILE_MARKER}.*`);
|
|
18
|
+
const endOfFileRegex = new RegExp(`//\\s*${parsing_constants_1.SPECIAL_PATCH_END_FILE_MARKER}.*`);
|
|
18
19
|
const hasBeginOfFile = beginOfFileRegex.test(patchCode);
|
|
19
20
|
const hasEndOfFile = endOfFileRegex.test(patchCode);
|
|
20
21
|
if (hasBeginOfFile) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/tokenpatch/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/tokenpatch/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ exports.handleBeginOfFilePatch = handleBeginOfFilePatch;
|
|
|
4
4
|
exports.handleEndOfFilePatch = handleEndOfFilePatch;
|
|
5
5
|
exports.handleStandardPatch = handleStandardPatch;
|
|
6
6
|
const tokens_1 = require("./tokens");
|
|
7
|
+
const parsing_constants_1 = require("../../src/llm-orchestration/parser/parsing.constants");
|
|
7
8
|
function _findBeginOfFilePatchLocation(sourceTokens, patchTokens) {
|
|
8
9
|
let replaceStart = null;
|
|
9
10
|
let replaceEnd = null;
|
|
@@ -34,7 +35,7 @@ function _findBeginOfFilePatchLocation(sourceTokens, patchTokens) {
|
|
|
34
35
|
}
|
|
35
36
|
function handleBeginOfFilePatch(sourceTokens, originalPatchTokens) {
|
|
36
37
|
if (originalPatchTokens.length === 0) {
|
|
37
|
-
throw new Error(
|
|
38
|
+
throw new Error(`Patch is empty after removing ${parsing_constants_1.SPECIAL_PATCH_BEGIN_FILE_MARKER} marker.`);
|
|
38
39
|
}
|
|
39
40
|
let patchAttempt = [...originalPatchTokens];
|
|
40
41
|
let lastError = null;
|
|
@@ -50,7 +51,7 @@ function handleBeginOfFilePatch(sourceTokens, originalPatchTokens) {
|
|
|
50
51
|
patchAttempt = patchAttempt.slice(1);
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
|
-
throw new Error(`Failed to apply
|
|
54
|
+
throw new Error(`Failed to apply ${parsing_constants_1.SPECIAL_PATCH_BEGIN_FILE_MARKER} patch. Could not find a unique anchor, even after trimming tokens. Last known error: ${lastError?.message}`);
|
|
54
55
|
}
|
|
55
56
|
function _findEndOfFilePatchLocation(sourceTokens, patchTokens, sourceCode) {
|
|
56
57
|
let replaceStart = null;
|
|
@@ -81,7 +82,7 @@ function _findEndOfFilePatchLocation(sourceTokens, patchTokens, sourceCode) {
|
|
|
81
82
|
}
|
|
82
83
|
function handleEndOfFilePatch(sourceTokens, originalPatchTokens, sourceCode) {
|
|
83
84
|
if (originalPatchTokens.length === 0) {
|
|
84
|
-
throw new Error(
|
|
85
|
+
throw new Error(`Patch is empty after removing ${parsing_constants_1.SPECIAL_PATCH_END_FILE_MARKER} marker.`);
|
|
85
86
|
}
|
|
86
87
|
let patchAttempt = [...originalPatchTokens];
|
|
87
88
|
let lastError = null;
|
|
@@ -97,7 +98,7 @@ function handleEndOfFilePatch(sourceTokens, originalPatchTokens, sourceCode) {
|
|
|
97
98
|
patchAttempt = patchAttempt.slice(0, -1);
|
|
98
99
|
}
|
|
99
100
|
}
|
|
100
|
-
throw new Error(`Failed to apply
|
|
101
|
+
throw new Error(`Failed to apply ${parsing_constants_1.SPECIAL_PATCH_END_FILE_MARKER} patch. Could not find a unique anchor, even after trimming tokens. Last known error: ${lastError?.message}`);
|
|
101
102
|
}
|
|
102
103
|
function _findStandardPatchLocation(sourceTokens, patchTokens) {
|
|
103
104
|
let prefixAnchor = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patcher.js","sourceRoot":"","sources":["../../../packages/tokenpatch/patcher.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"patcher.js","sourceRoot":"","sources":["../../../packages/tokenpatch/patcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ActionExecutionResult, PlanExecutionContext } from '../llm-orchestration.interfaces';
|
|
2
2
|
export interface ActionHandler {
|
|
3
3
|
readonly toolName: string;
|
|
4
|
+
getDefinition(): string;
|
|
4
5
|
execute(args: {
|
|
5
6
|
[key: string]: any;
|
|
6
7
|
}, context: PlanExecutionContext): Promise<ActionExecutionResult>;
|
|
@@ -15,12 +15,47 @@ const class_transformer_1 = require("class-transformer");
|
|
|
15
15
|
const class_validator_1 = require("class-validator");
|
|
16
16
|
const handler_validation_error_1 = require("../errors/handler-validation.error");
|
|
17
17
|
const apply_diff_args_dto_1 = require("./dto/apply-diff.args.dto");
|
|
18
|
+
const utils_1 = require("../../utils");
|
|
18
19
|
let ApplyDiffHandler = ApplyDiffHandler_1 = class ApplyDiffHandler {
|
|
19
20
|
constructor() {
|
|
20
21
|
this.toolName = 'apply_diff';
|
|
21
22
|
this.logger = new common_1.Logger(ApplyDiffHandler_1.name);
|
|
22
23
|
this.projectRoot = process.env.REPOBURG_PROJECT_PATH || process.cwd();
|
|
23
24
|
}
|
|
25
|
+
getDefinition() {
|
|
26
|
+
const examplePatch = `
|
|
27
|
+
@2,2c|ANCHOR=console.log('Hello, world!');
|
|
28
|
+
console.log('Hello, Repoburg!');
|
|
29
|
+
@5,7d|ANCHOR=function farewell() {
|
|
30
|
+
`.trim();
|
|
31
|
+
const example = (0, utils_1.generateToolCall)({
|
|
32
|
+
tool_name: this.toolName,
|
|
33
|
+
file_path: 'src/example.js',
|
|
34
|
+
patch: examplePatch,
|
|
35
|
+
});
|
|
36
|
+
const definition = `
|
|
37
|
+
<${this.toolName}>
|
|
38
|
+
Applies a patch to a file using a line-based diff format with anchor validation.
|
|
39
|
+
NOTE: This is a legacy tool. Prefer using the more robust 'patch' tool for all modifications.
|
|
40
|
+
|
|
41
|
+
The patch format uses commands starting with '@' to specify changes.
|
|
42
|
+
Command syntax: \`@<start_line>,<end_line><operation>|ANCHOR=<substring>\`
|
|
43
|
+
- <start_line>,<end_line>: 1-based line numbers.
|
|
44
|
+
- <operation>: 'a' (add after), 'c' (change), 'd' (delete).
|
|
45
|
+
- |ANCHOR=<substring>: A mandatory substring that must be present on the <start_line> to validate the change.
|
|
46
|
+
|
|
47
|
+
Parameters:
|
|
48
|
+
- "file_path": (string) The relative path to the file to be modified.
|
|
49
|
+
- "patch": (string) A string containing one or more diff commands with anchors.
|
|
50
|
+
|
|
51
|
+
<example>
|
|
52
|
+
Explanation: This patch changes line 2 and deletes lines 5-7 from 'src/example.js'.
|
|
53
|
+
${example}
|
|
54
|
+
</example>
|
|
55
|
+
</${this.toolName}>
|
|
56
|
+
`;
|
|
57
|
+
return definition.trim();
|
|
58
|
+
}
|
|
24
59
|
resolveAndValidatePath(unsafePath) {
|
|
25
60
|
const normalizedPath = path.normalize(unsafePath);
|
|
26
61
|
if (path.isAbsolute(normalizedPath)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-diff.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/apply-diff.handler.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAyE;AACzE,kCAAkC;AAClC,6BAA6B;AAC7B,yDAAiD;AACjD,qDAA2C;AAM3C,iFAA4E;AAC5E,mEAA6D;
|
|
1
|
+
{"version":3,"file":"apply-diff.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/apply-diff.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,12 +15,60 @@ const class_transformer_1 = require("class-transformer");
|
|
|
15
15
|
const class_validator_1 = require("class-validator");
|
|
16
16
|
const handler_validation_error_1 = require("../errors/handler-validation.error");
|
|
17
17
|
const create_file_args_dto_1 = require("./dto/create-file.args.dto");
|
|
18
|
+
const utils_1 = require("../../utils");
|
|
18
19
|
let CreateFileHandler = CreateFileHandler_1 = class CreateFileHandler {
|
|
19
20
|
constructor() {
|
|
20
21
|
this.toolName = 'create_file';
|
|
21
22
|
this.logger = new common_1.Logger(CreateFileHandler_1.name);
|
|
22
23
|
this.projectRoot = process.env.REPOBURG_PROJECT_PATH || process.cwd();
|
|
23
24
|
}
|
|
25
|
+
getDefinition() {
|
|
26
|
+
const exampleContent = `\`\`\`typescript
|
|
27
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
28
|
+
|
|
29
|
+
export interface UserProfile {
|
|
30
|
+
id: string;
|
|
31
|
+
username: string;
|
|
32
|
+
email: string;
|
|
33
|
+
createdAt: Date;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Creates a new user profile with a unique ID and creation date.
|
|
38
|
+
* @param username The user's chosen username.
|
|
39
|
+
* @param email The user's email address.
|
|
40
|
+
* @returns A new UserProfile object.
|
|
41
|
+
*/
|
|
42
|
+
export function createProfile(username: string, email: string): UserProfile {
|
|
43
|
+
return {
|
|
44
|
+
id: uuidv4(),
|
|
45
|
+
username,
|
|
46
|
+
email,
|
|
47
|
+
createdAt: new Date(),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
\`\`\``.trim();
|
|
51
|
+
const example = (0, utils_1.generateToolCall)({
|
|
52
|
+
tool_name: this.toolName,
|
|
53
|
+
file_path: 'src/modules/users/profiles.util.ts',
|
|
54
|
+
content: exampleContent,
|
|
55
|
+
});
|
|
56
|
+
const definition = `
|
|
57
|
+
<${this.toolName}>
|
|
58
|
+
Creates a new file with the specified content. It will create any necessary parent directories.
|
|
59
|
+
|
|
60
|
+
Parameters:
|
|
61
|
+
- "file_path": (string) The relative path for the new file.
|
|
62
|
+
- "content": (string) The full content of the new file.
|
|
63
|
+
|
|
64
|
+
<example>
|
|
65
|
+
Explanation: Create a new utility file for creating user profiles.
|
|
66
|
+
${example}
|
|
67
|
+
</example>
|
|
68
|
+
</${this.toolName}>
|
|
69
|
+
`;
|
|
70
|
+
return definition.trim();
|
|
71
|
+
}
|
|
24
72
|
resolveAndValidatePath(unsafePath) {
|
|
25
73
|
const normalizedPath = path.normalize(unsafePath);
|
|
26
74
|
if (path.isAbsolute(normalizedPath)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-file.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/create-file.handler.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAKwB;AACxB,kCAAkC;AAClC,6BAA6B;AAC7B,yDAAiD;AACjD,qDAA2C;AAM3C,iFAA4E;AAC5E,qEAA+D;
|
|
1
|
+
{"version":3,"file":"create-file.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/create-file.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,12 +15,33 @@ const class_transformer_1 = require("class-transformer");
|
|
|
15
15
|
const class_validator_1 = require("class-validator");
|
|
16
16
|
const handler_validation_error_1 = require("../errors/handler-validation.error");
|
|
17
17
|
const delete_file_args_dto_1 = require("./dto/delete-file.args.dto");
|
|
18
|
+
const utils_1 = require("../../utils");
|
|
18
19
|
let DeleteFileHandler = DeleteFileHandler_1 = class DeleteFileHandler {
|
|
19
20
|
constructor() {
|
|
20
21
|
this.toolName = 'delete_file';
|
|
21
22
|
this.logger = new common_1.Logger(DeleteFileHandler_1.name);
|
|
22
23
|
this.projectRoot = process.env.REPOBURG_PROJECT_PATH || process.cwd();
|
|
23
24
|
}
|
|
25
|
+
getDefinition() {
|
|
26
|
+
const example = (0, utils_1.generateToolCall)({
|
|
27
|
+
tool_name: this.toolName,
|
|
28
|
+
file_path: 'src/legacy/old-api-client.js',
|
|
29
|
+
});
|
|
30
|
+
const definition = `
|
|
31
|
+
<${this.toolName}>
|
|
32
|
+
Deletes a file from the filesystem.
|
|
33
|
+
|
|
34
|
+
Parameters:
|
|
35
|
+
- "file_path": (string) The relative path of the file to delete.
|
|
36
|
+
|
|
37
|
+
<example>
|
|
38
|
+
Explanation: Remove the old, unused 'legacy.js' file.
|
|
39
|
+
${example}
|
|
40
|
+
</example>
|
|
41
|
+
</${this.toolName}>
|
|
42
|
+
`;
|
|
43
|
+
return definition.trim();
|
|
44
|
+
}
|
|
24
45
|
resolveAndValidatePath(unsafePath) {
|
|
25
46
|
const normalizedPath = path.normalize(unsafePath);
|
|
26
47
|
if (path.isAbsolute(normalizedPath)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-file.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/delete-file.handler.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAKwB;AACxB,kCAAkC;AAClC,6BAA6B;AAC7B,yDAAiD;AACjD,qDAA2C;AAM3C,iFAA4E;AAC5E,qEAA+D;
|
|
1
|
+
{"version":3,"file":"delete-file.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/delete-file.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"howto.args.dto.js","sourceRoot":"","sources":["../../../../../src/llm-orchestration/action-handlers/dto/howto.args.dto.ts"],"names":[],"mappings":";;;AACA,MAAa,YAAY;CAAG;AAA5B,oCAA4B"}
|
|
@@ -15,12 +15,67 @@ const class_transformer_1 = require("class-transformer");
|
|
|
15
15
|
const class_validator_1 = require("class-validator");
|
|
16
16
|
const handler_validation_error_1 = require("../errors/handler-validation.error");
|
|
17
17
|
const edit_file_args_dto_1 = require("./dto/edit-file.args.dto");
|
|
18
|
+
const utils_1 = require("../../utils");
|
|
18
19
|
let EditFileHandler = EditFileHandler_1 = class EditFileHandler {
|
|
19
20
|
constructor() {
|
|
20
21
|
this.toolName = 'edit_file';
|
|
21
22
|
this.logger = new common_1.Logger(EditFileHandler_1.name);
|
|
22
23
|
this.projectRoot = process.env.REPOBURG_PROJECT_PATH || process.cwd();
|
|
23
24
|
}
|
|
25
|
+
getDefinition() {
|
|
26
|
+
const exampleContent = `\`\`\`typescript
|
|
27
|
+
/**
|
|
28
|
+
* Global application configuration.
|
|
29
|
+
*/
|
|
30
|
+
export const AppConfig = Object.freeze({
|
|
31
|
+
// Feature flags
|
|
32
|
+
ENABLE_ANALYTICS: process.env.NODE_ENV === 'production',
|
|
33
|
+
ENABLE_FEATURE_X: true,
|
|
34
|
+
|
|
35
|
+
// API endpoints
|
|
36
|
+
API_BASE_URL: process.env.API_URL || 'https://api.example.com',
|
|
37
|
+
API_TIMEOUT: parseInt(process.env.API_TIMEOUT || '5000', 10),
|
|
38
|
+
|
|
39
|
+
// Third-party service keys
|
|
40
|
+
SENTRY_DSN: process.env.SENTRY_DSN,
|
|
41
|
+
});
|
|
42
|
+
\`\`\``.trim();
|
|
43
|
+
const example = (0, utils_1.generateToolCall)({
|
|
44
|
+
tool_name: this.toolName,
|
|
45
|
+
file_path: 'src/config/app.config.ts',
|
|
46
|
+
content: exampleContent,
|
|
47
|
+
});
|
|
48
|
+
const badExampleContent = `\`\`\`typescript
|
|
49
|
+
// This is wrong! Only a partial snippet is provided.
|
|
50
|
+
NEW_API_KEY: 'ABC-123',
|
|
51
|
+
\`\`\``.trim();
|
|
52
|
+
const badExample = (0, utils_1.generateToolCall)({
|
|
53
|
+
tool_name: this.toolName,
|
|
54
|
+
file_path: 'src/config/app.config.ts',
|
|
55
|
+
content: badExampleContent,
|
|
56
|
+
});
|
|
57
|
+
const definition = `
|
|
58
|
+
<${this.toolName}>
|
|
59
|
+
Overwrites an existing file with new content. This is a destructive operation that replaces the **entire file**.
|
|
60
|
+
You MUST provide the full, final content of the file.
|
|
61
|
+
|
|
62
|
+
Parameters:
|
|
63
|
+
- "file_path": (string) The relative path to the file to be overwritten.
|
|
64
|
+
- "content": (string) The new, complete content for the file.
|
|
65
|
+
|
|
66
|
+
<example>
|
|
67
|
+
Explanation: Refactor the entire 'app.config.ts' to a new, more structured format.
|
|
68
|
+
${example}
|
|
69
|
+
</example>
|
|
70
|
+
|
|
71
|
+
<bad_example>
|
|
72
|
+
Explanation: This is an incorrect use case. The 'content' field only contains a small snippet, not the entire file. This tool would wipe the original file and replace it with only the new lines, which is not the intended outcome.
|
|
73
|
+
${badExample}
|
|
74
|
+
</bad_example>
|
|
75
|
+
</${this.toolName}>
|
|
76
|
+
`;
|
|
77
|
+
return definition.trim();
|
|
78
|
+
}
|
|
24
79
|
resolveAndValidatePath(unsafePath) {
|
|
25
80
|
const normalizedPath = path.normalize(unsafePath);
|
|
26
81
|
if (path.isAbsolute(normalizedPath)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit-file.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/edit-file.handler.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAKwB;AACxB,kCAAkC;AAClC,6BAA6B;AAC7B,yDAAiD;AACjD,qDAA2C;AAM3C,iFAA4E;AAC5E,iEAA2D;
|
|
1
|
+
{"version":3,"file":"edit-file.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/edit-file.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { ActionHandler } from './action-handler.interface';
|
|
|
2
2
|
import { ActionExecutionResult, PlanExecutionContext } from '../llm-orchestration.interfaces';
|
|
3
3
|
export declare class FinalHandler implements ActionHandler {
|
|
4
4
|
readonly toolName = "final";
|
|
5
|
+
getDefinition(): string;
|
|
5
6
|
execute(args: {
|
|
6
7
|
[key: string]: any;
|
|
7
8
|
}, context: PlanExecutionContext): Promise<ActionExecutionResult>;
|
|
@@ -12,10 +12,30 @@ const final_args_dto_1 = require("./dto/final.args.dto");
|
|
|
12
12
|
const class_transformer_1 = require("class-transformer");
|
|
13
13
|
const class_validator_1 = require("class-validator");
|
|
14
14
|
const handler_validation_error_1 = require("../errors/handler-validation.error");
|
|
15
|
+
const utils_1 = require("../../utils");
|
|
15
16
|
let FinalHandler = class FinalHandler {
|
|
16
17
|
constructor() {
|
|
17
18
|
this.toolName = 'final';
|
|
18
19
|
}
|
|
20
|
+
getDefinition() {
|
|
21
|
+
const example = (0, utils_1.generateToolCall)({
|
|
22
|
+
tool_name: this.toolName,
|
|
23
|
+
plain: 'The task is complete. I have refactored the component and added the new feature.',
|
|
24
|
+
});
|
|
25
|
+
const definition = `
|
|
26
|
+
<${this.toolName}>
|
|
27
|
+
Marks the end of a plan. This should be the last action in a sequence when the task is complete.
|
|
28
|
+
|
|
29
|
+
Parameters:
|
|
30
|
+
- "plain": (string, optional) A final concluding message or summary for the user.
|
|
31
|
+
|
|
32
|
+
<example>
|
|
33
|
+
${example}
|
|
34
|
+
</example>
|
|
35
|
+
</${this.toolName}>
|
|
36
|
+
`;
|
|
37
|
+
return definition.trim();
|
|
38
|
+
}
|
|
19
39
|
async execute(args, context) {
|
|
20
40
|
const validatedArgs = (0, class_transformer_1.plainToClass)(final_args_dto_1.FinalArgsDto, args);
|
|
21
41
|
const errors = await (0, class_validator_1.validate)(validatedArgs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"final.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/final.handler.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAM5C,yDAAoD;AACpD,yDAAiD;AACjD,qDAA2C;AAC3C,iFAA4E;
|
|
1
|
+
{"version":3,"file":"final.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/final.handler.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAM5C,yDAAoD;AACpD,yDAAiD;AACjD,qDAA2C;AAC3C,iFAA4E;AAC5E,uCAA+C;AAGxC,IAAM,YAAY,GAAlB,MAAM,YAAY;IAAlB;QACI,aAAQ,GAAG,OAAO,CAAC;IA6C9B,CAAC;IA3CC,aAAa;QACX,MAAM,OAAO,GAAG,IAAA,wBAAgB,EAAC;YAC/B,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,KAAK,EACH,kFAAkF;SACrF,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG;GACpB,IAAI,CAAC,QAAQ;;;;;;;EAOd,OAAO;;IAEL,IAAI,CAAC,QAAQ;CAChB,CAAC;QACE,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,OAAO,CACX,IAA4B,EAC5B,OAA6B;QAE7B,MAAM,aAAa,GAAG,IAAA,gCAAY,EAAC,6BAAY,EAAE,IAAI,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAQ,EAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,MAAM;iBACzB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC7D,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,IAAI,iDAAsB,CAAC,aAAa,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE9B,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,uBAAuB;YAChC,cAAc,EAAE,aAAa;SAC9B,CAAC;IACJ,CAAC;CACF,CAAA;AA9CY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;GACA,YAAY,CA8CxB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ActionHandler } from './action-handler.interface';
|
|
2
|
+
import { ActionExecutionResult, PlanExecutionContext } from '../llm-orchestration.interfaces';
|
|
3
|
+
export declare class HowtoHandler implements ActionHandler {
|
|
4
|
+
readonly toolName = "howto";
|
|
5
|
+
getDefinition(): string;
|
|
6
|
+
execute(args: {
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
}, _context: PlanExecutionContext): Promise<ActionExecutionResult>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.HowtoHandler = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const utils_1 = require("../../utils");
|
|
12
|
+
const howto_args_dto_1 = require("./dto/howto.args.dto");
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const parsing_constants_1 = require("../parser/parsing.constants");
|
|
16
|
+
let HowtoHandler = class HowtoHandler {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.toolName = 'howto';
|
|
19
|
+
}
|
|
20
|
+
getDefinition() {
|
|
21
|
+
const singleToolExample = (0, utils_1.generateToolCall)({
|
|
22
|
+
tool_name: 'do_something',
|
|
23
|
+
target_file: 'src/components/Component.tsx',
|
|
24
|
+
reason: 'Refactoring the component to use the new API.',
|
|
25
|
+
});
|
|
26
|
+
const batchExample = [
|
|
27
|
+
(0, utils_1.generateToolCall)({
|
|
28
|
+
tool_name: 'tool1',
|
|
29
|
+
argA: 'value for tool 1',
|
|
30
|
+
argB: 'another value',
|
|
31
|
+
}),
|
|
32
|
+
(0, utils_1.generateToolCall)({
|
|
33
|
+
tool_name: 'tool2',
|
|
34
|
+
target_path: 'src/modules/some-feature/file.ts',
|
|
35
|
+
mode: 'read-only',
|
|
36
|
+
}),
|
|
37
|
+
(0, utils_1.generateToolCall)({
|
|
38
|
+
tool_name: 'tool3',
|
|
39
|
+
config_option: 'enable_feature_x',
|
|
40
|
+
value: true,
|
|
41
|
+
}),
|
|
42
|
+
(0, utils_1.generateToolCall)({
|
|
43
|
+
tool_name: 'tool1',
|
|
44
|
+
argA: 'a different value for tool 1',
|
|
45
|
+
argB: 'yet another value',
|
|
46
|
+
}),
|
|
47
|
+
].join('\n---\n');
|
|
48
|
+
const definition = `
|
|
49
|
+
<${this.toolName}>
|
|
50
|
+
This is a guide on how to structure tool calls. It is not an executable tool itself.
|
|
51
|
+
|
|
52
|
+
Each action must be wrapped in \`${parsing_constants_1.ACTION_ITEM_START_TAG}\` and \`${parsing_constants_1.ACTION_ITEM_END_TAG}\` tags.
|
|
53
|
+
Fields are defined using the \`${parsing_constants_1.SPECIAL_FIELD_TOKEN}\` delimiter (e.g., \`${parsing_constants_1.SPECIAL_FIELD_TOKEN}field_name${parsing_constants_1.SPECIAL_FIELD_TOKEN} value\`).
|
|
54
|
+
The \`${parsing_constants_1.SPECIAL_FIELD_TOKEN}${parsing_constants_1.FIELD_TOOL_NAME}${parsing_constants_1.SPECIAL_FIELD_TOKEN}\` field is mandatory for all tools. Other arguments are tool-specific.
|
|
55
|
+
|
|
56
|
+
## Single Tool Call
|
|
57
|
+
|
|
58
|
+
Each tool call must be enclosed in its own action item block. The tool name is mandatory, followed by its arguments.
|
|
59
|
+
|
|
60
|
+
<example>
|
|
61
|
+
${singleToolExample}
|
|
62
|
+
</example>
|
|
63
|
+
|
|
64
|
+
## Parallel (Batch) Tool Calls
|
|
65
|
+
|
|
66
|
+
To execute multiple tools in parallel, define multiple action items back-to-back, separated by '---'. The system will execute compatible, non-conflicting actions concurrently.
|
|
67
|
+
|
|
68
|
+
<example>
|
|
69
|
+
${batchExample}
|
|
70
|
+
</example>
|
|
71
|
+
</${this.toolName}>
|
|
72
|
+
`;
|
|
73
|
+
return definition.trim();
|
|
74
|
+
}
|
|
75
|
+
async execute(args, _context) {
|
|
76
|
+
const validatedArgs = (0, class_transformer_1.plainToClass)(howto_args_dto_1.HowtoArgsDto, args);
|
|
77
|
+
await (0, class_validator_1.validate)(validatedArgs);
|
|
78
|
+
throw new common_1.BadRequestException(`'${this.toolName}' is a documentation placeholder and not an executable tool.`);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
exports.HowtoHandler = HowtoHandler;
|
|
82
|
+
exports.HowtoHandler = HowtoHandler = __decorate([
|
|
83
|
+
(0, common_1.Injectable)()
|
|
84
|
+
], HowtoHandler);
|
|
85
|
+
//# sourceMappingURL=howto.handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"howto.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/howto.handler.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAiE;AAMjE,uCAA+C;AAC/C,yDAAoD;AACpD,yDAAiD;AACjD,qDAA2C;AAC3C,mEAKqC;AAG9B,IAAM,YAAY,GAAlB,MAAM,YAAY;IAAlB;QACI,aAAQ,GAAG,OAAO,CAAC;IA0E9B,CAAC;IAxEC,aAAa;QACX,MAAM,iBAAiB,GAAG,IAAA,wBAAgB,EAAC;YACzC,SAAS,EAAE,cAAc;YACzB,WAAW,EAAE,8BAA8B;YAC3C,MAAM,EAAE,+CAA+C;SACxD,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG;YACnB,IAAA,wBAAgB,EAAC;gBACf,SAAS,EAAE,OAAO;gBAClB,IAAI,EAAE,kBAAkB;gBACxB,IAAI,EAAE,eAAe;aACtB,CAAC;YACF,IAAA,wBAAgB,EAAC;gBACf,SAAS,EAAE,OAAO;gBAClB,WAAW,EAAE,kCAAkC;gBAC/C,IAAI,EAAE,WAAW;aAClB,CAAC;YACF,IAAA,wBAAgB,EAAC;gBACf,SAAS,EAAE,OAAO;gBAClB,aAAa,EAAE,kBAAkB;gBACjC,KAAK,EAAE,IAAI;aACZ,CAAC;YACF,IAAA,wBAAgB,EAAC;gBACf,SAAS,EAAE,OAAO;gBAClB,IAAI,EAAE,8BAA8B;gBACpC,IAAI,EAAE,mBAAmB;aAC1B,CAAC;SACH,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAElB,MAAM,UAAU,GAAG;GACpB,IAAI,CAAC,QAAQ;;;qCAGqB,yCAAqB,YAAY,uCAAmB;mCACtD,uCAAmB,yBAAyB,uCAAmB,aAAa,uCAAmB;UACxH,uCAAmB,GAAG,mCAAe,GAAG,uCAAmB;;;;;;;EAOnE,iBAAiB;;;;;;;;EAQjB,YAAY;;IAEV,IAAI,CAAC,QAAQ;CAChB,CAAC;QACE,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,OAAO,CACX,IAA4B,EAE5B,QAA8B;QAG9B,MAAM,aAAa,GAAG,IAAA,gCAAY,EAAC,6BAAY,EAAE,IAAI,CAAC,CAAC;QACvD,MAAM,IAAA,0BAAQ,EAAC,aAAa,CAAC,CAAC;QAG9B,MAAM,IAAI,4BAAmB,CAC3B,IAAI,IAAI,CAAC,QAAQ,8DAA8D,CAChF,CAAC;IACJ,CAAC;CACF,CAAA;AA3EY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;GACA,YAAY,CA2ExB"}
|