@vyuhlabs/dxkit 2.5.0 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +77 -0
- package/dist/analyzers/tools/graphify.d.ts.map +1 -1
- package/dist/analyzers/tools/graphify.js +9 -5
- package/dist/analyzers/tools/graphify.js.map +1 -1
- package/dist/analyzers/tools/tool-registry.d.ts +19 -1
- package/dist/analyzers/tools/tool-registry.d.ts.map +1 -1
- package/dist/analyzers/tools/tool-registry.js +25 -0
- package/dist/analyzers/tools/tool-registry.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +38 -1
- package/dist/cli.js.map +1 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +18 -11
- package/dist/doctor.js.map +1 -1
- package/dist/generator.d.ts +1 -1
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +81 -135
- package/dist/generator.js.map +1 -1
- package/dist/hooks-cli.d.ts +20 -0
- package/dist/hooks-cli.d.ts.map +1 -0
- package/dist/hooks-cli.js +145 -0
- package/dist/hooks-cli.js.map +1 -0
- package/dist/languages/csharp.d.ts.map +1 -1
- package/dist/languages/csharp.js +4 -0
- package/dist/languages/csharp.js.map +1 -1
- package/dist/languages/go.d.ts.map +1 -1
- package/dist/languages/go.js +4 -0
- package/dist/languages/go.js.map +1 -1
- package/dist/languages/index.d.ts +18 -0
- package/dist/languages/index.d.ts.map +1 -1
- package/dist/languages/index.js +32 -0
- package/dist/languages/index.js.map +1 -1
- package/dist/languages/java.d.ts.map +1 -1
- package/dist/languages/java.js +4 -0
- package/dist/languages/java.js.map +1 -1
- package/dist/languages/kotlin.d.ts.map +1 -1
- package/dist/languages/kotlin.js +9 -0
- package/dist/languages/kotlin.js.map +1 -1
- package/dist/languages/python.d.ts.map +1 -1
- package/dist/languages/python.js +4 -0
- package/dist/languages/python.js.map +1 -1
- package/dist/languages/ruby.d.ts.map +1 -1
- package/dist/languages/ruby.js +4 -0
- package/dist/languages/ruby.js.map +1 -1
- package/dist/languages/rust.d.ts.map +1 -1
- package/dist/languages/rust.js +4 -0
- package/dist/languages/rust.js.map +1 -1
- package/dist/languages/types.d.ts +27 -0
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages/typescript.d.ts.map +1 -1
- package/dist/languages/typescript.js +5 -0
- package/dist/languages/typescript.js.map +1 -1
- package/dist/ship-installers.d.ts +6 -0
- package/dist/ship-installers.d.ts.map +1 -1
- package/dist/ship-installers.js +120 -5
- package/dist/ship-installers.js.map +1 -1
- package/dist/tools-cli.d.ts.map +1 -1
- package/dist/tools-cli.js +45 -9
- package/dist/tools-cli.js.map +1 -1
- package/package.json +1 -1
- package/templates/.claude/skills/dxkit-action/SKILL.md +150 -0
- package/templates/.claude/skills/dxkit-config/SKILL.md +124 -0
- package/templates/.claude/skills/dxkit-hooks/SKILL.md +109 -0
- package/templates/.claude/skills/dxkit-init/SKILL.md +93 -0
- package/templates/.claude/skills/dxkit-learn/SKILL.md +84 -0
- package/templates/.claude/skills/dxkit-reports/SKILL.md +111 -0
- package/templates/.devcontainer/devcontainer.json +7 -33
- package/templates/.devcontainer/post-create.sh +18 -4
- package/templates/AGENTS.md.template +137 -0
- package/templates/CLAUDE.md.template +16 -111
- package/dist/codebase-scanner.d.ts +0 -36
- package/dist/codebase-scanner.d.ts.map +0 -1
- package/dist/codebase-scanner.js +0 -687
- package/dist/codebase-scanner.js.map +0 -1
- package/templates/.claude/agents/doc-writer.md +0 -107
- package/templates/.claude/agents/knowledge-bot.md +0 -64
- package/templates/.claude/agents/onboarding.md +0 -62
- package/templates/.claude/agents/quality-reviewer.md +0 -85
- package/templates/.claude/agents-available/code-reviewer.md +0 -29
- package/templates/.claude/agents-available/codebase-explorer.md +0 -100
- package/templates/.claude/agents-available/dashboard-builder.md +0 -433
- package/templates/.claude/agents-available/debugger.md +0 -29
- package/templates/.claude/agents-available/dependency-mapper.md +0 -80
- package/templates/.claude/agents-available/dev-report.md +0 -108
- package/templates/.claude/agents-available/doc-writer.md +0 -107
- package/templates/.claude/agents-available/feature-builder.md +0 -163
- package/templates/.claude/agents-available/feature-planner.md +0 -185
- package/templates/.claude/agents-available/health-auditor.md +0 -95
- package/templates/.claude/agents-available/hooks-configurator.md +0 -211
- package/templates/.claude/agents-available/knowledge-bot.md +0 -62
- package/templates/.claude/agents-available/plan-executor.md +0 -133
- package/templates/.claude/agents-available/strategic-planner.md +0 -141
- package/templates/.claude/agents-available/test-gap-finder.md +0 -67
- package/templates/.claude/agents-available/test-writer.md +0 -34
- package/templates/.claude/agents-available/vulnerability-scanner.md +0 -173
- package/templates/.claude/commands/ask.md +0 -7
- package/templates/.claude/commands/build-feature.md +0 -26
- package/templates/.claude/commands/build.md.template +0 -30
- package/templates/.claude/commands/check.md.template +0 -43
- package/templates/.claude/commands/dashboard.md +0 -28
- package/templates/.claude/commands/deps.md +0 -15
- package/templates/.claude/commands/dev-report.md +0 -50
- package/templates/.claude/commands/docs.md +0 -21
- package/templates/.claude/commands/doctor.md +0 -29
- package/templates/.claude/commands/enable-agent.md +0 -12
- package/templates/.claude/commands/execute-plan.md +0 -25
- package/templates/.claude/commands/explore-codebase.md +0 -12
- package/templates/.claude/commands/export-pdf.md +0 -30
- package/templates/.claude/commands/feature.md +0 -25
- package/templates/.claude/commands/fix-issue.md +0 -12
- package/templates/.claude/commands/fix.md.template +0 -32
- package/templates/.claude/commands/health.md +0 -58
- package/templates/.claude/commands/help.md +0 -36
- package/templates/.claude/commands/learn.md +0 -48
- package/templates/.claude/commands/onboarding.md +0 -21
- package/templates/.claude/commands/plan.md +0 -20
- package/templates/.claude/commands/quality.md.template +0 -65
- package/templates/.claude/commands/session-end.md +0 -40
- package/templates/.claude/commands/session-start.md +0 -30
- package/templates/.claude/commands/setup-hooks.md +0 -18
- package/templates/.claude/commands/stealth-mode.md +0 -17
- package/templates/.claude/commands/test-gaps.md +0 -49
- package/templates/.claude/commands/test.md.template +0 -40
- package/templates/.claude/commands/vulnerabilities.md +0 -49
- package/templates/.claude/skills/build/SKILL.md.template +0 -90
- package/templates/.claude/skills/deploy/SKILL.md.template +0 -111
- package/templates/.claude/skills/deploy/references/gotchas.md +0 -5
- package/templates/.claude/skills/doctor/SKILL.md +0 -31
- package/templates/.claude/skills/gcloud/SKILL.md +0 -66
- package/templates/.claude/skills/gcloud/references/gotchas.md +0 -5
- package/templates/.claude/skills/learned/SKILL.md +0 -55
- package/templates/.claude/skills/learned/references/conventions.md +0 -11
- package/templates/.claude/skills/learned/references/deny-recommendations.md +0 -18
- package/templates/.claude/skills/learned/references/gotchas.md +0 -11
- package/templates/.claude/skills/pulumi/SKILL.md +0 -73
- package/templates/.claude/skills/quality/SKILL.md.template +0 -89
- package/templates/.claude/skills/quality/references/gotchas.md +0 -5
- package/templates/.claude/skills/review/SKILL.md.template +0 -74
- package/templates/.claude/skills/scaffold/SKILL.md.template +0 -113
- package/templates/.claude/skills/secrets/SKILL.md +0 -51
- package/templates/.claude/skills/session/SKILL.md +0 -32
- package/templates/.claude/skills/test/SKILL.md.template +0 -116
- package/templates/.claude/skills/test/references/gotchas.md +0 -5
package/dist/generator.js
CHANGED
|
@@ -39,7 +39,6 @@ const path = __importStar(require("path"));
|
|
|
39
39
|
const constants_1 = require("./constants");
|
|
40
40
|
const template_engine_1 = require("./template-engine");
|
|
41
41
|
const files_1 = require("./files");
|
|
42
|
-
const codebase_scanner_1 = require("./codebase-scanner");
|
|
43
42
|
const languages_1 = require("./languages");
|
|
44
43
|
const logger = __importStar(require("./logger"));
|
|
45
44
|
function getTemplatesDir() {
|
|
@@ -52,48 +51,58 @@ function readTemplate(templatePath) {
|
|
|
52
51
|
}
|
|
53
52
|
return fs.readFileSync(fullPath, 'utf-8');
|
|
54
53
|
}
|
|
55
|
-
|
|
54
|
+
/**
|
|
55
|
+
* Narrowed permission list for the dxkit-specific agent surface.
|
|
56
|
+
* Carries only the binaries the six dxkit-* skills actually run:
|
|
57
|
+
* git status/diff/log/branch (read-only inspection), the dxkit binary
|
|
58
|
+
* itself (every analyzer / hook / baseline command), and the active
|
|
59
|
+
* language packs' contributed commands (so the dxkit-action skill
|
|
60
|
+
* can run `npm test` / `pytest` / etc. to verify a fix without
|
|
61
|
+
* prompting on every step).
|
|
62
|
+
*
|
|
63
|
+
* Pre-2.5.1 the file carried Stop-hook noise about a `/learn` slash
|
|
64
|
+
* command that no longer ships, plus conditional gcloud / pulumi /
|
|
65
|
+
* docker entries tied to generic skills that also no longer ship.
|
|
66
|
+
* Dropped here.
|
|
67
|
+
*/
|
|
68
|
+
function buildSettingsJson(config) {
|
|
56
69
|
const perms = [
|
|
57
70
|
'Bash(git status:*)',
|
|
58
71
|
'Bash(git diff:*)',
|
|
59
72
|
'Bash(git log:*)',
|
|
60
73
|
'Bash(git branch:*)',
|
|
61
74
|
'Bash(npx vyuh-dxkit:*)',
|
|
75
|
+
'Bash(./node_modules/.bin/vyuh-dxkit:*)',
|
|
76
|
+
'Bash(vyuh-dxkit:*)',
|
|
62
77
|
];
|
|
63
|
-
// Per-language permissions — declared on each pack via
|
|
64
|
-
// `LanguageSupport.permissions`, iterated here.
|
|
65
78
|
for (const lang of (0, languages_1.activeLanguagesFromStack)(config)) {
|
|
66
79
|
if (lang.permissions)
|
|
67
80
|
perms.push(...lang.permissions);
|
|
68
81
|
}
|
|
69
|
-
if (conditions.IF_DOCKER)
|
|
70
|
-
perms.push('Bash(docker ps:*)', 'Bash(docker-compose ps:*)', 'Bash(docker-compose logs:*)');
|
|
71
|
-
if (conditions.IF_GCLOUD)
|
|
72
|
-
perms.push('Bash(gcloud config:*)', 'Bash(gcloud projects list:*)', 'Bash(gcloud services list:*)', 'Bash(gcloud run services list:*)');
|
|
73
|
-
if (conditions.IF_PULUMI)
|
|
74
|
-
perms.push('Bash(pulumi preview:*)', 'Bash(pulumi stack:*)', 'Bash(pulumi config:*)');
|
|
75
82
|
return (JSON.stringify({
|
|
76
83
|
$schema: 'https://json.schemastore.org/claude-code-settings.json',
|
|
77
84
|
permissions: {
|
|
78
85
|
allow: perms,
|
|
79
86
|
deny: [],
|
|
80
87
|
},
|
|
81
|
-
hooks: {
|
|
82
|
-
Stop: [
|
|
83
|
-
{
|
|
84
|
-
matcher: '',
|
|
85
|
-
hooks: [
|
|
86
|
-
{
|
|
87
|
-
type: 'command',
|
|
88
|
-
command: 'echo "If this conversation involved debugging, fixing issues, or discovering patterns — consider running /learn to capture it for future sessions."',
|
|
89
|
-
},
|
|
90
|
-
],
|
|
91
|
-
},
|
|
92
|
-
],
|
|
93
|
-
},
|
|
94
88
|
}, null, 2) + '\n');
|
|
95
89
|
}
|
|
96
|
-
|
|
90
|
+
/**
|
|
91
|
+
* The six dxkit-specific skills shipped under `--with-dxkit-agents`.
|
|
92
|
+
* Each lives at `.claude/skills/<name>/SKILL.md` in the template dir;
|
|
93
|
+
* generator copies them verbatim (no template substitution — the
|
|
94
|
+
* skill content references the canonical `vyuh-dxkit` CLI surface
|
|
95
|
+
* and doesn't need per-project variables).
|
|
96
|
+
*/
|
|
97
|
+
const DXKIT_SKILLS = [
|
|
98
|
+
'dxkit-learn',
|
|
99
|
+
'dxkit-init',
|
|
100
|
+
'dxkit-config',
|
|
101
|
+
'dxkit-hooks',
|
|
102
|
+
'dxkit-reports',
|
|
103
|
+
'dxkit-action',
|
|
104
|
+
];
|
|
105
|
+
async function generate(targetDir, config, mode, force, _noScan = false, withDxkitAgents = false) {
|
|
97
106
|
const variables = (0, constants_1.buildVariables)(config);
|
|
98
107
|
const conditions = (0, constants_1.buildConditions)(config);
|
|
99
108
|
const templatesDir = getTemplatesDir();
|
|
@@ -123,7 +132,6 @@ async function generate(targetDir, config, mode, force, noScan = false) {
|
|
|
123
132
|
evolving,
|
|
124
133
|
};
|
|
125
134
|
}
|
|
126
|
-
// Helper: process and write a template file
|
|
127
135
|
async function writeTemplate(templatePath, outputRel, evolving = false) {
|
|
128
136
|
const raw = readTemplate(templatePath);
|
|
129
137
|
const processed = (0, template_engine_1.processTemplate)(raw, variables, conditions);
|
|
@@ -131,7 +139,6 @@ async function generate(targetDir, config, mode, force, noScan = false) {
|
|
|
131
139
|
const res = await (0, files_1.writeFile)(outputPath, processed, opts(evolving));
|
|
132
140
|
track(outputPath, processed, res, evolving);
|
|
133
141
|
}
|
|
134
|
-
// Helper: copy a static file
|
|
135
142
|
function copyStatic(templatePath, outputRel, evolving = false) {
|
|
136
143
|
const srcPath = path.join(templatesDir, templatePath);
|
|
137
144
|
if (!fs.existsSync(srcPath))
|
|
@@ -141,118 +148,57 @@ async function generate(targetDir, config, mode, force, noScan = false) {
|
|
|
141
148
|
const content = evolving ? null : fs.readFileSync(srcPath, 'utf-8');
|
|
142
149
|
track(outputPath, content, res, evolving);
|
|
143
150
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
const
|
|
169
|
-
|
|
170
|
-
if (fs.existsSync(srcRefDir)) {
|
|
171
|
-
for (const file of fs.readdirSync(srcRefDir)) {
|
|
172
|
-
copyStatic(`${refDir}/${file}`, `${refDir}/${file}`, true);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
// Conditional skills
|
|
177
|
-
if (conditions.IF_INFISICAL) {
|
|
178
|
-
copyStatic('.claude/skills/secrets/SKILL.md', '.claude/skills/secrets/SKILL.md');
|
|
179
|
-
}
|
|
180
|
-
if (conditions.IF_GCLOUD) {
|
|
181
|
-
copyStatic('.claude/skills/gcloud/SKILL.md', '.claude/skills/gcloud/SKILL.md');
|
|
182
|
-
copyStatic('.claude/skills/gcloud/references/gotchas.md', '.claude/skills/gcloud/references/gotchas.md', true);
|
|
183
|
-
}
|
|
184
|
-
if (conditions.IF_PULUMI) {
|
|
185
|
-
copyStatic('.claude/skills/pulumi/SKILL.md', '.claude/skills/pulumi/SKILL.md');
|
|
186
|
-
}
|
|
187
|
-
logger.success('.claude/skills/');
|
|
188
|
-
// 4. Rules (conditional on language)
|
|
189
|
-
// Per-language rule files declared via `LanguageSupport.ruleFile`.
|
|
190
|
-
for (const lang of (0, languages_1.activeLanguagesFromStack)(config)) {
|
|
191
|
-
if (lang.ruleFile) {
|
|
192
|
-
copyStatic(`.claude/rules/${lang.ruleFile}`, `.claude/rules/${lang.ruleFile}`);
|
|
151
|
+
if (withDxkitAgents) {
|
|
152
|
+
logger.header('Generating dxkit agent context');
|
|
153
|
+
// Open-standard project prose — read by every coding agent
|
|
154
|
+
// (Claude / Codex / Cursor / Aider). Pre-2.5.1 this content lived
|
|
155
|
+
// in CLAUDE.md; AGENTS.md is the cross-platform replacement.
|
|
156
|
+
await writeTemplate('AGENTS.md.template', 'AGENTS.md');
|
|
157
|
+
logger.success('AGENTS.md');
|
|
158
|
+
// CLAUDE.md becomes a small shim that points at AGENTS.md. Claude
|
|
159
|
+
// Code reads both at session start; the shim carries Claude-
|
|
160
|
+
// specific config (skill list, rules pointer) and defers shared
|
|
161
|
+
// context to AGENTS.md.
|
|
162
|
+
await writeTemplate('CLAUDE.md.template', 'CLAUDE.md');
|
|
163
|
+
logger.success('CLAUDE.md');
|
|
164
|
+
// Narrowed settings.json — drops the Stop-hook noise + conditional
|
|
165
|
+
// gcloud/pulumi/docker entries that referenced generic skills that
|
|
166
|
+
// no longer ship.
|
|
167
|
+
const settingsContent = buildSettingsJson(config);
|
|
168
|
+
const settingsPath = path.join(targetDir, '.claude', 'settings.json');
|
|
169
|
+
const settingsRes = await (0, files_1.writeFile)(settingsPath, settingsContent, opts(false));
|
|
170
|
+
track(settingsPath, settingsContent, settingsRes, false);
|
|
171
|
+
logger.success('.claude/settings.json');
|
|
172
|
+
// The six dxkit-specific skills. Each ships as a single SKILL.md
|
|
173
|
+
// under `.claude/skills/dxkit-<name>/`. Auto-discovered by Claude
|
|
174
|
+
// Code via skill frontmatter (`name` + `description`).
|
|
175
|
+
for (const skill of DXKIT_SKILLS) {
|
|
176
|
+
copyStatic(`.claude/skills/${skill}/SKILL.md`, `.claude/skills/${skill}/SKILL.md`);
|
|
193
177
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
if (config.framework === 'loopback')
|
|
202
|
-
copyStatic('.claude/rules/loopback.md', '.claude/rules/loopback.md');
|
|
203
|
-
if (config.framework === 'express')
|
|
204
|
-
copyStatic('.claude/rules/express.md', '.claude/rules/express.md');
|
|
205
|
-
logger.success('.claude/rules/');
|
|
206
|
-
// 5. Commands (static .md copied as-is, .md.template processed through engine)
|
|
207
|
-
const commandsDir = path.join(templatesDir, '.claude', 'commands');
|
|
208
|
-
if (fs.existsSync(commandsDir)) {
|
|
209
|
-
for (const file of fs.readdirSync(commandsDir)) {
|
|
210
|
-
if (file.endsWith('.md.template')) {
|
|
211
|
-
const outputName = file.replace('.template', '');
|
|
212
|
-
await writeTemplate(`.claude/commands/${file}`, `.claude/commands/${outputName}`);
|
|
213
|
-
}
|
|
214
|
-
else {
|
|
215
|
-
copyStatic(`.claude/commands/${file}`, `.claude/commands/${file}`);
|
|
178
|
+
logger.success('.claude/skills/dxkit-*');
|
|
179
|
+
// Per-language rules from each active pack — still useful as
|
|
180
|
+
// contextual hints to any agent (coding conventions, lint rule
|
|
181
|
+
// exceptions, etc.).
|
|
182
|
+
for (const lang of (0, languages_1.activeLanguagesFromStack)(config)) {
|
|
183
|
+
if (lang.ruleFile) {
|
|
184
|
+
copyStatic(`.claude/rules/${lang.ruleFile}`, `.claude/rules/${lang.ruleFile}`);
|
|
216
185
|
}
|
|
217
186
|
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
copyStatic(
|
|
228
|
-
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
for (const file of fs.readdirSync(activeAgentsDir)) {
|
|
234
|
-
copyStatic(`.claude/agents/${file}`, `.claude/agents/${file}`);
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
logger.success('.claude/agents/');
|
|
238
|
-
// 7. Codebase scan
|
|
239
|
-
if (!noScan) {
|
|
240
|
-
logger.info('Scanning codebase...');
|
|
241
|
-
const analysis = (0, codebase_scanner_1.scanCodebase)(targetDir);
|
|
242
|
-
const skillContent = (0, codebase_scanner_1.renderCodebaseSkill)(analysis);
|
|
243
|
-
const skillPath = path.join(targetDir, '.claude', 'skills', 'codebase', 'SKILL.md');
|
|
244
|
-
const skillRes = await (0, files_1.writeFile)(skillPath, skillContent, opts(true));
|
|
245
|
-
track(skillPath, null, skillRes, true);
|
|
246
|
-
const refContent = (0, codebase_scanner_1.renderArchitectureRef)(analysis);
|
|
247
|
-
const refPath = path.join(targetDir, '.claude', 'skills', 'codebase', 'references', 'architecture.md');
|
|
248
|
-
const refRes = await (0, files_1.writeFile)(refPath, refContent, opts(true));
|
|
249
|
-
track(refPath, null, refRes, true);
|
|
250
|
-
logger.success(`.claude/skills/codebase/ (${analysis.fileCount} files, ${analysis.entryPoints.length} entry points, ${analysis.apiEndpoints.length} API routes)`);
|
|
251
|
-
if (analysis.testFileCount < 5 && analysis.sourceFileCount > 20) {
|
|
252
|
-
logger.warn(`Minimal tests: ${analysis.testFileCount} test files for ${analysis.sourceFileCount} source files`);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
// Write manifest
|
|
187
|
+
// Framework-specific rules — NOT pack-owned. Frameworks
|
|
188
|
+
// (nextjs/loopback/express) live under the top-level `framework`
|
|
189
|
+
// signal, not in `languages`. Stay hardcoded here until a
|
|
190
|
+
// framework-pack abstraction exists.
|
|
191
|
+
if (conditions.IF_NEXTJS)
|
|
192
|
+
copyStatic('.claude/rules/nextjs.md', '.claude/rules/nextjs.md');
|
|
193
|
+
if (config.framework === 'loopback')
|
|
194
|
+
copyStatic('.claude/rules/loopback.md', '.claude/rules/loopback.md');
|
|
195
|
+
if (config.framework === 'express')
|
|
196
|
+
copyStatic('.claude/rules/express.md', '.claude/rules/express.md');
|
|
197
|
+
logger.success('.claude/rules/');
|
|
198
|
+
}
|
|
199
|
+
// Always write the manifest — `vyuh-dxkit update` / `doctor` / etc.
|
|
200
|
+
// read it to know what was configured even when no agent scaffold
|
|
201
|
+
// is present.
|
|
256
202
|
const manifestContent = JSON.stringify(result.manifest, null, 2) + '\n';
|
|
257
203
|
fs.mkdirSync(targetDir, { recursive: true });
|
|
258
204
|
fs.writeFileSync(path.join(targetDir, '.vyuh-dxkit.json'), manifestContent, 'utf-8');
|
package/dist/generator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface ActivateHooksResult {
|
|
2
|
+
/** True when `core.hooksPath` was set during this call. */
|
|
3
|
+
activated: boolean;
|
|
4
|
+
/** Why the call short-circuited; populated when `activated` is false. */
|
|
5
|
+
reason?: 'not-a-git-repo' | 'git-missing' | 'already-set-elsewhere' | 'already-set-correctly' | 'git-error';
|
|
6
|
+
/** Value `core.hooksPath` held before any write attempt. */
|
|
7
|
+
previousValue?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Pure-ish core: takes a cwd, returns a structured outcome. Side
|
|
11
|
+
* effects are limited to invoking `git config` against the supplied
|
|
12
|
+
* cwd. The CLI wrapper renders log output from the result.
|
|
13
|
+
*/
|
|
14
|
+
export declare function activateHooks(cwd: string): ActivateHooksResult;
|
|
15
|
+
/**
|
|
16
|
+
* CLI wrapper. Renders a short status line and ALWAYS exits 0 so a
|
|
17
|
+
* postinstall hook never aborts `npm install`.
|
|
18
|
+
*/
|
|
19
|
+
export declare function runHooksActivate(cwd: string): void;
|
|
20
|
+
//# sourceMappingURL=hooks-cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks-cli.d.ts","sourceRoot":"","sources":["../src/hooks-cli.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,SAAS,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,MAAM,CAAC,EACH,gBAAgB,GAChB,aAAa,GACb,uBAAuB,GACvB,uBAAuB,GACvB,WAAW,CAAC;IAChB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAwD9D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CA6BlD"}
|
|
@@ -0,0 +1,145 @@
|
|
|
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.activateHooks = activateHooks;
|
|
37
|
+
exports.runHooksActivate = runHooksActivate;
|
|
38
|
+
/**
|
|
39
|
+
* CLI handler for `vyuh-dxkit hooks activate`.
|
|
40
|
+
*
|
|
41
|
+
* Idempotent activation of the dxkit hook directory. Designed to be
|
|
42
|
+
* invoked from an `npm postinstall` script in the consumer's
|
|
43
|
+
* package.json, so every clone + `npm install` automatically wires
|
|
44
|
+
* `core.hooksPath` without per-dev manual setup.
|
|
45
|
+
*
|
|
46
|
+
* Always exits 0. A postinstall script that exits non-zero breaks
|
|
47
|
+
* `npm install` for the whole repo, which is a worse failure than
|
|
48
|
+
* "hooks didn't activate this run." If the repo isn't a git checkout
|
|
49
|
+
* or `git` is missing, log a dim notice and return cleanly.
|
|
50
|
+
*/
|
|
51
|
+
const child_process_1 = require("child_process");
|
|
52
|
+
const logger = __importStar(require("./logger"));
|
|
53
|
+
/**
|
|
54
|
+
* Pure-ish core: takes a cwd, returns a structured outcome. Side
|
|
55
|
+
* effects are limited to invoking `git config` against the supplied
|
|
56
|
+
* cwd. The CLI wrapper renders log output from the result.
|
|
57
|
+
*/
|
|
58
|
+
function activateHooks(cwd) {
|
|
59
|
+
// Refuse to run outside a git worktree — `git config` would write
|
|
60
|
+
// to the global config file instead, which is the worst kind of
|
|
61
|
+
// surprise. `--is-inside-work-tree` returns "true" + exit 0 only
|
|
62
|
+
// when cwd is inside a valid worktree.
|
|
63
|
+
try {
|
|
64
|
+
const out = (0, child_process_1.execFileSync)('git', ['rev-parse', '--is-inside-work-tree'], {
|
|
65
|
+
cwd,
|
|
66
|
+
encoding: 'utf8',
|
|
67
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
68
|
+
}).trim();
|
|
69
|
+
if (out !== 'true') {
|
|
70
|
+
return { activated: false, reason: 'not-a-git-repo' };
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
const msg = err.message ?? '';
|
|
75
|
+
// ENOENT on the spawn means `git` itself isn't installed. Every
|
|
76
|
+
// other error means cwd isn't a worktree (or .git is corrupted).
|
|
77
|
+
if (msg.includes('ENOENT'))
|
|
78
|
+
return { activated: false, reason: 'git-missing' };
|
|
79
|
+
return { activated: false, reason: 'not-a-git-repo' };
|
|
80
|
+
}
|
|
81
|
+
// Read the current value (if any). `git config --get` exits 1 when
|
|
82
|
+
// the key is unset — that's the happy path for a fresh clone.
|
|
83
|
+
let previousValue;
|
|
84
|
+
try {
|
|
85
|
+
previousValue = (0, child_process_1.execFileSync)('git', ['config', '--local', '--get', 'core.hooksPath'], {
|
|
86
|
+
cwd,
|
|
87
|
+
encoding: 'utf8',
|
|
88
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
89
|
+
}).trim();
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
previousValue = undefined;
|
|
93
|
+
}
|
|
94
|
+
if (previousValue === '.githooks') {
|
|
95
|
+
return { activated: false, reason: 'already-set-correctly', previousValue };
|
|
96
|
+
}
|
|
97
|
+
if (previousValue && previousValue.length > 0) {
|
|
98
|
+
// Don't clobber a custom hooksPath (husky, lefthook, personal
|
|
99
|
+
// setup). The customer is on the hook for chaining if they want
|
|
100
|
+
// both — same convention as `.dxkit` sidecars when an existing
|
|
101
|
+
// hook is present.
|
|
102
|
+
return { activated: false, reason: 'already-set-elsewhere', previousValue };
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
(0, child_process_1.execFileSync)('git', ['config', '--local', 'core.hooksPath', '.githooks'], {
|
|
106
|
+
cwd,
|
|
107
|
+
stdio: 'ignore',
|
|
108
|
+
});
|
|
109
|
+
return { activated: true };
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return { activated: false, reason: 'git-error' };
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* CLI wrapper. Renders a short status line and ALWAYS exits 0 so a
|
|
117
|
+
* postinstall hook never aborts `npm install`.
|
|
118
|
+
*/
|
|
119
|
+
function runHooksActivate(cwd) {
|
|
120
|
+
const result = activateHooks(cwd);
|
|
121
|
+
if (result.activated) {
|
|
122
|
+
logger.dim('dxkit hooks activated (core.hooksPath = .githooks)');
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
switch (result.reason) {
|
|
126
|
+
case 'already-set-correctly':
|
|
127
|
+
// Stay quiet on the steady-state path — every subsequent
|
|
128
|
+
// `npm install` lands here, and noise compounds.
|
|
129
|
+
return;
|
|
130
|
+
case 'already-set-elsewhere':
|
|
131
|
+
logger.dim(`dxkit hooks activation skipped: core.hooksPath already set to '${result.previousValue}'. ` +
|
|
132
|
+
'Chain dxkit hooks by sourcing .githooks/<name> from your existing hook directory.');
|
|
133
|
+
return;
|
|
134
|
+
case 'not-a-git-repo':
|
|
135
|
+
logger.dim('dxkit hooks activation skipped: not inside a git working tree.');
|
|
136
|
+
return;
|
|
137
|
+
case 'git-missing':
|
|
138
|
+
logger.dim('dxkit hooks activation skipped: git not on PATH.');
|
|
139
|
+
return;
|
|
140
|
+
default:
|
|
141
|
+
logger.dim('dxkit hooks activation skipped: git error (run `vyuh-dxkit doctor` to diagnose).');
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=hooks-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks-cli.js","sourceRoot":"","sources":["../src/hooks-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../src/languages/csharp.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,6BAA6B,CAAC;AAmB1E,OAAO,KAAK,EAEV,cAAc,EASd,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAuC/C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAoC/F;AA8GD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,GACV;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,cAAc,EAAE,CAAA;CAAE,GAAG,IAAI,CA2D/D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,GACV;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,GAAG,IAAI,CAqCjE;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;CACjD,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAsBxB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAe9D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAExD;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,CAAC;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,CAAC,GAC9E;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,CAY1D;AAggBD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAQjE;AAoSD,eAAO,MAAM,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../src/languages/csharp.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,6BAA6B,CAAC;AAmB1E,OAAO,KAAK,EAEV,cAAc,EASd,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAuC/C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAoC/F;AA8GD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,GACV;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,cAAc,EAAE,CAAA;CAAE,GAAG,IAAI,CA2D/D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,GACV;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,GAAG,IAAI,CAqCjE;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;CACjD,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAsBxB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAe9D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAExD;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,CAAC;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,CAAC,GAC9E;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,CAY1D;AAggBD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAQjE;AAoSD,eAAO,MAAM,MAAM,EAAE,eA0JpB,CAAC"}
|
package/dist/languages/csharp.js
CHANGED
|
@@ -1288,5 +1288,9 @@ exports.csharp = {
|
|
|
1288
1288
|
ruleFile: 'csharp.md',
|
|
1289
1289
|
defaultVersion: '8.0',
|
|
1290
1290
|
cliBinaries: ['dotnet'],
|
|
1291
|
+
devcontainerFeature: {
|
|
1292
|
+
name: 'ghcr.io/devcontainers/features/dotnet:2',
|
|
1293
|
+
opts: { version: '8.0' },
|
|
1294
|
+
},
|
|
1291
1295
|
};
|
|
1292
1296
|
//# sourceMappingURL=csharp.js.map
|