@nac3/forge-cli 0.2.0-alpha.11 → 0.2.0-alpha.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/yf.d.ts.map +1 -1
- package/dist/bin/yf.js +4 -0
- package/dist/bin/yf.js.map +1 -1
- package/dist/commands/clarify.d.ts +30 -0
- package/dist/commands/clarify.d.ts.map +1 -0
- package/dist/commands/clarify.js +671 -0
- package/dist/commands/clarify.js.map +1 -0
- package/dist/commands/legacy-audit.d.ts +34 -0
- package/dist/commands/legacy-audit.d.ts.map +1 -0
- package/dist/commands/legacy-audit.js +270 -0
- package/dist/commands/legacy-audit.js.map +1 -0
- package/dist/commands/vault-inventory.d.ts +30 -0
- package/dist/commands/vault-inventory.d.ts.map +1 -0
- package/dist/commands/vault-inventory.js +214 -0
- package/dist/commands/vault-inventory.js.map +1 -0
- package/dist/commands/vault.d.ts.map +1 -1
- package/dist/commands/vault.js +5 -0
- package/dist/commands/vault.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clarify.js","sourceRoot":"","sources":["../../src/commands/clarify.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `yf legacy audit` -- Phase I step 3.5 of PRODUCT_WORKFLOW.md.
|
|
3
|
+
*
|
|
4
|
+
* Pure inspection of an existing project. Detects framework +
|
|
5
|
+
* version + dependencies + tests + NAC-3 readiness, and writes
|
|
6
|
+
* a workflow.legacy_audit summary to yujin.forge.json so the
|
|
7
|
+
* subsequent clarification rounds + architecture doc have data
|
|
8
|
+
* to ground on.
|
|
9
|
+
*
|
|
10
|
+
* Never mutates. Safe to run on production projects. Output is
|
|
11
|
+
* a JSON report (write-only to yujin.forge.json) + a human
|
|
12
|
+
* summary in the terminal.
|
|
13
|
+
*
|
|
14
|
+
* Heuristics:
|
|
15
|
+
* - framework = React / Angular / Vue / Svelte / Vanilla
|
|
16
|
+
* based on dependencies in package.json
|
|
17
|
+
* - framework_version = the exact installed version (we read
|
|
18
|
+
* dependencies[<framework-pkg>], stripping caret/tilde)
|
|
19
|
+
* - nac3_readiness = % of "decoratable" elements that already
|
|
20
|
+
* have a data-nac-id (computed by greppng src/ for JSX
|
|
21
|
+
* interactive elements + counting matches)
|
|
22
|
+
* - tech_debt_signals = framework < N versions behind latest,
|
|
23
|
+
* known-deprecated deps, missing test directory, package-lock
|
|
24
|
+
* out of sync with package.json
|
|
25
|
+
*
|
|
26
|
+
* ASCII-only.
|
|
27
|
+
*/
|
|
28
|
+
import type { Command } from 'commander';
|
|
29
|
+
export interface LegacyAuditOptions {
|
|
30
|
+
cwd?: string;
|
|
31
|
+
}
|
|
32
|
+
export declare function runLegacyAudit(opts: LegacyAuditOptions): Promise<void>;
|
|
33
|
+
export declare function registerLegacyAuditCommand(program: Command): void;
|
|
34
|
+
//# sourceMappingURL=legacy-audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-audit.d.ts","sourceRoot":"","sources":["../../src/commands/legacy-audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AA+GD,wBAAsB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqH5E;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAcjE"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `yf legacy audit` -- Phase I step 3.5 of PRODUCT_WORKFLOW.md.
|
|
3
|
+
*
|
|
4
|
+
* Pure inspection of an existing project. Detects framework +
|
|
5
|
+
* version + dependencies + tests + NAC-3 readiness, and writes
|
|
6
|
+
* a workflow.legacy_audit summary to yujin.forge.json so the
|
|
7
|
+
* subsequent clarification rounds + architecture doc have data
|
|
8
|
+
* to ground on.
|
|
9
|
+
*
|
|
10
|
+
* Never mutates. Safe to run on production projects. Output is
|
|
11
|
+
* a JSON report (write-only to yujin.forge.json) + a human
|
|
12
|
+
* summary in the terminal.
|
|
13
|
+
*
|
|
14
|
+
* Heuristics:
|
|
15
|
+
* - framework = React / Angular / Vue / Svelte / Vanilla
|
|
16
|
+
* based on dependencies in package.json
|
|
17
|
+
* - framework_version = the exact installed version (we read
|
|
18
|
+
* dependencies[<framework-pkg>], stripping caret/tilde)
|
|
19
|
+
* - nac3_readiness = % of "decoratable" elements that already
|
|
20
|
+
* have a data-nac-id (computed by greppng src/ for JSX
|
|
21
|
+
* interactive elements + counting matches)
|
|
22
|
+
* - tech_debt_signals = framework < N versions behind latest,
|
|
23
|
+
* known-deprecated deps, missing test directory, package-lock
|
|
24
|
+
* out of sync with package.json
|
|
25
|
+
*
|
|
26
|
+
* ASCII-only.
|
|
27
|
+
*/
|
|
28
|
+
import path from 'node:path';
|
|
29
|
+
import { promises as fs } from 'node:fs';
|
|
30
|
+
import { c, header } from '../ui/colors.js';
|
|
31
|
+
import { readWorkflow, patchWorkflowGroup, } from '../workflow/state.js';
|
|
32
|
+
const FRAMEWORK_DETECTORS = [
|
|
33
|
+
{ pkg: 'react', name: 'React' },
|
|
34
|
+
{ pkg: '@angular/core', name: 'Angular' },
|
|
35
|
+
{ pkg: 'vue', name: 'Vue' },
|
|
36
|
+
{ pkg: 'svelte', name: 'Svelte' },
|
|
37
|
+
{ pkg: 'solid-js', name: 'SolidJS' },
|
|
38
|
+
{ pkg: 'preact', name: 'Preact' },
|
|
39
|
+
];
|
|
40
|
+
const DEPRECATED_PACKAGES = [
|
|
41
|
+
'request',
|
|
42
|
+
'gulp',
|
|
43
|
+
'bower',
|
|
44
|
+
'phantomjs',
|
|
45
|
+
'node-sass',
|
|
46
|
+
'tslint',
|
|
47
|
+
'create-react-app',
|
|
48
|
+
'jquery',
|
|
49
|
+
'underscore',
|
|
50
|
+
];
|
|
51
|
+
function stripVersionRange(v) {
|
|
52
|
+
return v.replace(/^[\^~>=<]+/, '').trim();
|
|
53
|
+
}
|
|
54
|
+
async function readPackageJson(projectRoot) {
|
|
55
|
+
try {
|
|
56
|
+
const raw = await fs.readFile(path.join(projectRoot, 'package.json'), 'utf-8');
|
|
57
|
+
return JSON.parse(raw);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async function countFiles(root, rel, predicate, skip) {
|
|
64
|
+
let count = 0;
|
|
65
|
+
let entries;
|
|
66
|
+
try {
|
|
67
|
+
entries = await fs.readdir(root, { withFileTypes: true });
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return 0;
|
|
71
|
+
}
|
|
72
|
+
for (const e of entries) {
|
|
73
|
+
if (skip.has(e.name))
|
|
74
|
+
continue;
|
|
75
|
+
if (e.isDirectory()) {
|
|
76
|
+
count += await countFiles(path.join(root, e.name), rel ? `${rel}/${e.name}` : e.name, predicate, skip);
|
|
77
|
+
}
|
|
78
|
+
else if (e.isFile() && predicate(e.name)) {
|
|
79
|
+
count++;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return count;
|
|
83
|
+
}
|
|
84
|
+
async function scanForNacIds(root, skip) {
|
|
85
|
+
let count = 0;
|
|
86
|
+
let entries;
|
|
87
|
+
try {
|
|
88
|
+
entries = await fs.readdir(root, { withFileTypes: true });
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return 0;
|
|
92
|
+
}
|
|
93
|
+
for (const e of entries) {
|
|
94
|
+
if (skip.has(e.name))
|
|
95
|
+
continue;
|
|
96
|
+
const p = path.join(root, e.name);
|
|
97
|
+
if (e.isDirectory()) {
|
|
98
|
+
count += await scanForNacIds(p, skip);
|
|
99
|
+
}
|
|
100
|
+
else if (e.isFile() && /\.(tsx?|jsx?|html)$/.test(e.name)) {
|
|
101
|
+
try {
|
|
102
|
+
const text = await fs.readFile(p, 'utf-8');
|
|
103
|
+
const m = text.match(/data-nac-id/g);
|
|
104
|
+
if (m)
|
|
105
|
+
count += m.length;
|
|
106
|
+
}
|
|
107
|
+
catch { /* skip */ }
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return count;
|
|
111
|
+
}
|
|
112
|
+
async function scanForInteractiveElements(root, skip) {
|
|
113
|
+
let count = 0;
|
|
114
|
+
let entries;
|
|
115
|
+
try {
|
|
116
|
+
entries = await fs.readdir(root, { withFileTypes: true });
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
return 0;
|
|
120
|
+
}
|
|
121
|
+
for (const e of entries) {
|
|
122
|
+
if (skip.has(e.name))
|
|
123
|
+
continue;
|
|
124
|
+
const p = path.join(root, e.name);
|
|
125
|
+
if (e.isDirectory()) {
|
|
126
|
+
count += await scanForInteractiveElements(p, skip);
|
|
127
|
+
}
|
|
128
|
+
else if (e.isFile() && /\.(tsx?|jsx?|html)$/.test(e.name)) {
|
|
129
|
+
try {
|
|
130
|
+
const text = await fs.readFile(p, 'utf-8');
|
|
131
|
+
/* Rough count of clickable / form-input elements that
|
|
132
|
+
* would benefit from NAC-3 marking. */
|
|
133
|
+
const buttons = (text.match(/<button\b/g) || []).length;
|
|
134
|
+
const inputs = (text.match(/<input\b/g) || []).length;
|
|
135
|
+
const forms = (text.match(/<form\b/g) || []).length;
|
|
136
|
+
const links = (text.match(/<a\s+[^>]*href=/g) || []).length;
|
|
137
|
+
const selects = (text.match(/<select\b/g) || []).length;
|
|
138
|
+
const textareas = (text.match(/<textarea\b/g) || []).length;
|
|
139
|
+
count += buttons + inputs + forms + links + selects + textareas;
|
|
140
|
+
}
|
|
141
|
+
catch { /* skip */ }
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return count;
|
|
145
|
+
}
|
|
146
|
+
export async function runLegacyAudit(opts) {
|
|
147
|
+
header('Yujin Forge -- legacy audit');
|
|
148
|
+
console.log('');
|
|
149
|
+
const projectRoot = opts.cwd ? path.resolve(opts.cwd) : process.cwd();
|
|
150
|
+
const wf = await readWorkflow(projectRoot);
|
|
151
|
+
if (!wf.intent) {
|
|
152
|
+
console.log(c.warn('No hay intent registrado. Sugerido correr `yf discover` primero,'));
|
|
153
|
+
console.log(c.warn('pero `yf legacy audit` corre solo igual.'));
|
|
154
|
+
console.log('');
|
|
155
|
+
}
|
|
156
|
+
else if (wf.intent.operation === 'new') {
|
|
157
|
+
console.log(c.warn('Intent registrado como "new" (proyecto desde cero). El legacy audit'));
|
|
158
|
+
console.log(c.warn('no aplica. Si tu proyecto YA tiene codigo, corre `yf discover --yes`'));
|
|
159
|
+
console.log(c.warn('y elige "modify" o "migrate".'));
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
const skip = new Set(['node_modules', '.git', 'dist', 'build', '.next',
|
|
163
|
+
'.expo', '.wrangler', 'coverage', '.cache']);
|
|
164
|
+
console.log(c.dim('Escaneando ' + projectRoot + ' ...'));
|
|
165
|
+
console.log('');
|
|
166
|
+
const pkg = await readPackageJson(projectRoot);
|
|
167
|
+
let framework = 'unknown';
|
|
168
|
+
let frameworkVersion = 'unknown';
|
|
169
|
+
if (pkg) {
|
|
170
|
+
const deps = { ...(pkg.dependencies ?? {}), ...(pkg.devDependencies ?? {}) };
|
|
171
|
+
for (const det of FRAMEWORK_DETECTORS) {
|
|
172
|
+
const dep = deps[det.pkg];
|
|
173
|
+
if (dep) {
|
|
174
|
+
framework = det.name;
|
|
175
|
+
frameworkVersion = stripVersionRange(dep);
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
const totalFiles = await countFiles(projectRoot, '', () => true, skip);
|
|
181
|
+
const tsxFiles = await countFiles(projectRoot, '', (n) => /\.tsx$/.test(n), skip);
|
|
182
|
+
const jsxFiles = await countFiles(projectRoot, '', (n) => /\.jsx$/.test(n), skip);
|
|
183
|
+
const testFiles = await countFiles(projectRoot, '', (n) => /\.(test|spec)\.[tj]sx?$/.test(n), skip);
|
|
184
|
+
const nacIds = await scanForNacIds(projectRoot, skip);
|
|
185
|
+
const interactives = await scanForInteractiveElements(projectRoot, skip);
|
|
186
|
+
/* NAC-3 readiness = % of interactive elements with a data-nac-id.
|
|
187
|
+
* Ceiling at 100%. If no interactive elements, treat as 100%
|
|
188
|
+
* (nothing to mark). */
|
|
189
|
+
const readiness = interactives === 0 ? 100
|
|
190
|
+
: Math.min(100, Math.round((nacIds / interactives) * 100));
|
|
191
|
+
/* Tech debt signals. */
|
|
192
|
+
const signals = [];
|
|
193
|
+
if (framework === 'React' && /^16\.|^15\./.test(frameworkVersion)) {
|
|
194
|
+
signals.push('React major version >= 2 behind (current is 18+)');
|
|
195
|
+
}
|
|
196
|
+
if (framework === 'Angular' && parseInt((frameworkVersion.split('.')[0] ?? '0') || '0', 10) < 15) {
|
|
197
|
+
signals.push('Angular major version >= 3 behind');
|
|
198
|
+
}
|
|
199
|
+
if (testFiles === 0)
|
|
200
|
+
signals.push('no test files found');
|
|
201
|
+
if (pkg && !pkg.dependencies)
|
|
202
|
+
signals.push('no production dependencies declared');
|
|
203
|
+
const deprecated = [];
|
|
204
|
+
if (pkg) {
|
|
205
|
+
const allDeps = { ...(pkg.dependencies ?? {}), ...(pkg.devDependencies ?? {}) };
|
|
206
|
+
for (const dep of DEPRECATED_PACKAGES) {
|
|
207
|
+
if (allDeps[dep])
|
|
208
|
+
deprecated.push(dep);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
if (deprecated.length > 0) {
|
|
212
|
+
signals.push('deprecated packages present: ' + deprecated.join(', '));
|
|
213
|
+
}
|
|
214
|
+
const audit = {
|
|
215
|
+
ran_at: new Date().toISOString(),
|
|
216
|
+
framework,
|
|
217
|
+
framework_version: frameworkVersion,
|
|
218
|
+
total_files: totalFiles,
|
|
219
|
+
tsx_files: tsxFiles + jsxFiles,
|
|
220
|
+
has_tests: testFiles > 0,
|
|
221
|
+
nac3_readiness: readiness,
|
|
222
|
+
tech_debt_signals: signals,
|
|
223
|
+
deprecated_deps: deprecated,
|
|
224
|
+
};
|
|
225
|
+
await patchWorkflowGroup(projectRoot, 'legacy_audit', audit);
|
|
226
|
+
console.log(c.success('Audit completado:'));
|
|
227
|
+
console.log(c.dim(' Framework: ') + c.brand(framework + ' ' + frameworkVersion));
|
|
228
|
+
console.log(c.dim(' Files total: ') + c.brand(String(totalFiles)));
|
|
229
|
+
console.log(c.dim(' TSX/JSX files: ') + c.brand(String(tsxFiles + jsxFiles)));
|
|
230
|
+
console.log(c.dim(' Test files: ') + c.brand(String(testFiles)));
|
|
231
|
+
console.log(c.dim(' Interactivos: ') + c.brand(String(interactives)));
|
|
232
|
+
console.log(c.dim(' Con NAC-3 id: ') + c.brand(String(nacIds)));
|
|
233
|
+
console.log(c.dim(' Readiness: ') + c.brand(readiness + '%'));
|
|
234
|
+
if (signals.length > 0) {
|
|
235
|
+
console.log('');
|
|
236
|
+
console.log(c.warn('Senales de deuda tecnica:'));
|
|
237
|
+
for (const s of signals)
|
|
238
|
+
console.log(' - ' + s);
|
|
239
|
+
}
|
|
240
|
+
console.log('');
|
|
241
|
+
/* Suggest next step based on readiness + tier. */
|
|
242
|
+
if (readiness < 30) {
|
|
243
|
+
console.log(c.dim('Siguiente paso: ') + c.code('yf clarify functional'));
|
|
244
|
+
console.log(c.dim(' Bajo readiness -- mejor relevamos requisitos completos antes de migrar.'));
|
|
245
|
+
}
|
|
246
|
+
else if (readiness > 80) {
|
|
247
|
+
console.log(c.dim('Siguiente paso: ') + c.code('yf migrate ' + projectRoot + ' --audit'));
|
|
248
|
+
console.log(c.dim(' Alto readiness -- el migrate audit puede arrancar directo.'));
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
console.log(c.dim('Siguiente paso: ') + c.code('yf clarify functional'));
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
export function registerLegacyAuditCommand(program) {
|
|
255
|
+
const legacy = program.command('legacy')
|
|
256
|
+
.description('Phase I step 3.5 helpers (audit existing projects).');
|
|
257
|
+
legacy.command('audit')
|
|
258
|
+
.description('Scan the existing project for framework + deps + tests + NAC-3 readiness.')
|
|
259
|
+
.option('--cwd <path>', 'project root (default: current directory)')
|
|
260
|
+
.action(async (opts) => {
|
|
261
|
+
try {
|
|
262
|
+
await runLegacyAudit(opts);
|
|
263
|
+
}
|
|
264
|
+
catch (err) {
|
|
265
|
+
console.error(c.error(err instanceof Error ? err.message : String(err)));
|
|
266
|
+
process.exitCode = 1;
|
|
267
|
+
}
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=legacy-audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-audit.js","sourceRoot":"","sources":["../../src/commands/legacy-audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `yf vault inventory` -- Phase I step 2 of PRODUCT_WORKFLOW.md.
|
|
3
|
+
*
|
|
4
|
+
* Walks the 13 credential families the workflow defines and per
|
|
5
|
+
* each asks the user "needed for this project?". Per-family
|
|
6
|
+
* status persists to workflow.vault_inventory.families. Families
|
|
7
|
+
* marked `skipped` become deferred debt the deploy step (16)
|
|
8
|
+
* surfaces back.
|
|
9
|
+
*
|
|
10
|
+
* Differs from `yf vault list`: that one shows what credentials
|
|
11
|
+
* are PRESENT in the vault today. This one captures what the
|
|
12
|
+
* project will NEED, marked per-family with one of:
|
|
13
|
+
*
|
|
14
|
+
* configured = at least one slot of this family is already
|
|
15
|
+
* in the vault OR provider_keys.json
|
|
16
|
+
* skipped = user marked "not needed for this project" or
|
|
17
|
+
* "deal with later"
|
|
18
|
+
* unknown = not asked yet (the default until inventory runs)
|
|
19
|
+
*
|
|
20
|
+
* Wired into the workflow gate at step 16 (`yf deploy guided`).
|
|
21
|
+
*
|
|
22
|
+
* ASCII-only.
|
|
23
|
+
*/
|
|
24
|
+
import type { Command } from 'commander';
|
|
25
|
+
export interface VaultInventoryOptions {
|
|
26
|
+
cwd?: string;
|
|
27
|
+
}
|
|
28
|
+
export declare function runVaultInventory(opts: VaultInventoryOptions): Promise<void>;
|
|
29
|
+
export declare function registerVaultInventoryCommand(vaultProgram: Command): void;
|
|
30
|
+
//# sourceMappingURL=vault-inventory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault-inventory.d.ts","sourceRoot":"","sources":["../../src/commands/vault-inventory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYzC,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAmHD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuElF;AAED,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI,CAYzE"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `yf vault inventory` -- Phase I step 2 of PRODUCT_WORKFLOW.md.
|
|
3
|
+
*
|
|
4
|
+
* Walks the 13 credential families the workflow defines and per
|
|
5
|
+
* each asks the user "needed for this project?". Per-family
|
|
6
|
+
* status persists to workflow.vault_inventory.families. Families
|
|
7
|
+
* marked `skipped` become deferred debt the deploy step (16)
|
|
8
|
+
* surfaces back.
|
|
9
|
+
*
|
|
10
|
+
* Differs from `yf vault list`: that one shows what credentials
|
|
11
|
+
* are PRESENT in the vault today. This one captures what the
|
|
12
|
+
* project will NEED, marked per-family with one of:
|
|
13
|
+
*
|
|
14
|
+
* configured = at least one slot of this family is already
|
|
15
|
+
* in the vault OR provider_keys.json
|
|
16
|
+
* skipped = user marked "not needed for this project" or
|
|
17
|
+
* "deal with later"
|
|
18
|
+
* unknown = not asked yet (the default until inventory runs)
|
|
19
|
+
*
|
|
20
|
+
* Wired into the workflow gate at step 16 (`yf deploy guided`).
|
|
21
|
+
*
|
|
22
|
+
* ASCII-only.
|
|
23
|
+
*/
|
|
24
|
+
import path from 'node:path';
|
|
25
|
+
import { promises as fs } from 'node:fs';
|
|
26
|
+
import prompts from 'prompts';
|
|
27
|
+
import { c, header } from '../ui/colors.js';
|
|
28
|
+
import { Vault } from '../vault/store.js';
|
|
29
|
+
import { configDir } from '../license/index.js';
|
|
30
|
+
import { readWorkflow, patchWorkflowGroup, } from '../workflow/state.js';
|
|
31
|
+
const FAMILIES = [
|
|
32
|
+
{
|
|
33
|
+
id: 'brain',
|
|
34
|
+
label: 'Brain (LLM)',
|
|
35
|
+
question: 'El proyecto va a hacer llamadas a un LLM (Claude/GPT/Gemini/DeepSeek)?',
|
|
36
|
+
slot_names: ['anthropic', 'openai_api_key', 'google_ai_api_key', 'deepseek_api_key'],
|
|
37
|
+
byok_keys: ['anthropic_api_key', 'openai_api_key', 'google_ai_api_key', 'deepseek_api_key'],
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
id: 'voice',
|
|
41
|
+
label: 'Voice (STT + TTS)',
|
|
42
|
+
question: 'Va a usar voz (entrada por mic + respuesta por audio)?',
|
|
43
|
+
slot_names: ['google_voice', 'elevenlabs_api_key'],
|
|
44
|
+
byok_keys: ['google_stt_key', 'google_tts_key', 'elevenlabs_api_key'],
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: 'repos',
|
|
48
|
+
label: 'Repos (GitHub / GitLab / Bitbucket)',
|
|
49
|
+
question: 'Necesita acceso a un repo remoto para push / clone / read?',
|
|
50
|
+
slot_names: ['github_token', 'gitlab_token', 'bitbucket_token'],
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
id: 'cicd',
|
|
54
|
+
label: 'CI/CD pipeline',
|
|
55
|
+
question: 'Va a deployar via GitHub Actions / CircleCI / Vercel / Netlify?',
|
|
56
|
+
slot_names: ['github_actions_token', 'circleci_token', 'vercel_token', 'netlify_token'],
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: 'cloud',
|
|
60
|
+
label: 'Cloud provider',
|
|
61
|
+
question: 'El backend va a correr en AWS / GCP / Azure?',
|
|
62
|
+
slot_names: ['aws_access_key_id', 'aws_secret_access_key', 'gcp_service_account', 'azure_service_principal'],
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
id: 'database',
|
|
66
|
+
label: 'Database',
|
|
67
|
+
question: 'Va a usar una BD managed (Postgres / MongoDB Atlas / Redis / PlanetScale)?',
|
|
68
|
+
slot_names: ['postgres_url', 'mongodb_atlas_uri', 'redis_url', 'planetscale_token'],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
id: 'storage',
|
|
72
|
+
label: 'Object storage',
|
|
73
|
+
question: 'Va a guardar archivos en S3 / GCS / R2?',
|
|
74
|
+
slot_names: ['aws_s3_credentials', 'gcs_credentials', 'r2_credentials'],
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
id: 'monitoring',
|
|
78
|
+
label: 'Monitoring + observability',
|
|
79
|
+
question: 'Va a tener Sentry / Datadog / PostHog en produccion?',
|
|
80
|
+
slot_names: ['sentry_dsn', 'datadog_api_key', 'posthog_key'],
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
id: 'auth',
|
|
84
|
+
label: 'Auth provider',
|
|
85
|
+
question: 'Va a usar Auth0 / Clerk / Supabase para autenticacion?',
|
|
86
|
+
slot_names: ['auth0_credentials', 'clerk_secret', 'supabase_anon_key'],
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
id: 'payment',
|
|
90
|
+
label: 'Payment processor',
|
|
91
|
+
question: 'Va a cobrar a usuarios via Stripe / Polar / MercadoPago?',
|
|
92
|
+
slot_names: ['stripe_secret', 'polar_token', 'mercadopago_token'],
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
id: 'email',
|
|
96
|
+
label: 'Email delivery',
|
|
97
|
+
question: 'Va a mandar emails transaccionales via SendGrid / Mailgun / SES?',
|
|
98
|
+
slot_names: ['sendgrid_api_key', 'mailgun_api_key', 'ses_credentials'],
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
id: 'sms',
|
|
102
|
+
label: 'SMS / WhatsApp',
|
|
103
|
+
question: 'Va a mandar SMS o WhatsApp via Twilio / Vonage?',
|
|
104
|
+
slot_names: ['twilio_account_sid', 'twilio_auth_token', 'vonage_api_key'],
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
id: 'design',
|
|
108
|
+
label: 'Design (Figma)',
|
|
109
|
+
question: 'Vamos a leer disenios desde Figma?',
|
|
110
|
+
slot_names: ['figma_personal_access_token'],
|
|
111
|
+
},
|
|
112
|
+
];
|
|
113
|
+
async function readProviderKeys() {
|
|
114
|
+
try {
|
|
115
|
+
const raw = await fs.readFile(path.join(configDir(), 'provider_keys.json'), 'utf-8');
|
|
116
|
+
const parsed = JSON.parse(raw);
|
|
117
|
+
return (parsed && typeof parsed === 'object') ? parsed : {};
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
return {};
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
async function isFamilyConfigured(f, vaultSlots, pk) {
|
|
124
|
+
for (const s of f.slot_names) {
|
|
125
|
+
if (vaultSlots.includes(s))
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
if (f.byok_keys) {
|
|
129
|
+
for (const k of f.byok_keys) {
|
|
130
|
+
if (typeof pk[k] === 'string' && pk[k].trim() !== '')
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
export async function runVaultInventory(opts) {
|
|
137
|
+
header('Yujin Forge -- vault inventory');
|
|
138
|
+
console.log('');
|
|
139
|
+
const projectRoot = opts.cwd ? path.resolve(opts.cwd) : process.cwd();
|
|
140
|
+
const wf = await readWorkflow(projectRoot);
|
|
141
|
+
if (!wf.intent && !wf.tier) {
|
|
142
|
+
console.log(c.warn('Sugerido correr primero ') + c.code('yf triage') + c.warn(' + ') + c.code('yf discover'));
|
|
143
|
+
console.log(c.warn('para que el inventory sepa que esperar. Pero corre solo igual.'));
|
|
144
|
+
console.log('');
|
|
145
|
+
}
|
|
146
|
+
/* Inspect the vault + provider_keys.json to seed defaults. */
|
|
147
|
+
let vaultSlots = [];
|
|
148
|
+
try {
|
|
149
|
+
const v = await Vault.open({ configDir: configDir() });
|
|
150
|
+
vaultSlots = v.list().map((s) => s.name);
|
|
151
|
+
}
|
|
152
|
+
catch { /* vault unavailable -- continue with empty list */ }
|
|
153
|
+
const pk = await readProviderKeys();
|
|
154
|
+
console.log(c.dim('13 familias de credenciales. Para cada una decis si tu proyecto'));
|
|
155
|
+
console.log(c.dim('la necesita. La respuesta se guarda; al hacer deploy mas adelante'));
|
|
156
|
+
console.log(c.dim('Forge te recuerda cuales quedan pendientes.'));
|
|
157
|
+
console.log('');
|
|
158
|
+
const inventory = {};
|
|
159
|
+
for (const f of FAMILIES) {
|
|
160
|
+
const already = await isFamilyConfigured(f, vaultSlots, pk);
|
|
161
|
+
if (already) {
|
|
162
|
+
console.log(c.success('[*] ') + c.brand(f.label) + c.dim(' (ya configurada)'));
|
|
163
|
+
inventory[f.id] = 'configured';
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
const r = await prompts({
|
|
167
|
+
type: 'select',
|
|
168
|
+
name: 'choice',
|
|
169
|
+
message: f.label + ' -- ' + f.question,
|
|
170
|
+
choices: [
|
|
171
|
+
{ title: 'Si, voy a usar (cargar luego)', value: 'needed' },
|
|
172
|
+
{ title: 'No, este proyecto no la necesita', value: 'skipped' },
|
|
173
|
+
{ title: 'No se / lo decido despues', value: 'unknown' },
|
|
174
|
+
],
|
|
175
|
+
});
|
|
176
|
+
if (!r.choice) {
|
|
177
|
+
console.log(c.warn('Inventory abortado.'));
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
inventory[f.id] = r.choice === 'needed' ? 'configured' /* deferred-to-load */
|
|
181
|
+
: r.choice === 'skipped' ? 'skipped'
|
|
182
|
+
: 'unknown';
|
|
183
|
+
}
|
|
184
|
+
await patchWorkflowGroup(projectRoot, 'vault_inventory', {
|
|
185
|
+
ran_at: new Date().toISOString(),
|
|
186
|
+
families: inventory,
|
|
187
|
+
});
|
|
188
|
+
console.log('');
|
|
189
|
+
const needed = Object.entries(inventory).filter(([, v]) => v === 'configured').length;
|
|
190
|
+
const skipped = Object.entries(inventory).filter(([, v]) => v === 'skipped').length;
|
|
191
|
+
const unknown = Object.entries(inventory).filter(([, v]) => v === 'unknown').length;
|
|
192
|
+
console.log(c.success('Inventory guardado:'));
|
|
193
|
+
console.log(c.dim(' Configuradas / necesarias: ') + c.brand(String(needed)));
|
|
194
|
+
console.log(c.dim(' Saltadas (no aplica): ') + c.brand(String(skipped)));
|
|
195
|
+
console.log(c.dim(' Por decidir: ') + c.brand(String(unknown)));
|
|
196
|
+
console.log('');
|
|
197
|
+
console.log(c.dim('Para cargar credenciales: ') + c.code('yf vault set <slot>')
|
|
198
|
+
+ c.dim(' o ') + c.code('yf keys setup'));
|
|
199
|
+
}
|
|
200
|
+
export function registerVaultInventoryCommand(vaultProgram) {
|
|
201
|
+
vaultProgram.command('inventory')
|
|
202
|
+
.description('Walk the 13 credential families and record which this project needs.')
|
|
203
|
+
.option('--cwd <path>', 'project root (default: current directory)')
|
|
204
|
+
.action(async (opts) => {
|
|
205
|
+
try {
|
|
206
|
+
await runVaultInventory(opts);
|
|
207
|
+
}
|
|
208
|
+
catch (err) {
|
|
209
|
+
console.error(c.error(err instanceof Error ? err.message : String(err)));
|
|
210
|
+
process.exitCode = 1;
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=vault-inventory.js.map
|