@vyuhlabs/dxkit 1.3.0 → 1.5.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/CHANGELOG.md CHANGED
@@ -7,6 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.5.0] - 2026-04-10
11
+
12
+ ### Fixed
13
+ - **Node version detection** no longer returns the minimum from
14
+ `engines.node` ranges. `">=10"` previously returned `10`; now
15
+ prefers the installed Node version. Exact pins (`"^20"`, `"20"`)
16
+ still work directly. Priority: `.nvmrc` > `volta.node` >
17
+ `engines.node` (exact pin) > installed version > range minimum >
18
+ default.
19
+
20
+ ## [1.4.0] - 2026-04-09
21
+
22
+ ### Added
23
+ - **`.project.yaml` config source.** When `.project.yaml` exists in the
24
+ target directory (typically written by `@vyuhlabs/create-devstack`),
25
+ `dxkit init` reads it and uses it as the config source — skipping
26
+ both `detect()` and interactive prompts. This enables greenfield
27
+ projects where no language files exist yet. If the file is malformed
28
+ or missing `project.name`, dxkit falls back to detection + prompts.
29
+ - **Library exports**: `hasProjectYaml()` and `readProjectYaml()` from
30
+ the `@vyuhlabs/dxkit` package entry point.
31
+ - **README**: `.project.yaml` documentation, library API section, and
32
+ config source priority.
33
+
10
34
  ## [1.3.0] - 2026-04-09
11
35
 
12
36
  ### Added
package/README.md CHANGED
@@ -269,6 +269,70 @@ Reports include a **Findings by CWE Category** table for direct comparison with
269
269
  - **Multi-language** — Detects all languages including Python from `.py` files (no config file required)
270
270
  - **Language breakdown** — Shows file count per language in codebase skill for accurate analysis
271
271
 
272
+ ## Using with create-devstack
273
+
274
+ [`@vyuhlabs/create-devstack`](https://github.com/vyuh-labs/create-devstack) scaffolds dev environments (devcontainers, `.project.yaml`) and delegates to dxkit for everything else.
275
+
276
+ When `create-devstack` writes a `.project.yaml` before calling `dxkit init`, dxkit reads it as the config source — skipping detection and prompts. This enables greenfield projects where no language files exist yet:
277
+
278
+ ```bash
279
+ # create-devstack writes .project.yaml + .devcontainer/, then calls dxkit
280
+ npm create @vyuhlabs/devstack my-project
281
+
282
+ # Or manually: write .project.yaml first, then run dxkit
283
+ npx @vyuhlabs/dxkit init --full
284
+ # → dxkit reads .project.yaml, generates Makefile, configs, CI, .claude/
285
+ ```
286
+
287
+ ### .project.yaml schema
288
+
289
+ ```yaml
290
+ project:
291
+ name: my-project
292
+ description: A web API
293
+ languages:
294
+ python:
295
+ enabled: true
296
+ version: '3.12'
297
+ quality:
298
+ coverage: 80
299
+ lint: true
300
+ go:
301
+ enabled: true
302
+ version: '1.24.0'
303
+ infrastructure:
304
+ postgres:
305
+ enabled: true
306
+ version: '16'
307
+ tools:
308
+ claude_code: true
309
+ precommit: true
310
+ docker: true
311
+ gcloud: false
312
+ ```
313
+
314
+ When `.project.yaml` is present, dxkit uses it to determine which languages, tools, and quality settings to generate. When absent, dxkit falls back to filesystem detection + interactive prompts as before.
315
+
316
+ ## Library API
317
+
318
+ dxkit exports functions for programmatic use by other packages:
319
+
320
+ ```typescript
321
+ import { detect, processTemplate, TemplateEngine } from '@vyuhlabs/dxkit';
322
+ import { hasProjectYaml, readProjectYaml } from '@vyuhlabs/dxkit';
323
+
324
+ // Detect stack from filesystem
325
+ const stack = detect('/path/to/project');
326
+
327
+ // Read .project.yaml as ResolvedConfig
328
+ if (hasProjectYaml('/path/to/project')) {
329
+ const config = readProjectYaml('/path/to/project');
330
+ }
331
+
332
+ // Process templates
333
+ const output = processTemplate('Hello {{PROJECT_NAME}}', vars, conditions);
334
+ ```
335
+
272
336
  ## CLI Reference
273
337
 
274
338
  ```bash
@@ -292,6 +356,12 @@ npx @vyuhlabs/dxkit doctor # Verify setup
292
356
  | `--name <n>` | Override project name |
293
357
  | `--no-scan` | Skip codebase analysis |
294
358
 
359
+ ### Config Source Priority
360
+
361
+ 1. `.project.yaml` (if present) — used as-is, no prompts
362
+ 2. `--detect` — auto-detect from filesystem, minimal prompts
363
+ 3. Interactive — prompt for all settings
364
+
295
365
  ## Example: Node.js/TypeScript Project
296
366
 
297
367
  ```bash
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAwCA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiHvD"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAyCA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsIvD"}
package/dist/cli.js CHANGED
@@ -38,6 +38,7 @@ const node_util_1 = require("node:util");
38
38
  const detect_1 = require("./detect");
