repoburg 1.3.69 → 1.3.71
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/.env +2 -2
- package/backend/.eslintrc.js +5 -0
- package/backend/dist/src/application-state/application-state.controller.d.ts +5 -0
- package/backend/dist/src/application-state/application-state.controller.js +22 -0
- package/backend/dist/src/application-state/application-state.controller.js.map +1 -1
- package/backend/dist/src/application-state/application-state.service.d.ts +2 -0
- package/backend/dist/src/application-state/application-state.service.js +11 -0
- package/backend/dist/src/application-state/application-state.service.js.map +1 -1
- package/backend/dist/src/application-state/dto/set-history-compression-enabled.dto.d.ts +3 -0
- package/backend/dist/src/application-state/dto/set-history-compression-enabled.dto.js +21 -0
- package/backend/dist/src/application-state/dto/set-history-compression-enabled.dto.js.map +1 -0
- package/backend/dist/src/core-entities/ai-action.entity.d.ts +1 -0
- package/backend/dist/src/core-entities/ai-action.entity.js +4 -0
- package/backend/dist/src/core-entities/ai-action.entity.js.map +1 -1
- package/backend/dist/src/interactive-chat/chat.module.js +2 -1
- package/backend/dist/src/interactive-chat/chat.module.js.map +1 -1
- package/backend/dist/src/interactive-chat/chat.service.d.ts +5 -1
- package/backend/dist/src/interactive-chat/chat.service.js +42 -4
- package/backend/dist/src/interactive-chat/chat.service.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/apply-diff.handler.d.ts +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/apply-diff.handler.js +14 -11
- 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 -1
- package/backend/dist/src/llm-orchestration/action-handlers/create-file.handler.js +15 -10
- 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.js +15 -2
- package/backend/dist/src/llm-orchestration/action-handlers/delete-file.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/execute-code.handler.js +8 -3
- package/backend/dist/src/llm-orchestration/action-handlers/execute-code.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/final.handler.js +8 -2
- package/backend/dist/src/llm-orchestration/action-handlers/final.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/get-session-history.handler.js +0 -5
- package/backend/dist/src/llm-orchestration/action-handlers/get-session-history.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/invoke-subagent.handler.js +41 -16
- package/backend/dist/src/llm-orchestration/action-handlers/invoke-subagent.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/list-sub-agents.handler.d.ts +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/list-sub-agents.handler.js +1 -7
- package/backend/dist/src/llm-orchestration/action-handlers/list-sub-agents.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/new-session.handler.d.ts +2 -2
- package/backend/dist/src/llm-orchestration/action-handlers/new-session.handler.js +10 -10
- package/backend/dist/src/llm-orchestration/action-handlers/new-session.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/overwrite-file.handler.d.ts +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/overwrite-file.handler.js +13 -7
- package/backend/dist/src/llm-orchestration/action-handlers/overwrite-file.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/patch.handler.d.ts +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/patch.handler.js +19 -15
- 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 -1
- package/backend/dist/src/llm-orchestration/action-handlers/quick-edit.handler.js +16 -19
- 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 +8 -2
- package/backend/dist/src/llm-orchestration/action-handlers/request-context.handler.js +75 -17
- 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 +4 -1
- package/backend/dist/src/llm-orchestration/action-handlers/run-command.handler.js +34 -10
- 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 -1
- package/backend/dist/src/llm-orchestration/action-handlers/use-mcp-tool.handler.js +8 -7
- package/backend/dist/src/llm-orchestration/action-handlers/use-mcp-tool.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/write-todo.handler.js +11 -2
- package/backend/dist/src/llm-orchestration/action-handlers/write-todo.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/history-compression.service.d.ts +12 -0
- package/backend/dist/src/llm-orchestration/history-compression.service.js +128 -0
- package/backend/dist/src/llm-orchestration/history-compression.service.js.map +1 -0
- package/backend/dist/src/llm-orchestration/hooks/follow-up-post-execution.hook.d.ts +1 -16
- package/backend/dist/src/llm-orchestration/hooks/follow-up-post-execution.hook.js +14 -155
- package/backend/dist/src/llm-orchestration/hooks/follow-up-post-execution.hook.js.map +1 -1
- package/backend/dist/src/llm-orchestration/hooks/invalid-tool-feedback.hook.js +14 -0
- package/backend/dist/src/llm-orchestration/hooks/invalid-tool-feedback.hook.js.map +1 -1
- package/backend/dist/src/llm-orchestration/hooks/yolo-mode-post-execution.hook.js +4 -2
- package/backend/dist/src/llm-orchestration/hooks/yolo-mode-post-execution.hook.js.map +1 -1
- package/backend/dist/src/llm-orchestration/llm-orchestration.interfaces.d.ts +0 -28
- package/backend/dist/src/llm-orchestration/llm-orchestration.interfaces.js +0 -11
- package/backend/dist/src/llm-orchestration/llm-orchestration.interfaces.js.map +1 -1
- package/backend/dist/src/llm-orchestration/llm-orchestration.module.js +5 -0
- package/backend/dist/src/llm-orchestration/llm-orchestration.module.js.map +1 -1
- package/backend/dist/src/llm-orchestration/llm-turn-processor.service.js +20 -25
- package/backend/dist/src/llm-orchestration/llm-turn-processor.service.js.map +1 -1
- package/backend/dist/src/llm-provider/alibaba-llm.provider.js +17 -8
- package/backend/dist/src/llm-provider/alibaba-llm.provider.js.map +1 -1
- package/backend/dist/src/llm-provider/llm-provider.interface.d.ts +1 -1
- package/backend/dist/src/llm-provider/openrouter-llm.provider.js +7 -0
- package/backend/dist/src/llm-provider/openrouter-llm.provider.js.map +1 -1
- package/backend/dist/src/llm-provider/zai-llm.provider.js +7 -0
- package/backend/dist/src/llm-provider/zai-llm.provider.js.map +1 -1
- package/backend/dist/src/seeding/data/tool-hooks/eslint-hook.d.ts +1 -1
- package/backend/dist/src/seeding/data/tool-hooks/eslint-hook.js +23 -10
- package/backend/dist/src/seeding/data/tool-hooks/eslint-hook.js.map +1 -1
- package/backend/dist/src/session-inputs/dto/session-input.dto.d.ts +1 -0
- package/backend/dist/src/session-inputs/dto/session-input.dto.js +5 -0
- package/backend/dist/src/session-inputs/dto/session-input.dto.js.map +1 -1
- package/backend/dist/src/session-inputs/session-inputs.service.d.ts +1 -1
- package/backend/dist/src/session-inputs/session-inputs.service.js +10 -0
- package/backend/dist/src/session-inputs/session-inputs.service.js.map +1 -1
- package/backend/dist/src/tool-hooks/tool-hooks.service.js +0 -5
- package/backend/dist/src/tool-hooks/tool-hooks.service.js.map +1 -1
- package/backend/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -19,7 +19,6 @@ const fs = require("fs/promises");
|
|
|
19
19
|
const path = require("path");
|
|
20
20
|
const class_transformer_1 = require("class-transformer");
|
|
21
21
|
const class_validator_1 = require("class-validator");
|
|
22
|
-
const handler_validation_error_1 = require("../errors/handler-validation.error");
|
|
23
22
|
const overwrite_file_args_dto_1 = require("./dto/overwrite-file.args.dto");
|
|
24
23
|
const utils_1 = require("../../utils");
|
|
25
24
|
const syntax_validation_service_1 = require("../../syntax-validation/syntax-validation.service");
|
|
@@ -132,14 +131,20 @@ export const AppConfig = Object.freeze({
|
|
|
132
131
|
throw error;
|
|
133
132
|
}
|
|
134
133
|
}
|
|
135
|
-
async execute(args,
|
|
134
|
+
async execute(args, _context) {
|
|
136
135
|
const validatedArgs = (0, class_transformer_1.plainToClass)(overwrite_file_args_dto_1.OverwriteFileArgsDto, args);
|
|
137
136
|
const errors = await (0, class_validator_1.validate)(validatedArgs);
|
|
138
137
|
if (errors.length > 0) {
|
|
139
138
|
const errorMessages = errors
|
|
140
139
|
.map((err) => Object.values(err.constraints || {}).join(', '))
|
|
141
140
|
.join('; ');
|
|
142
|
-
|
|
141
|
+
return {
|
|
142
|
+
status: 'FAILURE',
|
|
143
|
+
summary: `Invalid arguments for ${this.toolName}.`,
|
|
144
|
+
error_message: errorMessages,
|
|
145
|
+
persisted_args: args,
|
|
146
|
+
execution_log: { output: '', error_message: errorMessages },
|
|
147
|
+
};
|
|
143
148
|
}
|
|
144
149
|
const { file_path, content } = validatedArgs;
|
|
145
150
|
const safePath = this.resolveAndValidatePath(file_path);
|
|
@@ -157,10 +162,6 @@ export const AppConfig = Object.freeze({
|
|
|
157
162
|
errorMessage += `\n**CORRECTION:** Your overwrite introduced syntax errors. The original file content has been restored. `;
|
|
158
163
|
errorMessage += `Use \`overwrite_file\` again with the complete, corrected content. `;
|
|
159
164
|
errorMessage += `Remember: \`overwrite_file\` replaces the ENTIRE file - provide the full final content, not just the changed portion.`;
|
|
160
|
-
context.feedback.validationErrors.push({
|
|
161
|
-
tool_name: this.toolName,
|
|
162
|
-
error: errorMessage,
|
|
163
|
-
});
|
|
164
165
|
if (originalContent !== null) {
|
|
165
166
|
await fs.writeFile(safePath, originalContent, 'utf8');
|
|
166
167
|
}
|
|
@@ -172,6 +173,7 @@ export const AppConfig = Object.freeze({
|
|
|
172
173
|
summary: `File "${file_path}" contains syntax errors and was reverted.`,
|
|
173
174
|
error_message: errorMessage,
|
|
174
175
|
persisted_args: validatedArgs,
|
|
176
|
+
execution_log: { output: '', error_message: errorMessage },
|
|
175
177
|
};
|
|
176
178
|
}
|
|
177
179
|
}
|
|
@@ -181,6 +183,10 @@ export const AppConfig = Object.freeze({
|
|
|
181
183
|
summary: `File "${file_path}" overwritten.`,
|
|
182
184
|
persisted_args: { file_path, content },
|
|
183
185
|
original_content_for_revert: originalContent,
|
|
186
|
+
execution_log: {
|
|
187
|
+
output: `${file_path} has been overwritten.`,
|
|
188
|
+
error_message: '',
|
|
189
|
+
},
|
|
184
190
|
};
|
|
185
191
|
}
|
|
186
192
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overwrite-file.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/overwrite-file.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAMwB;AACxB,kCAAkC;AAClC,6BAA6B;AAC7B,yDAAiD;AACjD,qDAA2C;AAO3C,
|
|
1
|
+
{"version":3,"file":"overwrite-file.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/overwrite-file.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,5 +18,5 @@ export declare class PatchHandler implements ActionHandler {
|
|
|
18
18
|
private handleFullFileReplacement;
|
|
19
19
|
execute(args: {
|
|
20
20
|
[key: string]: any;
|
|
21
|
-
},
|
|
21
|
+
}, _context: PlanExecutionContext): Promise<ActionExecutionResult>;
|
|
22
22
|
}
|
|
@@ -20,7 +20,6 @@ const fs_1 = require("fs");
|
|
|
20
20
|
const path = require("path");
|
|
21
21
|
const class_transformer_1 = require("class-transformer");
|
|
22
22
|
const class_validator_1 = require("class-validator");
|
|
23
|
-
const handler_validation_error_1 = require("../errors/handler-validation.error");
|
|
24
23
|
const patch_args_dto_1 = require("./dto/patch.args.dto");
|
|
25
24
|
const tokenpatch_1 = require("../../../packages/tokenpatch");
|
|
26
25
|
const utils_1 = require("../../utils");
|
|
@@ -320,16 +319,26 @@ ${prependExample}
|
|
|
320
319
|
summary: `File "${filePath}" completely overwritten (detected both start/end markers).`,
|
|
321
320
|
persisted_args: { ...validatedArgs, content: newFileContent },
|
|
322
321
|
original_content_for_revert: originalContent,
|
|
322
|
+
execution_log: {
|
|
323
|
+
output: `${filePath} has been overwritten.`,
|
|
324
|
+
error_message: '',
|
|
325
|
+
},
|
|
323
326
|
};
|
|
324
327
|
}
|
|
325
|
-
async execute(args,
|
|
328
|
+
async execute(args, _context) {
|
|
326
329
|
const validatedArgs = (0, class_transformer_1.plainToClass)(patch_args_dto_1.PatchArgsDto, args);
|
|
327
330
|
const errors = await (0, class_validator_1.validate)(validatedArgs);
|
|
328
331
|
if (errors.length > 0) {
|
|
329
332
|
const errorMessages = errors
|
|
330
333
|
.map((err) => Object.values(err.constraints || {}).join(', '))
|
|
331
334
|
.join('; ');
|
|
332
|
-
|
|
335
|
+
return {
|
|
336
|
+
status: 'FAILURE',
|
|
337
|
+
summary: `Invalid arguments for ${this.toolName}.`,
|
|
338
|
+
error_message: errorMessages,
|
|
339
|
+
persisted_args: args,
|
|
340
|
+
execution_log: { output: '', error_message: errorMessages },
|
|
341
|
+
};
|
|
333
342
|
}
|
|
334
343
|
const { file_path, patch_code } = validatedArgs;
|
|
335
344
|
const safePath = this.resolveAndValidatePath(file_path);
|
|
@@ -354,15 +363,12 @@ ${prependExample}
|
|
|
354
363
|
});
|
|
355
364
|
if (originalContent === null) {
|
|
356
365
|
const errorMessage = `File "${file_path}" not found.`;
|
|
357
|
-
context.feedback.validationErrors.push({
|
|
358
|
-
tool_name: this.toolName,
|
|
359
|
-
error: errorMessage,
|
|
360
|
-
});
|
|
361
366
|
return {
|
|
362
367
|
status: 'FAILURE',
|
|
363
368
|
summary: `Patch on "${file_path}" failed: File not found.`,
|
|
364
369
|
error_message: errorMessage,
|
|
365
370
|
persisted_args: validatedArgs,
|
|
371
|
+
execution_log: { output: '', error_message: errorMessage },
|
|
366
372
|
};
|
|
367
373
|
}
|
|
368
374
|
if (this.shouldUseFullReplacementStrategy(patch_code)) {
|
|
@@ -382,16 +388,13 @@ ${prependExample}
|
|
|
382
388
|
errorMessage += `Your \`patch_code\` must be syntactically correct and properly formatted. `;
|
|
383
389
|
errorMessage += `Ensure you include sufficient context (unchanged lines before/after your changes) to anchor the patch uniquely. `;
|
|
384
390
|
errorMessage += `Use \`request_context\` to get the current file state and try again with corrected \`patch_code\`.`;
|
|
385
|
-
context.feedback.validationErrors.push({
|
|
386
|
-
tool_name: this.toolName,
|
|
387
|
-
error: errorMessage,
|
|
388
|
-
});
|
|
389
391
|
await fs.writeFile(safePath, originalContent, 'utf8');
|
|
390
392
|
return {
|
|
391
393
|
status: 'FAILURE',
|
|
392
394
|
summary: `File "${file_path}" contains syntax errors after patch and was reverted.`,
|
|
393
395
|
error_message: errorMessage,
|
|
394
396
|
persisted_args: validatedArgs,
|
|
397
|
+
execution_log: { output: '', error_message: errorMessage },
|
|
395
398
|
};
|
|
396
399
|
}
|
|
397
400
|
}
|
|
@@ -401,20 +404,21 @@ ${prependExample}
|
|
|
401
404
|
summary: `File "${file_path}" successfully modified with patch.`,
|
|
402
405
|
persisted_args: { ...validatedArgs, content: newFileContent },
|
|
403
406
|
original_content_for_revert: originalContent,
|
|
407
|
+
execution_log: {
|
|
408
|
+
output: `${file_path} has been modified.`,
|
|
409
|
+
error_message: '',
|
|
410
|
+
},
|
|
404
411
|
};
|
|
405
412
|
}
|
|
406
413
|
catch (error) {
|
|
407
414
|
this.logger.error(`Failed to apply patch for ${file_path}: ${error.message}`);
|
|
408
415
|
const errorMessage = `Failed to apply patch for "${file_path}": ${error.message}\n\n**CORRECTION HINT:** The patch could not be applied. This is often because prefix or suffix anchors in patch code could not be uniquely located in the original file. Use \`request_context\` on \`'${file_path}'\` to get the latest version and try again with a more specific patch. If the patch continues to fail, consider using \`overwrite_file\` to replace the entire file content.`;
|
|
409
|
-
context.feedback.validationErrors.push({
|
|
410
|
-
tool_name: this.toolName,
|
|
411
|
-
error: errorMessage,
|
|
412
|
-
});
|
|
413
416
|
return {
|
|
414
417
|
status: 'FAILURE',
|
|
415
418
|
summary: `Patch on "${file_path}" failed: ${error.message}`,
|
|
416
419
|
error_message: errorMessage,
|
|
417
420
|
persisted_args: validatedArgs,
|
|
421
|
+
execution_log: { output: '', error_message: errorMessage },
|
|
418
422
|
};
|
|
419
423
|
}
|
|
420
424
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/patch.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAKwB;AACxB,kCAAkC;AAClC,2BAAgC;AAChC,6BAA6B;AAC7B,yDAAiD;AACjD,qDAA2C;
|
|
1
|
+
{"version":3,"file":"patch.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/patch.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,5 +21,5 @@ export declare class QuickEditHandler implements ActionHandler {
|
|
|
21
21
|
private writeMatchFailureLog;
|
|
22
22
|
execute(args: {
|
|
23
23
|
[key: string]: any;
|
|
24
|
-
},
|
|
24
|
+
}, _context: PlanExecutionContext): Promise<ActionExecutionResult>;
|
|
25
25
|
}
|
|
@@ -21,7 +21,6 @@ const path = require("path");
|
|
|
21
21
|
const os = require("os");
|
|
22
22
|
const class_transformer_1 = require("class-transformer");
|
|
23
23
|
const class_validator_1 = require("class-validator");
|
|
24
|
-
const handler_validation_error_1 = require("../errors/handler-validation.error");
|
|
25
24
|
const quick_edit_args_dto_1 = require("./dto/quick-edit.args.dto");
|
|
26
25
|
const utils_1 = require("../../utils");
|
|
27
26
|
const hybrid_matcher_1 = require("./matchers/hybrid.matcher");
|
|
@@ -204,7 +203,7 @@ ${fileContent}`;
|
|
|
204
203
|
this.logger.error(`Failed to write match failure log: ${error.message}`);
|
|
205
204
|
}
|
|
206
205
|
}
|
|
207
|
-
async execute(args,
|
|
206
|
+
async execute(args, _context) {
|
|
208
207
|
const normalizedArgs = this.normalizeArgs(args);
|
|
209
208
|
const validatedArgs = (0, class_transformer_1.plainToClass)(quick_edit_args_dto_1.QuickEditArgsDto, normalizedArgs);
|
|
210
209
|
const errors = await (0, class_validator_1.validate)(validatedArgs);
|
|
@@ -212,7 +211,13 @@ ${fileContent}`;
|
|
|
212
211
|
const errorMessages = errors
|
|
213
212
|
.map((err) => Object.values(err.constraints || {}).join(', '))
|
|
214
213
|
.join('; ');
|
|
215
|
-
|
|
214
|
+
return {
|
|
215
|
+
status: 'FAILURE',
|
|
216
|
+
summary: `Invalid arguments for ${this.toolName}.`,
|
|
217
|
+
error_message: errorMessages,
|
|
218
|
+
persisted_args: args,
|
|
219
|
+
execution_log: { output: '', error_message: errorMessages },
|
|
220
|
+
};
|
|
216
221
|
}
|
|
217
222
|
const { file_path, action, search_block, new_content } = validatedArgs;
|
|
218
223
|
const safePath = this.resolveAndValidatePath(file_path);
|
|
@@ -226,30 +231,24 @@ ${fileContent}`;
|
|
|
226
231
|
});
|
|
227
232
|
if (originalContent === null) {
|
|
228
233
|
const errorMessage = this.formatNotFoundMessage(file_path, search_block);
|
|
229
|
-
context.feedback.validationErrors.push({
|
|
230
|
-
tool_name: this.toolName,
|
|
231
|
-
error: errorMessage,
|
|
232
|
-
});
|
|
233
234
|
return {
|
|
234
235
|
status: 'FAILURE',
|
|
235
236
|
summary: `Quick edit on "${file_path}" failed: File not found.`,
|
|
236
237
|
error_message: errorMessage,
|
|
237
238
|
persisted_args: validatedArgs,
|
|
239
|
+
execution_log: { output: '', error_message: errorMessage },
|
|
238
240
|
};
|
|
239
241
|
}
|
|
240
242
|
const matchResult = this.hybridMatcher.findBestMatch(search_block, originalContent);
|
|
241
243
|
if (!matchResult.found || !matchResult.unique) {
|
|
242
244
|
await this.writeMatchFailureLog(action, search_block, file_path, originalContent);
|
|
243
245
|
const errorMessage = this.formatErrorWithCandidates(file_path, search_block, matchResult);
|
|
244
|
-
context.feedback.validationErrors.push({
|
|
245
|
-
tool_name: this.toolName,
|
|
246
|
-
error: errorMessage,
|
|
247
|
-
});
|
|
248
246
|
return {
|
|
249
247
|
status: 'FAILURE',
|
|
250
248
|
summary: `Quick edit on "${file_path}" failed: Match issue.`,
|
|
251
249
|
error_message: errorMessage,
|
|
252
250
|
persisted_args: validatedArgs,
|
|
251
|
+
execution_log: { output: '', error_message: errorMessage },
|
|
253
252
|
};
|
|
254
253
|
}
|
|
255
254
|
let newFileContent;
|
|
@@ -270,15 +269,12 @@ ${fileContent}`;
|
|
|
270
269
|
}
|
|
271
270
|
if (newFileContent === originalContent) {
|
|
272
271
|
const noChangeMessage = `The quick_edit operation on "${file_path}" resulted in no changes. The new content is identical to the original content. This typically means your edit didn't change anything (e.g., replacing with the same content, or inserting duplicate content). Please review your edit and ensure you're making the intended changes.`;
|
|
273
|
-
context.feedback.validationErrors.push({
|
|
274
|
-
tool_name: this.toolName,
|
|
275
|
-
error: noChangeMessage,
|
|
276
|
-
});
|
|
277
272
|
return {
|
|
278
273
|
status: 'FAILURE',
|
|
279
274
|
summary: `Quick edit on "${file_path}" produced no changes.`,
|
|
280
275
|
error_message: noChangeMessage,
|
|
281
276
|
persisted_args: validatedArgs,
|
|
277
|
+
execution_log: { output: '', error_message: noChangeMessage },
|
|
282
278
|
};
|
|
283
279
|
}
|
|
284
280
|
try {
|
|
@@ -294,10 +290,6 @@ ${fileContent}`;
|
|
|
294
290
|
errorMessage += `Please ensure your edit maintains syntactically valid code. `;
|
|
295
291
|
errorMessage += `Common issues: missing closing braces in inserted code, mismatched quotes, or broken imports. `;
|
|
296
292
|
errorMessage += `Use \`request_context\` to verify the file state and try again with a corrected \`search_block\` or \`new_content\`.`;
|
|
297
|
-
context.feedback.validationErrors.push({
|
|
298
|
-
tool_name: this.toolName,
|
|
299
|
-
error: errorMessage,
|
|
300
|
-
});
|
|
301
293
|
if (originalContent !== null) {
|
|
302
294
|
await fs.writeFile(safePath, originalContent, 'utf8');
|
|
303
295
|
}
|
|
@@ -309,6 +301,7 @@ ${fileContent}`;
|
|
|
309
301
|
summary: `File "${file_path}" contains syntax errors after quick_edit and was reverted.`,
|
|
310
302
|
error_message: errorMessage,
|
|
311
303
|
persisted_args: validatedArgs,
|
|
304
|
+
execution_log: { output: '', error_message: errorMessage },
|
|
312
305
|
};
|
|
313
306
|
}
|
|
314
307
|
}
|
|
@@ -318,6 +311,10 @@ ${fileContent}`;
|
|
|
318
311
|
summary: `File "${file_path}" successfully modified with quick_edit.`,
|
|
319
312
|
persisted_args: { ...validatedArgs, content: newFileContent },
|
|
320
313
|
original_content_for_revert: originalContent,
|
|
314
|
+
execution_log: {
|
|
315
|
+
output: `${file_path} has been modified.`,
|
|
316
|
+
error_message: '',
|
|
317
|
+
},
|
|
321
318
|
};
|
|
322
319
|
}
|
|
323
320
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quick-edit.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/quick-edit.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAMwB;AACxB,kCAAkC;AAClC,6BAA6B;AAC7B,6BAA6B;AAC7B,yBAAyB;AACzB,yDAAiD;AACjD,qDAA2C;
|
|
1
|
+
{"version":3,"file":"quick-edit.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/quick-edit.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAMwB;AACxB,kCAAkC;AAClC,6BAA6B;AAC7B,6BAA6B;AAC7B,yBAAyB;AACzB,yDAAiD;AACjD,qDAA2C;AAQ3C,mEAA6D;AAC7D,uCAAqE;AACrE,8DAA0D;AAC1D,iGAA4F;AAC5F,iGAA4F;AAGrF,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAU3B,YAEE,eAA0D,EAE1D,eAA0D;QAFzC,oBAAe,GAAf,eAAe,CAA0B;QAEzC,oBAAe,GAAf,eAAe,CAA0B;QAbnD,aAAQ,GAAG,YAAY,CAAC;QAChB,WAAM,GAAG,IAAI,eAAM,CAAC,kBAAgB,CAAC,IAAI,CAAC,CAAC;QAC3C,gBAAW,GAC1B,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACpC,kBAAa,GAAG,IAAI,8BAAa,EAAE,CAAC;QACpC,WAAM,GACrB,OAAO,CAAC,GAAG,CAAC,kBAAkB;YAC9B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,2BAA2B,CAAC,CAAC;IAOpD,CAAC;IAEJ,WAAW;QACT,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACrC,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2CAA2C;oBACxD,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,uGAAuG;oBACzG,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,uEAAuE;oBACzE,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wFAAwF;oBAC1F,QAAQ,EAAE,KAAK;iBAChB;aACF;SACF,CAAC;IACJ,CAAC;IAQO,eAAe,CACrB,QAA6B,EAC7B,UAAmB,KAAK;QAExB,OAAO,OAAO;YACZ,CAAC,CAAC,IAAA,4BAAoB,EAAC,QAAQ,CAAC;YAChC,CAAC,CAAC,IAAA,wBAAgB,EAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,aAAa,CAAC,gBAAyB,KAAK;QAC1C,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAC7C;YACE,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,SAAS,EAAE,2BAA2B;YACtC,MAAM,EAAE,cAAc;YACtB,YAAY,EAAE,4BAA4B;YAC1C,WAAW,EAAE,4CAA4C;SAC1D,EACD,aAAa,CACd,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CACzC;YACE,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,SAAS,EAAE,eAAe;YAC1B,MAAM,EAAE,SAAS;YACjB,YAAY,EAAE,kCAAkC;YAChD,WAAW,EAAE,wDAAwD;SACtE,EACD,aAAa,CACd,CAAC;QAEF,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CACxC;YACE,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,SAAS,EAAE,qBAAqB;YAChC,MAAM,EAAE,cAAc;YACtB,YAAY,EAAE;;;;OAIf,CAAC,IAAI,EAAE;SACP,EACD,aAAa,CACd,CAAC;QAEF,MAAM,UAAU,GAAG;;MAEjB,IAAI,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BjB,kBAAkB;;;;EAIlB,cAAc;;;;EAId,aAAa;;CAEd,CAAC;QACE,OAAO,KAAK,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;IACpC,CAAC;IAEO,sBAAsB,CAAC,UAAkB;QAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,4BAAmB,CAC3B,mCAAmC,UAAU,EAAE,CAChD,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACpE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,4BAAmB,CAC3B,kCAAkC,UAAU,EAAE,CAC/C,CAAC;QACJ,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAQO,aAAa,CAAC,IAAyB;QAC7C,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QAG/B,MAAM,QAAQ,GAA2B;YACvC,WAAW,EAAE,cAAc;YAC3B,MAAM,EAAE,cAAc;YACtB,MAAM,EAAE,cAAc;YACtB,WAAW,EAAE,aAAa;YAC1B,OAAO,EAAE,aAAa;SACvB,CAAC;QAEF,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5D,IAAI,SAAS,IAAI,UAAU,IAAI,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC;gBACxD,UAAU,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;gBAC5C,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,mCAAmC,SAAS,QAAQ,OAAO,GAAG,CAC/D,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAMO,qBAAqB,CAAC,QAAgB,EAAE,WAAmB;QACjE,OAAO,UAAU,QAAQ,4EAA4E,CAAC;IACxG,CAAC;IAMO,yBAAyB,CAC/B,QAAgB,EAChB,WAAmB,EACnB,WAAgB;QAGhB,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnE,OAAO,+BAA+B,QAAQ,kEAAkE,CAAC;QACnH,CAAC;QAGD,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC;QAC5C,OAAO,WAAW,KAAK,kDAAkD,QAAQ,0GAA0G,CAAC;IAC9L,CAAC;IAUO,KAAK,CAAC,oBAAoB,CAChC,MAAc,EACd,WAAmB,EACnB,QAAgB,EAChB,WAAmB;QAEnB,IAAI,CAAC;YAEH,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE9D,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACjE,MAAM,WAAW,GAAG,sBAAsB,SAAS,MAAM,CAAC;YAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAExD,MAAM,UAAU,GAAG,cAAc,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;UACrD,MAAM;YACJ,QAAQ;;;EAGlB,WAAW;;;EAGX,WAAW,EAAE,CAAC;YAEV,MAAM,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,WAAW,EAAE,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CACX,IAA4B,EAC5B,QAA8B;QAG9B,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAEhD,MAAM,aAAa,GAAG,IAAA,gCAAY,EAAC,sCAAgB,EAAE,cAAc,CAAC,CAAC;QACrE,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,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,yBAAyB,IAAI,CAAC,QAAQ,GAAG;gBAClD,aAAa,EAAE,aAAa;gBAC5B,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE;aAC5D,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,aAAa,CAAC;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAExD,MAAM,eAAe,GAAG,MAAM,EAAE;aAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;aAC1B,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QAEL,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YACzE,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,kBAAkB,SAAS,2BAA2B;gBAC/D,aAAa,EAAE,YAAY;gBAC3B,cAAc,EAAE,aAAa;gBAC7B,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE;aAC3D,CAAC;QACJ,CAAC;QAGD,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAClD,YAAY,EACZ,eAAe,CAChB,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,oBAAoB,CAC7B,MAAM,EACN,YAAY,EACZ,SAAS,EACT,eAAe,CAChB,CAAC;YACF,MAAM,YAAY,GAAG,IAAI,CAAC,yBAAyB,CACjD,SAAS,EACT,YAAY,EACZ,WAAW,CACZ,CAAC;YACF,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,kBAAkB,SAAS,wBAAwB;gBAC5D,aAAa,EAAE,YAAY;gBAC3B,cAAc,EAAE,aAAa;gBAC7B,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE;aAC3D,CAAC;QACJ,CAAC;QAED,IAAI,cAAsB,CAAC;QAC3B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC;QAEtC,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,SAAS;gBACZ,cAAc,GAAG,GAAG,MAAM,GAAG,WAAW,GAAG,KAAK,EAAE,CAAC;gBACnD,MAAM;YACR,KAAK,cAAc;gBACjB,cAAc,GAAG,GAAG,MAAM,GAAG,YAAY,KAAK,WAAW,GAAG,KAAK,EAAE,CAAC;gBACpE,MAAM;YACR,KAAK,eAAe;gBAClB,cAAc,GAAG,GAAG,MAAM,GAAG,WAAW,KAAK,YAAY,GAAG,KAAK,EAAE,CAAC;gBACpE,MAAM;YACR,KAAK,cAAc;gBACjB,cAAc,GAAG,GAAG,MAAM,GAAG,KAAK,EAAE,CAAC;gBACrC,MAAM;QACV,CAAC;QAED,IAAI,cAAc,KAAK,eAAe,EAAE,CAAC;YACvC,MAAM,eAAe,GAAG,gCAAgC,SAAS,uRAAuR,CAAC;YAEzV,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,kBAAkB,SAAS,wBAAwB;gBAC5D,aAAa,EAAE,eAAe;gBAC9B,cAAc,EAAE,aAAa;gBAC7B,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE;aAC9D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;YAGrD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACjD,MAAM,mBAAmB,GACvB,MAAM,IAAI,CAAC,eAAe,CAAC,0BAA0B,EAAE,CAAC;gBAE1D,IAAI,mBAAmB,EAAE,CAAC;oBACxB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CACzD,SAAS,EACT,cAAc,CACf,CAAC;oBAEF,IAAI,eAAe,EAAE,CAAC;wBACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,+CAA+C,SAAS,GAAG,CAC5D,CAAC;wBACF,IAAI,YAAY,GACd,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;wBACrD,YAAY,IAAI,+GAA+G,CAAC;wBAChI,YAAY,IAAI,8DAA8D,CAAC;wBAC/E,YAAY,IAAI,gGAAgG,CAAC;wBACjH,YAAY,IAAI,sHAAsH,CAAC;wBAEvI,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;4BAC7B,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;wBACxD,CAAC;6BAAM,CAAC;4BACN,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;wBAC5C,CAAC;wBAED,OAAO;4BACL,MAAM,EAAE,SAAS;4BACjB,OAAO,EAAE,SAAS,SAAS,6DAA6D;4BACxF,aAAa,EAAE,YAAY;4BAC3B,cAAc,EAAE,aAAa;4BAC7B,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE;yBAC3D,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,SAAS,SAAS,0CAA0C;gBACrE,cAAc,EAAE,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE;gBAC7D,2BAA2B,EAAE,eAAe;gBAC5C,aAAa,EAAE;oBACb,MAAM,EAAE,GAAG,SAAS,qBAAqB;oBACzC,aAAa,EAAE,EAAE;iBAClB;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,0CAA0C,SAAS,KAAK,KAAK,CAAC,OAAO,EAAE,CACxE,CAAC;YACF,MAAM,IAAI,qCAA4B,CACpC,8BAA8B,SAAS,MAAM,KAAK,CAAC,OAAO,EAAE,CAC7D,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AAzaY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;IAYR,WAAA,IAAA,iBAAQ,GAAE,CAAA;IAEV,WAAA,IAAA,iBAAQ,GAAE,CAAA;qCADwB,mDAAuB;QAEvB,mDAAuB;GAdjD,gBAAgB,CAya5B"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import { ActionHandler } from './action-handler.interface';
|
|
2
|
-
import { ActionExecutionResult,
|
|
2
|
+
import { ActionExecutionResult, ToolMetadata } from '../llm-orchestration.interfaces';
|
|
3
|
+
import { ContextGenerationService } from '../../context-generation/context-generation.service';
|
|
4
|
+
import { ApplicationStateService } from '../../application-state/application-state.service';
|
|
3
5
|
export declare class RequestContextHandler implements ActionHandler {
|
|
6
|
+
private readonly contextGenerationService;
|
|
7
|
+
private readonly applicationStateService;
|
|
4
8
|
readonly toolName = "request_context";
|
|
9
|
+
private readonly logger;
|
|
10
|
+
constructor(contextGenerationService: ContextGenerationService, applicationStateService: ApplicationStateService);
|
|
5
11
|
getMetadata(): ToolMetadata;
|
|
6
12
|
private generateExample;
|
|
7
13
|
getDefinition(useJsonFormat?: boolean): string;
|
|
8
14
|
execute(args: {
|
|
9
15
|
[key: string]: any;
|
|
10
|
-
}
|
|
16
|
+
}): Promise<ActionExecutionResult>;
|
|
11
17
|
}
|
|
@@ -5,17 +5,26 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
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
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var RequestContextHandler_1;
|
|
8
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
13
|
exports.RequestContextHandler = void 0;
|
|
10
14
|
const common_1 = require("@nestjs/common");
|
|
11
15
|
const request_context_args_dto_1 = require("./dto/request-context.args.dto");
|
|
12
16
|
const class_transformer_1 = require("class-transformer");
|
|
13
17
|
const class_validator_1 = require("class-validator");
|
|
14
|
-
const handler_validation_error_1 = require("../errors/handler-validation.error");
|
|
15
18
|
const utils_1 = require("../../utils");
|
|
16
|
-
|
|
17
|
-
|
|
19
|
+
const context_generation_service_1 = require("../../context-generation/context-generation.service");
|
|
20
|
+
const application_state_service_1 = require("../../application-state/application-state.service");
|
|
21
|
+
const gpt_tokenizer_1 = require("gpt-tokenizer");
|
|
22
|
+
let RequestContextHandler = RequestContextHandler_1 = class RequestContextHandler {
|
|
23
|
+
constructor(contextGenerationService, applicationStateService) {
|
|
24
|
+
this.contextGenerationService = contextGenerationService;
|
|
25
|
+
this.applicationStateService = applicationStateService;
|
|
18
26
|
this.toolName = 'request_context';
|
|
27
|
+
this.logger = new common_1.Logger(RequestContextHandler_1.name);
|
|
19
28
|
}
|
|
20
29
|
getMetadata() {
|
|
21
30
|
return {
|
|
@@ -70,34 +79,83 @@ let RequestContextHandler = class RequestContextHandler {
|
|
|
70
79
|
`;
|
|
71
80
|
return `\n${definition.trim()}\n`;
|
|
72
81
|
}
|
|
73
|
-
async execute(args
|
|
82
|
+
async execute(args) {
|
|
74
83
|
const validatedArgs = (0, class_transformer_1.plainToClass)(request_context_args_dto_1.RequestContextArgsDto, args);
|
|
75
84
|
const errors = await (0, class_validator_1.validate)(validatedArgs);
|
|
76
85
|
if (errors.length > 0) {
|
|
77
86
|
const errorMessages = errors
|
|
78
87
|
.map((err) => Object.values(err.constraints || {}).join(', '))
|
|
79
88
|
.join('; ');
|
|
80
|
-
|
|
89
|
+
return {
|
|
90
|
+
status: 'FAILURE',
|
|
91
|
+
summary: `Invalid arguments for ${this.toolName}.`,
|
|
92
|
+
error_message: errorMessages,
|
|
93
|
+
persisted_args: args,
|
|
94
|
+
execution_log: { output: '', error_message: errorMessages },
|
|
95
|
+
};
|
|
81
96
|
}
|
|
82
97
|
const { files, folders } = validatedArgs;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
98
|
+
const fileList = files ? files.split(',').map((f) => f.trim()) : [];
|
|
99
|
+
const folderList = folders ? folders.split(',').map((f) => f.trim()) : [];
|
|
100
|
+
const outputParts = [];
|
|
101
|
+
let errorMessage = '';
|
|
102
|
+
for (const filePath of fileList) {
|
|
103
|
+
try {
|
|
104
|
+
const content = await this.contextGenerationService.secureReadFile(filePath);
|
|
105
|
+
outputParts.push(content);
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
this.logger.warn(`Failed to fetch file ${filePath}: ${error.message}`);
|
|
109
|
+
outputParts.push(`Error: File not found at '${filePath}'`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
for (const folderPath of folderList) {
|
|
113
|
+
try {
|
|
114
|
+
const folderFiles = await this.contextGenerationService.secureGlob(`${folderPath}/**/*`);
|
|
115
|
+
for (const file of folderFiles) {
|
|
116
|
+
try {
|
|
117
|
+
const content = await this.contextGenerationService.secureReadFile(file);
|
|
118
|
+
outputParts.push(content);
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
this.logger.warn(`Failed to fetch file ${file}: ${error.message}`);
|
|
122
|
+
outputParts.push(`Error: Could not read file '${file}'`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
this.logger.warn(`Failed to glob folder ${folderPath}: ${error.message}`);
|
|
128
|
+
outputParts.push(`Error: Could not read folder '${folderPath}'`);
|
|
129
|
+
errorMessage += `Failed to read folder '${folderPath}'. `;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
const output = outputParts.join('\n\n');
|
|
133
|
+
const tokenCount = (0, gpt_tokenizer_1.countTokens)(output);
|
|
134
|
+
const tokenLimit = await this.applicationStateService.getFollowupTokenLimit();
|
|
135
|
+
if (tokenCount > tokenLimit) {
|
|
136
|
+
const limitErrorMessage = `Context too large: ${tokenCount} tokens (limit: ${tokenLimit}). ` +
|
|
137
|
+
`Request fewer files or smaller folders. Consider using specific file paths instead of entire folders.`;
|
|
138
|
+
this.logger.warn(`Context request exceeded token limit: ${tokenCount} > ${tokenLimit}`);
|
|
139
|
+
return {
|
|
140
|
+
status: 'FAILURE',
|
|
141
|
+
summary: `Context request exceeded token limit.`,
|
|
142
|
+
error_message: limitErrorMessage,
|
|
143
|
+
persisted_args: validatedArgs,
|
|
144
|
+
execution_log: { output: '', error_message: limitErrorMessage },
|
|
145
|
+
};
|
|
146
|
+
}
|
|
92
147
|
return {
|
|
93
148
|
status: 'SUCCESS',
|
|
94
|
-
summary:
|
|
149
|
+
summary: `Fetched ${fileList.length} files and ${folderList.length} folders (${tokenCount} tokens).`,
|
|
95
150
|
persisted_args: validatedArgs,
|
|
151
|
+
execution_log: { output, error_message: errorMessage },
|
|
96
152
|
};
|
|
97
153
|
}
|
|
98
154
|
};
|
|
99
155
|
exports.RequestContextHandler = RequestContextHandler;
|
|
100
|
-
exports.RequestContextHandler = RequestContextHandler = __decorate([
|
|
101
|
-
(0, common_1.Injectable)()
|
|
156
|
+
exports.RequestContextHandler = RequestContextHandler = RequestContextHandler_1 = __decorate([
|
|
157
|
+
(0, common_1.Injectable)(),
|
|
158
|
+
__metadata("design:paramtypes", [context_generation_service_1.ContextGenerationService,
|
|
159
|
+
application_state_service_1.ApplicationStateService])
|
|
102
160
|
], RequestContextHandler);
|
|
103
161
|
//# sourceMappingURL=request-context.handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-context.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/request-context.handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"request-context.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/request-context.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { ActionHandler } from './action-handler.interface';
|
|
2
2
|
import { ActionExecutionResult, PlanExecutionContext, ToolMetadata } from '../llm-orchestration.interfaces';
|
|
3
|
+
import { ApplicationStateService } from '../../application-state/application-state.service';
|
|
3
4
|
export declare class RunCommandHandler implements ActionHandler {
|
|
5
|
+
private readonly applicationStateService;
|
|
4
6
|
readonly toolName = "run_command";
|
|
5
7
|
private readonly logger;
|
|
6
8
|
private readonly projectRoot;
|
|
7
9
|
private readonly tempDir;
|
|
10
|
+
constructor(applicationStateService: ApplicationStateService);
|
|
8
11
|
getMetadata(): ToolMetadata;
|
|
9
12
|
private generateExample;
|
|
10
13
|
getDefinition(useJsonFormat?: boolean): string;
|
|
11
14
|
execute(args: {
|
|
12
15
|
[key: string]: any;
|
|
13
|
-
},
|
|
16
|
+
}, _context: PlanExecutionContext): Promise<ActionExecutionResult>;
|
|
14
17
|
}
|