kodu 2.2.0 → 3.0.2

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.
Files changed (234) hide show
  1. package/README.md +24 -3
  2. package/bin/kodu.js +40 -0
  3. package/package.json +12 -67
  4. package/scripts/install.js +68 -0
  5. package/scripts/postinstall.js +22 -0
  6. package/AGENTS.md +0 -214
  7. package/__tests__/core/fs/fs.service.test.ts +0 -72
  8. package/__tests__/core/registry/registry.service.test.ts +0 -82
  9. package/__tests__/shared/cleaner/cleaner.service.test.ts +0 -102
  10. package/__tests__/shared/git/git.service.test.ts +0 -84
  11. package/__tests__/shared/runbook/runbook.service.test.ts +0 -104
  12. package/__tests__/shared/tokenizer/tokenizer.service.test.ts +0 -45
  13. package/biome.json +0 -50
  14. package/dist/package.json +0 -96
  15. package/dist/src/app.module.d.ts +0 -2
  16. package/dist/src/app.module.js +0 -42
  17. package/dist/src/app.module.js.map +0 -1
  18. package/dist/src/commands/clean/clean.command.d.ts +0 -37
  19. package/dist/src/commands/clean/clean.command.js +0 -240
  20. package/dist/src/commands/clean/clean.command.js.map +0 -1
  21. package/dist/src/commands/clean/clean.module.d.ts +0 -2
  22. package/dist/src/commands/clean/clean.module.js +0 -26
  23. package/dist/src/commands/clean/clean.module.js.map +0 -1
  24. package/dist/src/commands/init/init.command.d.ts +0 -10
  25. package/dist/src/commands/init/init.command.js +0 -96
  26. package/dist/src/commands/init/init.command.js.map +0 -1
  27. package/dist/src/commands/init/init.module.d.ts +0 -2
  28. package/dist/src/commands/init/init.module.js +0 -22
  29. package/dist/src/commands/init/init.module.js.map +0 -1
  30. package/dist/src/commands/ops/ops-add.command.d.ts +0 -18
  31. package/dist/src/commands/ops/ops-add.command.js +0 -102
  32. package/dist/src/commands/ops/ops-add.command.js.map +0 -1
  33. package/dist/src/commands/ops/ops-init.command.d.ts +0 -22
  34. package/dist/src/commands/ops/ops-init.command.js +0 -130
  35. package/dist/src/commands/ops/ops-init.command.js.map +0 -1
  36. package/dist/src/commands/ops/ops-list.command.d.ts +0 -12
  37. package/dist/src/commands/ops/ops-list.command.js +0 -73
  38. package/dist/src/commands/ops/ops-list.command.js.map +0 -1
  39. package/dist/src/commands/ops/ops-path.command.d.ts +0 -9
  40. package/dist/src/commands/ops/ops-path.command.js +0 -52
  41. package/dist/src/commands/ops/ops-path.command.js.map +0 -1
  42. package/dist/src/commands/ops/ops-runbook.command.d.ts +0 -12
  43. package/dist/src/commands/ops/ops-runbook.command.js +0 -81
  44. package/dist/src/commands/ops/ops-runbook.command.js.map +0 -1
  45. package/dist/src/commands/ops/ops-status.command.d.ts +0 -11
  46. package/dist/src/commands/ops/ops-status.command.js +0 -62
  47. package/dist/src/commands/ops/ops-status.command.js.map +0 -1
  48. package/dist/src/commands/ops/ops-use.command.d.ts +0 -12
  49. package/dist/src/commands/ops/ops-use.command.js +0 -76
  50. package/dist/src/commands/ops/ops-use.command.js.map +0 -1
  51. package/dist/src/commands/ops/ops.command.d.ts +0 -7
  52. package/dist/src/commands/ops/ops.command.js +0 -56
  53. package/dist/src/commands/ops/ops.command.js.map +0 -1
  54. package/dist/src/commands/ops/ops.helpers.d.ts +0 -2
  55. package/dist/src/commands/ops/ops.helpers.js +0 -11
  56. package/dist/src/commands/ops/ops.helpers.js.map +0 -1
  57. package/dist/src/commands/ops/ops.module.d.ts +0 -2
  58. package/dist/src/commands/ops/ops.module.js +0 -36
  59. package/dist/src/commands/ops/ops.module.js.map +0 -1
  60. package/dist/src/commands/pack/pack.command.d.ts +0 -51
  61. package/dist/src/commands/pack/pack.command.js +0 -355
  62. package/dist/src/commands/pack/pack.command.js.map +0 -1
  63. package/dist/src/commands/pack/pack.module.d.ts +0 -2
  64. package/dist/src/commands/pack/pack.module.js +0 -27
  65. package/dist/src/commands/pack/pack.module.js.map +0 -1
  66. package/dist/src/core/config/config.module.d.ts +0 -2
  67. package/dist/src/core/config/config.module.js +0 -23
  68. package/dist/src/core/config/config.module.js.map +0 -1
  69. package/dist/src/core/config/config.schema.d.ts +0 -19
  70. package/dist/src/core/config/config.schema.js +0 -56
  71. package/dist/src/core/config/config.schema.js.map +0 -1
  72. package/dist/src/core/config/config.service.d.ts +0 -7
  73. package/dist/src/core/config/config.service.js +0 -49
  74. package/dist/src/core/config/config.service.js.map +0 -1
  75. package/dist/src/core/config/prompt.service.d.ts +0 -10
  76. package/dist/src/core/config/prompt.service.js +0 -80
  77. package/dist/src/core/config/prompt.service.js.map +0 -1
  78. package/dist/src/core/file-system/fs.module.d.ts +0 -2
  79. package/dist/src/core/file-system/fs.module.js +0 -21
  80. package/dist/src/core/file-system/fs.module.js.map +0 -1
  81. package/dist/src/core/file-system/fs.service.d.ts +0 -27
  82. package/dist/src/core/file-system/fs.service.js +0 -203
  83. package/dist/src/core/file-system/fs.service.js.map +0 -1
  84. package/dist/src/core/registry/registry.module.d.ts +0 -2
  85. package/dist/src/core/registry/registry.module.js +0 -22
  86. package/dist/src/core/registry/registry.module.js.map +0 -1
  87. package/dist/src/core/registry/registry.schema.d.ts +0 -24
  88. package/dist/src/core/registry/registry.schema.js +0 -21
  89. package/dist/src/core/registry/registry.schema.js.map +0 -1
  90. package/dist/src/core/registry/registry.service.d.ts +0 -16
  91. package/dist/src/core/registry/registry.service.js +0 -91
  92. package/dist/src/core/registry/registry.service.js.map +0 -1
  93. package/dist/src/core/ui/ui.module.d.ts +0 -2
  94. package/dist/src/core/ui/ui.module.js +0 -22
  95. package/dist/src/core/ui/ui.module.js.map +0 -1
  96. package/dist/src/core/ui/ui.service.d.ts +0 -22
  97. package/dist/src/core/ui/ui.service.js +0 -43
  98. package/dist/src/core/ui/ui.service.js.map +0 -1
  99. package/dist/src/main.d.ts +0 -2
  100. package/dist/src/main.js +0 -16
  101. package/dist/src/main.js.map +0 -1
  102. package/dist/src/shared/cleaner/cleaner.service.d.ts +0 -23
  103. package/dist/src/shared/cleaner/cleaner.service.js +0 -223
  104. package/dist/src/shared/cleaner/cleaner.service.js.map +0 -1
  105. package/dist/src/shared/cleaner/cleaner.types.d.ts +0 -21
  106. package/dist/src/shared/cleaner/cleaner.types.js +0 -3
  107. package/dist/src/shared/cleaner/cleaner.types.js.map +0 -1
  108. package/dist/src/shared/constants.d.ts +0 -4
  109. package/dist/src/shared/constants.js +0 -113
  110. package/dist/src/shared/constants.js.map +0 -1
  111. package/dist/src/shared/deps/deps.module.d.ts +0 -2
  112. package/dist/src/shared/deps/deps.module.js +0 -21
  113. package/dist/src/shared/deps/deps.module.js.map +0 -1
  114. package/dist/src/shared/deps/deps.service.d.ts +0 -15
  115. package/dist/src/shared/deps/deps.service.js +0 -114
  116. package/dist/src/shared/deps/deps.service.js.map +0 -1
  117. package/dist/src/shared/git/git.module.d.ts +0 -2
  118. package/dist/src/shared/git/git.module.js +0 -21
  119. package/dist/src/shared/git/git.module.js.map +0 -1
  120. package/dist/src/shared/git/git.service.d.ts +0 -5
  121. package/dist/src/shared/git/git.service.js +0 -56
  122. package/dist/src/shared/git/git.service.js.map +0 -1
  123. package/dist/src/shared/runbook/runbook.module.d.ts +0 -2
  124. package/dist/src/shared/runbook/runbook.module.js +0 -22
  125. package/dist/src/shared/runbook/runbook.module.js.map +0 -1
  126. package/dist/src/shared/runbook/runbook.service.d.ts +0 -20
  127. package/dist/src/shared/runbook/runbook.service.js +0 -118
  128. package/dist/src/shared/runbook/runbook.service.js.map +0 -1
  129. package/dist/src/shared/runbook/runbook.templates.d.ts +0 -6
  130. package/dist/src/shared/runbook/runbook.templates.js +0 -49
  131. package/dist/src/shared/runbook/runbook.templates.js.map +0 -1
  132. package/dist/src/shared/tokenizer/tokenizer.module.d.ts +0 -2
  133. package/dist/src/shared/tokenizer/tokenizer.module.js +0 -21
  134. package/dist/src/shared/tokenizer/tokenizer.module.js.map +0 -1
  135. package/dist/src/shared/tokenizer/tokenizer.service.d.ts +0 -10
  136. package/dist/src/shared/tokenizer/tokenizer.service.js +0 -36
  137. package/dist/src/shared/tokenizer/tokenizer.service.js.map +0 -1
  138. package/dist/tsconfig.build.tsbuildinfo +0 -1
  139. package/docs/todo.md +0 -7
  140. package/knip.json +0 -10
  141. package/kodu.json +0 -63
  142. package/kodu.schema.json +0 -100
  143. package/lefthook.yml +0 -11
  144. package/nest-cli.json +0 -8
  145. package/registry.schema.json +0 -39
  146. package/scripts/generate-json-schema.ts +0 -27
  147. package/skills/ac/SKILL.md +0 -239
  148. package/skills/al/SKILL.md +0 -98
  149. package/skills/audit/SKILL.md +0 -205
  150. package/skills/audit/audit-baseline-template.yml +0 -188
  151. package/skills/audit/runtime-detect.md +0 -64
  152. package/skills/audit/stacks/_generic.md +0 -41
  153. package/skills/audit/stacks/_registry.md +0 -47
  154. package/skills/audit/stacks/go.md +0 -66
  155. package/skills/audit/stacks/java.md +0 -44
  156. package/skills/audit/stacks/node.md +0 -57
  157. package/skills/audit/stacks/python.md +0 -45
  158. package/skills/audit/stacks/rust.md +0 -44
  159. package/skills/audit-api-contracts/SKILL.md +0 -201
  160. package/skills/audit-architecture/SKILL.md +0 -200
  161. package/skills/audit-bugs/SKILL.md +0 -226
  162. package/skills/audit-concurrency/SKILL.md +0 -197
  163. package/skills/audit-deployment/SKILL.md +0 -218
  164. package/skills/audit-docs/SKILL.md +0 -209
  165. package/skills/audit-errors/SKILL.md +0 -216
  166. package/skills/audit-logging/SKILL.md +0 -197
  167. package/skills/audit-matrix/SKILL.md +0 -245
  168. package/skills/audit-meta/SKILL.md +0 -120
  169. package/skills/audit-naming/SKILL.md +0 -200
  170. package/skills/audit-owasp/SKILL.md +0 -223
  171. package/skills/audit-performance/SKILL.md +0 -199
  172. package/skills/audit-reinvention/SKILL.md +0 -214
  173. package/skills/audit-secrets/SKILL.md +0 -198
  174. package/skills/audit-tests/SKILL.md +0 -210
  175. package/skills/audit-validation/SKILL.md +0 -206
  176. package/skills/audit-verify/SKILL.md +0 -139
  177. package/skills/audit-yagni/SKILL.md +0 -188
  178. package/skills/doc-gen/SKILL.md +0 -490
  179. package/skills/doc-gen/scripts/doc_gen.py +0 -911
  180. package/skills/generate-project-docs/SKILL.md +0 -380
  181. package/skills/implement-project/SKILL.md +0 -409
  182. package/skills/liteend-init/SKILL.md +0 -84
  183. package/skills/litefront-init/SKILL.md +0 -96
  184. package/skills/litefront-prototype/SKILL.md +0 -484
  185. package/skills/ops/SKILL.md +0 -94
  186. package/skills/post-call-task-builder/SKILL.md +0 -419
  187. package/skills/project-setup-standardizer/SKILL.md +0 -285
  188. package/skills/skills-best-practices/SKILL.md +0 -415
  189. package/skills/start/SKILL.md +0 -319
  190. package/skills/tech-blueprint/SKILL.md +0 -890
  191. package/skills/tech-blueprint/scripts/blueprint_validator.py +0 -417
  192. package/src/app.module.ts +0 -29
  193. package/src/commands/clean/clean.command.ts +0 -235
  194. package/src/commands/clean/clean.module.ts +0 -13
  195. package/src/commands/init/init.command.ts +0 -92
  196. package/src/commands/init/init.module.ts +0 -9
  197. package/src/commands/ops/ops-add.command.ts +0 -83
  198. package/src/commands/ops/ops-init.command.ts +0 -125
  199. package/src/commands/ops/ops-list.command.ts +0 -57
  200. package/src/commands/ops/ops-path.command.ts +0 -38
  201. package/src/commands/ops/ops-runbook.command.ts +0 -74
  202. package/src/commands/ops/ops-status.command.ts +0 -47
  203. package/src/commands/ops/ops-use.command.ts +0 -76
  204. package/src/commands/ops/ops.command.ts +0 -42
  205. package/src/commands/ops/ops.helpers.ts +0 -20
  206. package/src/commands/ops/ops.module.ts +0 -23
  207. package/src/commands/pack/pack.command.ts +0 -347
  208. package/src/commands/pack/pack.module.ts +0 -14
  209. package/src/core/config/config.module.ts +0 -10
  210. package/src/core/config/config.schema.ts +0 -58
  211. package/src/core/config/config.service.ts +0 -43
  212. package/src/core/config/prompt.service.ts +0 -80
  213. package/src/core/file-system/fs.module.ts +0 -8
  214. package/src/core/file-system/fs.service.ts +0 -248
  215. package/src/core/registry/registry.module.ts +0 -9
  216. package/src/core/registry/registry.schema.ts +0 -46
  217. package/src/core/registry/registry.service.ts +0 -128
  218. package/src/core/ui/ui.module.ts +0 -9
  219. package/src/core/ui/ui.service.ts +0 -39
  220. package/src/main.ts +0 -12
  221. package/src/shared/cleaner/cleaner.service.ts +0 -289
  222. package/src/shared/cleaner/cleaner.types.ts +0 -23
  223. package/src/shared/constants.ts +0 -118
  224. package/src/shared/deps/deps.module.ts +0 -8
  225. package/src/shared/deps/deps.service.ts +0 -175
  226. package/src/shared/git/git.module.ts +0 -8
  227. package/src/shared/git/git.service.ts +0 -47
  228. package/src/shared/runbook/runbook.module.ts +0 -9
  229. package/src/shared/runbook/runbook.service.ts +0 -164
  230. package/src/shared/runbook/runbook.templates.ts +0 -66
  231. package/src/shared/tokenizer/tokenizer.module.ts +0 -8
  232. package/src/shared/tokenizer/tokenizer.service.ts +0 -30
  233. package/tsconfig.build.json +0 -7
  234. package/tsconfig.json +0 -28
