kodu 2.1.3 → 3.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.
Files changed (131) hide show
  1. package/README.md +24 -3
  2. package/bin/kodu.js +23 -0
  3. package/package.json +11 -67
  4. package/scripts/postinstall.js +69 -0
  5. package/AGENTS.md +0 -214
  6. package/__tests__/core/fs/fs.service.test.ts +0 -72
  7. package/__tests__/shared/cleaner/cleaner.service.test.ts +0 -102
  8. package/__tests__/shared/git/git.service.test.ts +0 -84
  9. package/__tests__/shared/tokenizer/tokenizer.service.test.ts +0 -45
  10. package/biome.json +0 -50
  11. package/dist/package.json +0 -96
  12. package/dist/src/app.module.d.ts +0 -2
  13. package/dist/src/app.module.js +0 -36
  14. package/dist/src/app.module.js.map +0 -1
  15. package/dist/src/commands/clean/clean.command.d.ts +0 -37
  16. package/dist/src/commands/clean/clean.command.js +0 -240
  17. package/dist/src/commands/clean/clean.command.js.map +0 -1
  18. package/dist/src/commands/clean/clean.module.d.ts +0 -2
  19. package/dist/src/commands/clean/clean.module.js +0 -26
  20. package/dist/src/commands/clean/clean.module.js.map +0 -1
  21. package/dist/src/commands/init/init.command.d.ts +0 -10
  22. package/dist/src/commands/init/init.command.js +0 -96
  23. package/dist/src/commands/init/init.command.js.map +0 -1
  24. package/dist/src/commands/init/init.module.d.ts +0 -2
  25. package/dist/src/commands/init/init.module.js +0 -22
  26. package/dist/src/commands/init/init.module.js.map +0 -1
  27. package/dist/src/commands/pack/pack.command.d.ts +0 -51
  28. package/dist/src/commands/pack/pack.command.js +0 -355
  29. package/dist/src/commands/pack/pack.command.js.map +0 -1
  30. package/dist/src/commands/pack/pack.module.d.ts +0 -2
  31. package/dist/src/commands/pack/pack.module.js +0 -27
  32. package/dist/src/commands/pack/pack.module.js.map +0 -1
  33. package/dist/src/core/config/config.module.d.ts +0 -2
  34. package/dist/src/core/config/config.module.js +0 -23
  35. package/dist/src/core/config/config.module.js.map +0 -1
  36. package/dist/src/core/config/config.schema.d.ts +0 -19
  37. package/dist/src/core/config/config.schema.js +0 -56
  38. package/dist/src/core/config/config.schema.js.map +0 -1
  39. package/dist/src/core/config/config.service.d.ts +0 -7
  40. package/dist/src/core/config/config.service.js +0 -49
  41. package/dist/src/core/config/config.service.js.map +0 -1
  42. package/dist/src/core/config/prompt.service.d.ts +0 -10
  43. package/dist/src/core/config/prompt.service.js +0 -80
  44. package/dist/src/core/config/prompt.service.js.map +0 -1
  45. package/dist/src/core/file-system/fs.module.d.ts +0 -2
  46. package/dist/src/core/file-system/fs.module.js +0 -21
  47. package/dist/src/core/file-system/fs.module.js.map +0 -1
  48. package/dist/src/core/file-system/fs.service.d.ts +0 -27
  49. package/dist/src/core/file-system/fs.service.js +0 -203
  50. package/dist/src/core/file-system/fs.service.js.map +0 -1
  51. package/dist/src/core/ui/ui.module.d.ts +0 -2
  52. package/dist/src/core/ui/ui.module.js +0 -22
  53. package/dist/src/core/ui/ui.module.js.map +0 -1
  54. package/dist/src/core/ui/ui.service.d.ts +0 -22
  55. package/dist/src/core/ui/ui.service.js +0 -43
  56. package/dist/src/core/ui/ui.service.js.map +0 -1
  57. package/dist/src/main.d.ts +0 -2
  58. package/dist/src/main.js +0 -16
  59. package/dist/src/main.js.map +0 -1
  60. package/dist/src/shared/cleaner/cleaner.service.d.ts +0 -23
  61. package/dist/src/shared/cleaner/cleaner.service.js +0 -223
  62. package/dist/src/shared/cleaner/cleaner.service.js.map +0 -1
  63. package/dist/src/shared/cleaner/cleaner.types.d.ts +0 -21
  64. package/dist/src/shared/cleaner/cleaner.types.js +0 -3
  65. package/dist/src/shared/cleaner/cleaner.types.js.map +0 -1
  66. package/dist/src/shared/constants.d.ts +0 -4
  67. package/dist/src/shared/constants.js +0 -113
  68. package/dist/src/shared/constants.js.map +0 -1
  69. package/dist/src/shared/deps/deps.module.d.ts +0 -2
  70. package/dist/src/shared/deps/deps.module.js +0 -21
  71. package/dist/src/shared/deps/deps.module.js.map +0 -1
  72. package/dist/src/shared/deps/deps.service.d.ts +0 -15
  73. package/dist/src/shared/deps/deps.service.js +0 -114
  74. package/dist/src/shared/deps/deps.service.js.map +0 -1
  75. package/dist/src/shared/git/git.module.d.ts +0 -2
  76. package/dist/src/shared/git/git.module.js +0 -21
  77. package/dist/src/shared/git/git.module.js.map +0 -1
  78. package/dist/src/shared/git/git.service.d.ts +0 -5
  79. package/dist/src/shared/git/git.service.js +0 -56
  80. package/dist/src/shared/git/git.service.js.map +0 -1
  81. package/dist/src/shared/tokenizer/tokenizer.module.d.ts +0 -2
  82. package/dist/src/shared/tokenizer/tokenizer.module.js +0 -21
  83. package/dist/src/shared/tokenizer/tokenizer.module.js.map +0 -1
  84. package/dist/src/shared/tokenizer/tokenizer.service.d.ts +0 -10
  85. package/dist/src/shared/tokenizer/tokenizer.service.js +0 -36
  86. package/dist/src/shared/tokenizer/tokenizer.service.js.map +0 -1
  87. package/dist/tsconfig.build.tsbuildinfo +0 -1
  88. package/docs/todo.md +0 -7
  89. package/knip.json +0 -10
  90. package/kodu.json +0 -63
  91. package/kodu.schema.json +0 -100
  92. package/lefthook.yml +0 -11
  93. package/nest-cli.json +0 -8
  94. package/scripts/generate-json-schema.ts +0 -18
  95. package/skills/doc-gen/SKILL.md +0 -490
  96. package/skills/doc-gen/scripts/doc_gen.py +0 -911
  97. package/skills/implement-project/SKILL.md +0 -409
  98. package/skills/liteend-init/SKILL.md +0 -84
  99. package/skills/litefront-init/SKILL.md +0 -96
  100. package/skills/litefront-prototype/SKILL.md +0 -484
  101. package/skills/project-setup-standardizer/SKILL.md +0 -285
  102. package/skills/start/SKILL.md +0 -319
  103. package/skills/tech-blueprint/SKILL.md +0 -890
  104. package/skills/tech-blueprint/scripts/blueprint_validator.py +0 -417
  105. package/src/app.module.ts +0 -23
  106. package/src/commands/clean/clean.command.ts +0 -235
  107. package/src/commands/clean/clean.module.ts +0 -13
  108. package/src/commands/init/init.command.ts +0 -92
  109. package/src/commands/init/init.module.ts +0 -9
  110. package/src/commands/pack/pack.command.ts +0 -347
  111. package/src/commands/pack/pack.module.ts +0 -14
  112. package/src/core/config/config.module.ts +0 -10
  113. package/src/core/config/config.schema.ts +0 -58
  114. package/src/core/config/config.service.ts +0 -43
  115. package/src/core/config/prompt.service.ts +0 -80
  116. package/src/core/file-system/fs.module.ts +0 -8
  117. package/src/core/file-system/fs.service.ts +0 -248
  118. package/src/core/ui/ui.module.ts +0 -9
  119. package/src/core/ui/ui.service.ts +0 -39
  120. package/src/main.ts +0 -12
  121. package/src/shared/cleaner/cleaner.service.ts +0 -289
  122. package/src/shared/cleaner/cleaner.types.ts +0 -23
  123. package/src/shared/constants.ts +0 -118
  124. package/src/shared/deps/deps.module.ts +0 -8
  125. package/src/shared/deps/deps.service.ts +0 -175
  126. package/src/shared/git/git.module.ts +0 -8
  127. package/src/shared/git/git.service.ts +0 -47
  128. package/src/shared/tokenizer/tokenizer.module.ts +0 -8
  129. package/src/shared/tokenizer/tokenizer.service.ts +0 -30
  130. package/tsconfig.build.json +0 -7
  131. package/tsconfig.json +0 -28
