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,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.configSchema = void 0;
4
- const zod_1 = require("zod");
5
- const cleanerSchema = zod_1.z.object({
6
- whitelist: zod_1.z.array(zod_1.z.string()).default(['//!']),
7
- keepJSDoc: zod_1.z.boolean().default(true),
8
- useGitignore: zod_1.z.boolean().default(true),
9
- ignore: zod_1.z.array(zod_1.z.string()).default([]),
10
- });
11
- const packerSchema = zod_1.z.object({
12
- ignore: zod_1.z
13
- .array(zod_1.z.string())
14
- .default([
15
- 'package-lock.json',
16
- 'yarn.lock',
17
- 'pnpm-lock.yaml',
18
- '.git',
19
- '.kodu',
20
- 'node_modules',
21
- 'dist',
22
- 'coverage',
23
- ]),
24
- useGitignore: zod_1.z.boolean().default(true),
25
- contentBasedBinaryDetection: zod_1.z.boolean().default(false),
26
- });
27
- const promptsSchema = zod_1.z
28
- .object({
29
- pack: zod_1.z.string().optional(),
30
- })
31
- .optional();
32
- exports.configSchema = zod_1.z.object({
33
- $schema: zod_1.z.string().optional(),
34
- cleaner: cleanerSchema.default({
35
- whitelist: ['//!'],
36
- keepJSDoc: true,
37
- useGitignore: true,
38
- ignore: [],
39
- }),
40
- packer: packerSchema.default({
41
- ignore: [
42
- 'package-lock.json',
43
- 'yarn.lock',
44
- 'pnpm-lock.yaml',
45
- '.git',
46
- '.kodu',
47
- 'node_modules',
48
- 'dist',
49
- 'coverage',
50
- ],
51
- useGitignore: true,
52
- contentBasedBinaryDetection: false,
53
- }),
54
- prompts: promptsSchema,
55
- });
56
- //# sourceMappingURL=config.schema.js.map
@@ -1 +0,0 @@
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"}
@@ -1,7 +0,0 @@
1
- import { type KoduConfig } from './config.schema';
2
- export declare class ConfigService {
3
- private config?;
4
- getConfig(): KoduConfig;
5
- private loadConfig;
6
- private terminate;
7
- }
@@ -1,49 +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 __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ConfigService = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const lilconfig_1 = require("lilconfig");
15
- const picocolors_1 = __importDefault(require("picocolors"));
16
- const config_schema_1 = require("./config.schema");
17
- let ConfigService = class ConfigService {
18
- config;
19
- getConfig() {
20
- if (!this.config) {
21
- this.config = this.loadConfig();
22
- }
23
- return this.config;
24
- }
25
- loadConfig() {
26
- const explorer = (0, lilconfig_1.lilconfigSync)('kodu', { searchPlaces: ['kodu.json'] });
27
- const result = explorer.search(process.cwd());
28
- const rawConfig = result && !result.isEmpty && result.config ? result.config : {};
29
- const parsed = config_schema_1.configSchema.safeParse(rawConfig);
30
- if (!parsed.success) {
31
- console.error(picocolors_1.default.red('kodu.json is invalid:'));
32
- parsed.error.issues.forEach((issue) => {
33
- const path = issue.path.join('.') || '(root)';
34
- console.error(picocolors_1.default.red(`- ${path}: ${issue.message}`));
35
- });
36
- this.terminate('Fix the config and run the command again.');
37
- }
38
- return parsed.data;
39
- }
40
- terminate(message) {
41
- console.error(picocolors_1.default.red(message));
42
- process.exit(1);
43
- }
44
- };
45
- exports.ConfigService = ConfigService;
46
- exports.ConfigService = ConfigService = __decorate([
47
- (0, common_1.Injectable)()
48
- ], ConfigService);
49
- //# sourceMappingURL=config.service.js.map
@@ -1 +0,0 @@
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,MAAM,SAAS,GACb,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAElE,MAAM,MAAM,GAAG,4BAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAEjD,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;AApCY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;GACA,aAAa,CAoCzB"}
@@ -1,10 +0,0 @@
1
- export declare class PromptService {
2
- private readonly cache;
3
- load(source: string): Promise<string>;
4
- loadFromPromptsDir(name: string): Promise<string>;
5
- private readSource;
6
- private readAndCache;
7
- private looksLikeInline;
8
- private buildCandidates;
9
- private exists;
10
- }
@@ -1,80 +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 __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.PromptService = void 0;
13
- const node_fs_1 = require("node:fs");
14
- const node_path_1 = __importDefault(require("node:path"));
15
- const common_1 = require("@nestjs/common");
16
- let PromptService = class PromptService {
17
- cache = new Map();
18
- async load(source) {
19
- return this.readSource(source);
20
- }
21
- async loadFromPromptsDir(name) {
22
- const candidates = this.buildCandidates(name);
23
- for (const candidate of candidates) {
24
- if (await this.exists(candidate)) {
25
- return this.readAndCache(candidate);
26
- }
27
- }
28
- throw new Error(`Template ${name} not found. Expected files: ${candidates
29
- .map((c) => node_path_1.default.relative(process.cwd(), c))
30
- .join(', ')}`);
31
- }
32
- async readSource(source) {
33
- const resolved = node_path_1.default.isAbsolute(source)
34
- ? source
35
- : node_path_1.default.resolve(process.cwd(), source);
36
- if (await this.exists(resolved)) {
37
- return this.readAndCache(resolved);
38
- }
39
- if (this.looksLikeInline(source)) {
40
- return source;
41
- }
42
- throw new Error(`Prompt file not found: ${node_path_1.default.relative(process.cwd(), resolved)}`);
43
- }
44
- async readAndCache(target) {
45
- const cached = this.cache.get(target);
46
- if (cached) {
47
- return cached;
48
- }
49
- const content = await node_fs_1.promises.readFile(target, 'utf8');
50
- this.cache.set(target, content);
51
- return content;
52
- }
53
- looksLikeInline(value) {
54
- if (value.includes('\n')) {
55
- return true;
56
- }
57
- const hasPathSegments = value.includes('/') || value.includes('\\');
58
- const hasExtension = node_path_1.default.extname(value) !== '';
59
- return value.trim().length > 0 && !hasPathSegments && !hasExtension;
60
- }
61
- buildCandidates(name) {
62
- const names = node_path_1.default.extname(name) ? [name] : [`${name}.md`, `${name}.txt`];
63
- const root = node_path_1.default.join(process.cwd(), '.kodu', 'prompts');
64
- return names.map((variant) => node_path_1.default.join(root, variant));
65
- }
66
- async exists(target) {
67
- try {
68
- await node_fs_1.promises.access(target);
69
- return true;
70
- }
71
- catch {
72
- return false;
73
- }
74
- }
75
- };
76
- exports.PromptService = PromptService;
77
- exports.PromptService = PromptService = __decorate([
78
- (0, common_1.Injectable)()
79
- ], PromptService);
80
- //# sourceMappingURL=prompt.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompt.service.js","sourceRoot":"","sources":["../../../../src/core/config/prompt.service.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare class FsModule {
2
- }
@@ -1,21 +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.FsModule = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const fs_service_1 = require("./fs.service");
12
- let FsModule = class FsModule {
13
- };
14
- exports.FsModule = FsModule;
15
- exports.FsModule = FsModule = __decorate([
16
- (0, common_1.Module)({
17
- providers: [fs_service_1.FsService],
18
- exports: [fs_service_1.FsService],
19
- })
20
- ], FsModule);
21
- //# sourceMappingURL=fs.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fs.module.js","sourceRoot":"","sources":["../../../../src/core/file-system/fs.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6CAAyC;AAMlC,IAAM,QAAQ,GAAd,MAAM,QAAQ;CAAG,CAAA;AAAX,4BAAQ;mBAAR,QAAQ;IAJpB,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,sBAAS,CAAC;QACtB,OAAO,EAAE,CAAC,sBAAS,CAAC;KACrB,CAAC;GACW,QAAQ,CAAG"}
@@ -1,27 +0,0 @@
1
- import { ConfigService } from '../config/config.service';
2
- import { UiService } from '../ui/ui.service';
3
- type FindProjectFilesOptions = {
4
- ignore?: string[];
5
- useGitignore?: boolean;
6
- excludeBinary?: boolean;
7
- contentBasedBinaryDetection?: boolean;
8
- maxFileSizeBytes?: number;
9
- rootPaths?: string[];
10
- };
11
- export declare class FsService {
12
- private readonly configService;
13
- private readonly ui;
14
- constructor(configService: ConfigService, ui: UiService);
15
- findProjectFiles(options?: FindProjectFilesOptions): Promise<string[]>;
16
- readFileRelative(relativePath: string): Promise<string>;
17
- private toPosixPath;
18
- private normalizeIgnorePatterns;
19
- private buildGlobIgnorePatterns;
20
- private readIgnoreFile;
21
- private parseIgnoreContent;
22
- private isBinaryExtension;
23
- private isKnownTextFile;
24
- private shouldExcludeBinary;
25
- private hasNullByte;
26
- }
27
- export {};
@@ -1,203 +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.FsService = void 0;
16
- const node_fs_1 = require("node:fs");
17
- const node_path_1 = __importDefault(require("node:path"));
18
- const common_1 = require("@nestjs/common");
19
- const ignore_1 = __importDefault(require("ignore"));
20
- const tinyglobby_1 = require("tinyglobby");
21
- const constants_1 = require("../../shared/constants");
22
- const config_service_1 = require("../config/config.service");
23
- const ui_service_1 = require("../ui/ui.service");
24
- const BINARY_PROBE_SIZE = 8192;
25
- const GLOB_IGNORE = ['.git/**'];
26
- let FsService = class FsService {
27
- configService;
28
- ui;
29
- constructor(configService, ui) {
30
- this.configService = configService;
31
- this.ui = ui;
32
- }
33
- async findProjectFiles(options = {}) {
34
- const { packer } = this.configService.getConfig();
35
- const shouldUseGitignore = options.useGitignore ?? packer.useGitignore;
36
- const gitignorePatterns = shouldUseGitignore
37
- ? await this.readIgnoreFile('.gitignore')
38
- : [];
39
- const koduignorePatterns = await this.readIgnoreFile('.koduignore');
40
- const baseIgnore = options.ignore ?? packer.ignore ?? [];
41
- const normalizedBase = this.normalizeIgnorePatterns(baseIgnore);
42
- const combinedIgnore = [
43
- ...normalizedBase,
44
- ...gitignorePatterns,
45
- ...koduignorePatterns,
46
- ].map((pattern) => pattern.replace(/\\/g, '/'));
47
- const ig = (0, ignore_1.default)();
48
- if (combinedIgnore.length > 0) {
49
- ig.add(combinedIgnore);
50
- }
51
- const globIgnore = this.buildGlobIgnorePatterns(combinedIgnore);
52
- const patterns = options.rootPaths?.length
53
- ? options.rootPaths.map((p) => `${p}/**`)
54
- : ['**/*'];
55
- const entries = await (0, tinyglobby_1.glob)(patterns, {
56
- onlyFiles: true,
57
- absolute: true,
58
- dot: true,
59
- ignore: [...GLOB_IGNORE, ...globIgnore],
60
- });
61
- const relativePaths = entries
62
- .map((entry) => node_path_1.default.relative(process.cwd(), entry))
63
- .map((relative) => this.toPosixPath(relative))
64
- .filter((relative) => relative.length > 0);
65
- const filtered = ig
66
- .filter(relativePaths)
67
- .sort((a, b) => a.localeCompare(b));
68
- const excludeBinary = options.excludeBinary ?? true;
69
- const useContentDetection = options.contentBasedBinaryDetection ??
70
- packer.contentBasedBinaryDetection ??
71
- false;
72
- const maxFileSize = options.maxFileSizeBytes ?? constants_1.MAX_FILE_SIZE_BYTES;
73
- const textFiles = [];
74
- for (const rel of filtered) {
75
- const abs = node_path_1.default.resolve(process.cwd(), rel);
76
- let stats;
77
- try {
78
- stats = await node_fs_1.promises.stat(abs);
79
- }
80
- catch {
81
- continue;
82
- }
83
- if (stats.size > maxFileSize) {
84
- this.ui.log.warn(`Skipping large file: ${rel} (>${(maxFileSize / (1024 * 1024)).toFixed(0)}MB)`);
85
- continue;
86
- }
87
- if (excludeBinary &&
88
- (await this.shouldExcludeBinary(rel, abs, useContentDetection))) {
89
- continue;
90
- }
91
- textFiles.push(rel);
92
- }
93
- return textFiles;
94
- }
95
- async readFileRelative(relativePath) {
96
- const absolute = node_path_1.default.resolve(process.cwd(), relativePath);
97
- return node_fs_1.promises.readFile(absolute, 'utf8');
98
- }
99
- toPosixPath(relativePath) {
100
- return relativePath.split(node_path_1.default.sep).join(node_path_1.default.posix.sep);
101
- }
102
- normalizeIgnorePatterns(patterns) {
103
- return patterns
104
- .map((pattern) => pattern.trim())
105
- .filter((pattern) => pattern.length > 0 && !pattern.startsWith('#'));
106
- }
107
- buildGlobIgnorePatterns(patterns) {
108
- const normalized = patterns
109
- .map((pattern) => pattern.trim())
110
- .filter((pattern) => pattern.length > 0 &&
111
- !pattern.startsWith('#') &&
112
- !pattern.startsWith('!'))
113
- .map((pattern) => pattern.replace(/\\/g, '/'));
114
- const result = new Set();
115
- for (const pattern of normalized) {
116
- const trimmed = pattern.replace(/\/+$/, '');
117
- result.add(pattern);
118
- if (trimmed.length === 0) {
119
- continue;
120
- }
121
- if (!pattern.includes('*')) {
122
- result.add(`${trimmed}/**`);
123
- result.add(`**/${trimmed}/**`);
124
- }
125
- if (!pattern.startsWith('**/')) {
126
- result.add(`**/${trimmed}`);
127
- }
128
- if (pattern.endsWith('/')) {
129
- result.add(`${trimmed}/**`);
130
- }
131
- }
132
- return [...result];
133
- }
134
- async readIgnoreFile(fileName) {
135
- const target = node_path_1.default.join(process.cwd(), fileName);
136
- try {
137
- const content = await node_fs_1.promises.readFile(target, 'utf8');
138
- return this.parseIgnoreContent(content);
139
- }
140
- catch {
141
- return [];
142
- }
143
- }
144
- parseIgnoreContent(content) {
145
- return content
146
- .split(/\r?\n/)
147
- .map((line) => line.trim())
148
- .filter((line) => line.length > 0 && !line.startsWith('#'));
149
- }
150
- isBinaryExtension(relativePath) {
151
- const ext = node_path_1.default.extname(relativePath).toLowerCase();
152
- return ext.length > 0 && constants_1.BINARY_EXTENSIONS.has(ext);
153
- }
154
- isKnownTextFile(relativePath) {
155
- const ext = node_path_1.default.extname(relativePath).toLowerCase();
156
- if (ext && constants_1.KNOWN_TEXT_EXTENSIONS.has(ext)) {
157
- return true;
158
- }
159
- const baseName = node_path_1.default.basename(relativePath).toLowerCase();
160
- return constants_1.KNOWN_TEXT_EXTENSIONS.has(baseName);
161
- }
162
- async shouldExcludeBinary(relativePath, absolutePath, detectByContent) {
163
- if (this.isKnownTextFile(relativePath)) {
164
- return false;
165
- }
166
- if (this.isBinaryExtension(relativePath)) {
167
- return true;
168
- }
169
- if (!detectByContent) {
170
- return false;
171
- }
172
- return this.hasNullByte(absolutePath);
173
- }
174
- async hasNullByte(absolutePath) {
175
- let handle;
176
- try {
177
- handle = await node_fs_1.promises.open(absolutePath, 'r');
178
- const buffer = Buffer.alloc(BINARY_PROBE_SIZE);
179
- const { bytesRead } = await handle.read(buffer, 0, buffer.length, 0);
180
- for (let i = 0; i < bytesRead; i += 1) {
181
- if (buffer[i] === 0) {
182
- return true;
183
- }
184
- }
185
- return false;
186
- }
187
- catch {
188
- return true;
189
- }
190
- finally {
191
- if (handle) {
192
- await handle.close();
193
- }
194
- }
195
- }
196
- };
197
- exports.FsService = FsService;
198
- exports.FsService = FsService = __decorate([
199
- (0, common_1.Injectable)(),
200
- __metadata("design:paramtypes", [config_service_1.ConfigService,
201
- ui_service_1.UiService])
202
- ], FsService);
203
- //# sourceMappingURL=fs.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fs.service.js","sourceRoot":"","sources":["../../../../src/core/file-system/fs.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAAqD;AACrD,0DAA6B;AAC7B,2CAA4C;AAC5C,oDAA4B;AAC5B,2CAAkC;AAClC,sDAIgC;AAChC,6DAAyD;AACzD,iDAA6C;AAE7C,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAC/B,MAAM,WAAW,GAAG,CAAC,SAAS,CAAC,CAAC;AAYzB,IAAM,SAAS,GAAf,MAAM,SAAS;IAED;IACA;IAFnB,YACmB,aAA4B,EAC5B,EAAa;QADb,kBAAa,GAAb,aAAa,CAAe;QAC5B,OAAE,GAAF,EAAE,CAAW;IAC7B,CAAC;IAEJ,KAAK,CAAC,gBAAgB,CACpB,UAAmC,EAAE;QAErC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,kBAAkB,GAAG,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;QACvE,MAAM,iBAAiB,GAAG,kBAAkB;YAC1C,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;YACzC,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAEpE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;QACzD,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAChE,MAAM,cAAc,GAAG;YACrB,GAAG,cAAc;YACjB,GAAG,iBAAiB;YACpB,GAAG,kBAAkB;SACtB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAEhD,MAAM,EAAE,GAAG,IAAA,gBAAM,GAAE,CAAC;QACpB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACzB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;QAEhE,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,MAAM;YACxC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;YACzC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAEb,MAAM,OAAO,GAAG,MAAM,IAAA,iBAAI,EAAC,QAAQ,EAAE;YACnC,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,IAAI;YACT,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,UAAU,CAAC;SACxC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,OAAO;aAC1B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;aACnD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;aAC7C,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE7C,MAAM,QAAQ,GAAG,EAAE;aAChB,MAAM,CAAC,aAAa,CAAC;aACrB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAItC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;QACpD,MAAM,mBAAmB,GACvB,OAAO,CAAC,2BAA2B;YACnC,MAAM,CAAC,2BAA2B;YAClC,KAAK,CAAC;QACR,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,IAAI,+BAAmB,CAAC;QAEpE,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;YAC7C,IAAI,KAAY,CAAC;YAEjB,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,kBAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7B,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,GAAG,WAAW,EAAE,CAAC;gBAC7B,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CACd,wBAAwB,GAAG,MAAM,CAAC,WAAW,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/E,CAAC;gBACF,SAAS;YACX,CAAC;YAED,IACE,aAAa;gBACb,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC,EAC/D,CAAC;gBACD,SAAS;YACX,CAAC;YAED,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,YAAoB;QACzC,MAAM,QAAQ,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;QAC3D,OAAO,kBAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAEO,WAAW,CAAC,YAAoB;QACtC,OAAO,YAAY,CAAC,KAAK,CAAC,mBAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,mBAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC;IAEO,uBAAuB,CAAC,QAAkB;QAChD,OAAO,QAAQ;aACZ,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aAChC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,CAAC;IAEO,uBAAuB,CAAC,QAAkB;QAChD,MAAM,UAAU,GAAG,QAAQ;aACxB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aAChC,MAAM,CACL,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,MAAM,GAAG,CAAC;YAClB,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YACxB,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAC3B;aACA,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QAEjD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QAEjC,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC5C,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAEpB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,SAAS;YACX,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,KAAK,CAAC,CAAC;gBAC5B,MAAM,CAAC,GAAG,CAAC,MAAM,OAAO,KAAK,CAAC,CAAC;YACjC,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,GAAG,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;YAC9B,CAAC;YAED,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,QAAgB;QAC3C,MAAM,MAAM,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;QAElD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,OAAe;QACxC,OAAO,OAAO;aACX,KAAK,CAAC,OAAO,CAAC;aACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;IAEO,iBAAiB,CAAC,YAAoB;QAC5C,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,6BAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAEO,eAAe,CAAC,YAAoB;QAC1C,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,IAAI,GAAG,IAAI,iCAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,mBAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3D,OAAO,iCAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,YAAoB,EACpB,YAAoB,EACpB,eAAwB;QAExB,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,YAAoB;QAC5C,IAAI,MAAiC,CAAC;QAEtC,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,kBAAE,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC/C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAErE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBACpB,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAA;AA7NY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;qCAGuB,8BAAa;QACxB,sBAAS;GAHrB,SAAS,CA6NrB"}
@@ -1,2 +0,0 @@
1
- export declare class RegistryModule {
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.RegistryModule = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const registry_service_1 = require("./registry.service");
12
- let RegistryModule = class RegistryModule {
13
- };
14
- exports.RegistryModule = RegistryModule;
15
- exports.RegistryModule = RegistryModule = __decorate([
16
- (0, common_1.Global)(),
17
- (0, common_1.Module)({
18
- providers: [registry_service_1.RegistryService],
19
- exports: [registry_service_1.RegistryService],
20
- })
21
- ], RegistryModule);
22
- //# sourceMappingURL=registry.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.module.js","sourceRoot":"","sources":["../../../../src/core/registry/registry.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,yDAAqD;AAO9C,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,wCAAc;yBAAd,cAAc;IAL1B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,kCAAe,CAAC;QAC5B,OAAO,EAAE,CAAC,kCAAe,CAAC;KAC3B,CAAC;GACW,cAAc,CAAG"}
@@ -1,24 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const DEFAULT_STANDS: readonly ["local", "dev", "stage", "prod"];
3
- export declare const projectEntrySchema: z.ZodObject<{
4
- path: z.ZodString;
5
- repo: z.ZodOptional<z.ZodString>;
6
- stands: z.ZodDefault<z.ZodArray<z.ZodString>>;
7
- }, z.core.$strip>;
8
- export type ProjectEntry = z.infer<typeof projectEntrySchema>;
9
- export declare const registrySchema: z.ZodObject<{
10
- $schema: z.ZodOptional<z.ZodString>;
11
- projects: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
12
- path: z.ZodString;
13
- repo: z.ZodOptional<z.ZodString>;
14
- stands: z.ZodDefault<z.ZodArray<z.ZodString>>;
15
- }, z.core.$strip>>>;
16
- }, z.core.$strip>;
17
- export type Registry = z.infer<typeof registrySchema>;
18
- export declare const projectConfigSchema: z.ZodObject<{
19
- $schema: z.ZodOptional<z.ZodString>;
20
- project: z.ZodString;
21
- activeStand: z.ZodDefault<z.ZodString>;
22
- stands: z.ZodDefault<z.ZodArray<z.ZodString>>;
23
- }, z.core.$strip>;
24
- export type ProjectConfig = z.infer<typeof projectConfigSchema>;
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.projectConfigSchema = exports.registrySchema = exports.projectEntrySchema = exports.DEFAULT_STANDS = void 0;
4
- const zod_1 = require("zod");
5
- exports.DEFAULT_STANDS = ['local', 'dev', 'stage', 'prod'];
6
- exports.projectEntrySchema = zod_1.z.object({
7
- path: zod_1.z.string().min(1),
8
- repo: zod_1.z.string().optional(),
9
- stands: zod_1.z.array(zod_1.z.string()).default([...exports.DEFAULT_STANDS]),
10
- });
11
- exports.registrySchema = zod_1.z.object({
12
- $schema: zod_1.z.string().optional(),
13
- projects: zod_1.z.record(zod_1.z.string(), exports.projectEntrySchema).default({}),
14
- });
15
- exports.projectConfigSchema = zod_1.z.object({
16
- $schema: zod_1.z.string().optional(),
17
- project: zod_1.z.string().min(1),
18
- activeStand: zod_1.z.string().default('local'),
19
- stands: zod_1.z.array(zod_1.z.string()).default([...exports.DEFAULT_STANDS]),
20
- });
21
- //# sourceMappingURL=registry.schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry.schema.js","sourceRoot":"","sources":["../../../../src/core/registry/registry.schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAMX,QAAA,cAAc,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAG5D,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAEzC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEvB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE3B,MAAM,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,sBAAc,CAAC,CAAC;CACzD,CAAC,CAAC;AAQU,QAAA,cAAc,GAAG,OAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,0BAAkB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC/D,CAAC,CAAC;AAQU,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE9B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAE1B,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IAExC,MAAM,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,sBAAc,CAAC,CAAC;CACzD,CAAC,CAAC"}
@@ -1,16 +0,0 @@
1
- import { type ProjectEntry, type Registry } from './registry.schema';
2
- export declare class RegistryService {
3
- private readonly dir;
4
- private readonly file;
5
- getFilePath(): string;
6
- load(): Promise<Registry>;
7
- save(registry: Registry): Promise<void>;
8
- list(): Promise<Registry['projects']>;
9
- get(name: string): Promise<ProjectEntry | undefined>;
10
- has(name: string): Promise<boolean>;
11
- add(name: string, entry: ProjectEntry, options?: {
12
- overwrite?: boolean;
13
- }): Promise<void>;
14
- update(name: string, patch: Partial<ProjectEntry>): Promise<ProjectEntry>;
15
- remove(name: string): Promise<void>;
16
- }