kodu 1.2.0 → 2.0.1
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/AGENTS.md +36 -68
- package/README.md +128 -96
- package/dist/package.json +1 -2
- package/dist/src/app.module.js +0 -8
- package/dist/src/app.module.js.map +1 -1
- package/dist/src/commands/clean/clean.command.d.ts +14 -1
- package/dist/src/commands/clean/clean.command.js +142 -32
- package/dist/src/commands/clean/clean.command.js.map +1 -1
- package/dist/src/commands/init/init.command.d.ts +2 -9
- package/dist/src/commands/init/init.command.js +15 -241
- package/dist/src/commands/init/init.command.js.map +1 -1
- package/dist/src/commands/pack/pack.command.d.ts +12 -1
- package/dist/src/commands/pack/pack.command.js +81 -6
- package/dist/src/commands/pack/pack.command.js.map +1 -1
- package/dist/src/commands/pack/pack.module.js +2 -1
- package/dist/src/commands/pack/pack.module.js.map +1 -1
- package/dist/src/core/config/config.schema.d.ts +0 -46
- package/dist/src/core/config/config.schema.js +1 -51
- package/dist/src/core/config/config.schema.js.map +1 -1
- package/dist/src/core/config/config.service.js +2 -2
- package/dist/src/core/config/config.service.js.map +1 -1
- package/dist/src/core/config/prompt.service.d.ts +1 -4
- package/dist/src/core/config/prompt.service.js +4 -17
- package/dist/src/core/config/prompt.service.js.map +1 -1
- package/dist/src/shared/cleaner/cleaner.service.d.ts +2 -0
- package/dist/src/shared/cleaner/cleaner.service.js +32 -7
- package/dist/src/shared/cleaner/cleaner.service.js.map +1 -1
- package/dist/src/shared/cleaner/cleaner.types.d.ts +7 -0
- package/dist/src/shared/constants.d.ts +0 -4
- package/dist/src/shared/constants.js +1 -5
- package/dist/src/shared/constants.js.map +1 -1
- package/dist/src/shared/git/git.module.js +0 -2
- package/dist/src/shared/git/git.module.js.map +1 -1
- package/dist/src/shared/git/git.service.d.ts +1 -8
- package/dist/src/shared/git/git.service.js +10 -33
- package/dist/src/shared/git/git.service.js.map +1 -1
- package/dist/src/shared/tokenizer/tokenizer.module.js +0 -2
- package/dist/src/shared/tokenizer/tokenizer.module.js.map +1 -1
- package/dist/src/shared/tokenizer/tokenizer.service.d.ts +0 -6
- package/dist/src/shared/tokenizer/tokenizer.service.js +8 -38
- package/dist/src/shared/tokenizer/tokenizer.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/kodu.schema.json +0 -139
- package/package.json +1 -2
- package/src/app.module.ts +0 -8
- package/src/commands/clean/clean.command.ts +143 -33
- package/src/commands/init/init.command.ts +15 -310
- package/src/commands/pack/pack.command.ts +74 -4
- package/src/commands/pack/pack.module.ts +2 -1
- package/src/core/config/config.schema.ts +1 -68
- package/src/core/config/config.service.ts +2 -2
- package/src/core/config/prompt.service.ts +4 -26
- package/src/shared/cleaner/cleaner.service.ts +43 -12
- package/src/shared/cleaner/cleaner.types.ts +7 -0
- package/src/shared/constants.ts +0 -4
- package/src/shared/git/git.module.ts +0 -2
- package/src/shared/git/git.service.ts +9 -31
- package/src/shared/tokenizer/tokenizer.module.ts +0 -2
- package/src/shared/tokenizer/tokenizer.service.ts +9 -39
- package/.kodu/prompts/.keep +0 -0
- package/.kodu/prompts/commit.md +0 -9
- package/.kodu/prompts/pack.md +0 -7
- package/.kodu/prompts/review-bug.md +0 -6
- package/.kodu/prompts/review-security.md +0 -6
- package/.kodu/prompts/review-style.md +0 -6
- package/.opencode/command/openspec-apply.md +0 -24
- package/.opencode/command/openspec-archive.md +0 -27
- package/.opencode/command/openspec-proposal.md +0 -29
- package/.opencode/skills/kodu-ops/SKILL.md +0 -184
- package/dist/src/commands/commit/commit.command.d.ts +0 -18
- package/dist/src/commands/commit/commit.command.js +0 -149
- package/dist/src/commands/commit/commit.command.js.map +0 -1
- package/dist/src/commands/commit/commit.module.d.ts +0 -2
- package/dist/src/commands/commit/commit.module.js +0 -25
- package/dist/src/commands/commit/commit.module.js.map +0 -1
- package/dist/src/commands/ops/ops.command.d.ts +0 -4
- package/dist/src/commands/ops/ops.command.js +0 -39
- package/dist/src/commands/ops/ops.command.js.map +0 -1
- package/dist/src/commands/ops/ops.module.d.ts +0 -2
- package/dist/src/commands/ops/ops.module.js +0 -33
- package/dist/src/commands/ops/ops.module.js.map +0 -1
- package/dist/src/commands/ops/ops.types.d.ts +0 -13
- package/dist/src/commands/ops/ops.types.js +0 -12
- package/dist/src/commands/ops/ops.types.js.map +0 -1
- package/dist/src/commands/ops/ops.utils.d.ts +0 -13
- package/dist/src/commands/ops/ops.utils.js +0 -121
- package/dist/src/commands/ops/ops.utils.js.map +0 -1
- package/dist/src/commands/ops/subcommands/ops-env.command.d.ts +0 -24
- package/dist/src/commands/ops/subcommands/ops-env.command.js +0 -156
- package/dist/src/commands/ops/subcommands/ops-env.command.js.map +0 -1
- package/dist/src/commands/ops/subcommands/ops-routes.command.d.ts +0 -22
- package/dist/src/commands/ops/subcommands/ops-routes.command.js +0 -203
- package/dist/src/commands/ops/subcommands/ops-routes.command.js.map +0 -1
- package/dist/src/commands/ops/subcommands/ops-service.command.d.ts +0 -22
- package/dist/src/commands/ops/subcommands/ops-service.command.js +0 -169
- package/dist/src/commands/ops/subcommands/ops-service.command.js.map +0 -1
- package/dist/src/commands/ops/subcommands/ops-sysinfo.command.d.ts +0 -14
- package/dist/src/commands/ops/subcommands/ops-sysinfo.command.js +0 -75
- package/dist/src/commands/ops/subcommands/ops-sysinfo.command.js.map +0 -1
- package/dist/src/commands/review/review.command.d.ts +0 -26
- package/dist/src/commands/review/review.command.js +0 -205
- package/dist/src/commands/review/review.command.js.map +0 -1
- package/dist/src/commands/review/review.module.d.ts +0 -2
- package/dist/src/commands/review/review.module.js +0 -26
- package/dist/src/commands/review/review.module.js.map +0 -1
- package/dist/src/core/config/default-prompts.d.ts +0 -9
- package/dist/src/core/config/default-prompts.js +0 -49
- package/dist/src/core/config/default-prompts.js.map +0 -1
- package/dist/src/shared/ai/ai.module.d.ts +0 -2
- package/dist/src/shared/ai/ai.module.js +0 -23
- package/dist/src/shared/ai/ai.module.js.map +0 -1
- package/dist/src/shared/ai/ai.service.d.ts +0 -22
- package/dist/src/shared/ai/ai.service.js +0 -164
- package/dist/src/shared/ai/ai.service.js.map +0 -1
- package/dist/src/shared/ssh/ssh.module.d.ts +0 -2
- package/dist/src/shared/ssh/ssh.module.js +0 -21
- package/dist/src/shared/ssh/ssh.module.js.map +0 -1
- package/dist/src/shared/ssh/ssh.service.d.ts +0 -11
- package/dist/src/shared/ssh/ssh.service.js +0 -53
- package/dist/src/shared/ssh/ssh.service.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/src/commands/commit/commit.command.ts +0 -139
- package/src/commands/commit/commit.module.ts +0 -12
- package/src/commands/ops/ops.command.ts +0 -30
- package/src/commands/ops/ops.module.ts +0 -20
- package/src/commands/ops/ops.types.ts +0 -24
- package/src/commands/ops/ops.utils.ts +0 -160
- package/src/commands/ops/subcommands/ops-env.command.ts +0 -165
- package/src/commands/ops/subcommands/ops-routes.command.ts +0 -221
- package/src/commands/ops/subcommands/ops-service.command.ts +0 -190
- package/src/commands/ops/subcommands/ops-sysinfo.command.ts +0 -77
- package/src/commands/review/review.command.ts +0 -199
- package/src/commands/review/review.module.ts +0 -13
- package/src/core/config/default-prompts.ts +0 -53
- package/src/shared/ai/ai.module.ts +0 -10
- package/src/shared/ai/ai.service.ts +0 -216
- package/src/shared/ssh/ssh.module.ts +0 -8
- package/src/shared/ssh/ssh.service.ts +0 -61
|
@@ -21,6 +21,7 @@ const config_service_1 = require("../../core/config/config.service");
|
|
|
21
21
|
const prompt_service_1 = require("../../core/config/prompt.service");
|
|
22
22
|
const fs_service_1 = require("../../core/file-system/fs.service");
|
|
23
23
|
const ui_service_1 = require("../../core/ui/ui.service");
|
|
24
|
+
const cleaner_service_1 = require("../../shared/cleaner/cleaner.service");
|
|
24
25
|
const tokenizer_service_1 = require("../../shared/tokenizer/tokenizer.service");
|
|
25
26
|
let PackCommand = class PackCommand extends nest_commander_1.CommandRunner {
|
|
26
27
|
ui;
|
|
@@ -28,13 +29,15 @@ let PackCommand = class PackCommand extends nest_commander_1.CommandRunner {
|
|
|
28
29
|
promptService;
|
|
29
30
|
fsService;
|
|
30
31
|
tokenizer;
|
|
31
|
-
|
|
32
|
+
cleaner;
|
|
33
|
+
constructor(ui, configService, promptService, fsService, tokenizer, cleaner) {
|
|
32
34
|
super();
|
|
33
35
|
this.ui = ui;
|
|
34
36
|
this.configService = configService;
|
|
35
37
|
this.promptService = promptService;
|
|
36
38
|
this.fsService = fsService;
|
|
37
39
|
this.tokenizer = tokenizer;
|
|
40
|
+
this.cleaner = cleaner;
|
|
38
41
|
}
|
|
39
42
|
parseCopy() {
|
|
40
43
|
return true;
|
|
@@ -48,16 +51,33 @@ let PackCommand = class PackCommand extends nest_commander_1.CommandRunner {
|
|
|
48
51
|
parsePath(value, previous = []) {
|
|
49
52
|
return [...previous, value];
|
|
50
53
|
}
|
|
54
|
+
parseExclude(value, previous = []) {
|
|
55
|
+
return [...previous, value];
|
|
56
|
+
}
|
|
57
|
+
parseList() {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
parseClean() {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
parseFormat(value) {
|
|
64
|
+
if (value !== 'xml' && value !== 'text') {
|
|
65
|
+
this.ui.log.warn(`Unknown format "${value}", using "xml"`);
|
|
66
|
+
return 'xml';
|
|
67
|
+
}
|
|
68
|
+
return value;
|
|
69
|
+
}
|
|
51
70
|
async run(_inputs, options) {
|
|
52
71
|
const spinner = this.ui
|
|
53
72
|
.createSpinner({ text: 'Collecting files...' })
|
|
54
73
|
.start();
|
|
55
74
|
try {
|
|
56
75
|
const { packer } = this.configService.getConfig();
|
|
76
|
+
const extraExcludes = options.exclude ?? [];
|
|
57
77
|
const files = await this.fsService.findProjectFiles({
|
|
58
78
|
excludeBinary: true,
|
|
59
79
|
useGitignore: packer.useGitignore,
|
|
60
|
-
ignore: packer.ignore,
|
|
80
|
+
ignore: [...packer.ignore, ...extraExcludes],
|
|
61
81
|
contentBasedBinaryDetection: packer.contentBasedBinaryDetection,
|
|
62
82
|
rootPaths: options.path,
|
|
63
83
|
});
|
|
@@ -66,7 +86,15 @@ let PackCommand = class PackCommand extends nest_commander_1.CommandRunner {
|
|
|
66
86
|
this.ui.log.warn('No files to pack.');
|
|
67
87
|
return;
|
|
68
88
|
}
|
|
69
|
-
|
|
89
|
+
if (options.list) {
|
|
90
|
+
spinner.success(`Found ${files.length} files`);
|
|
91
|
+
for (const file of files) {
|
|
92
|
+
this.ui.log.info(file);
|
|
93
|
+
}
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const format = options.format ?? 'xml';
|
|
97
|
+
const context = await this.buildContext(files, format, options.clean);
|
|
70
98
|
const fileList = files.join('\n');
|
|
71
99
|
const { tokens, usdEstimate } = this.tokenizer.count(context);
|
|
72
100
|
const basePrompt = await this.applyConfiguredPrompt({
|
|
@@ -91,6 +119,7 @@ let PackCommand = class PackCommand extends nest_commander_1.CommandRunner {
|
|
|
91
119
|
this.ui.log.info(`Files: ${files.length}`);
|
|
92
120
|
this.ui.log.info(`Tokens: ${tokens}`);
|
|
93
121
|
this.ui.log.info(`Cost estimate: ~$${usdEstimate.toFixed(4)}`);
|
|
122
|
+
this.ui.log.info(`Format: ${format}${options.clean ? ' (comments stripped)' : ''}`);
|
|
94
123
|
this.ui.log.success(`Saved to ${outputPath}`);
|
|
95
124
|
if (options.copy) {
|
|
96
125
|
this.ui.log.success('Result copied to clipboard');
|
|
@@ -103,11 +132,20 @@ let PackCommand = class PackCommand extends nest_commander_1.CommandRunner {
|
|
|
103
132
|
process.exitCode = 1;
|
|
104
133
|
}
|
|
105
134
|
}
|
|
106
|
-
async buildContext(files) {
|
|
135
|
+
async buildContext(files, format, clean = false) {
|
|
107
136
|
const chunks = await Promise.all(files.map(async (file) => {
|
|
108
|
-
|
|
137
|
+
let content = await this.fsService.readFileRelative(file);
|
|
138
|
+
if (clean) {
|
|
139
|
+
content = this.cleaner.cleanContent(file, content);
|
|
140
|
+
}
|
|
141
|
+
if (format === 'xml') {
|
|
142
|
+
return `<file path="${file}">\n${content}\n</file>`;
|
|
143
|
+
}
|
|
109
144
|
return `// file: ${file}\n${content}`;
|
|
110
145
|
}));
|
|
146
|
+
if (format === 'xml') {
|
|
147
|
+
return `<files>\n${chunks.join('\n\n')}\n</files>`;
|
|
148
|
+
}
|
|
111
149
|
return chunks.join('\n\n');
|
|
112
150
|
}
|
|
113
151
|
async applyTemplate(name, ctx) {
|
|
@@ -179,6 +217,42 @@ __decorate([
|
|
|
179
217
|
__metadata("design:paramtypes", [String, Array]),
|
|
180
218
|
__metadata("design:returntype", Array)
|
|
181
219
|
], PackCommand.prototype, "parsePath", null);
|
|
220
|
+
__decorate([
|
|
221
|
+
(0, nest_commander_1.Option)({
|
|
222
|
+
flags: '-e, --exclude <pattern>',
|
|
223
|
+
description: 'Additional exclude pattern (repeatable)',
|
|
224
|
+
}),
|
|
225
|
+
__metadata("design:type", Function),
|
|
226
|
+
__metadata("design:paramtypes", [String, Array]),
|
|
227
|
+
__metadata("design:returntype", Array)
|
|
228
|
+
], PackCommand.prototype, "parseExclude", null);
|
|
229
|
+
__decorate([
|
|
230
|
+
(0, nest_commander_1.Option)({
|
|
231
|
+
flags: '-l, --list',
|
|
232
|
+
description: 'Print file list only, without content',
|
|
233
|
+
}),
|
|
234
|
+
__metadata("design:type", Function),
|
|
235
|
+
__metadata("design:paramtypes", []),
|
|
236
|
+
__metadata("design:returntype", Boolean)
|
|
237
|
+
], PackCommand.prototype, "parseList", null);
|
|
238
|
+
__decorate([
|
|
239
|
+
(0, nest_commander_1.Option)({
|
|
240
|
+
flags: '--clean',
|
|
241
|
+
description: 'Strip comments in-memory before packing (files not modified)',
|
|
242
|
+
}),
|
|
243
|
+
__metadata("design:type", Function),
|
|
244
|
+
__metadata("design:paramtypes", []),
|
|
245
|
+
__metadata("design:returntype", Boolean)
|
|
246
|
+
], PackCommand.prototype, "parseClean", null);
|
|
247
|
+
__decorate([
|
|
248
|
+
(0, nest_commander_1.Option)({
|
|
249
|
+
flags: '-f, --format <format>',
|
|
250
|
+
description: 'Output format: xml (default) or text',
|
|
251
|
+
}),
|
|
252
|
+
__metadata("design:type", Function),
|
|
253
|
+
__metadata("design:paramtypes", [String]),
|
|
254
|
+
__metadata("design:returntype", String)
|
|
255
|
+
], PackCommand.prototype, "parseFormat", null);
|
|
182
256
|
exports.PackCommand = PackCommand = __decorate([
|
|
183
257
|
(0, nest_commander_1.Command)({
|
|
184
258
|
name: 'pack',
|
|
@@ -188,6 +262,7 @@ exports.PackCommand = PackCommand = __decorate([
|
|
|
188
262
|
config_service_1.ConfigService,
|
|
189
263
|
prompt_service_1.PromptService,
|
|
190
264
|
fs_service_1.FsService,
|
|
191
|
-
tokenizer_service_1.TokenizerService
|
|
265
|
+
tokenizer_service_1.TokenizerService,
|
|
266
|
+
cleaner_service_1.CleanerService])
|
|
192
267
|
], PackCommand);
|
|
193
268
|
//# sourceMappingURL=pack.command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack.command.js","sourceRoot":"","sources":["../../../../src/commands/pack/pack.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAAyC;AACzC,0DAA6B;AAC7B,4DAAmC;AACnC,mDAAgE;AAChE,qEAAiE;AACjE,qEAAiE;AACjE,kEAA8D;AAC9D,yDAAqD;AACrD,gFAA4E;
|
|
1
|
+
{"version":3,"file":"pack.command.js","sourceRoot":"","sources":["../../../../src/commands/pack/pack.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ const common_1 = require("@nestjs/common");
|
|
|
11
11
|
const config_module_1 = require("../../core/config/config.module");
|
|
12
12
|
const fs_module_1 = require("../../core/file-system/fs.module");
|
|
13
13
|
const ui_module_1 = require("../../core/ui/ui.module");
|
|
14
|
+
const cleaner_service_1 = require("../../shared/cleaner/cleaner.service");
|
|
14
15
|
const tokenizer_module_1 = require("../../shared/tokenizer/tokenizer.module");
|
|
15
16
|
const pack_command_1 = require("./pack.command");
|
|
16
17
|
let PackModule = class PackModule {
|
|
@@ -19,7 +20,7 @@ exports.PackModule = PackModule;
|
|
|
19
20
|
exports.PackModule = PackModule = __decorate([
|
|
20
21
|
(0, common_1.Module)({
|
|
21
22
|
imports: [config_module_1.ConfigModule, ui_module_1.UiModule, fs_module_1.FsModule, tokenizer_module_1.TokenizerModule],
|
|
22
|
-
providers: [pack_command_1.PackCommand],
|
|
23
|
+
providers: [pack_command_1.PackCommand, cleaner_service_1.CleanerService],
|
|
23
24
|
})
|
|
24
25
|
], PackModule);
|
|
25
26
|
//# sourceMappingURL=pack.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack.module.js","sourceRoot":"","sources":["../../../../src/commands/pack/pack.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mEAA+D;AAC/D,gEAA4D;AAC5D,uDAAmD;AACnD,8EAA0E;AAC1E,iDAA6C;AAMtC,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAJtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,4BAAY,EAAE,oBAAQ,EAAE,oBAAQ,EAAE,kCAAe,CAAC;QAC5D,SAAS,EAAE,CAAC,0BAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"pack.module.js","sourceRoot":"","sources":["../../../../src/commands/pack/pack.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mEAA+D;AAC/D,gEAA4D;AAC5D,uDAAmD;AACnD,0EAAsE;AACtE,8EAA0E;AAC1E,iDAA6C;AAMtC,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAJtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,4BAAY,EAAE,oBAAQ,EAAE,oBAAQ,EAAE,kCAAe,CAAC;QAC5D,SAAS,EAAE,CAAC,0BAAW,EAAE,gCAAc,CAAC;KACzC,CAAC;GACW,UAAU,CAAG"}
|
|
@@ -1,34 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
declare const serverConfigSchema: z.ZodObject<{
|
|
3
|
-
host: z.ZodString;
|
|
4
|
-
port: z.ZodDefault<z.ZodNumber>;
|
|
5
|
-
user: z.ZodString;
|
|
6
|
-
sshKeyPath: z.ZodString;
|
|
7
|
-
description: z.ZodOptional<z.ZodString>;
|
|
8
|
-
paths: z.ZodOptional<z.ZodObject<{
|
|
9
|
-
apps: z.ZodDefault<z.ZodString>;
|
|
10
|
-
caddy: z.ZodOptional<z.ZodString>;
|
|
11
|
-
}, z.core.$strip>>;
|
|
12
|
-
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
13
|
-
}, z.core.$strip>;
|
|
14
2
|
export declare const configSchema: z.ZodObject<{
|
|
15
3
|
$schema: z.ZodOptional<z.ZodString>;
|
|
16
|
-
llm: z.ZodOptional<z.ZodObject<{
|
|
17
|
-
model: z.ZodDefault<z.ZodString>;
|
|
18
|
-
apiKeyEnv: z.ZodDefault<z.ZodString>;
|
|
19
|
-
commands: z.ZodOptional<z.ZodDefault<z.ZodObject<{
|
|
20
|
-
commit: z.ZodOptional<z.ZodObject<{
|
|
21
|
-
modelSettings: z.ZodOptional<z.ZodObject<{
|
|
22
|
-
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
23
|
-
}, z.core.$loose>>;
|
|
24
|
-
}, z.core.$strip>>;
|
|
25
|
-
review: z.ZodOptional<z.ZodObject<{
|
|
26
|
-
modelSettings: z.ZodOptional<z.ZodObject<{
|
|
27
|
-
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
28
|
-
}, z.core.$loose>>;
|
|
29
|
-
}, z.core.$strip>>;
|
|
30
|
-
}, z.core.$strip>>>;
|
|
31
|
-
}, z.core.$strip>>;
|
|
32
4
|
cleaner: z.ZodDefault<z.ZodObject<{
|
|
33
5
|
whitelist: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
34
6
|
keepJSDoc: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -41,25 +13,7 @@ export declare const configSchema: z.ZodObject<{
|
|
|
41
13
|
contentBasedBinaryDetection: z.ZodDefault<z.ZodBoolean>;
|
|
42
14
|
}, z.core.$strip>>;
|
|
43
15
|
prompts: z.ZodOptional<z.ZodObject<{
|
|
44
|
-
review: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
45
|
-
commit: z.ZodOptional<z.ZodString>;
|
|
46
16
|
pack: z.ZodOptional<z.ZodString>;
|
|
47
17
|
}, z.core.$strip>>;
|
|
48
|
-
ops: z.ZodOptional<z.ZodObject<{
|
|
49
|
-
servers: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
50
|
-
host: z.ZodString;
|
|
51
|
-
port: z.ZodDefault<z.ZodNumber>;
|
|
52
|
-
user: z.ZodString;
|
|
53
|
-
sshKeyPath: z.ZodString;
|
|
54
|
-
description: z.ZodOptional<z.ZodString>;
|
|
55
|
-
paths: z.ZodOptional<z.ZodObject<{
|
|
56
|
-
apps: z.ZodDefault<z.ZodString>;
|
|
57
|
-
caddy: z.ZodOptional<z.ZodString>;
|
|
58
|
-
}, z.core.$strip>>;
|
|
59
|
-
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
60
|
-
}, z.core.$strip>>;
|
|
61
|
-
}, z.core.$strip>>;
|
|
62
18
|
}, z.core.$strip>;
|
|
63
19
|
export type KoduConfig = z.infer<typeof configSchema>;
|
|
64
|
-
export type ServerConfig = z.infer<typeof serverConfigSchema>;
|
|
65
|
-
export {};
|
|
@@ -2,33 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.configSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
|
-
const constants_1 = require("../../shared/constants");
|
|
6
|
-
const modelIdSchema = zod_1.z.string().regex(/^[a-zA-Z0-9-_]+\/[a-zA-Z0-9-_.]+$/, {
|
|
7
|
-
message: "Model must be in format 'provider/model-name' (e.g., 'openai/gpt-4o')",
|
|
8
|
-
});
|
|
9
|
-
const llmCommandSettingsSchema = zod_1.z
|
|
10
|
-
.object({
|
|
11
|
-
maxOutputTokens: zod_1.z.number().int().positive().optional(),
|
|
12
|
-
})
|
|
13
|
-
.passthrough();
|
|
14
|
-
const llmCommandSchema = zod_1.z.object({
|
|
15
|
-
modelSettings: llmCommandSettingsSchema.optional(),
|
|
16
|
-
});
|
|
17
|
-
const createDefaultCommandSettings = () => ({
|
|
18
|
-
commit: { modelSettings: { maxOutputTokens: constants_1.DEFAULT_COMMIT_TOKENS } },
|
|
19
|
-
review: { modelSettings: { maxOutputTokens: constants_1.DEFAULT_REVIEW_TOKENS } },
|
|
20
|
-
});
|
|
21
|
-
const llmCommandsSchema = zod_1.z
|
|
22
|
-
.object({
|
|
23
|
-
commit: llmCommandSchema.optional(),
|
|
24
|
-
review: llmCommandSchema.optional(),
|
|
25
|
-
})
|
|
26
|
-
.default(() => createDefaultCommandSettings());
|
|
27
|
-
const llmSchema = zod_1.z.object({
|
|
28
|
-
model: modelIdSchema.default(`openai/${constants_1.DEFAULT_LLM_MODEL}`),
|
|
29
|
-
apiKeyEnv: zod_1.z.string().default('OPENAI_API_KEY'),
|
|
30
|
-
commands: llmCommandsSchema.optional(),
|
|
31
|
-
});
|
|
32
5
|
const cleanerSchema = zod_1.z.object({
|
|
33
6
|
whitelist: zod_1.z.array(zod_1.z.string()).default(['//!']),
|
|
34
7
|
keepJSDoc: zod_1.z.boolean().default(true),
|
|
@@ -51,35 +24,13 @@ const packerSchema = zod_1.z.object({
|
|
|
51
24
|
useGitignore: zod_1.z.boolean().default(true),
|
|
52
25
|
contentBasedBinaryDetection: zod_1.z.boolean().default(false),
|
|
53
26
|
});
|
|
54
|
-
const promptSourceSchema = zod_1.z.string();
|
|
55
27
|
const promptsSchema = zod_1.z
|
|
56
28
|
.object({
|
|
57
|
-
|
|
58
|
-
commit: promptSourceSchema.optional(),
|
|
59
|
-
pack: promptSourceSchema.optional(),
|
|
60
|
-
})
|
|
61
|
-
.optional();
|
|
62
|
-
const serverPathsSchema = zod_1.z
|
|
63
|
-
.object({
|
|
64
|
-
apps: zod_1.z.string().default('/var/agent-apps'),
|
|
65
|
-
caddy: zod_1.z.string().optional(),
|
|
29
|
+
pack: zod_1.z.string().optional(),
|
|
66
30
|
})
|
|
67
31
|
.optional();
|
|
68
|
-
const serverConfigSchema = zod_1.z.object({
|
|
69
|
-
host: zod_1.z.string(),
|
|
70
|
-
port: zod_1.z.number().default(22),
|
|
71
|
-
user: zod_1.z.string(),
|
|
72
|
-
sshKeyPath: zod_1.z.string(),
|
|
73
|
-
description: zod_1.z.string().optional(),
|
|
74
|
-
paths: serverPathsSchema,
|
|
75
|
-
env: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
|
|
76
|
-
});
|
|
77
|
-
const opsSchema = zod_1.z.object({
|
|
78
|
-
servers: zod_1.z.record(zod_1.z.string(), serverConfigSchema),
|
|
79
|
-
});
|
|
80
32
|
exports.configSchema = zod_1.z.object({
|
|
81
33
|
$schema: zod_1.z.string().optional(),
|
|
82
|
-
llm: llmSchema.optional(),
|
|
83
34
|
cleaner: cleanerSchema.default({
|
|
84
35
|
whitelist: ['//!'],
|
|
85
36
|
keepJSDoc: true,
|
|
@@ -101,6 +52,5 @@ exports.configSchema = zod_1.z.object({
|
|
|
101
52
|
contentBasedBinaryDetection: false,
|
|
102
53
|
}),
|
|
103
54
|
prompts: promptsSchema,
|
|
104
|
-
ops: opsSchema.optional(),
|
|
105
55
|
});
|
|
106
56
|
//# sourceMappingURL=config.schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../../../src/core/config/config.schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;
|
|
1
|
+
{"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../../../src/core/config/config.schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,MAAM,aAAa,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7B,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/C,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACpC,YAAY,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACvC,MAAM,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACxC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5B,MAAM,EAAE,OAAC;SACN,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;SACjB,OAAO,CAAC;QACP,mBAAmB;QACnB,WAAW;QACX,gBAAgB;QAChB,MAAM;QACN,OAAO;QACP,cAAc;QACd,MAAM;QACN,UAAU;KACX,CAAC;IACJ,YAAY,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACvC,2BAA2B,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACxD,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,OAAC;KACpB,MAAM,CAAC;IACN,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC;KACD,QAAQ,EAAE,CAAC;AAED,QAAA,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;QAC7B,SAAS,EAAE,CAAC,KAAK,CAAC;QAClB,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,EAAE;KACX,CAAC;IACF,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC;QAC3B,MAAM,EAAE;YACN,mBAAmB;YACnB,WAAW;YACX,gBAAgB;YAChB,MAAM;YACN,OAAO;YACP,cAAc;YACd,MAAM;YACN,UAAU;SACX;QACD,YAAY,EAAE,IAAI;QAClB,2BAA2B,EAAE,KAAK;KACnC,CAAC;IACF,OAAO,EAAE,aAAa;CACvB,CAAC,CAAC"}
|
|
@@ -26,11 +26,11 @@ let ConfigService = class ConfigService {
|
|
|
26
26
|
const explorer = (0, lilconfig_1.lilconfigSync)('kodu', { searchPlaces: ['kodu.json'] });
|
|
27
27
|
const result = explorer.search(process.cwd());
|
|
28
28
|
if (!result || result.isEmpty || !result.config) {
|
|
29
|
-
this.terminate('kodu.json
|
|
29
|
+
this.terminate('kodu.json not found. Create it in the project root to configure kodu.');
|
|
30
30
|
}
|
|
31
31
|
const parsed = config_schema_1.configSchema.safeParse(result.config);
|
|
32
32
|
if (!parsed.success) {
|
|
33
|
-
console.error(picocolors_1.default.red('kodu.json
|
|
33
|
+
console.error(picocolors_1.default.red('kodu.json is invalid:'));
|
|
34
34
|
parsed.error.issues.forEach((issue) => {
|
|
35
35
|
const path = issue.path.join('.') || '(root)';
|
|
36
36
|
console.error(picocolors_1.default.red(`- ${path}: ${issue.message}`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../../src/core/config/config.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yCAA0C;AAC1C,4DAA4B;AAC5B,mDAAgE;AAGzD,IAAM,aAAa,GAAnB,MAAM,aAAa;IAChB,MAAM,CAAc;IAE5B,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEO,UAAU;QAChB,MAAM,QAAQ,GAAG,IAAA,yBAAa,EAAC,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAE9C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAChD,IAAI,CAAC,SAAS,CACZ,
|
|
1
|
+
{"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../../src/core/config/config.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yCAA0C;AAC1C,4DAA4B;AAC5B,mDAAgE;AAGzD,IAAM,aAAa,GAAnB,MAAM,aAAa;IAChB,MAAM,CAAc;IAE5B,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEO,UAAU;QAChB,MAAM,QAAQ,GAAG,IAAA,yBAAa,EAAC,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAE9C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAChD,IAAI,CAAC,SAAS,CACZ,uEAAuE,CACxE,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,4BAAY,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAErD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,oBAAE,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC;gBAC9C,OAAO,CAAC,KAAK,CAAC,oBAAE,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,2CAA2C,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAEO,SAAS,CAAC,OAAe;QAC/B,OAAO,CAAC,KAAK,CAAC,oBAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;CACF,CAAA;AAvCY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;GACA,aAAa,CAuCzB"}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
type Variables = Record<string, string | number>;
|
|
2
1
|
export declare class PromptService {
|
|
3
2
|
private readonly cache;
|
|
4
|
-
load(source: string
|
|
3
|
+
load(source: string): Promise<string>;
|
|
5
4
|
loadFromPromptsDir(name: string): Promise<string>;
|
|
6
5
|
private readSource;
|
|
7
6
|
private readAndCache;
|
|
8
7
|
private looksLikeInline;
|
|
9
8
|
private buildCandidates;
|
|
10
|
-
private normalize;
|
|
11
9
|
private exists;
|
|
12
10
|
}
|
|
13
|
-
export {};
|
|
@@ -13,14 +13,10 @@ exports.PromptService = void 0;
|
|
|
13
13
|
const node_fs_1 = require("node:fs");
|
|
14
14
|
const node_path_1 = __importDefault(require("node:path"));
|
|
15
15
|
const common_1 = require("@nestjs/common");
|
|
16
|
-
const default_prompts_1 = require("./default-prompts");
|
|
17
16
|
let PromptService = class PromptService {
|
|
18
17
|
cache = new Map();
|
|
19
|
-
async load(source
|
|
20
|
-
|
|
21
|
-
return variables
|
|
22
|
-
? (0, default_prompts_1.replacePromptVariables)(raw, this.normalize(variables))
|
|
23
|
-
: raw;
|
|
18
|
+
async load(source) {
|
|
19
|
+
return this.readSource(source);
|
|
24
20
|
}
|
|
25
21
|
async loadFromPromptsDir(name) {
|
|
26
22
|
const candidates = this.buildCandidates(name);
|
|
@@ -64,17 +60,8 @@ let PromptService = class PromptService {
|
|
|
64
60
|
}
|
|
65
61
|
buildCandidates(name) {
|
|
66
62
|
const names = node_path_1.default.extname(name) ? [name] : [`${name}.md`, `${name}.txt`];
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
for (const root of roots) {
|
|
70
|
-
for (const variant of names) {
|
|
71
|
-
candidates.push(node_path_1.default.join(root, variant));
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
return candidates;
|
|
75
|
-
}
|
|
76
|
-
normalize(variables) {
|
|
77
|
-
return Object.fromEntries(Object.entries(variables).map(([key, value]) => [key, value.toString()]));
|
|
63
|
+
const root = node_path_1.default.join(process.cwd(), '.kodu', 'prompts');
|
|
64
|
+
return names.map((variant) => node_path_1.default.join(root, variant));
|
|
78
65
|
}
|
|
79
66
|
async exists(target) {
|
|
80
67
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.service.js","sourceRoot":"","sources":["../../../../src/core/config/prompt.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAyC;AACzC,0DAA6B;AAC7B,2CAA4C;
|
|
1
|
+
{"version":3,"file":"prompt.service.js","sourceRoot":"","sources":["../../../../src/core/config/prompt.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export declare class CleanerService {
|
|
|
7
7
|
private readonly project;
|
|
8
8
|
private readonly systemWhitelist;
|
|
9
9
|
constructor(configService: ConfigService, fsService: FsService);
|
|
10
|
+
cleanContent(filename: string, content: string, keepJSDoc?: boolean): string;
|
|
10
11
|
cleanFiles(files: string[], options?: CleanOptions): Promise<CleanSummary>;
|
|
11
12
|
private cleanSource;
|
|
12
13
|
private collectCommentRanges;
|
|
@@ -15,6 +16,7 @@ export declare class CleanerService {
|
|
|
15
16
|
private getReplacement;
|
|
16
17
|
private buildWhitelist;
|
|
17
18
|
private writeFile;
|
|
19
|
+
private backupFile;
|
|
18
20
|
private addRange;
|
|
19
21
|
private collectHtmlCommentRanges;
|
|
20
22
|
private shouldCollectHtmlComments;
|
|
@@ -43,19 +43,36 @@ let CleanerService = class CleanerService {
|
|
|
43
43
|
this.configService = configService;
|
|
44
44
|
this.fsService = fsService;
|
|
45
45
|
}
|
|
46
|
+
cleanContent(filename, content, keepJSDoc) {
|
|
47
|
+
const config = this.configService.getConfig();
|
|
48
|
+
const whitelist = this.buildWhitelist(config.cleaner.whitelist);
|
|
49
|
+
const shouldKeepJSDoc = keepJSDoc ?? config.cleaner.keepJSDoc;
|
|
50
|
+
const result = this.cleanSource(filename, content, whitelist, shouldKeepJSDoc);
|
|
51
|
+
return result.nextContent;
|
|
52
|
+
}
|
|
46
53
|
async cleanFiles(files, options = {}) {
|
|
47
54
|
const config = this.configService.getConfig();
|
|
48
55
|
const whitelist = this.buildWhitelist(config.cleaner.whitelist);
|
|
56
|
+
const keepJSDoc = options.keepJSDoc ?? config.cleaner.keepJSDoc;
|
|
49
57
|
let commentsRemoved = 0;
|
|
50
58
|
let filesChanged = 0;
|
|
59
|
+
let bytesBefore = 0;
|
|
60
|
+
let bytesAfter = 0;
|
|
51
61
|
const reports = [];
|
|
52
|
-
for (
|
|
62
|
+
for (let i = 0; i < files.length; i++) {
|
|
63
|
+
const file = files[i];
|
|
64
|
+
options.onProgress?.(i + 1, files.length);
|
|
53
65
|
const original = await this.fsService.readFileRelative(file);
|
|
54
|
-
|
|
66
|
+
bytesBefore += Buffer.byteLength(original, 'utf8');
|
|
67
|
+
const result = this.cleanSource(file, original, whitelist, keepJSDoc);
|
|
68
|
+
bytesAfter += Buffer.byteLength(result.nextContent, 'utf8');
|
|
55
69
|
if (result.removed > 0) {
|
|
56
70
|
filesChanged += 1;
|
|
57
71
|
commentsRemoved += result.removed;
|
|
58
72
|
if (!options.dryRun) {
|
|
73
|
+
if (options.backup) {
|
|
74
|
+
await this.backupFile(file, original);
|
|
75
|
+
}
|
|
59
76
|
await this.writeFile(file, result.nextContent);
|
|
60
77
|
}
|
|
61
78
|
}
|
|
@@ -63,12 +80,16 @@ let CleanerService = class CleanerService {
|
|
|
63
80
|
file,
|
|
64
81
|
removed: result.removed,
|
|
65
82
|
previews: result.previews,
|
|
83
|
+
bytesBefore: Buffer.byteLength(original, 'utf8'),
|
|
84
|
+
bytesAfter: Buffer.byteLength(result.nextContent, 'utf8'),
|
|
66
85
|
});
|
|
67
86
|
}
|
|
68
87
|
return {
|
|
69
88
|
filesProcessed: files.length,
|
|
70
89
|
filesChanged,
|
|
71
90
|
commentsRemoved,
|
|
91
|
+
bytesBefore,
|
|
92
|
+
bytesAfter,
|
|
72
93
|
reports,
|
|
73
94
|
};
|
|
74
95
|
}
|
|
@@ -82,9 +103,7 @@ let CleanerService = class CleanerService {
|
|
|
82
103
|
if (candidates.length === 0) {
|
|
83
104
|
return { nextContent: content, removed: 0, previews: [] };
|
|
84
105
|
}
|
|
85
|
-
const previews = candidates
|
|
86
|
-
.slice(0, 3)
|
|
87
|
-
.map((range) => this.normalizePreview(range.text));
|
|
106
|
+
const previews = candidates.map((range) => this.normalizePreview(range.text));
|
|
88
107
|
const sorted = [...candidates].sort((a, b) => b.start - a.start);
|
|
89
108
|
let nextContent = fullText;
|
|
90
109
|
for (const range of sorted) {
|
|
@@ -140,9 +159,9 @@ let CleanerService = class CleanerService {
|
|
|
140
159
|
}
|
|
141
160
|
normalizePreview(text) {
|
|
142
161
|
const singleLine = text.replace(/\s+/g, ' ').trim();
|
|
143
|
-
if (singleLine.length <=
|
|
162
|
+
if (singleLine.length <= 60)
|
|
144
163
|
return singleLine;
|
|
145
|
-
return `${singleLine.slice(0,
|
|
164
|
+
return `${singleLine.slice(0, 57)}...`;
|
|
146
165
|
}
|
|
147
166
|
getReplacement(original, range) {
|
|
148
167
|
if (range.kind === 'jsx') {
|
|
@@ -164,6 +183,12 @@ let CleanerService = class CleanerService {
|
|
|
164
183
|
const absolute = node_path_1.default.resolve(process.cwd(), file);
|
|
165
184
|
await node_fs_1.promises.writeFile(absolute, content, 'utf8');
|
|
166
185
|
}
|
|
186
|
+
async backupFile(file, content) {
|
|
187
|
+
const backupDir = node_path_1.default.join(process.cwd(), '.kodu', 'backup');
|
|
188
|
+
const target = node_path_1.default.join(backupDir, file);
|
|
189
|
+
await node_fs_1.promises.mkdir(node_path_1.default.dirname(target), { recursive: true });
|
|
190
|
+
await node_fs_1.promises.writeFile(target, content, 'utf8');
|
|
191
|
+
}
|
|
167
192
|
addRange(ranges, start, end, text, kind = 'comment') {
|
|
168
193
|
const key = `${start}:${end}`;
|
|
169
194
|
if (ranges.has(key))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cleaner.service.js","sourceRoot":"","sources":["../../../../src/shared/cleaner/cleaner.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAAyC;AACzC,0DAA6B;AAC7B,2CAA4C;AAC5C,uCAAoE;AACpE,qEAAiE;AACjE,kEAA8D;AAevD,IAAM,cAAc,GAApB,MAAM,cAAc;IAqBN;IACA;IArBF,OAAO,GAAG,IAAI,kBAAO,CAAC;QACrC,qBAAqB,EAAE,KAAK;QAC5B,4BAA4B,EAAE,IAAI;QAClC,eAAe,EAAE;YACf,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,aAAE,CAAC,OAAO,CAAC,QAAQ;SACzB;KACF,CAAC,CAAC;IAEc,eAAe,GAAG;QACjC,YAAY;QACZ,kBAAkB;QAClB,gBAAgB;QAChB,iBAAiB;QACjB,cAAc;QACd,MAAM;QACN,OAAO;KACR,CAAC;IAEF,YACmB,aAA4B,EAC5B,SAAoB;QADpB,kBAAa,GAAb,aAAa,CAAe;QAC5B,cAAS,GAAT,SAAS,CAAW;IACpC,CAAC;IAEJ,KAAK,CAAC,UAAU,CACd,KAAe,EACf,UAAwB,EAAE;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChE,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,OAAO,GAAsB,EAAE,CAAC;QAEtC,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"cleaner.service.js","sourceRoot":"","sources":["../../../../src/shared/cleaner/cleaner.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
export type CleanOptions = {
|
|
2
2
|
dryRun?: boolean;
|
|
3
|
+
backup?: boolean;
|
|
4
|
+
keepJSDoc?: boolean;
|
|
5
|
+
onProgress?: (current: number, total: number) => void;
|
|
3
6
|
};
|
|
4
7
|
export type FileCleanReport = {
|
|
5
8
|
file: string;
|
|
6
9
|
removed: number;
|
|
7
10
|
previews: string[];
|
|
11
|
+
bytesBefore: number;
|
|
12
|
+
bytesAfter: number;
|
|
8
13
|
};
|
|
9
14
|
export type CleanSummary = {
|
|
10
15
|
filesProcessed: number;
|
|
11
16
|
filesChanged: number;
|
|
12
17
|
commentsRemoved: number;
|
|
18
|
+
bytesBefore: number;
|
|
19
|
+
bytesAfter: number;
|
|
13
20
|
reports: FileCleanReport[];
|
|
14
21
|
};
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
export declare const MAX_FILE_SIZE_BYTES: number;
|
|
2
|
-
export declare const WARNING_TOKEN_THRESHOLD = 12000;
|
|
3
|
-
export declare const DEFAULT_COMMIT_TOKENS = 1500;
|
|
4
|
-
export declare const DEFAULT_REVIEW_TOKENS = 5000;
|
|
5
|
-
export declare const DEFAULT_LLM_MODEL = "gpt-4o";
|
|
6
2
|
export declare const DEFAULT_PRICE_PER_MILLION = 5;
|
|
7
3
|
export declare const BINARY_EXTENSIONS: ReadonlySet<string>;
|
|
8
4
|
export declare const KNOWN_TEXT_EXTENSIONS: ReadonlySet<string>;
|