@kernlang/cli 3.1.6 → 3.1.8

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.
Files changed (60) hide show
  1. package/dist/cli.js +40 -2440
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/compile.d.ts +1 -0
  4. package/dist/commands/compile.js +360 -0
  5. package/dist/commands/compile.js.map +1 -0
  6. package/dist/commands/confidence.d.ts +1 -0
  7. package/dist/commands/confidence.js +105 -0
  8. package/dist/commands/confidence.js.map +1 -0
  9. package/dist/commands/dev.d.ts +7 -0
  10. package/dist/commands/dev.js +17 -0
  11. package/dist/commands/dev.js.map +1 -0
  12. package/dist/commands/evolve/backfill.d.ts +1 -0
  13. package/dist/commands/evolve/backfill.js +80 -0
  14. package/dist/commands/evolve/backfill.js.map +1 -0
  15. package/dist/commands/evolve/discover.d.ts +1 -0
  16. package/dist/commands/evolve/discover.js +151 -0
  17. package/dist/commands/evolve/discover.js.map +1 -0
  18. package/dist/commands/evolve/index.d.ts +1 -0
  19. package/dist/commands/evolve/index.js +40 -0
  20. package/dist/commands/evolve/index.js.map +1 -0
  21. package/dist/commands/evolve/lifecycle.d.ts +8 -0
  22. package/dist/commands/evolve/lifecycle.js +190 -0
  23. package/dist/commands/evolve/lifecycle.js.map +1 -0
  24. package/dist/commands/evolve/main.d.ts +1 -0
  25. package/dist/commands/evolve/main.js +76 -0
  26. package/dist/commands/evolve/main.js.map +1 -0
  27. package/dist/commands/evolve/review-v4.d.ts +1 -0
  28. package/dist/commands/evolve/review-v4.js +181 -0
  29. package/dist/commands/evolve/review-v4.js.map +1 -0
  30. package/dist/commands/evolve/review.d.ts +1 -0
  31. package/dist/commands/evolve/review.js +63 -0
  32. package/dist/commands/evolve/review.js.map +1 -0
  33. package/dist/commands/import.d.ts +1 -0
  34. package/dist/commands/import.js +101 -0
  35. package/dist/commands/import.js.map +1 -0
  36. package/dist/commands/init.d.ts +1 -0
  37. package/dist/commands/init.js +154 -0
  38. package/dist/commands/init.js.map +1 -0
  39. package/dist/commands/review.d.ts +1 -0
  40. package/dist/commands/review.js +881 -0
  41. package/dist/commands/review.js.map +1 -0
  42. package/dist/commands/scan.d.ts +2 -0
  43. package/dist/commands/scan.js +89 -0
  44. package/dist/commands/scan.js.map +1 -0
  45. package/dist/commands/schema.d.ts +1 -0
  46. package/dist/commands/schema.js +6 -0
  47. package/dist/commands/schema.js.map +1 -0
  48. package/dist/commands/test.d.ts +1 -0
  49. package/dist/commands/test.js +184 -0
  50. package/dist/commands/test.js.map +1 -0
  51. package/dist/commands/transpile.d.ts +2 -0
  52. package/dist/commands/transpile.js +280 -0
  53. package/dist/commands/transpile.js.map +1 -0
  54. package/dist/shared.d.ts +51 -0
  55. package/dist/shared.js +459 -0
  56. package/dist/shared.js.map +1 -0
  57. package/dist/transpiler-cli.d.ts +1 -1
  58. package/dist/transpiler-cli.js +10 -9
  59. package/dist/transpiler-cli.js.map +1 -1
  60. package/package.json +13 -13