@@ -1,240 +0,0 @@
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
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.CleanCommand = void 0;
13
- const node_fs_1 = require("node:fs");
14
- const nest_commander_1 = require("nest-commander");
15
- const config_service_1 = require("../../core/config/config.service");
16
- const fs_service_1 = require("../../core/file-system/fs.service");
17
- const ui_service_1 = require("../../core/ui/ui.service");
18
- const cleaner_service_1 = require("../../shared/cleaner/cleaner.service");
19
- const git_service_1 = require("../../shared/git/git.service");
20
- const SUPPORTED_EXTENSIONS = /\.(ts|tsx|js|jsx|mjs|cjs|html|htm)$/i;
21
- let CleanCommand = class CleanCommand extends nest_commander_1.CommandRunner {
22
- ui;
23
- fsService;
24
- cleaner;
25
- config;
26
- git;
27
- constructor(ui, fsService, cleaner, config, git) {
28
- super();
29
- this.ui = ui;
30
- this.fsService = fsService;
31
- this.cleaner = cleaner;
32
- this.config = config;
33
- this.git = git;
34
- }
35
- parseDryRun() {
36
- return true;
37
- }
38
- parseChanged() {
39
- return true;
40
- }
41
- parseStaged() {
42
- return true;
43
- }
44
- parseBackup() {
45
- return true;
46
- }
47
- parseNoJsdoc() {
48
- return true;
49
- }
50
- parseVerbose() {
51
- return true;
52
- }
53
- parseStdin() {
54
- return true;
55
- }
56
- async run(inputs, options = {}) {
57
- if (options.stdin) {
58
- await this.runStdin(options);
59
- return;
60
- }
61
- const spinner = this.ui
62
- .createSpinner({ text: this.buildSpinnerText(options) })
63
- .start();
64
- try {
65
- const { cleaner: cleanerConfig, packer } = this.config.getConfig();
66
- const ignorePatterns = [
67
- ...(packer.ignore ?? []),
68
- ...(cleanerConfig.ignore ?? []),
69
- ];
70
- const allFiles = await this.fsService.findProjectFiles({
71
- useGitignore: cleanerConfig.useGitignore,
72
- ignore: ignorePatterns,
73
- });
74
- const targets = await this.collectTargets(allFiles, inputs, options);
75
- if (targets.length === 0) {
76
- const msg = this.noFilesMessage(options);
77
- spinner.stop(msg);
78
- this.ui.log.warn(msg);
79
- return;
80
- }
81
- const summary = await this.cleaner.cleanFiles(targets, {
82
- dryRun: options.dryRun,
83
- backup: options.backup,
84
- keepJSDoc: options.noJsdoc ? false : undefined,
85
- onProgress: (current, total) => {
86
- spinner.text = `${this.buildSpinnerText(options)} (${current}/${total})`;
87
- },
88
- });
89
- spinner.success(options.dryRun ? 'Analysis complete' : 'Cleaning complete');
90
- const bytesSaved = summary.bytesBefore - summary.bytesAfter;
91
- const tokensSaved = Math.round(bytesSaved / 4);
92
- if (options.dryRun) {
93
- this.ui.log.info(`Files affected: ${summary.filesChanged}/${summary.filesProcessed}, comments: ${summary.commentsRemoved}`);
94
- this.ui.log.info(`Bytes saved: ${bytesSaved} (~${tokensSaved} tokens)`);
95
- const limit = options.verbose ? Number.POSITIVE_INFINITY : 3;
96
- for (const report of summary.reports.filter((r) => r.removed > 0)) {
97
- const previews = options.verbose
98
- ? report.previews
99
- : report.previews.slice(0, limit);
100
- const more = !options.verbose && report.previews.length > limit
101
- ? ` +${report.previews.length - limit} more`
102
- : '';
103
- this.ui.log.info(` ${report.file} (${report.removed}): ${previews.map((p) => `"${p}"`).join(', ')}${more}`);
104
- }
105
- return;
106
- }
107
- this.ui.log.success(`Files cleaned: ${summary.filesChanged}, comments removed: ${summary.commentsRemoved}`);
108
- this.ui.log.info(`Bytes saved: ${bytesSaved} (~${tokensSaved} tokens)`);
109
- if (options.backup && summary.filesChanged > 0) {
110
- this.ui.log.info('Originals backed up to .kodu/backup/');
111
- }
112
- }
113
- catch (error) {
114
- spinner.error('Error during cleaning');
115
- const message = error instanceof Error ? error.message : 'Unknown error';
116
- this.ui.log.error(message);
117
- process.exitCode = 1;
118
- }
119
- }
120
- async runStdin(options) {
121
- try {
122
- const input = await this.readStdin();
123
- const cleaned = this.cleaner.cleanContent('stdin.ts', input, options.noJsdoc ? false : undefined);
124
- process.stdout.write(cleaned);
125
- }
126
- catch (error) {
127
- const message = error instanceof Error ? error.message : 'Unknown error';
128
- this.ui.log.error(message);
129
- process.exitCode = 1;
130
- }
131
- }
132
- readStdin() {
133
- return new Promise((resolve, reject) => {
134
- const chunks = [];
135
- const stream = (0, node_fs_1.createReadStream)('/dev/stdin');
136
- stream.on('data', (chunk) => chunks.push(typeof chunk === 'string' ? Buffer.from(chunk) : chunk));
137
- stream.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
138
- stream.on('error', reject);
139
- });
140
- }
141
- buildSpinnerText(options) {
142
- if (options.staged)
143
- return 'Cleaning staged files...';
144
- if (options.changed)
145
- return 'Cleaning changed files...';
146
- return options.dryRun ? 'Analysing...' : 'Cleaning...';
147
- }
148
- noFilesMessage(options) {
149
- if (options.staged)
150
- return 'No staged files to clean.';
151
- if (options.changed)
152
- return 'No changed files to clean.';
153
- return 'No files to clean.';
154
- }
155
- async collectTargets(allFiles, inputs, options) {
156
- const supported = allFiles.filter((f) => SUPPORTED_EXTENSIONS.test(f));
157
- if (inputs.length > 0) {
158
- return supported.filter((f) => inputs.some((i) => f === i || f.startsWith(`${i.replace(/\/$/, '')}/`)));
159
- }
160
- if (options.staged) {
161
- const staged = new Set(await this.git.getStagedFiles());
162
- return supported.filter((f) => staged.has(f));
163
- }
164
- if (options.changed) {
165
- const changed = new Set(await this.git.getChangedFiles());
166
- return supported.filter((f) => changed.has(f));
167
- }
168
- return supported;
169
- }
170
- };
171
- exports.CleanCommand = CleanCommand;
172
- __decorate([
173
- (0, nest_commander_1.Option)({ flags: '-d, --dry-run', description: 'Show what will be removed' }),
174
- __metadata("design:type", Function),
175
- __metadata("design:paramtypes", []),
176
- __metadata("design:returntype", Boolean)
177
- ], CleanCommand.prototype, "parseDryRun", null);
178
- __decorate([
179
- (0, nest_commander_1.Option)({
180
- flags: '-c, --changed',
181
- description: 'Clean only git-changed files (staged + unstaged + untracked)',
182
- }),
183
- __metadata("design:type", Function),
184
- __metadata("design:paramtypes", []),
185
- __metadata("design:returntype", Boolean)
186
- ], CleanCommand.prototype, "parseChanged", null);
187
- __decorate([
188
- (0, nest_commander_1.Option)({
189
- flags: '-s, --staged',
190
- description: 'Clean only git-staged files',
191
- }),
192
- __metadata("design:type", Function),
193
- __metadata("design:paramtypes", []),
194
- __metadata("design:returntype", Boolean)
195
- ], CleanCommand.prototype, "parseStaged", null);
196
- __decorate([
197
- (0, nest_commander_1.Option)({
198
- flags: '-b, --backup',
199
- description: 'Save originals to .kodu/backup/ before modifying',
200
- }),
201
- __metadata("design:type", Function),
202
- __metadata("design:paramtypes", []),
203
- __metadata("design:returntype", Boolean)
204
- ], CleanCommand.prototype, "parseBackup", null);
205
- __decorate([
206
- (0, nest_commander_1.Option)({
207
- flags: '-n, --no-jsdoc',
208
- description: 'Remove JSDoc comments (overrides config keepJSDoc)',
209
- }),
210
- __metadata("design:type", Function),
211
- __metadata("design:paramtypes", []),
212
- __metadata("design:returntype", Boolean)
213
- ], CleanCommand.prototype, "parseNoJsdoc", null);
214
- __decorate([
215
- (0, nest_commander_1.Option)({
216
- flags: '-v, --verbose',
217
- description: 'Show all removed comments in dry-run (not just first 3)',
218
- }),
219
- __metadata("design:type", Function),
220
- __metadata("design:paramtypes", []),
221
- __metadata("design:returntype", Boolean)
222
- ], CleanCommand.prototype, "parseVerbose", null);
223
- __decorate([
224
- (0, nest_commander_1.Option)({
225
- flags: '--stdin',
226
- description: 'Read from stdin, write cleaned result to stdout',
227
- }),
228
- __metadata("design:type", Function),
229
- __metadata("design:paramtypes", []),
230
- __metadata("design:returntype", Boolean)
231
- ], CleanCommand.prototype, "parseStdin", null);
232
- exports.CleanCommand = CleanCommand = __decorate([
233
- (0, nest_commander_1.Command)({ name: 'clean', description: 'Remove comments from code' }),
234
- __metadata("design:paramtypes", [ui_service_1.UiService,
235
- fs_service_1.FsService,
236
- cleaner_service_1.CleanerService,
237
- config_service_1.ConfigService,
238
- git_service_1.GitService])
239
- ], CleanCommand);
240
- //# sourceMappingURL=clean.command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clean.command.js","sourceRoot":"","sources":["../../../../src/commands/clean/clean.command.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare class CleanModule {
2
- }
@@ -1,26 +0,0 @@
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.CleanModule = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const config_module_1 = require("../../core/config/config.module");
12
- const fs_module_1 = require("../../core/file-system/fs.module");
13
- const ui_module_1 = require("../../core/ui/ui.module");
14
- const cleaner_service_1 = require("../../shared/cleaner/cleaner.service");
15
- const git_module_1 = require("../../shared/git/git.module");
16
- const clean_command_1 = require("./clean.command");
17
- let CleanModule = class CleanModule {
18
- };
19
- exports.CleanModule = CleanModule;
20
- exports.CleanModule = CleanModule = __decorate([
21
- (0, common_1.Module)({
22
- imports: [fs_module_1.FsModule, ui_module_1.UiModule, config_module_1.ConfigModule, git_module_1.GitModule],
23
- providers: [clean_command_1.CleanCommand, cleaner_service_1.CleanerService],
24
- })
25
- ], CleanModule);
26
- //# sourceMappingURL=clean.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clean.module.js","sourceRoot":"","sources":["../../../../src/commands/clean/clean.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mEAA+D;AAC/D,gEAA4D;AAC5D,uDAAmD;AACnD,0EAAsE;AACtE,4DAAwD;AACxD,mDAA+C;AAMxC,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IAJvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,oBAAQ,EAAE,oBAAQ,EAAE,4BAAY,EAAE,sBAAS,CAAC;QACtD,SAAS,EAAE,CAAC,4BAAY,EAAE,gCAAc,CAAC;KAC1C,CAAC;GACW,WAAW,CAAG"}
@@ -1,10 +0,0 @@
1
- import { CommandRunner } from 'nest-commander';
2
- import { UiService } from '../../core/ui/ui.service';
3
- export declare class InitCommand extends CommandRunner {
4
- private readonly ui;
5
- constructor(ui: UiService);
6
- run(): Promise<void>;
7
- private ensureKoduJson;
8
- private updateGitignore;
9
- private exists;
10
- }
@@ -1,96 +0,0 @@
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
- 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 __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.InitCommand = void 0;
16
- const node_fs_1 = require("node:fs");
17
- const node_path_1 = __importDefault(require("node:path"));
18
- const nest_commander_1 = require("nest-commander");
19
- const ui_service_1 = require("../../core/ui/ui.service");
20
- const GITIGNORE_ENTRY = '.kodu/context.txt';
21
- const DEFAULT_KODU_JSON = {
22
- $schema: 'https://raw.githubusercontent.com/anomalyco/kodu/main/kodu.schema.json',
23
- cleaner: {
24
- whitelist: ['//!'],
25
- keepJSDoc: true,
26
- useGitignore: true,
27
- ignore: [],
28
- },
29
- packer: {
30
- ignore: [
31
- 'package-lock.json',
32
- 'yarn.lock',
33
- 'pnpm-lock.yaml',
34
- '.git',
35
- '.kodu',
36
- 'node_modules',
37
- 'dist',
38
- 'coverage',
39
- ],
40
- useGitignore: true,
41
- contentBasedBinaryDetection: false,
42
- },
43
- };
44
- let InitCommand = class InitCommand extends nest_commander_1.CommandRunner {
45
- ui;
46
- constructor(ui) {
47
- super();
48
- this.ui = ui;
49
- }
50
- async run() {
51
- await this.ensureKoduJson();
52
- await this.updateGitignore();
53
- this.ui.log.success('Done.');
54
- }
55
- async ensureKoduJson() {
56
- const configPath = node_path_1.default.join(process.cwd(), 'kodu.json');
57
- if (await this.exists(configPath)) {
58
- this.ui.log.info('kodu.json already exists');
59
- return;
60
- }
61
- await node_fs_1.promises.writeFile(configPath, `${JSON.stringify(DEFAULT_KODU_JSON, null, 2)}\n`, 'utf8');
62
- this.ui.log.success('Created kodu.json');
63
- }
64
- async updateGitignore() {
65
- const gitignorePath = node_path_1.default.join(process.cwd(), '.gitignore');
66
- if (!(await this.exists(gitignorePath))) {
67
- this.ui.log.warn('.gitignore not found, skipping.');
68
- return;
69
- }
70
- const content = await node_fs_1.promises.readFile(gitignorePath, 'utf8');
71
- const lines = content.split(/\r?\n/);
72
- if (lines.some((line) => line.trim() === GITIGNORE_ENTRY)) {
73
- this.ui.log.info(`${GITIGNORE_ENTRY} already in .gitignore`);
74
- return;
75
- }
76
- const trimmed = content.trimEnd();
77
- const next = trimmed.length > 0 ? `${trimmed}\n${GITIGNORE_ENTRY}` : GITIGNORE_ENTRY;
78
- await node_fs_1.promises.writeFile(gitignorePath, `${next}\n`, 'utf8');
79
- this.ui.log.success(`Added ${GITIGNORE_ENTRY} to .gitignore`);
80
- }
81
- async exists(target) {
82
- try {
83
- await node_fs_1.promises.access(target);
84
- return true;
85
- }
86
- catch {
87
- return false;
88
- }
89
- }
90
- };
91
- exports.InitCommand = InitCommand;
92
- exports.InitCommand = InitCommand = __decorate([
93
- (0, nest_commander_1.Command)({ name: 'init', description: 'Initialize kodu configuration' }),
94
- __metadata("design:paramtypes", [ui_service_1.UiService])
95
- ], InitCommand);
96
- //# sourceMappingURL=init.command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../../src/commands/init/init.command.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare class InitModule {
2
- }
@@ -1,22 +0,0 @@
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.InitModule = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const ui_module_1 = require("../../core/ui/ui.module");
12
- const init_command_1 = require("./init.command");
13
- let InitModule = class InitModule {
14
- };
15
- exports.InitModule = InitModule;
16
- exports.InitModule = InitModule = __decorate([
17
- (0, common_1.Module)({
18
- imports: [ui_module_1.UiModule],
19
- providers: [init_command_1.InitCommand],
20
- })
21
- ], InitModule);
22
- //# sourceMappingURL=init.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.module.js","sourceRoot":"","sources":["../../../../src/commands/init/init.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,uDAAmD;AACnD,iDAA6C;AAMtC,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAJtB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,oBAAQ,CAAC;QACnB,SAAS,EAAE,CAAC,0BAAW,CAAC;KACzB,CAAC;GACW,UAAU,CAAG"}
@@ -1,18 +0,0 @@
1
- import { CommandRunner } from 'nest-commander';
2
- import { RegistryService } from '../../core/registry/registry.service';
3
- import { UiService } from '../../core/ui/ui.service';
4
- type AddOptions = {
5
- path?: string;
6
- repo?: string;
7
- stand?: string[];
8
- };
9
- export declare class OpsAddCommand extends CommandRunner {
10
- private readonly ui;
11
- private readonly registry;
12
- constructor(ui: UiService, registry: RegistryService);
13
- parsePath(value: string): string;
14
- parseRepo(value: string): string;
15
- parseStand(value: string, previous?: string[]): string[];
16
- run(inputs: string[], options: AddOptions): Promise<void>;
17
- }
18
- export {};
@@ -1,102 +0,0 @@
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
- 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 __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.OpsAddCommand = void 0;
16
- const node_path_1 = __importDefault(require("node:path"));
17
- const nest_commander_1 = require("nest-commander");
18
- const registry_schema_1 = require("../../core/registry/registry.schema");
19
- const registry_service_1 = require("../../core/registry/registry.service");
20
- const ui_service_1 = require("../../core/ui/ui.service");
21
- let OpsAddCommand = class OpsAddCommand extends nest_commander_1.CommandRunner {
22
- ui;
23
- registry;
24
- constructor(ui, registry) {
25
- super();
26
- this.ui = ui;
27
- this.registry = registry;
28
- }
29
- parsePath(value) {
30
- return value;
31
- }
32
- parseRepo(value) {
33
- return value;
34
- }
35
- parseStand(value, previous = []) {
36
- return [...previous, value];
37
- }
38
- async run(inputs, options) {
39
- const name = inputs[0];
40
- if (!name) {
41
- this.ui.log.error('Укажи имя проекта: kodu ops add <name> [--path <dir>]');
42
- process.exitCode = 1;
43
- return;
44
- }
45
- const projectPath = node_path_1.default.resolve(options.path ?? process.cwd());
46
- const stands = options.stand && options.stand.length > 0
47
- ? options.stand
48
- : [...registry_schema_1.DEFAULT_STANDS];
49
- try {
50
- await this.registry.add(name, {
51
- path: projectPath,
52
- repo: options.repo,
53
- stands,
54
- });
55
- this.ui.log.success(`Проект "${name}" добавлен в реестр.`);
56
- this.ui.log.info(`Путь: ${projectPath}`);
57
- this.ui.log.info(`Стенды: ${stands.join(', ')}`);
58
- }
59
- catch (error) {
60
- this.ui.log.error(error.message);
61
- process.exitCode = 1;
62
- }
63
- }
64
- };
65
- exports.OpsAddCommand = OpsAddCommand;
66
- __decorate([
67
- (0, nest_commander_1.Option)({
68
- flags: '-p, --path <dir>',
69
- description: 'Путь к репозиторию (по умолчанию текущая директория)',
70
- }),
71
- __metadata("design:type", Function),
72
- __metadata("design:paramtypes", [String]),
73
- __metadata("design:returntype", String)
74
- ], OpsAddCommand.prototype, "parsePath", null);
75
- __decorate([
76
- (0, nest_commander_1.Option)({
77
- flags: '-r, --repo <url>',
78
- description: 'URL репозитория (git clone)',
79
- }),
80
- __metadata("design:type", Function),
81
- __metadata("design:paramtypes", [String]),
82
- __metadata("design:returntype", String)
83
- ], OpsAddCommand.prototype, "parseRepo", null);
84
- __decorate([
85
- (0, nest_commander_1.Option)({
86
- flags: '-s, --stand <stand>',
87
- description: 'Стенд проекта (можно повторять)',
88
- }),
89
- __metadata("design:type", Function),
90
- __metadata("design:paramtypes", [String, Array]),
91
- __metadata("design:returntype", Array)
92
- ], OpsAddCommand.prototype, "parseStand", null);
93
- exports.OpsAddCommand = OpsAddCommand = __decorate([
94
- (0, nest_commander_1.SubCommand)({
95
- name: 'add',
96
- description: 'Зарегистрировать проект в глобальном реестре по уникальному имени',
97
- arguments: '<name>',
98
- }),
99
- __metadata("design:paramtypes", [ui_service_1.UiService,
100
- registry_service_1.RegistryService])
101
- ], OpsAddCommand);
102
- //# sourceMappingURL=ops-add.command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ops-add.command.js","sourceRoot":"","sources":["../../../../src/commands/ops/ops-add.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0DAA6B;AAC7B,mDAAmE;AACnE,yEAAqE;AACrE,2EAAuE;AACvE,yDAAqD;AAe9C,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,8BAAa;IAE3B;IACA;IAFnB,YACmB,EAAa,EACb,QAAyB;QAE1C,KAAK,EAAE,CAAC;QAHS,OAAE,GAAF,EAAE,CAAW;QACb,aAAQ,GAAR,QAAQ,CAAiB;IAG5C,CAAC;IAMD,SAAS,CAAC,KAAa;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAMD,SAAS,CAAC,KAAa;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAMD,UAAU,CAAC,KAAa,EAAE,WAAqB,EAAE;QAC/C,OAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAgB,EAAE,OAAmB;QAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CACf,uDAAuD,CACxD,CAAC;YACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAChE,MAAM,MAAM,GACV,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YACvC,CAAC,CAAC,OAAO,CAAC,KAAK;YACf,CAAC,CAAC,CAAC,GAAG,gCAAc,CAAC,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;gBAC5B,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM;aACP,CAAC,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,sBAAsB,CAAC,CAAC;YAC3D,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;YAC5C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;CACF,CAAA;AA/DY,sCAAa;AAYxB;IAJC,IAAA,uBAAM,EAAC;QACN,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,sDAAsD;KACpE,CAAC;;;;8CAGD;AAMD;IAJC,IAAA,uBAAM,EAAC;QACN,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,6BAA6B;KAC3C,CAAC;;;;8CAGD;AAMD;IAJC,IAAA,uBAAM,EAAC;QACN,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,iCAAiC;KAC/C,CAAC;;;;+CAGD;wBA9BU,aAAa;IANzB,IAAA,2BAAU,EAAC;QACV,IAAI,EAAE,KAAK;QACX,WAAW,EACT,mEAAmE;QACrE,SAAS,EAAE,QAAQ;KACpB,CAAC;qCAGuB,sBAAS;QACH,kCAAe;GAHjC,aAAa,CA+DzB"}
@@ -1,22 +0,0 @@
1
- import { CommandRunner } from 'nest-commander';
2
- import { RegistryService } from '../../core/registry/registry.service';
3
- import { UiService } from '../../core/ui/ui.service';
4
- import { RunbookService } from '../../shared/runbook/runbook.service';
5
- type InitOptions = {
6
- name?: string;
7
- active?: string;
8
- stand?: string[];
9
- };
10
- export declare class OpsInitCommand extends CommandRunner {
11
- private readonly ui;
12
- private readonly registry;
13
- private readonly runbook;
14
- constructor(ui: UiService, registry: RegistryService, runbook: RunbookService);
15
- parseName(value: string): string;
16
- parseActive(value: string): string;
17
- parseStand(value: string, previous?: string[]): string[];
18
- run(_inputs: string[], options: InitOptions): Promise<void>;
19
- private reportGitignore;
20
- private registerProject;
21
- }
22
- export {};