@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.
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +173 -0
- package/dist/cli.js.map +1 -0
- package/dist/codebase-scanner.d.ts +33 -0
- package/dist/codebase-scanner.d.ts.map +1 -0
- package/dist/codebase-scanner.js +497 -0
- package/dist/codebase-scanner.js.map +1 -0
- package/dist/constants.d.ts +17 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +80 -0
- package/dist/constants.js.map +1 -0
- package/dist/detect.d.ts +3 -0
- package/dist/detect.d.ts.map +1 -0
- package/dist/detect.js +264 -0
- package/dist/detect.js.map +1 -0
- package/dist/doctor.d.ts +2 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +157 -0
- package/dist/doctor.js.map +1 -0
- package/dist/files.d.ts +17 -0
- package/dist/files.d.ts.map +1 -0
- package/dist/files.js +99 -0
- package/dist/files.js.map +1 -0
- package/dist/generator.d.ts +10 -0
- package/dist/generator.d.ts.map +1 -0
- package/dist/generator.js +405 -0
- package/dist/generator.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +9 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +51 -0
- package/dist/logger.js.map +1 -0
- package/dist/prompts.d.ts +10 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +125 -0
- package/dist/prompts.js.map +1 -0
- package/dist/template-engine.d.ts +22 -0
- package/dist/template-engine.d.ts.map +1 -0
- package/dist/template-engine.js +63 -0
- package/dist/template-engine.js.map +1 -0
- package/dist/types.d.ts +68 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/update.d.ts +2 -0
- package/dist/update.d.ts.map +1 -0
- package/dist/update.js +97 -0
- package/dist/update.js.map +1 -0
- package/package.json +43 -0
- package/templates/.ai/README.md +117 -0
- package/templates/.ai/prompts/execution-prompt.md +9 -0
- package/templates/.ai/prompts/planning-prompt.md +18 -0
- package/templates/.ai/prompts/session-end-template.md +182 -0
- package/templates/.ai/prompts/session-end.md +132 -0
- package/templates/.ai/prompts/session-start.md +109 -0
- package/templates/.ai/prompts/step-by-step.md +113 -0
- package/templates/.ai/sessions/.gitkeep +0 -0
- package/templates/.ai/templates/session-checkpoint-template.md +97 -0
- package/templates/.claude/agents/knowledge-bot.md +62 -0
- package/templates/.claude/agents/onboarding.md +61 -0
- package/templates/.claude/agents/quality-reviewer.md +85 -0
- package/templates/.claude/agents-available/code-reviewer.md +29 -0
- package/templates/.claude/agents-available/codebase-explorer.md +99 -0
- package/templates/.claude/agents-available/debugger.md +29 -0
- package/templates/.claude/agents-available/knowledge-bot.md +62 -0
- package/templates/.claude/agents-available/test-writer.md +34 -0
- package/templates/.claude/commands/ask.md +7 -0
- package/templates/.claude/commands/check.md.template +55 -0
- package/templates/.claude/commands/doctor.md +21 -0
- package/templates/.claude/commands/enable-agent.md +12 -0
- package/templates/.claude/commands/explore-codebase.md +12 -0
- package/templates/.claude/commands/fix-issue.md +12 -0
- package/templates/.claude/commands/fix.md.template +32 -0
- package/templates/.claude/commands/help.md +36 -0
- package/templates/.claude/commands/learn.md +48 -0
- package/templates/.claude/commands/onboarding.md +21 -0
- package/templates/.claude/commands/quality.md.template +42 -0
- package/templates/.claude/commands/session-end.md +40 -0
- package/templates/.claude/commands/session-start.md +30 -0
- package/templates/.claude/commands/setup-hooks.md +60 -0
- package/templates/.claude/commands/test.md.template +49 -0
- package/templates/.claude/rules/csharp.md +18 -0
- package/templates/.claude/rules/go.md +16 -0
- package/templates/.claude/rules/nextjs.md +17 -0
- package/templates/.claude/rules/python.md +19 -0
- package/templates/.claude/rules/rust.md +14 -0
- package/templates/.claude/skills/build/SKILL.md.template +98 -0
- package/templates/.claude/skills/deploy/SKILL.md.template +131 -0
- package/templates/.claude/skills/deploy/references/gotchas.md +5 -0
- package/templates/.claude/skills/doctor/SKILL.md +54 -0
- package/templates/.claude/skills/gcloud/SKILL.md +61 -0
- package/templates/.claude/skills/gcloud/references/gotchas.md +5 -0
- package/templates/.claude/skills/learned/SKILL.md +55 -0
- package/templates/.claude/skills/learned/references/conventions.md +11 -0
- package/templates/.claude/skills/learned/references/deny-recommendations.md +18 -0
- package/templates/.claude/skills/learned/references/gotchas.md +11 -0
- package/templates/.claude/skills/pulumi/SKILL.md +67 -0
- package/templates/.claude/skills/quality/SKILL.md.template +108 -0
- package/templates/.claude/skills/quality/references/gotchas.md +5 -0
- package/templates/.claude/skills/review/SKILL.md.template +73 -0
- package/templates/.claude/skills/scaffold/SKILL.md.template +123 -0
- package/templates/.claude/skills/secrets/SKILL.md +45 -0
- package/templates/.claude/skills/session/SKILL.md +43 -0
- package/templates/.claude/skills/test/SKILL.md.template +109 -0
- package/templates/.claude/skills/test/references/gotchas.md +5 -0
- package/templates/.devcontainer/Dockerfile.dev.template +89 -0
- package/templates/.devcontainer/devcontainer.json.template +184 -0
- package/templates/.devcontainer/docker-compose.yml.template +105 -0
- package/templates/.devcontainer/init-scripts/01-init.sql.template +12 -0
- package/templates/.devcontainer/post-create.sh.template +298 -0
- package/templates/.github/workflows/ci.yml.template +399 -0
- package/templates/.github/workflows/quality.yml.template +376 -0
- package/templates/.pre-commit-config.yaml.template +106 -0
- package/templates/.project/config/edit_config.py +275 -0
- package/templates/.project/config/project_config.py +894 -0
- package/templates/.project/scripts/codegen/generate-all.sh +20 -0
- package/templates/.project/scripts/codegen/validate-all.sh +17 -0
- package/templates/.project/scripts/docs/generate-all.sh +30 -0
- package/templates/.project/scripts/docs/serve.sh +20 -0
- package/templates/.project/scripts/quality/fix-all.sh +138 -0
- package/templates/.project/scripts/quality/lint-go.sh +34 -0
- package/templates/.project/scripts/quality/lint-python.sh +54 -0
- package/templates/.project/scripts/quality/run-all.sh +497 -0
- package/templates/.project/scripts/session/commit.sh +70 -0
- package/templates/.project/scripts/session/create-pr.sh +165 -0
- package/templates/.project/scripts/session/end.sh +207 -0
- package/templates/.project/scripts/session/start.sh +233 -0
- package/templates/.project/scripts/setup/doctor.sh +404 -0
- package/templates/.project/scripts/setup/interactive-setup.sh +581 -0
- package/templates/.project/scripts/sync/sync-template.sh +328 -0
- package/templates/.project/scripts/test/run-all.sh +179 -0
- package/templates/.project/scripts/test/run-quick.sh +25 -0
- package/templates/CLAUDE.md.template +228 -0
- package/templates/Makefile +514 -0
- package/templates/config/versions.yaml +57 -0
- package/templates/configs/go/.golangci.yml.template +172 -0
- package/templates/configs/go/go.mod.template +15 -0
- package/templates/configs/node/package.json.template +67 -0
- package/templates/configs/node/tsconfig.json.template +53 -0
- package/templates/configs/python/pyproject.toml.template +92 -0
- package/templates/configs/python/pytest.ini.template +64 -0
- package/templates/configs/python/ruff.toml.template +79 -0
- package/templates/configs/rust/Cargo.toml.template +51 -0
- package/templates/configs/shared/.editorconfig +67 -0
- 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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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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"}
|
package/dist/logger.d.ts
ADDED
|
@@ -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"}
|