@vyuhlabs/dxkit 0.1.0

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 (149) hide show
  1. package/dist/cli.d.ts +2 -0
  2. package/dist/cli.d.ts.map +1 -0
  3. package/dist/cli.js +173 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/codebase-scanner.d.ts +33 -0
  6. package/dist/codebase-scanner.d.ts.map +1 -0
  7. package/dist/codebase-scanner.js +497 -0
  8. package/dist/codebase-scanner.js.map +1 -0
  9. package/dist/constants.d.ts +17 -0
  10. package/dist/constants.d.ts.map +1 -0
  11. package/dist/constants.js +80 -0
  12. package/dist/constants.js.map +1 -0
  13. package/dist/detect.d.ts +3 -0
  14. package/dist/detect.d.ts.map +1 -0
  15. package/dist/detect.js +264 -0
  16. package/dist/detect.js.map +1 -0
  17. package/dist/doctor.d.ts +2 -0
  18. package/dist/doctor.d.ts.map +1 -0
  19. package/dist/doctor.js +157 -0
  20. package/dist/doctor.js.map +1 -0
  21. package/dist/files.d.ts +17 -0
  22. package/dist/files.d.ts.map +1 -0
  23. package/dist/files.js +99 -0
  24. package/dist/files.js.map +1 -0
  25. package/dist/generator.d.ts +10 -0
  26. package/dist/generator.d.ts.map +1 -0
  27. package/dist/generator.js +405 -0
  28. package/dist/generator.js.map +1 -0
  29. package/dist/index.d.ts +3 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +9 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/logger.d.ts +9 -0
  34. package/dist/logger.d.ts.map +1 -0
  35. package/dist/logger.js +51 -0
  36. package/dist/logger.js.map +1 -0
  37. package/dist/prompts.d.ts +10 -0
  38. package/dist/prompts.d.ts.map +1 -0
  39. package/dist/prompts.js +125 -0
  40. package/dist/prompts.js.map +1 -0
  41. package/dist/template-engine.d.ts +22 -0
  42. package/dist/template-engine.d.ts.map +1 -0
  43. package/dist/template-engine.js +63 -0
  44. package/dist/template-engine.js.map +1 -0
  45. package/dist/types.d.ts +68 -0
  46. package/dist/types.d.ts.map +1 -0
  47. package/dist/types.js +3 -0
  48. package/dist/types.js.map +1 -0
  49. package/dist/update.d.ts +2 -0
  50. package/dist/update.d.ts.map +1 -0
  51. package/dist/update.js +97 -0
  52. package/dist/update.js.map +1 -0
  53. package/package.json +43 -0
  54. package/templates/.ai/README.md +117 -0
  55. package/templates/.ai/prompts/execution-prompt.md +9 -0
  56. package/templates/.ai/prompts/planning-prompt.md +18 -0
  57. package/templates/.ai/prompts/session-end-template.md +182 -0
  58. package/templates/.ai/prompts/session-end.md +132 -0
  59. package/templates/.ai/prompts/session-start.md +109 -0
  60. package/templates/.ai/prompts/step-by-step.md +113 -0
  61. package/templates/.ai/sessions/.gitkeep +0 -0
  62. package/templates/.ai/templates/session-checkpoint-template.md +97 -0
  63. package/templates/.claude/agents/knowledge-bot.md +62 -0
  64. package/templates/.claude/agents/onboarding.md +61 -0
  65. package/templates/.claude/agents/quality-reviewer.md +85 -0
  66. package/templates/.claude/agents-available/code-reviewer.md +29 -0
  67. package/templates/.claude/agents-available/codebase-explorer.md +99 -0
  68. package/templates/.claude/agents-available/debugger.md +29 -0
  69. package/templates/.claude/agents-available/knowledge-bot.md +62 -0
  70. package/templates/.claude/agents-available/test-writer.md +34 -0
  71. package/templates/.claude/commands/ask.md +7 -0
  72. package/templates/.claude/commands/check.md.template +55 -0
  73. package/templates/.claude/commands/doctor.md +21 -0
  74. package/templates/.claude/commands/enable-agent.md +12 -0
  75. package/templates/.claude/commands/explore-codebase.md +12 -0
  76. package/templates/.claude/commands/fix-issue.md +12 -0
  77. package/templates/.claude/commands/fix.md.template +32 -0
  78. package/templates/.claude/commands/help.md +36 -0
  79. package/templates/.claude/commands/learn.md +48 -0
  80. package/templates/.claude/commands/onboarding.md +21 -0
  81. package/templates/.claude/commands/quality.md.template +42 -0
  82. package/templates/.claude/commands/session-end.md +40 -0
  83. package/templates/.claude/commands/session-start.md +30 -0
  84. package/templates/.claude/commands/setup-hooks.md +60 -0
  85. package/templates/.claude/commands/test.md.template +49 -0
  86. package/templates/.claude/rules/csharp.md +18 -0
  87. package/templates/.claude/rules/go.md +16 -0
  88. package/templates/.claude/rules/nextjs.md +17 -0
  89. package/templates/.claude/rules/python.md +19 -0
  90. package/templates/.claude/rules/rust.md +14 -0
  91. package/templates/.claude/skills/build/SKILL.md.template +98 -0
  92. package/templates/.claude/skills/deploy/SKILL.md.template +131 -0
  93. package/templates/.claude/skills/deploy/references/gotchas.md +5 -0
  94. package/templates/.claude/skills/doctor/SKILL.md +54 -0
  95. package/templates/.claude/skills/gcloud/SKILL.md +61 -0
  96. package/templates/.claude/skills/gcloud/references/gotchas.md +5 -0
  97. package/templates/.claude/skills/learned/SKILL.md +55 -0
  98. package/templates/.claude/skills/learned/references/conventions.md +11 -0
  99. package/templates/.claude/skills/learned/references/deny-recommendations.md +18 -0
  100. package/templates/.claude/skills/learned/references/gotchas.md +11 -0
  101. package/templates/.claude/skills/pulumi/SKILL.md +67 -0
  102. package/templates/.claude/skills/quality/SKILL.md.template +108 -0
  103. package/templates/.claude/skills/quality/references/gotchas.md +5 -0
  104. package/templates/.claude/skills/review/SKILL.md.template +73 -0
  105. package/templates/.claude/skills/scaffold/SKILL.md.template +123 -0
  106. package/templates/.claude/skills/secrets/SKILL.md +45 -0
  107. package/templates/.claude/skills/session/SKILL.md +43 -0
  108. package/templates/.claude/skills/test/SKILL.md.template +109 -0
  109. package/templates/.claude/skills/test/references/gotchas.md +5 -0
  110. package/templates/.devcontainer/Dockerfile.dev.template +89 -0
  111. package/templates/.devcontainer/devcontainer.json.template +184 -0
  112. package/templates/.devcontainer/docker-compose.yml.template +105 -0
  113. package/templates/.devcontainer/init-scripts/01-init.sql.template +12 -0
  114. package/templates/.devcontainer/post-create.sh.template +298 -0
  115. package/templates/.github/workflows/ci.yml.template +399 -0
  116. package/templates/.github/workflows/quality.yml.template +376 -0
  117. package/templates/.pre-commit-config.yaml.template +106 -0
  118. package/templates/.project/config/edit_config.py +275 -0
  119. package/templates/.project/config/project_config.py +894 -0
  120. package/templates/.project/scripts/codegen/generate-all.sh +20 -0
  121. package/templates/.project/scripts/codegen/validate-all.sh +17 -0
  122. package/templates/.project/scripts/docs/generate-all.sh +30 -0
  123. package/templates/.project/scripts/docs/serve.sh +20 -0
  124. package/templates/.project/scripts/quality/fix-all.sh +138 -0
  125. package/templates/.project/scripts/quality/lint-go.sh +34 -0
  126. package/templates/.project/scripts/quality/lint-python.sh +54 -0
  127. package/templates/.project/scripts/quality/run-all.sh +497 -0
  128. package/templates/.project/scripts/session/commit.sh +70 -0
  129. package/templates/.project/scripts/session/create-pr.sh +165 -0
  130. package/templates/.project/scripts/session/end.sh +207 -0
  131. package/templates/.project/scripts/session/start.sh +233 -0
  132. package/templates/.project/scripts/setup/doctor.sh +404 -0
  133. package/templates/.project/scripts/setup/interactive-setup.sh +581 -0
  134. package/templates/.project/scripts/sync/sync-template.sh +328 -0
  135. package/templates/.project/scripts/test/run-all.sh +179 -0
  136. package/templates/.project/scripts/test/run-quick.sh +25 -0
  137. package/templates/CLAUDE.md.template +228 -0
  138. package/templates/Makefile +514 -0
  139. package/templates/config/versions.yaml +57 -0
  140. package/templates/configs/go/.golangci.yml.template +172 -0
  141. package/templates/configs/go/go.mod.template +15 -0
  142. package/templates/configs/node/package.json.template +67 -0
  143. package/templates/configs/node/tsconfig.json.template +53 -0
  144. package/templates/configs/python/pyproject.toml.template +92 -0
  145. package/templates/configs/python/pytest.ini.template +64 -0
  146. package/templates/configs/python/ruff.toml.template +79 -0
  147. package/templates/configs/rust/Cargo.toml.template +51 -0
  148. package/templates/configs/shared/.editorconfig +67 -0
  149. package/templates/scripts/validate-templates.sh +449 -0
