@kernlang/evolve 3.1.4 → 3.1.6

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/LICENSE CHANGED
@@ -659,3 +659,20 @@ specific requirements.
659
659
  if any, to sign a "copyright disclaimer" for the program, if necessary.
660
660
  For more information on this, and how to apply and follow the GNU AGPL, see
661
661
  <https://www.gnu.org/licenses/>.
662
+
663
+ ===============================================================================
664
+
665
+ Copyright (c) 2026 KERNlang
666
+
667
+ Additional permission under GNU AGPL version 3 section 7:
668
+
669
+ If you modify this Program, or any covered work, by linking or combining
670
+ it with other code, such other code is not for that reason alone subject
671
+ to any of the requirements of the GNU Affero GPL version 3.
672
+
673
+ ---
674
+
675
+ COMMERCIAL USE
676
+
677
+ Using this software as part of a paid product or service requires a
678
+ commercial license. Contact: hello@kernlang.dev
@@ -10,6 +10,7 @@ import { ts } from 'ts-morph';
10
10
  import { compileSandboxedGenerator } from './sandboxed-generator.js';
11
11
  import { checkDedup } from './evolve-dedup.js';
12
12
  import { compareGoldenOutput } from './golden-test-runner.js';
13
+ import { compileCodegenToJS } from './graduation.js';
13
14
  /**
14
15
  * Run the full 9-step validation pipeline on a node proposal.
15
16
  */