39
39
  const generator_1 = require("./generator");
40
40
  const prompts_1 = require("./prompts");
41
+ const project_yaml_1 = require("./project-yaml");
41
42
  const update_1 = require("./update");
42
43
  const doctor_1 = require("./doctor");
43
44
  const constants_1 = require("./constants");
@@ -102,49 +103,65 @@ async function run(argv) {
102
103
  switch (command) {
103
104
  case 'init': {
104
105
  logger.header('vyuh-dxkit init');
105
- // Detect stack
106
- logger.info('Detecting stack...');
107
- const detected = (0, detect_1.detect)(cwd);
108
- const langs = Object.entries(detected.languages)
109
- .filter(([, v]) => v)
110
- .map(([k]) => k);
111
- const tools = Object.entries(detected.tools)
112
- .filter(([, v]) => v)
113
- .map(([k]) => k);
114
- if (langs.length === 0) {
115
- logger.warn('No languages detected. Generating with minimal config.');
116
- }
117
- else {
118
- logger.success(`Languages: ${langs.join(', ')}`);
119
- }
120
- if (tools.length)
121
- logger.success(`Tools: ${tools.join(', ')}`);
122
- if (detected.framework)
123
- logger.success(`Framework: ${detected.framework}`);
124
- if (detected.testRunner)
125
- logger.success(`Tests: ${detected.testRunner.framework} (${detected.testRunner.command})`);
126
- console.log('');
127
- // Resolve config
128
- const mode = values.full ? 'full' : 'dx-only';
129
106
  let config;
130
- if (values.yes || values.detect) {
131
- const result = await (0, prompts_1.promptForConfig)(detected, {
132
- yes: true,
133
- detect: !!values.detect,
134
- name: values.name,
135
- });
136
- config = result.config;
107
+ let finalMode = values.full ? 'full' : 'dx-only';
108
+ // If .project.yaml exists (written by create-devstack), try using it as config source
109
+ if ((0, project_yaml_1.hasProjectYaml)(cwd)) {
110
+ const yamlConfig = (0, project_yaml_1.readProjectYaml)(cwd);
111
+ if (yamlConfig) {
112
+ logger.info('Found .project.yaml — using as config source.');
113
+ config = yamlConfig;
114
+ const langs = Object.entries(config.languages)
115
+ .filter(([, v]) => v)
116
+ .map(([k]) => k);
117
+ const tools = Object.entries(config.tools)
118
+ .filter(([, v]) => v)
119
+ .map(([k]) => k);
120
+ if (langs.length)
121
+ logger.success(`Languages: ${langs.join(', ')}`);
122
+ if (tools.length)
123
+ logger.success(`Tools: ${tools.join(', ')}`);
124
+ console.log('');
125
+ // .project.yaml implies full mode (create-devstack handles the wizard)
126
+ finalMode = values['dx-only'] ? 'dx-only' : 'full';
127
+ }
128
+ else {
129
+ logger.warn('Found .project.yaml but it is malformed — falling back to detection.');
130
+ }
137
131
  }
138
- else {
139
- const result = await (0, prompts_1.promptForConfig)(detected, {
140
- yes: false,
141
- detect: false,
132
+ if (!config) {
133
+ // No .project.yaml detect stack and prompt as before
134
+ logger.info('Detecting stack...');
135
+ const detected = (0, detect_1.detect)(cwd);
136
+ const langs = Object.entries(detected.languages)
137
+ .filter(([, v]) => v)
138
+ .map(([k]) => k);
139
+ const tools = Object.entries(detected.tools)
140
+ .filter(([, v]) => v)
141
+ .map(([k]) => k);
142
+ if (langs.length === 0) {
143
+ logger.warn('No languages detected. Generating with minimal config.');
144
+ }
145
+ else {
146
+ logger.success(`Languages: ${langs.join(', ')}`);
147
+ }
148
+ if (tools.length)
149
+ logger.success(`Tools: ${tools.join(', ')}`);
150
+ if (detected.framework)
151
+ logger.success(`Framework: ${detected.framework}`);
152
+ if (detected.testRunner)
153
+ logger.success(`Tests: ${detected.testRunner.framework} (${detected.testRunner.command})`);
154
+ console.log('');
155
+ // Resolve config via prompts
156
+ const promptOpts = {
157
+ yes: !!(values.yes || values.detect),
158
+ detect: !!values.detect,
142
159
  name: values.name,
143
- });
160
+ };
161
+ const result = await (0, prompts_1.promptForConfig)(detected, promptOpts);
144
162
  config = result.config;
163
+ finalMode = values.full ? 'full' : values['dx-only'] ? 'dx-only' : result.mode;
145
164
  }
146
- // Generate
147
- const finalMode = values.full ? 'full' : values['dx-only'] ? 'dx-only' : mode;
148
165
  const result = await (0, generator_1.generate)(cwd, config, finalMode, !!values.force, !!values['no-scan']);
149
166
  // Summary
150
167
  console.log('');
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,kBAiHC;AAzJD,yCAAsC;AACtC,qCAAkC;AAClC,2CAAuC;AACvC,uCAA4C;AAC5C,qCAAqC;AACrC,qCAAqC;AACrC,2CAAsC;AACtC,iDAAmC;AAGnC,SAAS,UAAU;IACjB,OAAO,CAAC,GAAG,CAAC;IACV,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,mBAAO;;IAErC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;;;;;IAKrB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;;;;;;;;;IAS5B,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;;;;IAI9B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;;;;;CAK3B,CAAC,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,GAAG,CAAC,IAAc;IACtC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,qBAAS,EAAC;QACxC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACnB,OAAO,EAAE;YACP,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;YACrD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;YACxD,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YAC9C,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YACzC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YAC3C,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;YACpD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;YACtD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YAC9C,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;SAC5C;QACD,gBAAgB,EAAE,IAAI;QACtB,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,UAAU,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,mBAAO,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;IACzC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAEjC,eAAe;YACf,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;iBAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;iBACpB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;iBACzC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;iBACpB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAEnB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,OAAO,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,KAAK,CAAC,MAAM;gBAAE,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/D,IAAI,QAAQ,CAAC,SAAS;gBAAE,MAAM,CAAC,OAAO,CAAC,cAAc,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;YAC3E,IAAI,QAAQ,CAAC,UAAU;gBACrB,MAAM,CAAC,OAAO,CAAC,UAAU,QAAQ,CAAC,UAAU,CAAC,SAAS,KAAK,QAAQ,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC;YAC7F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,iBAAiB;YACjB,MAAM,IAAI,GAAmB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,IAAI,MAAM,CAAC;YAEX,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChC,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAe,EAAC,QAAQ,EAAE;oBAC7C,GAAG,EAAE,IAAI;oBACT,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;oBACvB,IAAI,EAAE,MAAM,CAAC,IAA0B;iBACxC,CAAC,CAAC;gBACH,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAe,EAAC,QAAQ,EAAE;oBAC7C,GAAG,EAAE,KAAK;oBACV,MAAM,EAAE,KAAK;oBACb,IAAI,EAAE,MAAM,CAAC,IAA0B;iBACxC,CAAC,CAAC;gBACH,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACzB,CAAC;YAED,WAAW;YACX,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9E,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAQ,EAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YAE3F,UAAU;YACV,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACzB,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM;gBAAE,MAAM,CAAC,OAAO,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,CAAC,CAAC;YACrF,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM;gBACvB,MAAM,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,MAAM,wBAAwB,CAAC,CAAC;YACzE,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,WAAW,CAAC,MAAM,QAAQ,CAAC,CAAC;YAC9F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;YACxD,MAAM,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;YACrE,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,IAAA,kBAAS,EAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM;QACR,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC;YACrB,MAAM;QACR,CAAC;QAED;YACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC7C,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAuUxC,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CA6CjD"}
1
+ {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA2WxC,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CA6CjD"}
package/dist/detect.js CHANGED
@@ -38,6 +38,18 @@ const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
39
  const child_process_1 = require("child_process");
40
40
  const constants_1 = require("./constants");
41
+ function getInstalledNodeVersion() {
42
+ try {
43
+ const output = (0, child_process_1.execSync)('node --version', { stdio: 'pipe' }).toString().trim();
44
+ const match = output.replace(/^v/, '').match(/^(\d+)/);
45
+ if (match)
46
+ return match[1];
47
+ }
48
+ catch {
49
+ /* node not installed */
50
+ }
51
+ return undefined;
52
+ }
41
53
  function fileExists(cwd, ...segments) {
42
54
  return fs.existsSync(path.join(cwd, ...segments));
43
55
  }
@@ -87,18 +99,38 @@ function extractGoVersion(cwd) {
87
99
  return match ? match[1] : undefined;
88
100
  }
89
101
  function extractNodeVersion(cwd) {
90
- // Try .nvmrc
102
+ // 1. Try .nvmrc (explicit pin — most authoritative)
91
103
  if (fileExists(cwd, '.nvmrc')) {
92
104
  const ver = readFileOr(cwd, '.nvmrc', '').trim().replace(/^v/, '');
93
105
  if (ver.match(/^\d+/))
94
106
  return ver.split('.')[0];
95
107
  }
96
- // Try package.json engines.node
108
+ // 2. Try package.json volta.node (pinned version manager)
97
109
  const pkg = readFileOr(cwd, 'package.json', '{}');
98
110
  try {
99
111
  const parsed = JSON.parse(pkg);
112
+ const voltaNode = parsed?.volta?.node;
113
+ if (voltaNode) {
114
+ const match = voltaNode.match(/^(\d+)/);
115
+ if (match)
116
+ return match[1];
117
+ }
118
+ // 3. Try engines.node
100
119
  const nodeEngine = parsed?.engines?.node;
101
120
  if (nodeEngine) {
121
+ // Exact pins: "20", "20.x", "^20", "~20" → use directly
122
+ const isRange = /[>|]/.test(nodeEngine);
123
+ if (!isRange) {
124
+ const match = nodeEngine.match(/(\d+)/);
125
+ if (match)
126
+ return match[1];
127
+ }
128
+ // For ranges like ">=10", ">=18", prefer installed version
129
+ // but fall back to the range minimum if node isn't installed
130
+ const installedVersion = getInstalledNodeVersion();
131
+ if (installedVersion)
132
+ return installedVersion;
133
+ // Last resort: extract from range
102
134
  const match = nodeEngine.match(/(\d+)/);
103
135
  if (match)
104
136
  return match[1];
@@ -107,6 +139,10 @@ function extractNodeVersion(cwd) {
107
139
  catch {
108
140
  /* ignore parse errors */
109
141
  }
142
+ // 4. Try installed Node version (no package.json or no engines field)
143
+ const installed = getInstalledNodeVersion();
144
+ if (installed)
145
+ return installed;
110
146
  return undefined;
111
147
  }
112
148
  function extractRustVersion(cwd) {
@@ -1 +1 @@
1
- {"version":3,"file":"detect.js","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detect.js","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8WA,wBA6CC;AA3ZD,uCAAyB;AACzB,2CAA6B;AAC7B,iDAAyC;AAEzC,2CAA+C;AAE/C,SAAS,uBAAuB;IAC9B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,GAAG,QAAkB;IACpD,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,QAAgB,EAAE,QAAgB;IACjE,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,OAAe;IAC9C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,SAAS,GAAG,cAAc,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACvC,qCAAqC;IACrC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC3E,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3B,sBAAsB;IACtB,IAAI,UAAU,CAAC,GAAG,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1D,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;YAAE,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,oDAAoD;IACpD,IAAI,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnE,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,0DAA0D;IAC1D,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/B,MAAM,SAAS,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC;QACtC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QAED,sBAAsB;QACtB,MAAM,UAAU,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;QACzC,IAAI,UAAU,EAAE,CAAC;YACf,wDAAwD;YACxD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACxC,IAAI,KAAK;oBAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC;YAED,2DAA2D;YAC3D,6DAA6D;YAC7D,MAAM,gBAAgB,GAAG,uBAAuB,EAAE,CAAC;YACnD,IAAI,gBAAgB;gBAAE,OAAO,gBAAgB,CAAC;YAE9C,kCAAkC;YAClC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,yBAAyB;IAC3B,CAAC;IAED,sEAAsE;IACtE,MAAM,SAAS,GAAG,uBAAuB,EAAE,CAAC;IAC5C,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAEhC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,0BAA0B;IAC1B,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACzD,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3B,8BAA8B;IAC9B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC5D,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IAE/B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW,EAAE,OAAe,EAAE,QAAQ,GAAG,CAAC;IACnE,SAAS,MAAM,CAAC,GAAW,EAAE,KAAa;QACxC,IAAI,KAAK,GAAG,QAAQ;YAAE,OAAO,IAAI,CAAC;QAClC,IAAI,CAAC;YACH,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;gBACjE,IACE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBAC1B,CAAC,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;oBAEvE,SAAS;gBACX,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAC5D,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;oBACtC,IAAI,KAAK;wBAAE,OAAO,KAAK,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACvC,8BAA8B;IAC9B,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACnD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACjF,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,8BAA8B;IAC9B,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;IACtD,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM,GAAG,GAAG,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC;YACjC,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,UAAU,CAAC,GAAG,EAAE,mBAAmB,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,IACE,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,gBAAgB,CAAC;QAC7C,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,iBAAiB,CAAC;QAC9C,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,gBAAgB,CAAC;QAE7C,OAAO,IAAI,CAAC;IAEd,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QACnE,OAAO,MAAM,IAAI,IAAI,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,GAAW;IAC7C,KAAK,MAAM,IAAI,IAAI,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE,CAAC;QAChG,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW;IACpC,wBAAwB;IACxB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC;QACpE,IAAI,MAAM,CAAC,IAAI;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IAED,yBAAyB;IACzB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACrD,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IAE/B,0BAA0B;IAC1B,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACxD,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IAE/B,6BAA6B;IAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAW;IAC3C,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,MAAM,CAAC,WAAW;YAAE,OAAO,MAAM,CAAC,WAAW,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC7D,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QACnE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QAEtC,yDAAyD;QACzD,IAAI,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,OAAO;gBACL,OAAO,EAAE,YAAY;gBACrB,SAAS,EAAE,QAAQ;gBACnB,eAAe,EAAE,uBAAuB;aACzC,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAChE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,qBAAqB,EAAE,CAAC;QAC5F,CAAC;QACD,IACE,IAAI,CAAC,KAAK;YACV,IAAI,CAAC,UAAU,CAAC;YAChB,IAAI,CAAC,mBAAmB,CAAC;YACzB,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC5B,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAC/B,CAAC;YACD,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5F,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;QACnF,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC;QACrF,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,OAAO;gBACL,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,KAAK;gBAChB,eAAe,EAAE,gCAAgC;aAClD,CAAC;QACJ,CAAC;QACD,mDAAmD;QACnD,IAAI,UAAU,IAAI,UAAU,KAAK,2CAA2C,EAAE,CAAC;YAC7E,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;QACnF,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IAED,SAAS;IACT,IAAI,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC,IAAI,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC;QACrE,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,OAAO;gBACL,OAAO,EAAE,QAAQ;gBACjB,SAAS,EAAE,QAAQ;gBACnB,eAAe,EAAE,wCAAwC;aAC1D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK;IACL,IAAI,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,OAAO,EAAE,eAAe;YACxB,SAAS,EAAE,SAAS;YACpB,eAAe,EAAE,0CAA0C;SAC5D,CAAC;IACJ,CAAC;IAED,OAAO;IACP,IAAI,UAAU,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;IACxF,CAAC;IAED,KAAK;IACL,IAAI,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC;QACxC,OAAO;YACL,OAAO,EAAE,aAAa;YACtB,SAAS,EAAE,aAAa;YACxB,eAAe,EAAE,6CAA6C;SAC/D,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QAEnE,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC;YAAE,OAAO,UAAU,CAAC;QACxE,IAAI,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,QAAQ,CAAC;QAClC,IAAI,IAAI,CAAC,cAAc,CAAC;YAAE,OAAO,QAAQ,CAAC;QAC1C,IAAI,IAAI,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QACtC,IAAI,IAAI,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QACtC,IAAI,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;YAAE,OAAO,MAAM,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IAED,SAAS;IACT,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;IACxC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC/C,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAE7C,KAAK;IACL,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,KAAK,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7D,IAAI,KAAK,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9D,IAAI,KAAK,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAAE,OAAO,OAAO,CAAC;IAE/D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,MAAM,CAAC,GAAW;IAChC,MAAM,cAAc,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAEnC,OAAO;QACL,SAAS,EAAE;YACT,MAAM,EACJ,UAAU,CAAC,GAAG,EAAE,gBAAgB,CAAC;gBACjC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC;gBAC3B,UAAU,CAAC,GAAG,EAAE,kBAAkB,CAAC;gBACnC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC;gBAC1B,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;YACtC,EAAE,EAAE,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC;YAC7B,IAAI,EAAE,UAAU,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ;YAClD,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,UAAU,CAAC,GAAG,EAAE,YAAY,CAAC;YACnC,MAAM,EACJ,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;gBACxB,UAAU,CAAC,GAAG,EAAE,YAAY,CAAC;gBAC7B,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC;gBAC1B,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC;SACxC;QACD,cAAc,EAAE;YACd,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;YAClE,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC7C,KAAK,EAAE,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;SACxC;QACD,KAAK,EAAE;YACL,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC;YAC7D,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,UAAU,CAAC,GAAG,EAAE,YAAY,CAAC;YACvE,SAAS,EAAE,UAAU,CAAC,GAAG,EAAE,iBAAiB,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC;YAC3E,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC;SAC3B;QACD,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC;QACnC,kBAAkB,EAAE,wBAAwB,CAAC,GAAG,CAAC;QACjD,QAAQ,EAAE;YACR,MAAM,EAAE,oBAAoB,CAAC,GAAG,CAAC,IAAI,4BAAgB,CAAC,MAAM;YAC5D,EAAE,EAAE,gBAAgB,CAAC,GAAG,CAAC,IAAI,4BAAgB,CAAC,EAAE;YAChD,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC,IAAI,4BAAgB,CAAC,IAAI;YACtD,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC,IAAI,4BAAgB,CAAC,IAAI;YACtD,MAAM,EAAE,oBAAoB,CAAC,GAAG,CAAC,IAAI,4BAAgB,CAAC,MAAM;SAC7D;QACD,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC;QACjC,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC;KAChC,CAAC;AACJ,CAAC"}
package/dist/lib.d.ts CHANGED
@@ -6,5 +6,6 @@
6
6
  */
7
7
  export { detect } from './detect';
8
8
  export { processTemplate, TemplateEngine } from './template-engine';
9
- export type { DetectedStack } from './types';
9
+ export { hasProjectYaml, readProjectYaml } from './project-yaml';
10
+ export type { DetectedStack, ResolvedConfig } from './types';
10
11
  //# sourceMappingURL=lib.d.ts.map
package/dist/lib.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACpE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
package/dist/lib.js CHANGED
@@ -6,10 +6,13 @@
6
6
  * (e.g. @vyuhlabs/create-devstack). The CLI entry point is src/index.ts.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.TemplateEngine = exports.processTemplate = exports.detect = void 0;
9
+ exports.readProjectYaml = exports.hasProjectYaml = exports.TemplateEngine = exports.processTemplate = exports.detect = void 0;
10
10
  var detect_1 = require("./detect");
11
11
  Object.defineProperty(exports, "detect", { enumerable: true, get: function () { return detect_1.detect; } });
12
12
  var template_engine_1 = require("./template-engine");
13
13
  Object.defineProperty(exports, "processTemplate", { enumerable: true, get: function () { return template_engine_1.processTemplate; } });
14
14
  Object.defineProperty(exports, "TemplateEngine", { enumerable: true, get: function () { return template_engine_1.TemplateEngine; } });
15
+ var project_yaml_1 = require("./project-yaml");
16
+ Object.defineProperty(exports, "hasProjectYaml", { enumerable: true, get: function () { return project_yaml_1.hasProjectYaml; } });
17
+ Object.defineProperty(exports, "readProjectYaml", { enumerable: true, get: function () { return project_yaml_1.readProjectYaml; } });
15
18
  //# sourceMappingURL=lib.js.map
package/dist/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,qDAAoE;AAA3D,kHAAA,eAAe,OAAA;AAAE,iHAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,qDAAoE;AAA3D,kHAAA,eAAe,OAAA;AAAE,iHAAA,cAAc,OAAA;AACxC,+CAAiE;AAAxD,8GAAA,cAAc,OAAA;AAAE,+GAAA,eAAe,OAAA"}
@@ -0,0 +1,13 @@
1
+ import { ResolvedConfig } from './types';
2
+ /** Check if .project.yaml exists in the given directory. */
3
+ export declare function hasProjectYaml(cwd: string): boolean;
4
+ /**
5
+ * Read .project.yaml and build a ResolvedConfig from it.
6
+ * This is the primary config source when create-devstack has already
7
+ * written the file — dxkit skips detect() and prompts in this case.
8
+ *
9
+ * Returns null if the file is malformed or missing required fields
10
+ * (project.name). The caller should fall back to detect() + prompts.
11
+ */
12
+ export declare function readProjectYaml(cwd: string): ResolvedConfig | null;
13
+ //# sourceMappingURL=project-yaml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-yaml.d.ts","sourceRoot":"","sources":["../src/project-yaml.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAiB,MAAM,SAAS,CAAC;AA2CxD,4DAA4D;AAC5D,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CA6ElE"}
@@ -0,0 +1,183 @@
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.hasProjectYaml = hasProjectYaml;
37
+ exports.readProjectYaml = readProjectYaml;
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ const constants_1 = require("./constants");
41
+ /** Check if .project.yaml exists in the given directory. */
42
+ function hasProjectYaml(cwd) {
43
+ return fs.existsSync(path.join(cwd, '.project.yaml'));
44
+ }
45
+ /**
46
+ * Read .project.yaml and build a ResolvedConfig from it.
47
+ * This is the primary config source when create-devstack has already
48
+ * written the file — dxkit skips detect() and prompts in this case.
49
+ *
50
+ * Returns null if the file is malformed or missing required fields
51
+ * (project.name). The caller should fall back to detect() + prompts.
52
+ */
53
+ function readProjectYaml(cwd) {
54
+ const filePath = path.join(cwd, '.project.yaml');
55
+ let raw;
56
+ try {
57
+ raw = fs.readFileSync(filePath, 'utf-8');
58
+ }
59
+ catch {
60
+ return null;
61
+ }
62
+ let yaml;
63
+ try {
64
+ yaml = parseSimpleYaml(raw);
65
+ }
66
+ catch {
67
+ return null;
68
+ }
69
+ // project.name is required
70
+ if (!yaml.project?.name) {
71
+ return null;
72
+ }
73
+ const langs = yaml.languages ?? {};
74
+ const infra = yaml.infrastructure ?? {};
75
+ const tools = yaml.tools ?? {};
76
+ const langEnabled = (name) => langs[name]?.enabled ?? false;
77
+ const infraEnabled = (name) => infra[name]?.enabled ?? false;
78
+ // Find coverage from first enabled language with quality settings
79
+ let coverage = constants_1.DEFAULT_COVERAGE;
80
+ for (const lang of Object.values(langs)) {
81
+ if (lang?.enabled && lang.quality?.coverage) {
82
+ coverage = String(lang.quality.coverage);
83
+ break;
84
+ }
85
+ }
86
+ const detected = {
87
+ languages: {
88
+ python: langEnabled('python'),
89
+ go: langEnabled('go'),
90
+ node: langEnabled('node'),
91
+ nextjs: langEnabled('nextjs'),
92
+ rust: langEnabled('rust'),
93
+ csharp: langEnabled('csharp'),
94
+ },
95
+ infrastructure: {
96
+ docker: tools.docker ?? true,
97
+ postgres: infraEnabled('postgres'),
98
+ redis: infraEnabled('redis'),
99
+ },
100
+ tools: {
101
+ gcloud: tools.gcloud ?? false,
102
+ pulumi: tools.pulumi ?? false,
103
+ infisical: tools.infisical ?? false,
104
+ ghCli: tools.github_cli ?? true,
105
+ },
106
+ projectName: yaml.project.name,
107
+ projectDescription: yaml.project.description ?? '',
108
+ versions: {
109
+ python: langs.python?.version ?? constants_1.DEFAULT_VERSIONS.python,
110
+ go: langs.go?.version ?? constants_1.DEFAULT_VERSIONS.go,
111
+ node: langs.node?.version ?? constants_1.DEFAULT_VERSIONS.node,
112
+ rust: langs.rust?.version ?? constants_1.DEFAULT_VERSIONS.rust,
113
+ csharp: langs.csharp?.version ?? constants_1.DEFAULT_VERSIONS.csharp,
114
+ },
115
+ };
116
+ return {
117
+ ...detected,
118
+ coverageThreshold: coverage,
119
+ precommit: tools.precommit ?? true,
120
+ qualityChecks: true,
121
+ aiSessions: true,
122
+ aiPrompts: true,
123
+ claudeCode: tools.claude_code ?? true,
124
+ };
125
+ }
126
+ /**
127
+ * Minimal YAML parser for .project.yaml.
128
+ * Handles the specific structure we expect — nested objects with scalar values.
129
+ * Avoids adding a `yaml` npm dependency to dxkit (which has zero runtime deps).
130
+ */
131
+ function parseSimpleYaml(raw) {
132
+ const lines = raw.split('\n');
133
+ const result = {};
134
+ const stack = [
135
+ { indent: -1, obj: result },
136
+ ];
137
+ for (const line of lines) {
138
+ // Skip empty lines and comments
139
+ if (!line.trim() || line.trim().startsWith('#'))
140
+ continue;
141
+ const indent = line.search(/\S/);
142
+ const trimmed = line.trim();
143
+ // Pop stack to find parent
144
+ while (stack.length > 1 && stack[stack.length - 1].indent >= indent) {
145
+ stack.pop();
146
+ }
147
+ const parent = stack[stack.length - 1].obj;
148
+ const colonIdx = trimmed.indexOf(':');
149
+ if (colonIdx === -1)
150
+ continue;
151
+ const key = trimmed.slice(0, colonIdx).trim();
152
+ const valueStr = trimmed.slice(colonIdx + 1).trim();
153
+ if (valueStr === '' || valueStr === '{}') {
154
+ // Nested object (or empty object)
155
+ const child = {};
156
+ parent[key] = child;
157
+ if (valueStr !== '{}') {
158
+ stack.push({ indent, obj: child });
159
+ }
160
+ }
161
+ else {
162
+ // Scalar value
163
+ parent[key] = parseScalar(valueStr);
164
+ }
165
+ }
166
+ return result;
167
+ }
168
+ function parseScalar(value) {
169
+ // Remove surrounding quotes
170
+ if ((value.startsWith("'") && value.endsWith("'")) ||
171
+ (value.startsWith('"') && value.endsWith('"'))) {
172
+ return value.slice(1, -1);
173
+ }
174
+ if (value === 'true')
175
+ return true;
176
+ if (value === 'false')
177
+ return false;
178
+ const num = Number(value);
179
+ if (!isNaN(num) && value !== '')
180
+ return num;
181
+ return value;
182
+ }
183
+ //# sourceMappingURL=project-yaml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-yaml.js","sourceRoot":"","sources":["../src/project-yaml.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vyuhlabs/dxkit",
3
- "version": "1.3.0",
3
+ "version": "1.5.0",
4
4
  "description": "AI-native developer experience toolkit for any repository",
5
5
  "license": "MIT",
6
6
  "author": "Vyuh Labs",