@@ -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,51 +0,0 @@
1
- import { CommandRunner } from 'nest-commander';
2
- import { ConfigService } from '../../core/config/config.service';
3
- import { PromptService } from '../../core/config/prompt.service';
4
- import { FsService } from '../../core/file-system/fs.service';
5
- import { UiService } from '../../core/ui/ui.service';
6
- import { CleanerService } from '../../shared/cleaner/cleaner.service';
7
- import { DepsService } from '../../shared/deps/deps.service';
8
- import { TokenizerService } from '../../shared/tokenizer/tokenizer.service';
9
- type OutputFormat = 'xml' | 'text';
10
- type PackOptions = {
11
- copy?: boolean;
12
- template?: string;
13
- out?: string;
14
- path?: string[];
15
- exclude?: string[];
16
- list?: boolean;
17
- format?: OutputFormat;
18
- clean?: boolean;
19
- deps?: boolean;
20
- depsDepth?: number;
21
- explain?: boolean;
22
- };
23
- export declare class PackCommand extends CommandRunner {
24
- private readonly ui;
25
- private readonly configService;
26
- private readonly promptService;
27
- private readonly fsService;
28
- private readonly tokenizer;
29
- private readonly cleaner;
30
- private readonly depsService;
31
- constructor(ui: UiService, configService: ConfigService, promptService: PromptService, fsService: FsService, tokenizer: TokenizerService, cleaner: CleanerService, depsService: DepsService);
32
- parseCopy(): boolean;
33
- parseTemplate(value: string): string;
34
- parseOut(value: string): string;
35
- parsePath(value: string, previous?: string[]): string[];
36
- parseExclude(value: string, previous?: string[]): string[];
37
- parseList(): boolean;
38
- parseClean(): boolean;
39
- parseDeps(): boolean;
40
- parseDepsDepth(value: string): number;
41
- parseExplain(): boolean;
42
- parseFormat(value: string): OutputFormat;
43
- run(inputs: string[], options: PackOptions): Promise<void>;
44
- private buildContext;
45
- private applyTemplate;
46
- private loadTemplate;
47
- private writeOutput;
48
- private applyConfiguredPrompt;
49
- private fillTemplate;
50
- }
51
- export {};
@@ -1,355 +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.PackCommand = void 0;
16
- const node_fs_1 = require("node:fs");
17
- const node_path_1 = __importDefault(require("node:path"));
18
- const clipboardy_1 = __importDefault(require("clipboardy"));
19
- const nest_commander_1 = require("nest-commander");
20
- const config_service_1 = require("../../core/config/config.service");
21
- const prompt_service_1 = require("../../core/config/prompt.service");
22
- const fs_service_1 = require("../../core/file-system/fs.service");
23
- const ui_service_1 = require("../../core/ui/ui.service");
24
- const cleaner_service_1 = require("../../shared/cleaner/cleaner.service");
25
- const deps_service_1 = require("../../shared/deps/deps.service");
26
- const tokenizer_service_1 = require("../../shared/tokenizer/tokenizer.service");
27
- let PackCommand = class PackCommand extends nest_commander_1.CommandRunner {
28
- ui;
29
- configService;
30
- promptService;
31
- fsService;
32
- tokenizer;
33
- cleaner;
34
- depsService;
35
- constructor(ui, configService, promptService, fsService, tokenizer, cleaner, depsService) {
36
- super();
37
- this.ui = ui;
38
- this.configService = configService;
39
- this.promptService = promptService;
40
- this.fsService = fsService;
41
- this.tokenizer = tokenizer;
42
- this.cleaner = cleaner;
43
- this.depsService = depsService;
44
- }
45
- parseCopy() {
46
- return true;
47
- }
48
- parseTemplate(value) {
49
- return value;
50
- }
51
- parseOut(value) {
52
- return value;
53
- }
54
- parsePath(value, previous = []) {
55
- return [...previous, value];
56
- }
57
- parseExclude(value, previous = []) {
58
- return [...previous, value];
59
- }
60
- parseList() {
61
- return true;
62
- }
63
- parseClean() {
64
- return true;
65
- }
66
- parseDeps() {
67
- return true;
68
- }
69
- parseDepsDepth(value) {
70
- const n = Number.parseInt(value, 10);
71
- if (Number.isNaN(n) || n < 1) {
72
- this.ui.log.warn(`Invalid --deps-depth "${value}", ignoring`);
73
- return Infinity;
74
- }
75
- return n;
76
- }
77
- parseExplain() {
78
- return true;
79
- }
80
- parseFormat(value) {
81
- if (value !== 'xml' && value !== 'text') {
82
- this.ui.log.warn(`Unknown format "${value}", using "xml"`);
83
- return 'xml';
84
- }
85
- return value;
86
- }
87
- async run(inputs, options) {
88
- const spinner = this.ui
89
- .createSpinner({ text: 'Collecting files...' })
90
- .start();
91
- try {
92
- const { packer } = this.configService.getConfig();
93
- const extraExcludes = options.exclude ?? [];
94
- let files;
95
- let explainMap;
96
- if (options.deps) {
97
- if (inputs.length === 0) {
98
- spinner.error('--deps requires at least one entry file as argument');
99
- this.ui.log.error('Usage: kodu pack <entry.ts> [more.ts...] --deps');
100
- process.exitCode = 1;
101
- return;
102
- }
103
- spinner.text = 'Resolving dependency graph...';
104
- const result = this.depsService.collectDependencies(inputs, process.cwd(), {
105
- maxDepth: options.depsDepth,
106
- includeTypes: true,
107
- includeDynamic: false,
108
- });
109
- files = result.files;
110
- explainMap = result.explain;
111
- }
112
- else {
113
- files = await this.fsService.findProjectFiles({
114
- excludeBinary: true,
115
- useGitignore: packer.useGitignore,
116
- ignore: [...packer.ignore, ...extraExcludes],
117
- contentBasedBinaryDetection: packer.contentBasedBinaryDetection,
118
- rootPaths: inputs.length > 0 ? inputs : options.path,
119
- });
120
- }
121
- if (files.length === 0) {
122
- spinner.stop('No files to pack.');
123
- this.ui.log.warn('No files to pack.');
124
- return;
125
- }
126
- if (options.list) {
127
- spinner.success(`Found ${files.length} files`);
128
- for (const file of files) {
129
- if (options.explain && explainMap) {
130
- const absFile = node_path_1.default.resolve(process.cwd(), file);
131
- const reason = explainMap.get(absFile) ?? explainMap.get(file) ?? '';
132
- this.ui.log.info(`${file} ← ${reason}`);
133
- }
134
- else {
135
- this.ui.log.info(file);
136
- }
137
- }
138
- return;
139
- }
140
- if (options.explain && explainMap) {
141
- spinner.success(`Found ${files.length} files`);
142
- this.ui.log.info('Dependency explanation:');
143
- for (const file of files) {
144
- const absFile = node_path_1.default.resolve(process.cwd(), file);
145
- const reason = explainMap.get(absFile) ?? explainMap.get(file) ?? '';
146
- this.ui.log.info(` ${file} ← ${reason}`);
147
- }
148
- }
149
- const format = options.format ?? 'xml';
150
- const context = await this.buildContext(files, format, options.clean);
151
- const fileList = files.join('\n');
152
- const { tokens, usdEstimate } = this.tokenizer.count(context);
153
- const basePrompt = await this.applyConfiguredPrompt({
154
- context,
155
- fileList,
156
- tokenCount: tokens,
157
- usdEstimate,
158
- });
159
- const templateApplied = options.template
160
- ? await this.applyTemplate(options.template, {
161
- context,
162
- fileList,
163
- tokenCount: tokens,
164
- usdEstimate,
165
- })
166
- : basePrompt;
167
- const outputPath = await this.writeOutput(templateApplied, options.out);
168
- if (options.copy) {
169
- await clipboardy_1.default.write(templateApplied);
170
- }
171
- spinner.success('Collection complete');
172
- this.ui.log.info(`Files: ${files.length}`);
173
- this.ui.log.info(`Tokens: ${tokens}`);
174
- this.ui.log.info(`Cost estimate: ~$${usdEstimate.toFixed(4)}`);
175
- this.ui.log.info(`Format: ${format}${options.clean ? ' (comments stripped)' : ''}`);
176
- this.ui.log.success(`Saved to ${outputPath}`);
177
- if (options.copy) {
178
- this.ui.log.success('Result copied to clipboard');
179
- }
180
- }
181
- catch (error) {
182
- spinner.error('Error collecting context');
183
- const message = error instanceof Error ? error.message : 'Unknown error';
184
- this.ui.log.error(message);
185
- process.exitCode = 1;
186
- }
187
- }
188
- async buildContext(files, format, clean = false) {
189
- const chunks = await Promise.all(files.map(async (file) => {
190
- let content = await this.fsService.readFileRelative(file);
191
- if (clean) {
192
- content = this.cleaner.cleanContent(file, content);
193
- }
194
- if (format === 'xml') {
195
- return `<file path="${file}">\n${content}\n</file>`;
196
- }
197
- return `// file: ${file}\n${content}`;
198
- }));
199
- if (format === 'xml') {
200
- return `<files>\n${chunks.join('\n\n')}\n</files>`;
201
- }
202
- return chunks.join('\n\n');
203
- }
204
- async applyTemplate(name, ctx) {
205
- const template = await this.loadTemplate(name);
206
- return this.fillTemplate(template, ctx);
207
- }
208
- async loadTemplate(name) {
209
- return this.promptService.loadFromPromptsDir(name);
210
- }
211
- async writeOutput(content, outPath) {
212
- const target = outPath ?? node_path_1.default.join(process.cwd(), '.kodu', 'context.txt');
213
- const dir = node_path_1.default.dirname(target);
214
- await node_fs_1.promises.mkdir(dir, { recursive: true });
215
- await node_fs_1.promises.writeFile(target, `${content}\n`, 'utf8');
216
- return target;
217
- }
218
- async applyConfiguredPrompt(ctx) {
219
- const config = this.configService.getConfig();
220
- const packPrompt = config.prompts?.pack;
221
- if (!packPrompt) {
222
- return ctx.context;
223
- }
224
- try {
225
- const template = await this.promptService.load(packPrompt);
226
- return this.fillTemplate(template, ctx);
227
- }
228
- catch {
229
- this.ui.log.warn(`Prompt file not found: ${packPrompt}, using raw context`);
230
- return ctx.context;
231
- }
232
- }
233
- fillTemplate(template, ctx) {
234
- const filled = template
235
- .replace(/\{\{context\}\}/g, ctx.context)
236
- .replace(/\{\{fileList\}\}/g, ctx.fileList)
237
- .replace(/\{\{tokenCount\}\}/g, ctx.tokenCount.toString())
238
- .replace(/\{\{usdEstimate\}\}/g, ctx.usdEstimate.toFixed(4));
239
- if (!template.includes('{{context}}')) {
240
- return `${filled}\n\n${ctx.context}`;
241
- }
242
- return filled;
243
- }
244
- };
245
- exports.PackCommand = PackCommand;
246
- __decorate([
247
- (0, nest_commander_1.Option)({ flags: '-c, --copy', description: 'Copy result to clipboard' }),
248
- __metadata("design:type", Function),
249
- __metadata("design:paramtypes", []),
250
- __metadata("design:returntype", Boolean)
251
- ], PackCommand.prototype, "parseCopy", null);
252
- __decorate([
253
- (0, nest_commander_1.Option)({
254
- flags: '-t, --template <name>',
255
- description: 'Template name from .kodu/prompts',
256
- }),
257
- __metadata("design:type", Function),
258
- __metadata("design:paramtypes", [String]),
259
- __metadata("design:returntype", String)
260
- ], PackCommand.prototype, "parseTemplate", null);
261
- __decorate([
262
- (0, nest_commander_1.Option)({
263
- flags: '-o, --out <path>',
264
- description: 'Path to save result',
265
- }),
266
- __metadata("design:type", Function),
267
- __metadata("design:paramtypes", [String]),
268
- __metadata("design:returntype", String)
269
- ], PackCommand.prototype, "parseOut", null);
270
- __decorate([
271
- (0, nest_commander_1.Option)({
272
- flags: '-p, --path <path>',
273
- description: 'Directory or glob to include (repeatable)',
274
- }),
275
- __metadata("design:type", Function),
276
- __metadata("design:paramtypes", [String, Array]),
277
- __metadata("design:returntype", Array)
278
- ], PackCommand.prototype, "parsePath", null);
279
- __decorate([
280
- (0, nest_commander_1.Option)({
281
- flags: '-e, --exclude <pattern>',
282
- description: 'Additional exclude pattern (repeatable)',
283
- }),
284
- __metadata("design:type", Function),
285
- __metadata("design:paramtypes", [String, Array]),
286
- __metadata("design:returntype", Array)
287
- ], PackCommand.prototype, "parseExclude", null);
288
- __decorate([
289
- (0, nest_commander_1.Option)({
290
- flags: '-l, --list',
291
- description: 'Print file list only, without content',
292
- }),
293
- __metadata("design:type", Function),
294
- __metadata("design:paramtypes", []),
295
- __metadata("design:returntype", Boolean)
296
- ], PackCommand.prototype, "parseList", null);
297
- __decorate([
298
- (0, nest_commander_1.Option)({
299
- flags: '--clean',
300
- description: 'Strip comments in-memory before packing (files not modified)',
301
- }),
302
- __metadata("design:type", Function),
303
- __metadata("design:paramtypes", []),
304
- __metadata("design:returntype", Boolean)
305
- ], PackCommand.prototype, "parseClean", null);
306
- __decorate([
307
- (0, nest_commander_1.Option)({
308
- flags: '--deps',
309
- description: 'Trace imports from entry point(s) and include their dependencies',
310
- }),
311
- __metadata("design:type", Function),
312
- __metadata("design:paramtypes", []),
313
- __metadata("design:returntype", Boolean)
314
- ], PackCommand.prototype, "parseDeps", null);
315
- __decorate([
316
- (0, nest_commander_1.Option)({
317
- flags: '--deps-depth <n>',
318
- description: 'Max import depth when using --deps (default: unlimited)',
319
- }),
320
- __metadata("design:type", Function),
321
- __metadata("design:paramtypes", [String]),
322
- __metadata("design:returntype", Number)
323
- ], PackCommand.prototype, "parseDepsDepth", null);
324
- __decorate([
325
- (0, nest_commander_1.Option)({
326
- flags: '--explain',
327
- description: 'Print why each file was included (requires --deps)',
328
- }),
329
- __metadata("design:type", Function),
330
- __metadata("design:paramtypes", []),
331
- __metadata("design:returntype", Boolean)
332
- ], PackCommand.prototype, "parseExplain", null);
333
- __decorate([
334
- (0, nest_commander_1.Option)({
335
- flags: '-f, --format <format>',
336
- description: 'Output format: xml (default) or text',
337
- }),
338
- __metadata("design:type", Function),
339
- __metadata("design:paramtypes", [String]),
340
- __metadata("design:returntype", String)
341
- ], PackCommand.prototype, "parseFormat", null);
342
- exports.PackCommand = PackCommand = __decorate([
343
- (0, nest_commander_1.Command)({
344
- name: 'pack',
345
- description: 'Collect project context into a single file',
346
- }),
347
- __metadata("design:paramtypes", [ui_service_1.UiService,
348
- config_service_1.ConfigService,
349
- prompt_service_1.PromptService,
350
- fs_service_1.FsService,
351
- tokenizer_service_1.TokenizerService,
352
- cleaner_service_1.CleanerService,
353
- deps_service_1.DepsService])
354
- ], PackCommand);
355
- //# sourceMappingURL=pack.command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pack.command.js","sourceRoot":"","sources":["../../../../src/commands/pack/pack.command.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare class PackModule {
2
- }
@@ -1,27 +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.PackModule = 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 deps_module_1 = require("../../shared/deps/deps.module");
16
- const tokenizer_module_1 = require("../../shared/tokenizer/tokenizer.module");
17
- const pack_command_1 = require("./pack.command");
18
- let PackModule = class PackModule {
19
- };
20
- exports.PackModule = PackModule;
21
- exports.PackModule = PackModule = __decorate([
22
- (0, common_1.Module)({
23
- imports: [config_module_1.ConfigModule, ui_module_1.UiModule, fs_module_1.FsModule, tokenizer_module_1.TokenizerModule, deps_module_1.DepsModule],
24
- providers: [pack_command_1.PackCommand, cleaner_service_1.CleanerService],
25
- })
26
- ], PackModule);
27
- //# sourceMappingURL=pack.module.js.map
@@ -1 +0,0 @@
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,+DAA2D;AAC3D,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,EAAE,wBAAU,CAAC;QACxE,SAAS,EAAE,CAAC,0BAAW,EAAE,gCAAc,CAAC;KACzC,CAAC;GACW,UAAU,CAAG"}
@@ -1,2 +0,0 @@
1
- export declare class ConfigModule {
2
- }
@@ -1,23 +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.ConfigModule = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const config_service_1 = require("./config.service");
12
- const prompt_service_1 = require("./prompt.service");
13
- let ConfigModule = class ConfigModule {
14
- };
15
- exports.ConfigModule = ConfigModule;
16
- exports.ConfigModule = ConfigModule = __decorate([
17
- (0, common_1.Global)(),
18
- (0, common_1.Module)({
19
- providers: [config_service_1.ConfigService, prompt_service_1.PromptService],
20
- exports: [config_service_1.ConfigService, prompt_service_1.PromptService],
21
- })
22
- ], ConfigModule);
23
- //# sourceMappingURL=config.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.module.js","sourceRoot":"","sources":["../../../../src/core/config/config.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,qDAAiD;AACjD,qDAAiD;AAO1C,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IALxB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,8BAAa,EAAE,8BAAa,CAAC;QACzC,OAAO,EAAE,CAAC,8BAAa,EAAE,8BAAa,CAAC;KACxC,CAAC;GACW,YAAY,CAAG"}
@@ -1,19 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const configSchema: z.ZodObject<{
3
- $schema: z.ZodOptional<z.ZodString>;
4
- cleaner: z.ZodDefault<z.ZodObject<{
5
- whitelist: z.ZodDefault<z.ZodArray<z.ZodString>>;
6
- keepJSDoc: z.ZodDefault<z.ZodBoolean>;
7
- useGitignore: z.ZodDefault<z.ZodBoolean>;
8
- ignore: z.ZodDefault<z.ZodArray<z.ZodString>>;
9
- }, z.core.$strip>>;
10
- packer: z.ZodDefault<z.ZodObject<{
11
- ignore: z.ZodDefault<z.ZodArray<z.ZodString>>;
12
- useGitignore: z.ZodDefault<z.ZodBoolean>;
13
- contentBasedBinaryDetection: z.ZodDefault<z.ZodBoolean>;
14
- }, z.core.$strip>>;
15
- prompts: z.ZodOptional<z.ZodObject<{
16
- pack: z.ZodOptional<z.ZodString>;
17
- }, z.core.$strip>>;
18
- }, z.core.$strip>;
19
- export type KoduConfig = z.infer<typeof configSchema>;