@@ -34,34 +35,65 @@ export function validateEvolveProposal(proposal, existingKeywords) {
34
35
  result.keywordOk = validateKeyword(proposal.keyword, result.errors, existingKeywords);
35
36
  if (!result.keywordOk)
36
37
  return result;
37
- // Step 3: Parse check
38
- result.parseOk = validateParse(proposal, result.errors);
39
- // Step 4: Codegen compile
40
- let generator = null;
41
- try {
42
- generator = compileSandboxedGenerator(wrapAsCommonJS(proposal.codegenSource));
43
- result.codegenCompileOk = true;
44
- }
45
- catch (err) {
46
- result.errors.push(`Codegen compile failed: ${err.message}`);
47
- result.codegenCompileOk = false;
48
- }
49
- // Step 5: Codegen dry-run
50
- if (generator && result.parseOk) {
51
- result.codegenRunOk = validateCodegenRun(proposal, generator, result.errors);
52
- }
53
- // Step 6: TypeScript syntax check
54
- if (result.codegenRunOk && generator) {
55
- result.typescriptOk = validateTypeScript(proposal, generator, result.errors);
38
+ // Register parser hints once for all parse-dependent steps (3, 5, 6, 7)
39
+ if (proposal.parserHints) {
40
+ registerParserHints(proposal.keyword, proposal.parserHints);
56
41
  }
57
- // Step 7: Golden diff
58
- if (result.codegenRunOk && generator) {
59
- result.goldenDiffOk = validateGoldenDiff(proposal, generator, result.errors);
42
+ try {
43
+ // Step 3: Parse check — parse once, reuse AST for steps 5-7
44
+ let ast = null;
45
+ try {
46
+ const parsed = parse(proposal.kernExample);
47
+ if (!parsed || !parsed.type) {
48
+ result.errors.push('kernExample parsed to empty AST');
49
+ result.parseOk = false;
50
+ }
51
+ else if (parsed.type !== proposal.keyword) {
52
+ result.errors.push(`kernExample root type '${parsed.type}' does not match keyword '${proposal.keyword}'`);
53
+ result.parseOk = false;
54
+ }
55
+ else {
56
+ result.parseOk = true;
57
+ ast = parsed;
58
+ }
59
+ }
60
+ catch (err) {
61
+ result.errors.push(`Parse failed: ${err.message}`);
62
+ result.parseOk = false;
63
+ }
64
+ // Step 4: Codegen compile (uses compileCodegenToJS from graduation for
65
+ // consistent TS→JS stripping — same logic used at graduation time)
66
+ let generator = null;
67
+ try {
68
+ generator = compileSandboxedGenerator(compileCodegenToJS(proposal.codegenSource));
69
+ result.codegenCompileOk = true;
70
+ }
71
+ catch (err) {
72
+ result.errors.push(`Codegen compile failed: ${err.message}`);
73
+ result.codegenCompileOk = false;
74
+ }
75
+ // Step 5: Codegen dry-run
76
+ if (generator && ast) {
77
+ result.codegenRunOk = validateCodegenRun(ast, generator, result.errors);
78
+ }
79
+ // Step 6: TypeScript syntax check
80
+ if (result.codegenRunOk && generator && ast) {
81
+ result.typescriptOk = validateTypeScript(ast, generator, result.errors);
82
+ }
83
+ // Step 7: Golden diff
84
+ if (result.codegenRunOk && generator && ast) {
85
+ result.goldenDiffOk = validateGoldenDiff(ast, proposal, generator, result.errors);
86
+ }
87
+ // Step 8: Dedup check
88
+ result.dedupOk = checkDedup(proposal, existingKeywords || []);
89
+ if (!result.dedupOk) {
90
+ result.errors.push(`Duplicate: keyword '${proposal.keyword}' is too similar to an existing node`);
91
+ }
60
92
  }
61
- // Step 8: Dedup check
62
- result.dedupOk = checkDedup(proposal, existingKeywords || []);
63
- if (!result.dedupOk) {
64
- result.errors.push(`Duplicate: keyword '${proposal.keyword}' is too similar to an existing node`);
93
+ finally {
94
+ if (proposal.parserHints) {
95
+ unregisterParserHints(proposal.keyword);
96
+ }
65
97
  }
66
98
  return result;
67
99
  }
@@ -108,41 +140,17 @@ function validateKeyword(keyword, errors, existing) {
108
140
  }
109
141
  return true;
110
142
  }
111
- function validateParse(proposal, errors) {
112
- // Temporarily register parser hints if provided
113
- if (proposal.parserHints) {
114
- registerParserHints(proposal.keyword, proposal.parserHints);
115
- }
116
- try {
117
- const ast = parse(proposal.kernExample);
118
- if (!ast || !ast.type) {
119
- errors.push('kernExample parsed to empty AST');
120
- return false;
121
- }
122
- // Root node should match the proposed keyword
123
- if (ast.type !== proposal.keyword) {
124
- errors.push(`kernExample root type '${ast.type}' does not match keyword '${proposal.keyword}'`);
125
- return false;
126
- }
127
- return true;
128
- }
129
- catch (err) {
130
- errors.push(`Parse failed: ${err.message}`);
131
- return false;
132
- }
133
- finally {
134
- if (proposal.parserHints) {
135
- unregisterParserHints(proposal.keyword);
136
- }
137
- }
143
+ /**
144
+ * Run generator on a cloned AST to preserve mutation isolation.
145
+ * Each step gets its own copy so user-provided generators can't
146
+ * corrupt the AST for subsequent steps.
147
+ */
148
+ function runGenerator(ast, generator) {
149
+ return generator(structuredClone(ast));
138
150
  }
139
- function validateCodegenRun(proposal, generator, errors) {
140
- if (proposal.parserHints) {
141
- registerParserHints(proposal.keyword, proposal.parserHints);
142
- }
151
+ function validateCodegenRun(ast, generator, errors) {
143
152
  try {
144
- const ast = parse(proposal.kernExample);
145
- const output = generator(ast);
153
+ const output = runGenerator(ast, generator);
146
154
  if (!Array.isArray(output) || output.length === 0) {
147
155
  errors.push('Codegen produced empty output');
148
156
  return false;
@@ -153,19 +161,10 @@ function validateCodegenRun(proposal, generator, errors) {
153
161
  errors.push(`Codegen run failed: ${err.message}`);
154
162
  return false;
155
163
  }
156
- finally {
157
- if (proposal.parserHints) {
158
- unregisterParserHints(proposal.keyword);
159
- }
160
- }
161
164
  }
162
- function validateTypeScript(proposal, generator, errors) {
163
- if (proposal.parserHints) {
164
- registerParserHints(proposal.keyword, proposal.parserHints);
165
- }
165
+ function validateTypeScript(ast, generator, errors) {
166
166
  try {
167
- const ast = parse(proposal.kernExample);
168
- const output = generator(ast).join('\n');
167
+ const output = runGenerator(ast, generator).join('\n');
169
168
  // Real TypeScript syntax validation via ts.transpileModule
170
169
  // Enable JSX since KERN generates React/JSX output for frontend targets
171
170
  const result = ts.transpileModule(output, {
@@ -196,19 +195,10 @@ function validateTypeScript(proposal, generator, errors) {
196
195
  errors.push(`TypeScript check failed: ${err.message}`);
197
196
  return false;
198
197
  }
199
- finally {
200
- if (proposal.parserHints) {
201
- unregisterParserHints(proposal.keyword);
202
- }
203
- }
204
198
  }
205
- function validateGoldenDiff(proposal, generator, errors) {
206
- if (proposal.parserHints) {
207
- registerParserHints(proposal.keyword, proposal.parserHints);
208
- }
199
+ function validateGoldenDiff(ast, proposal, generator, errors) {
209
200
  try {
210
- const ast = parse(proposal.kernExample);
211
- const actual = generator(ast).join('\n');
201
+ const actual = runGenerator(ast, generator).join('\n');
212
202
  const match = compareGoldenOutput(actual, proposal.expectedOutput);
213
203
  if (!match) {
214
204
  errors.push('Golden diff mismatch: codegen output differs from expectedOutput');
@@ -220,34 +210,5 @@ function validateGoldenDiff(proposal, generator, errors) {
220
210
  errors.push(`Golden diff failed: ${err.message}`);
221
211
  return false;
222
212
  }
223
- finally {
224
- if (proposal.parserHints) {
225
- unregisterParserHints(proposal.keyword);
226
- }
227
- }
228
- }
229
- /**
230
- * Wrap raw generator source as CommonJS for the sandbox.
231
- * Handles both "export default function..." and plain "function generate..." patterns.
232
- */
233
- function wrapAsCommonJS(source) {
234
- // Already CommonJS
235
- if (source.includes('module.exports'))
236
- return source;
237
- // ES module: export default function(node, helpers) { ... }
238
- let wrapped = source
239
- .replace(/^export\s+default\s+/m, 'module.exports = ')
240
- .replace(/^export\s+function\s+(\w+)/m, 'module.exports = function $1');
241
- // If still no module.exports, wrap the whole thing
242
- if (!wrapped.includes('module.exports')) {
243
- wrapped = `module.exports = ${wrapped}`;
244
- }
245
- // Strip TypeScript type annotations for the sandbox (runs as JS)
246
- wrapped = wrapped
247
- .replace(/:\s*IRNode/g, '')
248
- .replace(/:\s*string\[\]/g, '')
249
- .replace(/:\s*CodegenHelpers/g, '')
250
- .replace(/import\s+.*?from\s+['"].*?['"];?\n?/g, '');
251
- return wrapped;
252
213
  }
253
214
  //# sourceMappingURL=evolve-validator-v4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"evolve-validator-v4.js","sourceRoot":"","sources":["../src/evolve-validator-v4.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evolve-validator-v4.js","sourceRoot":"","sources":["../src/evolve-validator-v4.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kernlang/evolve",
3
- "version": "3.1.4",
3
+ "version": "3.1.6",
4
4
  "description": "Kern Evolve — self-extending template system: detect gaps, propose templates, validate, stage",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -25,11 +25,11 @@
25
25
  "license": "AGPL-3.0",
26
26
  "dependencies": {
27
27
  "ts-morph": "^27.0.0",
28
- "@kernlang/core": "3.1.4",
29
- "@kernlang/review": "3.1.4"
28
+ "@kernlang/core": "3.1.6",
29
+ "@kernlang/review": "3.1.6"
30
30
  },
31
31
  "scripts": {
32
32
  "build": "tsc -b",
33
- "test": "node --experimental-vm-modules ../../node_modules/jest/bin/jest.js --forceExit --config jest.config.js"
33
+ "test": "node --experimental-vm-modules ../../node_modules/jest/bin/jest.js --config jest.config.js"
34
34
  }
35
35
  }