@@ -0,0 +1,280 @@
1
+ import { decompile, resolveConfig, VALID_STRUCTURES, VALID_TARGETS } from '@kernlang/core';
2
+ import { loadEvolvedNodes } from '@kernlang/evolve';
3
+ import { collectLanguageMetrics } from '@kernlang/metrics';
4
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
5
+ import { createJiti } from 'jiti';
6
+ import { basename, dirname, resolve } from 'path';
7
+ import { getOutputExtension, hasFlag, loadTemplates, parseAndSurface, parseFlag, transpileForTarget, } from '../shared.js';
8
+ // ── Minify/Pretty implementations ───────────────────────────────────────
9
+ /** Serialize node props. pseudoFormat controls pseudo style output:
10
+ * 'minify' → ` {:state:key:value}` (space + braces)
11
+ * 'pretty' → `,:state:key:value` (comma prefix, no braces) */
12
+ function serializeProps(node, pseudoFormat = 'minify') {
13
+ const type = node.type;
14
+ const props = node.props || {};
15
+ let head = type;
16
+ for (const [k, v] of Object.entries(props)) {
17
+ if (['styles', 'pseudoStyles', 'themeRefs'].includes(k))
18
+ continue;
19
+ if (type === 'theme' && k === 'name') {
20
+ head += ` ${v}`;
21
+ continue;
22
+ }
23
+ if (typeof v === 'object' && v !== null && '__expr' in v) {
24
+ head += ` ${k}={{ ${v.code} }}`;
25
+ continue;
26
+ }
27
+ const val = typeof v === 'string' && v.includes(' ') ? `"${v}"` : String(v);
28
+ head += ` ${k}=${val}`;
29
+ }
30
+ if (props.styles) {
31
+ const pairs = Object.entries(props.styles).map(([k, v]) => v.includes(' ') || v.includes(',') ? `"${k}":"${v}"` : `${k}:${v}`);
32
+ head += ` {${pairs.join(',')}}`;
33
+ }
34
+ if (props.pseudoStyles) {
35
+ const pseudo = props.pseudoStyles;
36
+ for (const [state, styles] of Object.entries(pseudo)) {
37
+ for (const [k, v] of Object.entries(styles)) {
38
+ head += pseudoFormat === 'minify' ? ` {:${state}:${k}:${v}}` : `,${`:${state}:${k}:${v}`}`;
39
+ }
40
+ }
41
+ }
42
+ if (props.themeRefs) {
43
+ for (const ref of props.themeRefs) {
44
+ head += ` $${ref}`;
45
+ }
46
+ }
47
+ return head;
48
+ }
49
+ function minifyKern(node) {
50
+ const head = serializeProps(node, 'minify');
51
+ if (node.children && node.children.length > 0) {
52
+ const kids = node.children.map((c) => minifyKern(c)).join(',');
53
+ return `${head}(${kids})`;
54
+ }
55
+ return head;
56
+ }
57
+ function prettyKern(node, indent = '') {
58
+ const line = `${indent}${serializeProps(node, 'pretty')}`;
59
+ let result = `${line}\n`;
60
+ if (node.children) {
61
+ for (const child of node.children) {
62
+ result += prettyKern(child, `${indent} `);
63
+ }
64
+ }
65
+ return result;
66
+ }
67
+ // ── Main transpile command ──────────────────────────────────────────────
68
+ export function runTranspile(args) {
69
+ const inputFile = args.find((a) => !a.startsWith('--'));
70
+ if (!inputFile) {
71
+ printHelp();
72
+ process.exit(1);
73
+ }
74
+ // Load config
75
+ let config;
76
+ const configPath = resolve(process.cwd(), 'kern.config.ts');
77
+ if (existsSync(configPath)) {
78
+ try {
79
+ const jiti = createJiti(import.meta.url);
80
+ const mod = jiti(configPath);
81
+ const userConfig = mod.default ?? mod;
82
+ config = resolveConfig(userConfig);
83
+ }
84
+ catch (err) {
85
+ console.error(`Warning: Failed to load kern.config.ts: ${err.message}`);
86
+ config = resolveConfig({});
87
+ }
88
+ }
89
+ else {
90
+ config = resolveConfig({});
91
+ }
92
+ loadTemplates(config);
93
+ loadEvolvedNodes(process.cwd(), hasFlag(args, '--verify'));
94
+ // CLI overrides
95
+ const cliTarget = parseFlag(args, '--target');
96
+ if (cliTarget) {
97
+ if (!VALID_TARGETS.includes(cliTarget)) {
98
+ console.error(`Unknown target: '${cliTarget}'. Valid targets: ${VALID_TARGETS.join(', ')}`);
99
+ process.exit(1);
100
+ }
101
+ config = { ...config, target: cliTarget };
102
+ }
103
+ const target = config.target;
104
+ const cliStructure = parseFlag(args, '--structure');
105
+ if (cliStructure) {
106
+ if (!VALID_STRUCTURES.includes(cliStructure)) {
107
+ console.error(`Unknown structure: '${cliStructure}'. Valid structures: ${VALID_STRUCTURES.join(', ')}`);
108
+ process.exit(1);
109
+ }
110
+ config = { ...config, structure: cliStructure };
111
+ }
112
+ const irSource = readFileSync(resolve(inputFile), 'utf-8');
113
+ const ast = parseAndSurface(irSource, inputFile);
114
+ const ext = inputFile.endsWith('.kern') ? '.kern' : '.ir';
115
+ const name = basename(inputFile, ext);
116
+ // Minify
117
+ if (hasFlag(args, '--minify')) {
118
+ const minified = minifyKern(ast);
119
+ const outFile = resolve(dirname(inputFile), `${name}.min.kern`);
120
+ writeFileSync(outFile, minified);
121
+ const savings = Math.round((1 - minified.length / irSource.length) * 100);
122
+ console.log(`Minified: ${inputFile} → ${outFile}`);
123
+ console.log(`Chars: ${irSource.length} → ${minified.length} (${savings}% smaller)`);
124
+ process.exit(0);
125
+ }
126
+ // Pretty
127
+ if (hasFlag(args, '--pretty')) {
128
+ const pretty = prettyKern(ast);
129
+ const outFile = resolve(dirname(inputFile), `${name}.kern`);
130
+ writeFileSync(outFile, pretty);
131
+ console.log(`Formatted: ${inputFile} → ${outFile}`);
132
+ process.exit(0);
133
+ }
134
+ // Decompile
135
+ if (hasFlag(args, '--decompile')) {
136
+ const result = decompile(ast);
137
+ console.log(result.code);
138
+ process.exit(0);
139
+ }
140
+ // Metrics
141
+ if (hasFlag(args, '--metrics')) {
142
+ const metrics = collectLanguageMetrics(ast);
143
+ console.log(`Metrics: ${inputFile}`);
144
+ console.log(` Nodes: ${metrics.nodeCount} (${metrics.nodeTypes.length} types)`);
145
+ console.log(` Styles: ${metrics.styleMetrics.totalStyleDecls} declarations`);
146
+ console.log(` Mapped: ${metrics.styleMetrics.mappedStyleDecls} (${Math.round((1 - metrics.styleMetrics.escapeRatio) * 100)}%)`);
147
+ console.log(` Escaped: ${metrics.styleMetrics.escapedStyleDecls} (${Math.round(metrics.styleMetrics.escapeRatio * 100)}%)`);
148
+ if (metrics.styleMetrics.escapedKeys.length > 0) {
149
+ console.log(` Escape keys: ${metrics.styleMetrics.escapedKeys.join(', ')}`);
150
+ }
151
+ console.log(` Shorthand: ${Math.round(metrics.shorthandCoverage * 100)}% coverage`);
152
+ console.log(` Theme refs: ${metrics.themeRefCount}`);
153
+ console.log(` Pseudo: ${metrics.pseudoStyleCount}`);
154
+ if (metrics.unknownNodeCount > 0) {
155
+ console.log(` Unknown nodes: ${metrics.unknownNodeCount}`);
156
+ }
157
+ console.log('');
158
+ console.log(' Node types:');
159
+ for (const nt of metrics.nodeTypes.slice(0, 10)) {
160
+ console.log(` ${nt.type}: ${nt.count} (${nt.styleDecls} styles)`);
161
+ }
162
+ process.exit(0);
163
+ }
164
+ // Transpile
165
+ const result = transpileForTarget(ast, config);
166
+ const outDir = resolve(dirname(inputFile), config.output.outDir);
167
+ const isStructured = config.structure !== 'flat' && result.artifacts && result.artifacts.length > 0;
168
+ if (isStructured) {
169
+ for (const artifact of result.artifacts) {
170
+ const artifactPath = resolve(outDir, artifact.path);
171
+ mkdirSync(dirname(artifactPath), { recursive: true });
172
+ writeFileSync(artifactPath, artifact.content);
173
+ }
174
+ const entryArtifact = result.artifacts.find((a) => a.type === 'entry' || a.type === 'page');
175
+ const displayPath = entryArtifact ? resolve(outDir, entryArtifact.path) : resolve(outDir, `${name}.tsx`);
176
+ console.log(`Transpiled: ${inputFile} → ${displayPath}`);
177
+ }
178
+ else {
179
+ const outExt = getOutputExtension(target);
180
+ const outFile = resolve(outDir, `${name}${outExt}`);
181
+ mkdirSync(dirname(outFile), { recursive: true });
182
+ writeFileSync(outFile, result.code);
183
+ if (result.artifacts) {
184
+ for (const artifact of result.artifacts) {
185
+ const artifactPath = resolve(outDir, artifact.path);
186
+ mkdirSync(dirname(artifactPath), { recursive: true });
187
+ writeFileSync(artifactPath, artifact.content);
188
+ }
189
+ }
190
+ console.log(`Transpiled: ${inputFile} → ${outFile}`);
191
+ }
192
+ const targetNames = {
193
+ native: 'React Native',
194
+ web: 'React (inline)',
195
+ tailwind: 'React + Tailwind',
196
+ nextjs: 'Next.js App Router',
197
+ express: 'Express TypeScript',
198
+ fastapi: 'FastAPI Python',
199
+ cli: 'Commander.js CLI',
200
+ terminal: 'ANSI Terminal',
201
+ ink: 'Ink (React for Terminals)',
202
+ vue: 'Vue 3 SFC',
203
+ nuxt: 'Nuxt 3',
204
+ };
205
+ console.log(`Target: ${targetNames[target] || target}`);
206
+ if (config.structure !== 'flat') {
207
+ const structureNames = {
208
+ bulletproof: 'Bulletproof React',
209
+ atomic: 'Atomic Design',
210
+ kern: 'KERN Native',
211
+ };
212
+ console.log(`Structure: ${structureNames[config.structure] || config.structure}`);
213
+ }
214
+ console.log(`IR tokens: ${result.irTokenCount}`);
215
+ console.log(`TS tokens: ${result.tsTokenCount}`);
216
+ console.log(`Reduction: ${result.tokenReduction}%`);
217
+ console.log(`Source map: ${result.sourceMap.length} entries`);
218
+ if (result.artifacts) {
219
+ console.log(`Artifacts: ${result.artifacts.length}`);
220
+ }
221
+ if (result.diagnostics && result.diagnostics.length > 0) {
222
+ const counts = {};
223
+ for (const d of result.diagnostics)
224
+ counts[d.outcome] = (counts[d.outcome] || 0) + 1;
225
+ const parts = Object.entries(counts).map(([k, v]) => `${v} ${k}`);
226
+ console.log(`Diagnostics: ${parts.join(', ')}`);
227
+ const unsupported = result.diagnostics.filter((d) => d.outcome === 'unsupported');
228
+ if (unsupported.length > 0) {
229
+ for (const d of unsupported) {
230
+ const loc = d.loc ? `:${d.loc.line}` : '';
231
+ const lost = d.childrenLost ? ` (+${d.childrenLost} children)` : '';
232
+ console.log(` ⚠ ${d.nodeType}${loc} — unsupported in ${d.target}${lost}`);
233
+ }
234
+ }
235
+ }
236
+ }
237
+ export function printHelp() {
238
+ console.log('Usage: kern <file.kern> [--target=nextjs|tailwind|web|native|express|cli] [options]');
239
+ console.log('');
240
+ console.log('Commands:');
241
+ console.log(' dev <dir|file> [--target=...] [--outdir=...] Watch & hot-transpile .kern files');
242
+ console.log(' compile <dir|file> --outdir=<dir> Compile .kern → .ts (core nodes)');
243
+ console.log(' scan [--force] [--dry-run] Detect project → generate kern.config.ts');
244
+ console.log(' init-templates [--force] [--dry-run] Scan deps → scaffold template .kern files');
245
+ console.log(' review <file.ts|dir> [options] Static analysis, Cognitive Complexity & CI Gate');
246
+ console.log(' evolve <dir|file> [options] Detect gaps → propose templates');
247
+ console.log(' evolve:review [options] Review staged template proposals');
248
+ console.log(' evolve:review-v4 [options] Review & graduate v4 node proposals');
249
+ console.log(' evolve:promote <keyword> Show steps to move evolved → core');
250
+ console.log(' evolve:backfill <kw> --target=<t> LLM generates target-specific codegen');
251
+ console.log(' evolve:prune [--dry-run] [--days=N] Remove unused nodes (default 90d)');
252
+ console.log(' evolve:migrate Detect & resolve keyword collisions');
253
+ console.log(' evolve:rebuild Rebuild manifest.json from disk definitions');
254
+ console.log(' confidence <file.kern> Display confidence graph for a .kern file');
255
+ console.log('');
256
+ console.log('Targets:');
257
+ console.log(' nextjs Next.js App Router (default)');
258
+ console.log(' tailwind React + Tailwind CSS');
259
+ console.log(' web React with inline styles');
260
+ console.log(' vue Vue 3 Single File Component');
261
+ console.log(' nuxt Nuxt 3 (pages, layouts, server routes)');
262
+ console.log(' native React Native component');
263
+ console.log(' express Express TypeScript backend');
264
+ console.log(' cli Commander.js CLI app');
265
+ console.log(' terminal ANSI terminal rendering');
266
+ console.log('');
267
+ console.log('Options:');
268
+ console.log(' --structure=flat|bulletproof|atomic|kern Output structure pattern (React targets)');
269
+ console.log(' --decompile Output human-readable pseudocode');
270
+ console.log(' --minify Output minified single-line Kern (LLM wire format)');
271
+ console.log(' --pretty Expand minified Kern back to indented format');
272
+ console.log(' --metrics Show language metrics (escape ratio, coverage, etc.)');
273
+ console.log('');
274
+ console.log('Structures (React targets only):');
275
+ console.log(' flat Single .tsx file (default)');
276
+ console.log(' bulletproof Feature-based folder structure');
277
+ console.log(' atomic Atomic Design hierarchy (pages/templates/organisms/molecules/atoms)');
278
+ console.log(' kern KERN-native (surfaces/blocks/signals/tokens/models)');
279
+ }
280
+ //# sourceMappingURL=transpile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transpile.js","sourceRoot":"","sources":["../../src/commands/transpile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { IRNode, KernTarget, ParseDiagnostic, ResolvedKernConfig, SchemaViolation } from '@kernlang/core';
2
+ export declare const GENERATED_HEADER = "// @generated by kern v2.0.0 \u2014 DO NOT EDIT. Source: ";
3
+ /** Get value of --flag=value */
4
+ export declare function parseFlag(args: string[], flag: string): string | undefined;
5
+ /** Get value of --flag=value OR --flag <value> (next positional arg) */
6
+ export declare function parseFlagOrNext(args: string[], flag: string): string | undefined;
7
+ /** Check if any of the given flags are present */
8
+ export declare function hasFlag(args: string[], ...flags: string[]): boolean;
9
+ export declare function surfaceParseDiagnostics(diagnostics: ParseDiagnostic[], file?: string): {
10
+ errors: number;
11
+ warnings: number;
12
+ };
13
+ export declare function parseAndSurface(source: string, file?: string): IRNode;
14
+ export interface FileDiagnosticsJSON {
15
+ file: string;
16
+ success: boolean;
17
+ diagnostics: ParseDiagnostic[];
18
+ schemaViolations: SchemaViolation[];
19
+ }
20
+ /** Parse a .kern file and return structured diagnostics as JSON-serializable object. */
21
+ export declare function parseWithJSONDiagnostics(source: string, file: string): {
22
+ root: IRNode;
23
+ json: FileDiagnosticsJSON;
24
+ };
25
+ /** Get the output file extension for a given target. Deduplicates the ternary chain. */
26
+ export declare function getOutputExtension(target: KernTarget): string;
27
+ /** Extract exported symbol names from generated TypeScript lines, distinguishing type-only exports. */
28
+ export declare function extractExportsFromLines(lines: string[]): {
29
+ name: string;
30
+ typeOnly: boolean;
31
+ }[];
32
+ export interface BarrelEntry {
33
+ moduleName: string;
34
+ exports: {
35
+ name: string;
36
+ typeOnly: boolean;
37
+ }[];
38
+ }
39
+ /** Scan output directory for .ts/.tsx files and build barrel entries from their exports. */
40
+ export declare function scanOutputForBarrelEntries(outDir: string): BarrelEntry[];
41
+ /** Generate a barrel index file that re-exports from all compiled modules. */
42
+ export declare function generateBarrelFile(outDir: string, entries: BarrelEntry[]): void;
43
+ /** Generate facade re-export files and an index.ts that re-exports from facades. */
44
+ export declare function generateFacadeFiles(outDir: string, facadesDirOverride: string | undefined, entries: BarrelEntry[]): void;
45
+ export declare function findNearestPackageJson(startDir: string): string | null;
46
+ export declare function findKernFiles(dir: string, singleFile?: string): string[];
47
+ export declare function collectTsFilesFlat(dirPath: string, recursive: boolean): string[];
48
+ export declare function transpileForTarget(ast: IRNode, cfg: ResolvedKernConfig): import("@kernlang/core").TranspileResult;
49
+ export declare function transpileAndWrite(file: string, cfg: ResolvedKernConfig, args: string[], outDirOverride?: string, inputBase?: string): void;
50
+ export declare function loadConfig(): ResolvedKernConfig;
51
+ export declare function loadTemplates(cfg: ResolvedKernConfig): void;