@@ -0,0 +1,405 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.generate = generate;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const constants_1 = require("./constants");
40
+ const template_engine_1 = require("./template-engine");
41
+ const files_1 = require("./files");
42
+ const codebase_scanner_1 = require("./codebase-scanner");
43
+ const logger = __importStar(require("./logger"));
44
+ function getTemplatesDir() {
45
+ return path.join(__dirname, '..', 'templates');
46
+ }
47
+ function readTemplate(templatePath) {
48
+ const fullPath = path.join(getTemplatesDir(), templatePath);
49
+ if (!fs.existsSync(fullPath)) {
50
+ throw new Error(`Template not found: ${templatePath}`);
51
+ }
52
+ return fs.readFileSync(fullPath, 'utf-8');
53
+ }
54
+ function buildSettingsJson(config, conditions) {
55
+ const perms = [
56
+ 'Bash(make test:*)', 'Bash(make test-unit:*)', 'Bash(make test-coverage:*)',
57
+ 'Bash(make quality:*)', 'Bash(make quality-fix:*)', 'Bash(make lint:*)',
58
+ 'Bash(make format:*)', 'Bash(make check:*)', 'Bash(make fix:*)',
59
+ 'Bash(make doctor:*)', 'Bash(make info:*)', 'Bash(make validate:*)',
60
+ 'Bash(make generate:*)', 'Bash(make build:*)', 'Bash(make clean:*)',
61
+ 'Bash(make docs:*)', 'Bash(make sync:*)', 'Bash(make sync-preview:*)',
62
+ 'Bash(make lang-list:*)',
63
+ 'Bash(git status:*)', 'Bash(git diff:*)', 'Bash(git log:*)', 'Bash(git branch:*)',
64
+ ];
65
+ if (conditions.IF_PYTHON)
66
+ perms.push('Bash(python3:*)', 'Bash(pytest:*)', 'Bash(ruff:*)');
67
+ if (conditions.IF_GO)
68
+ perms.push('Bash(go test:*)', 'Bash(go build:*)', 'Bash(go vet:*)', 'Bash(golangci-lint:*)');
69
+ if (conditions.IF_NODE || conditions.IF_NEXTJS)
70
+ perms.push('Bash(npm test:*)', 'Bash(npm run:*)', 'Bash(npx:*)');
71
+ if (conditions.IF_RUST)
72
+ perms.push('Bash(cargo test:*)', 'Bash(cargo build:*)', 'Bash(cargo clippy:*)');
73
+ if (conditions.IF_CSHARP)
74
+ perms.push('Bash(dotnet test:*)', 'Bash(dotnet build:*)', 'Bash(dotnet format:*)', 'Bash(dotnet run:*)');
75
+ if (conditions.IF_INFISICAL)
76
+ perms.push('Bash(make secrets-pull:*)', 'Bash(make secrets-show:*)');
77
+ if (conditions.IF_DOCKER)
78
+ perms.push('Bash(docker ps:*)', 'Bash(docker-compose ps:*)', 'Bash(docker-compose logs:*)');
79
+ if (conditions.IF_GCLOUD)
80
+ perms.push('Bash(gcloud config:*)', 'Bash(gcloud projects list:*)', 'Bash(gcloud services list:*)', 'Bash(gcloud run services list:*)');
81
+ if (conditions.IF_PULUMI)
82
+ perms.push('Bash(pulumi preview:*)', 'Bash(pulumi stack:*)', 'Bash(pulumi config:*)');
83
+ return JSON.stringify({
84
+ $schema: 'https://json.schemastore.org/claude-code-settings.json',
85
+ permissions: {
86
+ allow: perms,
87
+ deny: [],
88
+ },
89
+ hooks: {
90
+ Stop: [
91
+ {
92
+ matcher: '',
93
+ hooks: [
94
+ {
95
+ type: 'command',
96
+ command: 'echo "If this conversation involved debugging, fixing issues, or discovering patterns — consider running /learn to capture it for future sessions."',
97
+ },
98
+ ],
99
+ },
100
+ ],
101
+ },
102
+ }, null, 2) + '\n';
103
+ }
104
+ async function generate(targetDir, config, mode, force, noScan = false) {
105
+ const variables = (0, constants_1.buildVariables)(config);
106
+ const conditions = (0, constants_1.buildConditions)(config);
107
+ const templatesDir = getTemplatesDir();
108
+ const result = {
109
+ created: [],
110
+ skipped: [],
111
+ overwritten: [],
112
+ manifest: {
113
+ version: constants_1.VERSION,
114
+ mode,
115
+ generatedAt: new Date().toISOString(),
116
+ config,
117
+ files: {},
118
+ },
119
+ };
120
+ const opts = (evolving) => ({ force, evolving, skipIfExists: !force });
121
+ function track(outputPath, content, writeResult, evolving) {
122
+ const rel = path.relative(targetDir, outputPath);
123
+ if (writeResult === 'created')
124
+ result.created.push(rel);
125
+ else if (writeResult === 'skipped')
126
+ result.skipped.push(rel);
127
+ else if (writeResult === 'overwritten')
128
+ result.overwritten.push(rel);
129
+ result.manifest.files[rel] = {
130
+ hash: evolving ? null : (content ? (0, files_1.sha256)(content) : null),
131
+ evolving,
132
+ };
133
+ }
134
+ // Helper: process and write a template file
135
+ async function writeTemplate(templatePath, outputRel, evolving = false) {
136
+ const raw = readTemplate(templatePath);
137
+ const processed = (0, template_engine_1.processTemplate)(raw, variables, conditions);
138
+ const outputPath = path.join(targetDir, outputRel);
139
+ const res = await (0, files_1.writeFile)(outputPath, processed, opts(evolving));
140
+ track(outputPath, processed, res, evolving);
141
+ }
142
+ // Helper: copy a static file
143
+ function copyStatic(templatePath, outputRel, evolving = false) {
144
+ const srcPath = path.join(templatesDir, templatePath);
145
+ if (!fs.existsSync(srcPath))
146
+ return;
147
+ const outputPath = path.join(targetDir, outputRel);
148
+ const res = (0, files_1.copyFile)(srcPath, outputPath, opts(evolving));
149
+ const content = evolving ? null : fs.readFileSync(srcPath, 'utf-8');
150
+ track(outputPath, content, res, evolving);
151
+ }
152
+ // === DX-ONLY TIER ===
153
+ logger.header('Generating Claude Code DX');
154
+ // 1. CLAUDE.md
155
+ await writeTemplate('CLAUDE.md.template', 'CLAUDE.md');
156
+ logger.success('CLAUDE.md');
157
+ // 2. settings.json
158
+ const settingsContent = buildSettingsJson(config, conditions);
159
+ const settingsPath = path.join(targetDir, '.claude', 'settings.json');
160
+ const settingsRes = await (0, files_1.writeFile)(settingsPath, settingsContent, opts(false));
161
+ track(settingsPath, settingsContent, settingsRes, false);
162
+ logger.success('.claude/settings.json');
163
+ // 3. Skills — template-processed
164
+ for (const skill of ['quality', 'test', 'build', 'review', 'scaffold']) {
165
+ await writeTemplate(`.claude/skills/${skill}/SKILL.md.template`, `.claude/skills/${skill}/SKILL.md`);
166
+ }
167
+ // Skills — static (always)
168
+ for (const skill of ['doctor', 'session', 'learned']) {
169
+ copyStatic(`.claude/skills/${skill}/SKILL.md`, `.claude/skills/${skill}/SKILL.md`);
170
+ }
171
+ // Deploy skill (template + references)
172
+ await writeTemplate('.claude/skills/deploy/SKILL.md.template', '.claude/skills/deploy/SKILL.md');
173
+ copyStatic('.claude/skills/deploy/references/gotchas.md', '.claude/skills/deploy/references/gotchas.md', true);
174
+ // Evolving reference files
175
+ for (const skill of ['quality', 'test', 'learned']) {
176
+ const refDir = `.claude/skills/${skill}/references`;
177
+ const srcRefDir = path.join(templatesDir, refDir);
178
+ if (fs.existsSync(srcRefDir)) {
179
+ for (const file of fs.readdirSync(srcRefDir)) {
180
+ copyStatic(`${refDir}/${file}`, `${refDir}/${file}`, true);
181
+ }
182
+ }
183
+ }
184
+ // Conditional skills
185
+ if (conditions.IF_INFISICAL) {
186
+ copyStatic('.claude/skills/secrets/SKILL.md', '.claude/skills/secrets/SKILL.md');
187
+ }
188
+ if (conditions.IF_GCLOUD) {
189
+ copyStatic('.claude/skills/gcloud/SKILL.md', '.claude/skills/gcloud/SKILL.md');
190
+ copyStatic('.claude/skills/gcloud/references/gotchas.md', '.claude/skills/gcloud/references/gotchas.md', true);
191
+ }
192
+ if (conditions.IF_PULUMI) {
193
+ copyStatic('.claude/skills/pulumi/SKILL.md', '.claude/skills/pulumi/SKILL.md');
194
+ }
195
+ logger.success('.claude/skills/');
196
+ // 4. Rules (conditional on language)
197
+ if (conditions.IF_PYTHON)
198
+ copyStatic('.claude/rules/python.md', '.claude/rules/python.md');
199
+ if (conditions.IF_GO)
200
+ copyStatic('.claude/rules/go.md', '.claude/rules/go.md');
201
+ if (conditions.IF_NEXTJS)
202
+ copyStatic('.claude/rules/nextjs.md', '.claude/rules/nextjs.md');
203
+ if (conditions.IF_RUST)
204
+ copyStatic('.claude/rules/rust.md', '.claude/rules/rust.md');
205
+ if (conditions.IF_CSHARP)
206
+ copyStatic('.claude/rules/csharp.md', '.claude/rules/csharp.md');
207
+ logger.success('.claude/rules/');
208
+ // 5. Commands (static .md copied as-is, .md.template processed through engine)
209
+ const commandsDir = path.join(templatesDir, '.claude', 'commands');
210
+ if (fs.existsSync(commandsDir)) {
211
+ for (const file of fs.readdirSync(commandsDir)) {
212
+ if (file.endsWith('.md.template')) {
213
+ const outputName = file.replace('.template', '');
214
+ await writeTemplate(`.claude/commands/${file}`, `.claude/commands/${outputName}`);
215
+ }
216
+ else {
217
+ copyStatic(`.claude/commands/${file}`, `.claude/commands/${file}`);
218
+ }
219
+ }
220
+ }
221
+ logger.success('.claude/commands/');
222
+ // Ensure .ai/sessions/ exists for session commands (works in dx-only mode)
223
+ fs.mkdirSync(path.join(targetDir, '.ai', 'sessions'), { recursive: true });
224
+ // 6. Agents-available (dormant) and agents (active by default)
225
+ const agentsAvailDir = path.join(templatesDir, '.claude', 'agents-available');
226
+ if (fs.existsSync(agentsAvailDir)) {
227
+ fs.mkdirSync(path.join(targetDir, '.claude', 'agents'), { recursive: true });
228
+ for (const file of fs.readdirSync(agentsAvailDir)) {
229
+ copyStatic(`.claude/agents-available/${file}`, `.claude/agents-available/${file}`);
230
+ }
231
+ }
232
+ const activeAgentsDir = path.join(templatesDir, '.claude', 'agents');
233
+ if (fs.existsSync(activeAgentsDir)) {
234
+ fs.mkdirSync(path.join(targetDir, '.claude', 'agents'), { recursive: true });
235
+ for (const file of fs.readdirSync(activeAgentsDir)) {
236
+ copyStatic(`.claude/agents/${file}`, `.claude/agents/${file}`);
237
+ }
238
+ }
239
+ logger.success('.claude/agents/');
240
+ // 7. Codebase scan
241
+ if (!noScan) {
242
+ logger.info('Scanning codebase...');
243
+ const analysis = (0, codebase_scanner_1.scanCodebase)(targetDir);
244
+ const skillContent = (0, codebase_scanner_1.renderCodebaseSkill)(analysis);
245
+ const skillPath = path.join(targetDir, '.claude', 'skills', 'codebase', 'SKILL.md');
246
+ const skillRes = await (0, files_1.writeFile)(skillPath, skillContent, opts(true));
247
+ track(skillPath, null, skillRes, true);
248
+ const refContent = (0, codebase_scanner_1.renderArchitectureRef)(analysis);
249
+ const refPath = path.join(targetDir, '.claude', 'skills', 'codebase', 'references', 'architecture.md');
250
+ const refRes = await (0, files_1.writeFile)(refPath, refContent, opts(true));
251
+ track(refPath, null, refRes, true);
252
+ logger.success(`.claude/skills/codebase/ (${analysis.fileCount} files scanned, ${analysis.entryPoints.length} entry points, ${analysis.apiEndpoints.length} API routes)`);
253
+ }
254
+ // === FULL TIER ===
255
+ if (mode === 'full') {
256
+ logger.header('Generating Quality & Infrastructure');
257
+ // .project/ scripts
258
+ const projectSrcDir = path.join(templatesDir, '.project');
259
+ if (fs.existsSync(projectSrcDir)) {
260
+ const count = (0, files_1.copyDirectory)(projectSrcDir, path.join(targetDir, '.project'), { force });
261
+ // Make scripts executable
262
+ const scriptsDir = path.join(targetDir, '.project', 'scripts');
263
+ if (fs.existsSync(scriptsDir)) {
264
+ for (const file of findFiles(scriptsDir, '.sh')) {
265
+ (0, files_1.makeExecutable)(file);
266
+ }
267
+ for (const file of findFiles(scriptsDir, '.py')) {
268
+ (0, files_1.makeExecutable)(file);
269
+ }
270
+ }
271
+ logger.success(`.project/ (${count} files)`);
272
+ }
273
+ // Makefile
274
+ copyStatic('Makefile', 'Makefile');
275
+ logger.success('Makefile');
276
+ // .ai/ directory
277
+ const aiSrcDir = path.join(templatesDir, '.ai');
278
+ if (fs.existsSync(aiSrcDir)) {
279
+ (0, files_1.copyDirectory)(aiSrcDir, path.join(targetDir, '.ai'), { force });
280
+ fs.mkdirSync(path.join(targetDir, '.ai', 'sessions'), { recursive: true });
281
+ logger.success('.ai/');
282
+ }
283
+ // Language configs (only if not already present)
284
+ if (conditions.IF_PYTHON) {
285
+ await writeTemplateIfMissing('configs/python/pyproject.toml.template', 'pyproject.toml');
286
+ await writeTemplateIfMissing('configs/python/ruff.toml.template', 'ruff.toml');
287
+ await writeTemplateIfMissing('configs/python/pytest.ini.template', 'pytest.ini');
288
+ }
289
+ if (conditions.IF_GO) {
290
+ await writeTemplateIfMissing('configs/go/.golangci.yml.template', '.golangci.yml');
291
+ }
292
+ if (conditions.IF_NEXTJS || conditions.IF_NODE) {
293
+ await writeTemplateIfMissing('configs/node/tsconfig.json.template', 'tsconfig.json');
294
+ }
295
+ logger.success('Language configs (skipped existing)');
296
+ // Pre-commit config
297
+ const precommitTemplate = path.join(templatesDir, '.pre-commit-config.yaml.template');
298
+ if (fs.existsSync(precommitTemplate) && conditions.IF_PRECOMMIT) {
299
+ await writeTemplate('.pre-commit-config.yaml.template', '.pre-commit-config.yaml');
300
+ logger.success('.pre-commit-config.yaml');
301
+ }
302
+ // GitHub workflows
303
+ const ciTemplate = path.join(templatesDir, '.github', 'workflows', 'ci.yml.template');
304
+ if (fs.existsSync(ciTemplate)) {
305
+ await writeTemplate('.github/workflows/ci.yml.template', '.github/workflows/ci.yml');
306
+ await writeTemplate('.github/workflows/quality.yml.template', '.github/workflows/quality.yml');
307
+ logger.success('.github/workflows/');
308
+ }
309
+ // .editorconfig
310
+ copyStatic('configs/shared/.editorconfig', '.editorconfig');
311
+ logger.success('.editorconfig');
312
+ // .project.yaml
313
+ const projectYaml = generateProjectYaml(config);
314
+ const yamlPath = path.join(targetDir, '.project.yaml');
315
+ const yamlRes = await (0, files_1.writeFile)(yamlPath, projectYaml, opts(false));
316
+ track(yamlPath, projectYaml, yamlRes, false);
317
+ logger.success('.project.yaml');
318
+ }
319
+ // Write manifest
320
+ const manifestContent = JSON.stringify(result.manifest, null, 2) + '\n';
321
+ fs.mkdirSync(targetDir, { recursive: true });
322
+ fs.writeFileSync(path.join(targetDir, '.vyuh-dxkit.json'), manifestContent, 'utf-8');
323
+ return result;
324
+ // --- helper for full mode: only write config if file doesn't exist ---
325
+ async function writeTemplateIfMissing(templatePath, outputRel) {
326
+ const outputPath = path.join(targetDir, outputRel);
327
+ if (fs.existsSync(outputPath)) {
328
+ result.skipped.push(outputRel);
329
+ return;
330
+ }
331
+ try {
332
+ await writeTemplate(templatePath, outputRel);
333
+ }
334
+ catch {
335
+ // Template may not exist — skip silently
336
+ }
337
+ }
338
+ }
339
+ function generateProjectYaml(config) {
340
+ const lines = [
341
+ `project:`,
342
+ ` name: "${config.projectName}"`,
343
+ ` description: "${config.projectDescription}"`,
344
+ ``,
345
+ `languages:`,
346
+ ` python:`,
347
+ ` enabled: ${config.languages.python}`,
348
+ ` version: "${config.versions.python}"`,
349
+ ` quality:`,
350
+ ` coverage: ${config.coverageThreshold}`,
351
+ ` lint: true`,
352
+ ` typecheck: true`,
353
+ ` format: true`,
354
+ ` go:`,
355
+ ` enabled: ${config.languages.go}`,
356
+ ` version: "${config.versions.go}"`,
357
+ ` quality:`,
358
+ ` coverage: ${Math.max(0, parseInt(config.coverageThreshold) - 10)}`,
359
+ ` lint: true`,
360
+ ` format: true`,
361
+ ` node:`,
362
+ ` enabled: ${config.languages.node || config.languages.nextjs}`,
363
+ ` version: "${config.versions.node}"`,
364
+ ` rust:`,
365
+ ` enabled: ${config.languages.rust}`,
366
+ ` version: "${config.versions.rust}"`,
367
+ ` csharp:`,
368
+ ` enabled: ${config.languages.csharp}`,
369
+ ` version: "${config.versions.csharp}"`,
370
+ ` quality:`,
371
+ ` lint: true`,
372
+ ` format: true`,
373
+ ` nextjs:`,
374
+ ` enabled: ${config.languages.nextjs}`,
375
+ ``,
376
+ `infrastructure:`,
377
+ ` postgres:`,
378
+ ` enabled: ${config.infrastructure.postgres}`,
379
+ ` redis:`,
380
+ ` enabled: ${config.infrastructure.redis}`,
381
+ ``,
382
+ `precommit: ${config.precommit}`,
383
+ ``,
384
+ `tools:`,
385
+ ` claude_code: true`,
386
+ ` github_cli: ${config.tools.ghCli}`,
387
+ ` docker: ${config.infrastructure.docker}`,
388
+ ` gcloud: ${config.tools.gcloud}`,
389
+ ` pulumi: ${config.tools.pulumi}`,
390
+ ` infisical: ${config.tools.infisical}`,
391
+ ];
392
+ return lines.join('\n') + '\n';
393
+ }
394
+ function findFiles(dir, ext) {
395
+ const results = [];
396
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
397
+ const full = path.join(dir, entry.name);
398
+ if (entry.isDirectory())
399
+ results.push(...findFiles(full, ext));
400
+ else if (entry.name.endsWith(ext))
401
+ results.push(full);
402
+ }
403
+ return results;
404
+ }
405
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const cli_1 = require("./cli");
5
+ (0, cli_1.run)(process.argv).catch((err) => {
6
+ console.error(`Error: ${err.message}`);
7
+ process.exit(1);
8
+ });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,+BAA4B;AAE5B,IAAA,SAAG,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;IACrC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare function header(text: string): void;
2
+ export declare function success(text: string): void;
3
+ export declare function warn(text: string): void;
4
+ export declare function fail(text: string): void;
5
+ export declare function info(text: string): void;
6
+ export declare function dim(text: string): void;
7
+ export declare function bold(text: string): string;
8
+ export declare function detected(label: string, value: string | boolean): void;
9
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAQA,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAMzC;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEvC;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEvC;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEvC;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAMrE"}
package/dist/logger.js ADDED
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.header = header;
4
+ exports.success = success;
5
+ exports.warn = warn;
6
+ exports.fail = fail;
7
+ exports.info = info;
8
+ exports.dim = dim;
9
+ exports.bold = bold;
10
+ exports.detected = detected;
11
+ const CYAN = '\x1b[36m';
12
+ const GREEN = '\x1b[32m';
13
+ const YELLOW = '\x1b[33m';
14
+ const RED = '\x1b[31m';
15
+ const DIM = '\x1b[2m';
16
+ const BOLD = '\x1b[1m';
17
+ const RESET = '\x1b[0m';
18
+ function header(text) {
19
+ console.log('');
20
+ console.log(`${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${RESET}`);
21
+ console.log(`${CYAN} ${text}${RESET}`);
22
+ console.log(`${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${RESET}`);
23
+ console.log('');
24
+ }
25
+ function success(text) {
26
+ console.log(` ${GREEN}✓${RESET} ${text}`);
27
+ }
28
+ function warn(text) {
29
+ console.log(` ${YELLOW}!${RESET} ${text}`);
30
+ }
31
+ function fail(text) {
32
+ console.log(` ${RED}✗${RESET} ${text}`);
33
+ }
34
+ function info(text) {
35
+ console.log(` ${CYAN}→${RESET} ${text}`);
36
+ }
37
+ function dim(text) {
38
+ console.log(` ${DIM}${text}${RESET}`);
39
+ }
40
+ function bold(text) {
41
+ return `${BOLD}${text}${RESET}`;
42
+ }
43
+ function detected(label, value) {
44
+ if (typeof value === 'boolean') {
45
+ console.log(` ${value ? GREEN + '✓' : DIM + '·'}${RESET} ${label}`);
46
+ }
47
+ else {
48
+ console.log(` ${GREEN}✓${RESET} ${label}: ${CYAN}${value}${RESET}`);
49
+ }
50
+ }
51
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;AAQA,wBAMC;AAED,0BAEC;AAED,oBAEC;AAED,oBAEC;AAED,oBAEC;AAED,kBAEC;AAED,oBAEC;AAED,4BAMC;AA9CD,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,MAAM,KAAK,GAAG,UAAU,CAAC;AACzB,MAAM,MAAM,GAAG,UAAU,CAAC;AAC1B,MAAM,GAAG,GAAG,UAAU,CAAC;AACvB,MAAM,GAAG,GAAG,SAAS,CAAC;AACtB,MAAM,IAAI,GAAG,SAAS,CAAC;AACvB,MAAM,KAAK,GAAG,SAAS,CAAC;AAExB,SAAgB,MAAM,CAAC,IAAY;IACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,6DAA6D,KAAK,EAAE,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,6DAA6D,KAAK,EAAE,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAgB,OAAO,CAAC,IAAY;IAClC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAgB,IAAI,CAAC,IAAY;IAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,SAAgB,IAAI,CAAC,IAAY;IAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,IAAI,CAAC,IAAY;IAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,GAAG,CAAC,IAAY;IAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,IAAI,CAAC,IAAY;IAC/B,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC;AAClC,CAAC;AAED,SAAgB,QAAQ,CAAC,KAAa,EAAE,KAAuB;IAC7D,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { DetectedStack, ResolvedConfig, GenerationMode } from './types';
2
+ export declare function promptForConfig(detected: DetectedStack, options: {
3
+ yes: boolean;
4
+ detect: boolean;
5
+ name?: string;
6
+ }): Promise<{
7
+ config: ResolvedConfig;
8
+ mode: GenerationMode;
9
+ }>;
10
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAgBxE,wBAAsB,eAAe,CACnC,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACxD,OAAO,CAAC;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC,CA2E3D"}