@vyuhlabs/dxkit 2.4.8 → 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 +312 -0
- package/README.md +360 -439
- package/dist/analyzers/security/aggregator.d.ts.map +1 -1
- package/dist/analyzers/security/aggregator.js +4 -46
- package/dist/analyzers/security/aggregator.js.map +1 -1
- package/dist/analyzers/tools/fingerprint.d.ts +91 -26
- package/dist/analyzers/tools/fingerprint.d.ts.map +1 -1
- package/dist/analyzers/tools/fingerprint.js +111 -22
- package/dist/analyzers/tools/fingerprint.js.map +1 -1
- package/dist/analyzers/tools/generic.d.ts.map +1 -1
- package/dist/analyzers/tools/generic.js +6 -1
- package/dist/analyzers/tools/generic.js.map +1 -1
- package/dist/analyzers/tools/gitleaks.d.ts +24 -1
- package/dist/analyzers/tools/gitleaks.d.ts.map +1 -1
- package/dist/analyzers/tools/gitleaks.js +20 -11
- package/dist/analyzers/tools/gitleaks.js.map +1 -1
- 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/analyzers/types.d.ts +6 -4
- package/dist/analyzers/types.d.ts.map +1 -1
- package/dist/baseline/baseline-file.d.ts +104 -0
- package/dist/baseline/baseline-file.d.ts.map +1 -0
- package/dist/baseline/baseline-file.js +110 -0
- package/dist/baseline/baseline-file.js.map +1 -0
- package/dist/baseline/check-renderers.d.ts +108 -0
- package/dist/baseline/check-renderers.d.ts.map +1 -0
- package/dist/baseline/check-renderers.js +379 -0
- package/dist/baseline/check-renderers.js.map +1 -0
- package/dist/baseline/check.d.ts +127 -0
- package/dist/baseline/check.d.ts.map +1 -0
- package/dist/baseline/check.js +462 -0
- package/dist/baseline/check.js.map +1 -0
- package/dist/baseline/content-hash.d.ts +83 -0
- package/dist/baseline/content-hash.d.ts.map +1 -0
- package/dist/baseline/content-hash.js +131 -0
- package/dist/baseline/content-hash.js.map +1 -0
- package/dist/baseline/create.d.ts +96 -0
- package/dist/baseline/create.d.ts.map +1 -0
- package/dist/baseline/create.js +339 -0
- package/dist/baseline/create.js.map +1 -0
- package/dist/baseline/entry-to-located.d.ts +35 -0
- package/dist/baseline/entry-to-located.d.ts.map +1 -0
- package/dist/baseline/entry-to-located.js +72 -0
- package/dist/baseline/entry-to-located.js.map +1 -0
- package/dist/baseline/finding-identity.d.ts +47 -0
- package/dist/baseline/finding-identity.d.ts.map +1 -0
- package/dist/baseline/finding-identity.js +292 -0
- package/dist/baseline/finding-identity.js.map +1 -0
- package/dist/baseline/git-aware-match.d.ts +146 -0
- package/dist/baseline/git-aware-match.d.ts.map +1 -0
- package/dist/baseline/git-aware-match.js +439 -0
- package/dist/baseline/git-aware-match.js.map +1 -0
- package/dist/baseline/policy.d.ts +171 -0
- package/dist/baseline/policy.d.ts.map +1 -0
- package/dist/baseline/policy.js +206 -0
- package/dist/baseline/policy.js.map +1 -0
- package/dist/baseline/producers/health.d.ts +30 -0
- package/dist/baseline/producers/health.d.ts.map +1 -0
- package/dist/baseline/producers/health.js +42 -0
- package/dist/baseline/producers/health.js.map +1 -0
- package/dist/baseline/producers/index.d.ts +164 -0
- package/dist/baseline/producers/index.d.ts.map +1 -0
- package/dist/baseline/producers/index.js +200 -0
- package/dist/baseline/producers/index.js.map +1 -0
- package/dist/baseline/producers/licenses.d.ts +23 -0
- package/dist/baseline/producers/licenses.d.ts.map +1 -0
- package/dist/baseline/producers/licenses.js +46 -0
- package/dist/baseline/producers/licenses.js.map +1 -0
- package/dist/baseline/producers/quality.d.ts +39 -0
- package/dist/baseline/producers/quality.d.ts.map +1 -0
- package/dist/baseline/producers/quality.js +84 -0
- package/dist/baseline/producers/quality.js.map +1 -0
- package/dist/baseline/producers/secret-hmac.d.ts +45 -0
- package/dist/baseline/producers/secret-hmac.d.ts.map +1 -0
- package/dist/baseline/producers/secret-hmac.js +70 -0
- package/dist/baseline/producers/secret-hmac.js.map +1 -0
- package/dist/baseline/producers/security.d.ts +59 -0
- package/dist/baseline/producers/security.d.ts.map +1 -0
- package/dist/baseline/producers/security.js +135 -0
- package/dist/baseline/producers/security.js.map +1 -0
- package/dist/baseline/producers/tests.d.ts +36 -0
- package/dist/baseline/producers/tests.d.ts.map +1 -0
- package/dist/baseline/producers/tests.js +69 -0
- package/dist/baseline/producers/tests.js.map +1 -0
- package/dist/baseline/salt.d.ts +45 -0
- package/dist/baseline/salt.d.ts.map +1 -0
- package/dist/baseline/salt.js +113 -0
- package/dist/baseline/salt.js.map +1 -0
- package/dist/baseline/show.d.ts +79 -0
- package/dist/baseline/show.d.ts.map +1 -0
- package/dist/baseline/show.js +233 -0
- package/dist/baseline/show.js.map +1 -0
- package/dist/baseline/types.d.ts +482 -0
- package/dist/baseline/types.d.ts.map +1 -0
- package/dist/baseline/types.js +53 -0
- package/dist/baseline/types.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +398 -82
- package/dist/cli.js.map +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +0 -4
- package/dist/constants.js.map +1 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +39 -35
- package/dist/doctor.js.map +1 -1
- package/dist/fail-on.d.ts +84 -0
- package/dist/fail-on.d.ts.map +1 -0
- package/dist/fail-on.js +128 -0
- package/dist/fail-on.js.map +1 -0
- package/dist/generator.d.ts +1 -1
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +81 -274
- 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 -9
- package/dist/languages/csharp.js.map +1 -1
- package/dist/languages/go.d.ts.map +1 -1
- package/dist/languages/go.js +3 -14
- package/dist/languages/go.js.map +1 -1
- package/dist/languages/index.d.ts +19 -1
- 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 -6
- package/dist/languages/java.js.map +1 -1
- package/dist/languages/kotlin.d.ts.map +1 -1
- package/dist/languages/kotlin.js +9 -11
- package/dist/languages/kotlin.js.map +1 -1
- package/dist/languages/python.d.ts.map +1 -1
- package/dist/languages/python.js +4 -15
- package/dist/languages/python.js.map +1 -1
- package/dist/languages/ruby.d.ts.map +1 -1
- package/dist/languages/ruby.js +4 -6
- package/dist/languages/ruby.js.map +1 -1
- package/dist/languages/rust.d.ts.map +1 -1
- package/dist/languages/rust.js +4 -4
- package/dist/languages/rust.js.map +1 -1
- package/dist/languages/types.d.ts +29 -28
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages/typescript.d.ts.map +1 -1
- package/dist/languages/typescript.js +31 -4
- package/dist/languages/typescript.js.map +1 -1
- package/dist/lib.d.ts +2 -3
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +3 -6
- package/dist/lib.js.map +1 -1
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +0 -10
- package/dist/prompts.js.map +1 -1
- package/dist/report-schema.d.ts +42 -0
- package/dist/report-schema.d.ts.map +1 -0
- package/dist/report-schema.js +54 -0
- package/dist/report-schema.js.map +1 -0
- package/dist/ship-installers.d.ts +112 -0
- package/dist/ship-installers.d.ts.map +1 -0
- package/dist/ship-installers.js +530 -0
- package/dist/ship-installers.js.map +1 -0
- 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/dist/types.d.ts +0 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/update.d.ts.map +1 -1
- package/dist/update.js +0 -4
- package/dist/update.js.map +1 -1
- package/package.json +17 -11
- 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 +55 -0
- package/templates/.devcontainer/install-agent-clis.sh +42 -0
- package/templates/.devcontainer/post-create.sh +81 -0
- package/templates/.githooks/pre-commit +55 -0
- package/templates/.githooks/pre-push +63 -0
- package/templates/.github/workflows/dxkit-baseline-refresh.yml +78 -0
- package/templates/.github/workflows/dxkit-guardrails.yml +98 -0
- package/templates/AGENTS.md.template +137 -0
- package/templates/CLAUDE.md.template +16 -245
- package/dist/codebase-scanner.d.ts +0 -36
- package/dist/codebase-scanner.d.ts.map +0 -1
- package/dist/codebase-scanner.js +0 -688
- package/dist/codebase-scanner.js.map +0 -1
- package/dist/project-yaml.d.ts +0 -13
- package/dist/project-yaml.d.ts.map +0 -1
- package/dist/project-yaml.js +0 -188
- package/dist/project-yaml.js.map +0 -1
- package/templates/.ai/README.md +0 -117
- package/templates/.ai/prompts/execution-prompt.md +0 -9
- package/templates/.ai/prompts/planning-prompt.md +0 -18
- package/templates/.ai/prompts/session-end-template.md +0 -182
- package/templates/.ai/prompts/session-end.md +0 -132
- package/templates/.ai/prompts/session-start.md +0 -109
- package/templates/.ai/prompts/step-by-step.md +0 -113
- package/templates/.ai/sessions/.gitkeep +0 -0
- 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 -61
- 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 -21
- 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/setup-pr-review.md +0 -72
- 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 -98
- package/templates/.claude/skills/deploy/SKILL.md.template +0 -131
- package/templates/.claude/skills/deploy/references/gotchas.md +0 -5
- package/templates/.claude/skills/doctor/SKILL.md +0 -54
- 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 -108
- package/templates/.claude/skills/quality/references/gotchas.md +0 -5
- package/templates/.claude/skills/review/SKILL.md.template +0 -73
- package/templates/.claude/skills/scaffold/SKILL.md.template +0 -123
- package/templates/.claude/skills/secrets/SKILL.md +0 -52
- package/templates/.claude/skills/session/SKILL.md +0 -43
- package/templates/.claude/skills/test/SKILL.md.template +0 -122
- package/templates/.claude/skills/test/references/gotchas.md +0 -5
- package/templates/.devcontainer/Dockerfile.dev.template +0 -89
- package/templates/.devcontainer/devcontainer.json.template +0 -184
- package/templates/.devcontainer/docker-compose.yml.template +0 -105
- package/templates/.devcontainer/init-scripts/01-init.sql.template +0 -12
- package/templates/.devcontainer/post-create.sh.template +0 -298
- package/templates/.github/workflows/ci.yml.template +0 -399
- package/templates/.github/workflows/quality.yml.template +0 -376
- package/templates/.pre-commit-config.yaml.template +0 -106
- package/templates/.project/config/edit_config.py +0 -275
- package/templates/.project/config/project_config.py +0 -894
- package/templates/.project/scripts/codegen/generate-all.sh +0 -20
- package/templates/.project/scripts/codegen/validate-all.sh +0 -17
- package/templates/.project/scripts/docs/generate-all.sh +0 -30
- package/templates/.project/scripts/docs/serve.sh +0 -20
- package/templates/.project/scripts/quality/fix-all.sh +0 -138
- package/templates/.project/scripts/quality/lint-go.sh +0 -34
- package/templates/.project/scripts/quality/lint-python.sh +0 -54
- package/templates/.project/scripts/quality/run-all.sh +0 -497
- package/templates/.project/scripts/session/commit.sh +0 -70
- package/templates/.project/scripts/session/create-pr.sh +0 -165
- package/templates/.project/scripts/session/end.sh +0 -207
- package/templates/.project/scripts/session/start.sh +0 -233
- package/templates/.project/scripts/setup/doctor.sh +0 -404
- package/templates/.project/scripts/setup/interactive-setup.sh +0 -585
- package/templates/.project/scripts/sync/sync-template.sh +0 -328
- package/templates/.project/scripts/test/run-all.sh +0 -179
- package/templates/.project/scripts/test/run-quick.sh +0 -25
- package/templates/Makefile +0 -514
- package/templates/config/versions.yaml +0 -57
- package/templates/configs/go/.golangci.yml.template +0 -172
- package/templates/configs/go/go.mod.template +0 -15
- package/templates/configs/java/README.md +0 -6
- package/templates/configs/kotlin/README.md +0 -6
- package/templates/configs/node/package.json.template +0 -67
- package/templates/configs/node/tsconfig.json.template +0 -53
- package/templates/configs/python/pyproject.toml.template +0 -92
- package/templates/configs/python/pytest.ini.template +0 -64
- package/templates/configs/python/ruff.toml.template +0 -79
- package/templates/configs/ruby/README.md +0 -6
- package/templates/configs/rust/Cargo.toml.template +0 -51
- package/templates/configs/shared/.editorconfig +0 -67
- package/templates/scripts/validate-templates.sh +0 -449
package/dist/fail-on.js
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Pure threshold checks for the `--fail-on-*` flags.
|
|
4
|
+
*
|
|
5
|
+
* Two flag families:
|
|
6
|
+
*
|
|
7
|
+
* - **`--fail-on-score N`** — fail when the analyzer's headline
|
|
8
|
+
* score drops below `N`. Applies to commands with a higher-is-
|
|
9
|
+
* better aggregate score (health.overallScore,
|
|
10
|
+
* test-gaps.effectiveCoverage).
|
|
11
|
+
*
|
|
12
|
+
* - **`--fail-on-severity <tier>`** — fail when any finding at the
|
|
13
|
+
* named tier or higher exists. Applies to commands that report
|
|
14
|
+
* severity-graded findings (vulnerabilities, bom).
|
|
15
|
+
*
|
|
16
|
+
* These flags are independent of `guardrail check` — they enforce
|
|
17
|
+
* absolute floors that don't require a prior baseline. A team can
|
|
18
|
+
* compose them in CI to layer aggregate-floor gates alongside
|
|
19
|
+
* per-finding regression gates.
|
|
20
|
+
*
|
|
21
|
+
* Pure module: each helper returns a structured verdict. The CLI
|
|
22
|
+
* layer maps the verdict to `process.exit(1)` + a logged reason.
|
|
23
|
+
*/
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.SEVERITY_RANK = void 0;
|
|
26
|
+
exports.checkFailOnScore = checkFailOnScore;
|
|
27
|
+
exports.checkFailOnSeverity = checkFailOnSeverity;
|
|
28
|
+
exports.parseSeverityTier = parseSeverityTier;
|
|
29
|
+
exports.parseScoreThreshold = parseScoreThreshold;
|
|
30
|
+
/**
|
|
31
|
+
* Ordinal ranking. Higher rank = more severe. Used to decide whether
|
|
32
|
+
* a finding at severity X passes a `--fail-on-severity Y` gate (X
|
|
33
|
+
* fails iff rank(X) >= rank(Y)).
|
|
34
|
+
*/
|
|
35
|
+
exports.SEVERITY_RANK = Object.freeze({
|
|
36
|
+
critical: 3,
|
|
37
|
+
high: 2,
|
|
38
|
+
medium: 1,
|
|
39
|
+
low: 0,
|
|
40
|
+
});
|
|
41
|
+
/**
|
|
42
|
+
* Check a higher-is-better score against a minimum threshold.
|
|
43
|
+
*
|
|
44
|
+
* Returns `{ fails: true, reason }` when `score < threshold`.
|
|
45
|
+
* Returns `{ fails: false }` otherwise.
|
|
46
|
+
*
|
|
47
|
+
* `threshold` is parsed from the CLI; the caller validates that it's
|
|
48
|
+
* a finite number in `[0, 100]` (or whatever the score domain is)
|
|
49
|
+
* before invoking. Non-finite or NaN inputs throw — the caller
|
|
50
|
+
* should reject those at parse time.
|
|
51
|
+
*/
|
|
52
|
+
function checkFailOnScore(score, threshold) {
|
|
53
|
+
if (!Number.isFinite(score)) {
|
|
54
|
+
throw new Error(`fail-on-score: report score is not a finite number (got ${score})`);
|
|
55
|
+
}
|
|
56
|
+
if (!Number.isFinite(threshold)) {
|
|
57
|
+
throw new Error(`fail-on-score: threshold is not a finite number (got ${threshold})`);
|
|
58
|
+
}
|
|
59
|
+
if (score < threshold) {
|
|
60
|
+
return {
|
|
61
|
+
fails: true,
|
|
62
|
+
reason: `score ${score} is below --fail-on-score threshold ${threshold}`,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
return { fails: false };
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Check whether any finding at `tier` or higher exists in `counts`.
|
|
69
|
+
*
|
|
70
|
+
* Returns `{ fails: true, reason }` when at least one such finding
|
|
71
|
+
* is present. `reason` lists each contributing tier so the user
|
|
72
|
+
* sees *what* triggered the gate without re-reading the report.
|
|
73
|
+
*
|
|
74
|
+
* `tier` must be one of the four canonical severities; any other
|
|
75
|
+
* value throws. The caller should reject malformed input at parse
|
|
76
|
+
* time so the helper can stay pure.
|
|
77
|
+
*/
|
|
78
|
+
function checkFailOnSeverity(counts, tier) {
|
|
79
|
+
if (!(tier in exports.SEVERITY_RANK)) {
|
|
80
|
+
throw new Error(`fail-on-severity: unknown tier "${tier}" (expected one of: critical, high, medium, low)`);
|
|
81
|
+
}
|
|
82
|
+
const threshold = exports.SEVERITY_RANK[tier];
|
|
83
|
+
const offending = [];
|
|
84
|
+
const severities = ['critical', 'high', 'medium', 'low'];
|
|
85
|
+
for (const severity of severities) {
|
|
86
|
+
if (exports.SEVERITY_RANK[severity] < threshold)
|
|
87
|
+
continue;
|
|
88
|
+
const count = counts[severity];
|
|
89
|
+
if (count > 0)
|
|
90
|
+
offending.push({ severity, count });
|
|
91
|
+
}
|
|
92
|
+
if (offending.length === 0)
|
|
93
|
+
return { fails: false };
|
|
94
|
+
const detail = offending.map((o) => `${o.count} ${o.severity}`).join(', ');
|
|
95
|
+
return {
|
|
96
|
+
fails: true,
|
|
97
|
+
reason: `findings at or above --fail-on-severity ${tier}: ${detail}`,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Parse the `--fail-on-severity` CLI value into a typed tier.
|
|
102
|
+
* Returns `null` for an unrecognized value so the caller can render
|
|
103
|
+
* a helpful error including the user-supplied string. Doing the
|
|
104
|
+
* validation here keeps the CLI parsing site concern-free.
|
|
105
|
+
*/
|
|
106
|
+
function parseSeverityTier(raw) {
|
|
107
|
+
if (raw === 'critical' || raw === 'high' || raw === 'medium' || raw === 'low') {
|
|
108
|
+
return raw;
|
|
109
|
+
}
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Parse the `--fail-on-score` CLI value into a finite number.
|
|
114
|
+
* Returns `null` when the value is missing, non-numeric, NaN, or
|
|
115
|
+
* outside the score domain `[0, 100]`. The CLI converts `null` to a
|
|
116
|
+
* helpful error pointing the user at valid inputs.
|
|
117
|
+
*/
|
|
118
|
+
function parseScoreThreshold(raw) {
|
|
119
|
+
if (raw === undefined || raw === '')
|
|
120
|
+
return null;
|
|
121
|
+
const n = Number(raw);
|
|
122
|
+
if (!Number.isFinite(n))
|
|
123
|
+
return null;
|
|
124
|
+
if (n < 0 || n > 100)
|
|
125
|
+
return null;
|
|
126
|
+
return n;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=fail-on.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fail-on.js","sourceRoot":"","sources":["../src/fail-on.ts"],"names":[],"mappings":"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"}
|
package/dist/generator.d.ts
CHANGED
|
@@ -5,6 +5,6 @@ interface GenerateResult {
|
|
|
5
5
|
overwritten: string[];
|
|
6
6
|
manifest: Manifest;
|
|
7
7
|
}
|
|
8
|
-
export declare function generate(targetDir: string, config: ResolvedConfig, mode: GenerationMode, force: boolean,
|
|
8
|
+
export declare function generate(targetDir: string, config: ResolvedConfig, mode: GenerationMode, force: boolean, _noScan?: boolean, withDxkitAgents?: boolean): Promise<GenerateResult>;
|
|
9
9
|
export {};
|
|
10
10
|
//# sourceMappingURL=generator.d.ts.map
|
package/dist/generator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AA8EnE,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,OAAO,EACd,OAAO,UAAQ,EACf,eAAe,UAAQ,GACtB,OAAO,CAAC,cAAc,CAAC,CAmHzB"}
|
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,68 +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
|
-
'Bash(make test:*)',
|
|
58
|
-
'Bash(make test-unit:*)',
|
|
59
|
-
'Bash(make test-coverage:*)',
|
|
60
|
-
'Bash(make quality:*)',
|
|
61
|
-
'Bash(make quality-fix:*)',
|
|
62
|
-
'Bash(make lint:*)',
|
|
63
|
-
'Bash(make format:*)',
|
|
64
|
-
'Bash(make check:*)',
|
|
65
|
-
'Bash(make fix:*)',
|
|
66
|
-
'Bash(make doctor:*)',
|
|
67
|
-
'Bash(make info:*)',
|
|
68
|
-
'Bash(make validate:*)',
|
|
69
|
-
'Bash(make generate:*)',
|
|
70
|
-
'Bash(make build:*)',
|
|
71
|
-
'Bash(make clean:*)',
|
|
72
|
-
'Bash(make docs:*)',
|
|
73
|
-
'Bash(make sync:*)',
|
|
74
|
-
'Bash(make sync-preview:*)',
|
|
75
|
-
'Bash(make lang-list:*)',
|
|
76
70
|
'Bash(git status:*)',
|
|
77
71
|
'Bash(git diff:*)',
|
|
78
72
|
'Bash(git log:*)',
|
|
79
73
|
'Bash(git branch:*)',
|
|
74
|
+
'Bash(npx vyuh-dxkit:*)',
|
|
75
|
+
'Bash(./node_modules/.bin/vyuh-dxkit:*)',
|
|
76
|
+
'Bash(vyuh-dxkit:*)',
|
|
80
77
|
];
|
|
81
|
-
// Per-language permissions — declared on each pack via
|
|
82
|
-
// `LanguageSupport.permissions`, iterated here.
|
|
83
78
|
for (const lang of (0, languages_1.activeLanguagesFromStack)(config)) {
|
|
84
79
|
if (lang.permissions)
|
|
85
80
|
perms.push(...lang.permissions);
|
|
86
81
|
}
|
|
87
|
-
if (conditions.IF_INFISICAL)
|
|
88
|
-
perms.push('Bash(make secrets-pull:*)', 'Bash(make secrets-show:*)');
|
|
89
|
-
if (conditions.IF_DOCKER)
|
|
90
|
-
perms.push('Bash(docker ps:*)', 'Bash(docker-compose ps:*)', 'Bash(docker-compose logs:*)');
|
|
91
|
-
if (conditions.IF_GCLOUD)
|
|
92
|
-
perms.push('Bash(gcloud config:*)', 'Bash(gcloud projects list:*)', 'Bash(gcloud services list:*)', 'Bash(gcloud run services list:*)');
|
|
93
|
-
if (conditions.IF_PULUMI)
|
|
94
|
-
perms.push('Bash(pulumi preview:*)', 'Bash(pulumi stack:*)', 'Bash(pulumi config:*)');
|
|
95
82
|
return (JSON.stringify({
|
|
96
83
|
$schema: 'https://json.schemastore.org/claude-code-settings.json',
|
|
97
84
|
permissions: {
|
|
98
85
|
allow: perms,
|
|
99
86
|
deny: [],
|
|
100
87
|
},
|
|
101
|
-
hooks: {
|
|
102
|
-
Stop: [
|
|
103
|
-
{
|
|
104
|
-
matcher: '',
|
|
105
|
-
hooks: [
|
|
106
|
-
{
|
|
107
|
-
type: 'command',
|
|
108
|
-
command: 'echo "If this conversation involved debugging, fixing issues, or discovering patterns — consider running /learn to capture it for future sessions."',
|
|
109
|
-
},
|
|
110
|
-
],
|
|
111
|
-
},
|
|
112
|
-
],
|
|
113
|
-
},
|
|
114
88
|
}, null, 2) + '\n');
|
|
115
89
|
}
|
|
116
|
-
|
|
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) {
|
|
117
106
|
const variables = (0, constants_1.buildVariables)(config);
|
|
118
107
|
const conditions = (0, constants_1.buildConditions)(config);
|
|
119
108
|
const templatesDir = getTemplatesDir();
|
|
@@ -143,7 +132,6 @@ async function generate(targetDir, config, mode, force, noScan = false) {
|
|
|
143
132
|
evolving,
|
|
144
133
|
};
|
|
145
134
|
}
|
|
146
|
-
// Helper: process and write a template file
|
|
147
135
|
async function writeTemplate(templatePath, outputRel, evolving = false) {
|
|
148
136
|
const raw = readTemplate(templatePath);
|
|
149
137
|
const processed = (0, template_engine_1.processTemplate)(raw, variables, conditions);
|
|
@@ -151,7 +139,6 @@ async function generate(targetDir, config, mode, force, noScan = false) {
|
|
|
151
139
|
const res = await (0, files_1.writeFile)(outputPath, processed, opts(evolving));
|
|
152
140
|
track(outputPath, processed, res, evolving);
|
|
153
141
|
}
|
|
154
|
-
// Helper: copy a static file
|
|
155
142
|
function copyStatic(templatePath, outputRel, evolving = false) {
|
|
156
143
|
const srcPath = path.join(templatesDir, templatePath);
|
|
157
144
|
if (!fs.existsSync(srcPath))
|
|
@@ -161,240 +148,60 @@ async function generate(targetDir, config, mode, force, noScan = false) {
|
|
|
161
148
|
const content = evolving ? null : fs.readFileSync(srcPath, 'utf-8');
|
|
162
149
|
track(outputPath, content, res, evolving);
|
|
163
150
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
const
|
|
189
|
-
|
|
190
|
-
if (fs.existsSync(srcRefDir)) {
|
|
191
|
-
for (const file of fs.readdirSync(srcRefDir)) {
|
|
192
|
-
copyStatic(`${refDir}/${file}`, `${refDir}/${file}`, true);
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
// Conditional skills
|
|
197
|
-
if (conditions.IF_INFISICAL) {
|
|
198
|
-
copyStatic('.claude/skills/secrets/SKILL.md', '.claude/skills/secrets/SKILL.md');
|
|
199
|
-
}
|
|
200
|
-
if (conditions.IF_GCLOUD) {
|
|
201
|
-
copyStatic('.claude/skills/gcloud/SKILL.md', '.claude/skills/gcloud/SKILL.md');
|
|
202
|
-
copyStatic('.claude/skills/gcloud/references/gotchas.md', '.claude/skills/gcloud/references/gotchas.md', true);
|
|
203
|
-
}
|
|
204
|
-
if (conditions.IF_PULUMI) {
|
|
205
|
-
copyStatic('.claude/skills/pulumi/SKILL.md', '.claude/skills/pulumi/SKILL.md');
|
|
206
|
-
}
|
|
207
|
-
logger.success('.claude/skills/');
|
|
208
|
-
// 4. Rules (conditional on language)
|
|
209
|
-
// Per-language rule files declared via `LanguageSupport.ruleFile`.
|
|
210
|
-
for (const lang of (0, languages_1.activeLanguagesFromStack)(config)) {
|
|
211
|
-
if (lang.ruleFile) {
|
|
212
|
-
copyStatic(`.claude/rules/${lang.ruleFile}`, `.claude/rules/${lang.ruleFile}`);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
// Framework-specific rules — NOT pack-owned. Frameworks
|
|
216
|
-
// (nextjs/loopback/express) live under the top-level `framework`
|
|
217
|
-
// signal, not in `languages`. Stay hardcoded here until a
|
|
218
|
-
// framework-pack abstraction exists.
|
|
219
|
-
if (conditions.IF_NEXTJS)
|
|
220
|
-
copyStatic('.claude/rules/nextjs.md', '.claude/rules/nextjs.md');
|
|
221
|
-
if (config.framework === 'loopback')
|
|
222
|
-
copyStatic('.claude/rules/loopback.md', '.claude/rules/loopback.md');
|
|
223
|
-
if (config.framework === 'express')
|
|
224
|
-
copyStatic('.claude/rules/express.md', '.claude/rules/express.md');
|
|
225
|
-
logger.success('.claude/rules/');
|
|
226
|
-
// 5. Commands (static .md copied as-is, .md.template processed through engine)
|
|
227
|
-
const commandsDir = path.join(templatesDir, '.claude', 'commands');
|
|
228
|
-
if (fs.existsSync(commandsDir)) {
|
|
229
|
-
for (const file of fs.readdirSync(commandsDir)) {
|
|
230
|
-
if (file.endsWith('.md.template')) {
|
|
231
|
-
const outputName = file.replace('.template', '');
|
|
232
|
-
await writeTemplate(`.claude/commands/${file}`, `.claude/commands/${outputName}`);
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
copyStatic(`.claude/commands/${file}`, `.claude/commands/${file}`);
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
logger.success('.claude/commands/');
|
|
240
|
-
// Ensure .ai/sessions/ exists for session commands (works in dx-only mode)
|
|
241
|
-
fs.mkdirSync(path.join(targetDir, '.ai', 'sessions'), { recursive: true });
|
|
242
|
-
// 6. Agents-available (dormant) and agents (active by default)
|
|
243
|
-
const agentsAvailDir = path.join(templatesDir, '.claude', 'agents-available');
|
|
244
|
-
if (fs.existsSync(agentsAvailDir)) {
|
|
245
|
-
fs.mkdirSync(path.join(targetDir, '.claude', 'agents'), { recursive: true });
|
|
246
|
-
for (const file of fs.readdirSync(agentsAvailDir)) {
|
|
247
|
-
copyStatic(`.claude/agents-available/${file}`, `.claude/agents-available/${file}`);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
const activeAgentsDir = path.join(templatesDir, '.claude', 'agents');
|
|
251
|
-
if (fs.existsSync(activeAgentsDir)) {
|
|
252
|
-
fs.mkdirSync(path.join(targetDir, '.claude', 'agents'), { recursive: true });
|
|
253
|
-
for (const file of fs.readdirSync(activeAgentsDir)) {
|
|
254
|
-
copyStatic(`.claude/agents/${file}`, `.claude/agents/${file}`);
|
|
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`);
|
|
255
177
|
}
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
if (fs.existsSync(prReviewSrc)) {
|
|
261
|
-
copyStatic('.github/workflows/pr-review.yml', '.github/workflows/pr-review.yml');
|
|
262
|
-
logger.success('.github/workflows/pr-review.yml');
|
|
263
|
-
}
|
|
264
|
-
// 7. Codebase scan
|
|
265
|
-
if (!noScan) {
|
|
266
|
-
logger.info('Scanning codebase...');
|
|
267
|
-
const analysis = (0, codebase_scanner_1.scanCodebase)(targetDir);
|
|
268
|
-
const skillContent = (0, codebase_scanner_1.renderCodebaseSkill)(analysis);
|
|
269
|
-
const skillPath = path.join(targetDir, '.claude', 'skills', 'codebase', 'SKILL.md');
|
|
270
|
-
const skillRes = await (0, files_1.writeFile)(skillPath, skillContent, opts(true));
|
|
271
|
-
track(skillPath, null, skillRes, true);
|
|
272
|
-
const refContent = (0, codebase_scanner_1.renderArchitectureRef)(analysis);
|
|
273
|
-
const refPath = path.join(targetDir, '.claude', 'skills', 'codebase', 'references', 'architecture.md');
|
|
274
|
-
const refRes = await (0, files_1.writeFile)(refPath, refContent, opts(true));
|
|
275
|
-
track(refPath, null, refRes, true);
|
|
276
|
-
logger.success(`.claude/skills/codebase/ (${analysis.fileCount} files, ${analysis.entryPoints.length} entry points, ${analysis.apiEndpoints.length} API routes)`);
|
|
277
|
-
if (analysis.testFileCount < 5 && analysis.sourceFileCount > 20) {
|
|
278
|
-
logger.warn(`Minimal tests: ${analysis.testFileCount} test files for ${analysis.sourceFileCount} source files`);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
// === FULL TIER ===
|
|
282
|
-
if (mode === 'full') {
|
|
283
|
-
logger.header('Generating Quality & Infrastructure');
|
|
284
|
-
// .project/ scripts
|
|
285
|
-
const projectSrcDir = path.join(templatesDir, '.project');
|
|
286
|
-
if (fs.existsSync(projectSrcDir)) {
|
|
287
|
-
const count = (0, files_1.copyDirectory)(projectSrcDir, path.join(targetDir, '.project'), { force });
|
|
288
|
-
// Make scripts executable
|
|
289
|
-
const scriptsDir = path.join(targetDir, '.project', 'scripts');
|
|
290
|
-
if (fs.existsSync(scriptsDir)) {
|
|
291
|
-
for (const file of findFiles(scriptsDir, '.sh')) {
|
|
292
|
-
(0, files_1.makeExecutable)(file);
|
|
293
|
-
}
|
|
294
|
-
for (const file of findFiles(scriptsDir, '.py')) {
|
|
295
|
-
(0, files_1.makeExecutable)(file);
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
logger.success(`.project/ (${count} files)`);
|
|
299
|
-
}
|
|
300
|
-
// Makefile
|
|
301
|
-
copyStatic('Makefile', 'Makefile');
|
|
302
|
-
logger.success('Makefile');
|
|
303
|
-
// .ai/ directory
|
|
304
|
-
const aiSrcDir = path.join(templatesDir, '.ai');
|
|
305
|
-
if (fs.existsSync(aiSrcDir)) {
|
|
306
|
-
(0, files_1.copyDirectory)(aiSrcDir, path.join(targetDir, '.ai'), { force });
|
|
307
|
-
fs.mkdirSync(path.join(targetDir, '.ai', 'sessions'), { recursive: true });
|
|
308
|
-
logger.success('.ai/');
|
|
309
|
-
}
|
|
310
|
-
// Language configs (only if not already present) — declared on
|
|
311
|
-
// each pack via `LanguageSupport.templateFiles`.
|
|
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.).
|
|
312
182
|
for (const lang of (0, languages_1.activeLanguagesFromStack)(config)) {
|
|
313
|
-
|
|
314
|
-
|
|
183
|
+
if (lang.ruleFile) {
|
|
184
|
+
copyStatic(`.claude/rules/${lang.ruleFile}`, `.claude/rules/${lang.ruleFile}`);
|
|
315
185
|
}
|
|
316
186
|
}
|
|
317
|
-
|
|
318
|
-
//
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
copyStatic('configs/shared/.editorconfig', '.editorconfig');
|
|
333
|
-
logger.success('.editorconfig');
|
|
334
|
-
// .project.yaml
|
|
335
|
-
const projectYaml = generateProjectYaml(config);
|
|
336
|
-
const yamlPath = path.join(targetDir, '.project.yaml');
|
|
337
|
-
const yamlRes = await (0, files_1.writeFile)(yamlPath, projectYaml, opts(false));
|
|
338
|
-
track(yamlPath, projectYaml, yamlRes, false);
|
|
339
|
-
logger.success('.project.yaml');
|
|
340
|
-
}
|
|
341
|
-
// 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.
|
|
342
202
|
const manifestContent = JSON.stringify(result.manifest, null, 2) + '\n';
|
|
343
203
|
fs.mkdirSync(targetDir, { recursive: true });
|
|
344
204
|
fs.writeFileSync(path.join(targetDir, '.vyuh-dxkit.json'), manifestContent, 'utf-8');
|
|
345
205
|
return result;
|
|
346
|
-
// --- helper for full mode: only write config if file doesn't exist ---
|
|
347
|
-
async function writeTemplateIfMissing(templatePath, outputRel) {
|
|
348
|
-
const outputPath = path.join(targetDir, outputRel);
|
|
349
|
-
if (fs.existsSync(outputPath)) {
|
|
350
|
-
result.skipped.push(outputRel);
|
|
351
|
-
return;
|
|
352
|
-
}
|
|
353
|
-
try {
|
|
354
|
-
await writeTemplate(templatePath, outputRel);
|
|
355
|
-
}
|
|
356
|
-
catch {
|
|
357
|
-
// Template may not exist — skip silently
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
function generateProjectYaml(config) {
|
|
362
|
-
const lines = [
|
|
363
|
-
`project:`,
|
|
364
|
-
` name: "${config.projectName}"`,
|
|
365
|
-
` description: "${config.projectDescription}"`,
|
|
366
|
-
``,
|
|
367
|
-
`languages:`,
|
|
368
|
-
];
|
|
369
|
-
// Each pack renders its own `languages:` section via
|
|
370
|
-
// `projectYamlBlock`. Iterates over ALL packs (not just active) so
|
|
371
|
-
// the YAML emits `enabled: false` for inactive packs — matches the
|
|
372
|
-
// pre-pack hardcoded shape so no .project.yaml diffs land just from
|
|
373
|
-
// this refactor.
|
|
374
|
-
const active = (0, languages_1.activeLanguagesFromStack)(config);
|
|
375
|
-
for (const lang of languages_1.LANGUAGES) {
|
|
376
|
-
if (!lang.projectYamlBlock)
|
|
377
|
-
continue;
|
|
378
|
-
lines.push(lang.projectYamlBlock({ config, enabled: active.includes(lang) }));
|
|
379
|
-
}
|
|
380
|
-
// nextjs is a framework signal (10f.4: moved out of `languages` to
|
|
381
|
-
// the top-level `framework` field). The YAML block is preserved for
|
|
382
|
-
// backwards compat — readers still see `nextjs.enabled`.
|
|
383
|
-
lines.push(` nextjs:`);
|
|
384
|
-
lines.push(` enabled: ${config.framework === 'nextjs'}`);
|
|
385
|
-
lines.push(``);
|
|
386
|
-
lines.push(`infrastructure:`, ` postgres:`, ` enabled: ${config.infrastructure.postgres}`, ` redis:`, ` enabled: ${config.infrastructure.redis}`, ``, `precommit: ${config.precommit}`, ``, `tools:`, ` claude_code: true`, ` github_cli: ${config.tools.ghCli}`, ` docker: ${config.infrastructure.docker}`, ` gcloud: ${config.tools.gcloud}`, ` pulumi: ${config.tools.pulumi}`, ` infisical: ${config.tools.infisical}`);
|
|
387
|
-
return lines.join('\n') + '\n';
|
|
388
|
-
}
|
|
389
|
-
function findFiles(dir, ext) {
|
|
390
|
-
const results = [];
|
|
391
|
-
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
392
|
-
const full = path.join(dir, entry.name);
|
|
393
|
-
if (entry.isDirectory())
|
|
394
|
-
results.push(...findFiles(full, ext));
|
|
395
|
-
else if (entry.name.endsWith(ext))
|
|
396
|
-
results.push(full);
|
|
397
|
-
}
|
|
398
|
-
return results;
|
|
399
206
|
}
|
|
400
207
|
//# sourceMappingURL=generator.js.map
|
package/dist/generator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuFA,4BA0HC;AAjND,uCAAyB;AACzB,2CAA6B;AAE7B,2CAAuE;AACvE,uDAAoD;AACpD,mCAAsD;AACtD,2CAAuD;AACvD,iDAAmC;AAEnC,SAAS,eAAe;IACtB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,YAAY,CAAC,YAAoB;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,YAAY,CAAC,CAAC;IAC5D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,uBAAuB,YAAY,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,iBAAiB,CAAC,MAAsB;IAC/C,MAAM,KAAK,GAAa;QACtB,oBAAoB;QACpB,kBAAkB;QAClB,iBAAiB;QACjB,oBAAoB;QACpB,wBAAwB;QACxB,wCAAwC;QACxC,oBAAoB;KACrB,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,IAAA,oCAAwB,EAAC,MAAM,CAAC,EAAE,CAAC;QACpD,IAAI,IAAI,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,CACL,IAAI,CAAC,SAAS,CACZ;QACE,OAAO,EAAE,wDAAwD;QACjE,WAAW,EAAE;YACX,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,EAAE;SACT;KACF,EACD,IAAI,EACJ,CAAC,CACF,GAAG,IAAI,CACT,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,YAAY,GAAG;IACnB,aAAa;IACb,YAAY;IACZ,cAAc;IACd,aAAa;IACb,eAAe;IACf,cAAc;CACN,CAAC;AASJ,KAAK,UAAU,QAAQ,CAC5B,SAAiB,EACjB,MAAsB,EACtB,IAAoB,EACpB,KAAc,EACd,OAAO,GAAG,KAAK,EACf,eAAe,GAAG,KAAK;IAEvB,MAAM,SAAS,GAAG,IAAA,0BAAc,EAAC,MAAM,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,IAAA,2BAAe,EAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IAEvC,MAAM,MAAM,GAAmB;QAC7B,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE;YACR,OAAO,EAAE,mBAAO;YAChB,IAAI;YACJ,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,MAAM;YACN,KAAK,EAAE,EAAE;SACV;KACF,CAAC;IAEF,MAAM,IAAI,GAAG,CAAC,QAAiB,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IAEhF,SAAS,KAAK,CACZ,UAAkB,EAClB,OAAsB,EACtB,WAAmB,EACnB,QAAiB;QAEjB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACjD,IAAI,WAAW,KAAK,SAAS;YAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACnD,IAAI,WAAW,KAAK,SAAS;YAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACxD,IAAI,WAAW,KAAK,aAAa;YAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAErE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;YAC3B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,cAAM,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;YACxD,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,aAAa,CAAC,YAAoB,EAAE,SAAiB,EAAE,QAAQ,GAAG,KAAK;QACpF,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,IAAA,iCAAe,EAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,MAAM,IAAA,iBAAS,EAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnE,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,SAAS,UAAU,CAAC,YAAoB,EAAE,SAAiB,EAAE,QAAQ,GAAG,KAAK;QAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,IAAA,gBAAQ,EAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpE,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC;QAEhD,2DAA2D;QAC3D,kEAAkE;QAClE,6DAA6D;QAC7D,MAAM,aAAa,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;QACvD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAE5B,kEAAkE;QAClE,6DAA6D;QAC7D,gEAAgE;QAChE,wBAAwB;QACxB,MAAM,aAAa,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;QACvD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAE5B,mEAAmE;QACnE,mEAAmE;QACnE,kBAAkB;QAClB,MAAM,eAAe,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,MAAM,IAAA,iBAAS,EAAC,YAAY,EAAE,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAChF,KAAK,CAAC,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QACzD,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAExC,iEAAiE;QACjE,kEAAkE;QAClE,uDAAuD;QACvD,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,UAAU,CAAC,kBAAkB,KAAK,WAAW,EAAE,kBAAkB,KAAK,WAAW,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAEzC,6DAA6D;QAC7D,+DAA+D;QAC/D,qBAAqB;QACrB,KAAK,MAAM,IAAI,IAAI,IAAA,oCAAwB,EAAC,MAAM,CAAC,EAAE,CAAC;YACpD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,UAAU,CAAC,iBAAiB,IAAI,CAAC,QAAQ,EAAE,EAAE,iBAAiB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QACD,wDAAwD;QACxD,iEAAiE;QACjE,0DAA0D;QAC1D,qCAAqC;QACrC,IAAI,UAAU,CAAC,SAAS;YAAE,UAAU,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CAAC;QAC3F,IAAI,MAAM,CAAC,SAAS,KAAK,UAAU;YACjC,UAAU,CAAC,2BAA2B,EAAE,2BAA2B,CAAC,CAAC;QACvE,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;YAChC,UAAU,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,CAAC;QACrE,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACnC,CAAC;IAED,oEAAoE;IACpE,kEAAkE;IAClE,cAAc;IACd,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACxE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;IAErF,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -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"}
|