@agentix-e/nl2spel 1.2.1 → 1.3.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/README.md +3 -1
- package/dist/index.cjs +3062 -0
- package/dist/index.d.cts +917 -0
- package/dist/index.d.ts +917 -28
- package/dist/index.js +3021 -24
- package/package.json +18 -7
- package/dist/context/context-extractor.d.ts +0 -86
- package/dist/context/context-extractor.d.ts.map +0 -1
- package/dist/context/context-extractor.js +0 -181
- package/dist/context/context-extractor.js.map +0 -1
- package/dist/context/schema-formatter.d.ts +0 -20
- package/dist/context/schema-formatter.d.ts.map +0 -1
- package/dist/context/schema-formatter.js +0 -104
- package/dist/context/schema-formatter.js.map +0 -1
- package/dist/engine/nl2spel-engine.d.ts +0 -145
- package/dist/engine/nl2spel-engine.d.ts.map +0 -1
- package/dist/engine/nl2spel-engine.js +0 -130
- package/dist/engine/nl2spel-engine.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/pattern/builtin-patterns.d.ts +0 -12
- package/dist/pattern/builtin-patterns.d.ts.map +0 -1
- package/dist/pattern/builtin-patterns.js +0 -812
- package/dist/pattern/builtin-patterns.js.map +0 -1
- package/dist/pattern/pattern-definition.d.ts +0 -49
- package/dist/pattern/pattern-definition.d.ts.map +0 -1
- package/dist/pattern/pattern-definition.js +0 -2
- package/dist/pattern/pattern-definition.js.map +0 -1
- package/dist/pattern/pattern-matcher.d.ts +0 -55
- package/dist/pattern/pattern-matcher.d.ts.map +0 -1
- package/dist/pattern/pattern-matcher.js +0 -216
- package/dist/pattern/pattern-matcher.js.map +0 -1
- package/dist/provider/llm-provider.d.ts +0 -146
- package/dist/provider/llm-provider.d.ts.map +0 -1
- package/dist/provider/llm-provider.js +0 -2
- package/dist/provider/llm-provider.js.map +0 -1
- package/dist/provider/provider-registry.d.ts +0 -28
- package/dist/provider/provider-registry.d.ts.map +0 -1
- package/dist/provider/provider-registry.js +0 -65
- package/dist/provider/provider-registry.js.map +0 -1
- package/dist/strategy/strategy-router.d.ts +0 -79
- package/dist/strategy/strategy-router.d.ts.map +0 -1
- package/dist/strategy/strategy-router.js +0 -182
- package/dist/strategy/strategy-router.js.map +0 -1
- package/dist/template/intent-classifier.d.ts +0 -56
- package/dist/template/intent-classifier.d.ts.map +0 -1
- package/dist/template/intent-classifier.js +0 -251
- package/dist/template/intent-classifier.js.map +0 -1
- package/dist/template/nl-intent.d.ts +0 -38
- package/dist/template/nl-intent.d.ts.map +0 -1
- package/dist/template/nl-intent.js +0 -39
- package/dist/template/nl-intent.js.map +0 -1
- package/dist/template/prompts/prompt-builder.d.ts +0 -20
- package/dist/template/prompts/prompt-builder.d.ts.map +0 -1
- package/dist/template/prompts/prompt-builder.js +0 -243
- package/dist/template/prompts/prompt-builder.js.map +0 -1
- package/dist/template/template-engine.d.ts +0 -27
- package/dist/template/template-engine.d.ts.map +0 -1
- package/dist/template/template-engine.js +0 -378
- package/dist/template/template-engine.js.map +0 -1
- package/dist/utils/chinese-number-parser.d.ts +0 -30
- package/dist/utils/chinese-number-parser.d.ts.map +0 -1
- package/dist/utils/chinese-number-parser.js +0 -92
- package/dist/utils/chinese-number-parser.js.map +0 -1
- package/dist/validation/auto-fixer.d.ts +0 -13
- package/dist/validation/auto-fixer.d.ts.map +0 -1
- package/dist/validation/auto-fixer.js +0 -110
- package/dist/validation/auto-fixer.js.map +0 -1
- package/dist/validation/self-correction-loop.d.ts +0 -46
- package/dist/validation/self-correction-loop.d.ts.map +0 -1
- package/dist/validation/self-correction-loop.js +0 -132
- package/dist/validation/self-correction-loop.js.map +0 -1
- package/dist/validation/validation-pipeline.d.ts +0 -81
- package/dist/validation/validation-pipeline.d.ts.map +0 -1
- package/dist/validation/validation-pipeline.js +0 -306
- package/dist/validation/validation-pipeline.js.map +0 -1
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import type { LLMPrompt, LLMResponse } from '../provider/llm-provider.js';
|
|
2
|
-
import { ValidationPipeline } from './validation-pipeline.js';
|
|
3
|
-
import { AutoFixer } from './auto-fixer.js';
|
|
4
|
-
import type { ContextSchema } from '@agentix-e/spel-ts';
|
|
5
|
-
export interface SelfCorrectionResult {
|
|
6
|
-
/** Final expression */
|
|
7
|
-
expression: string;
|
|
8
|
-
/** Whether validation passed */
|
|
9
|
-
valid: boolean;
|
|
10
|
-
/** Original LLM output */
|
|
11
|
-
originalOutput: string;
|
|
12
|
-
/** Number of correction attempts */
|
|
13
|
-
correctionAttempts: number;
|
|
14
|
-
/** Log of each correction round */
|
|
15
|
-
corrections: CorrectionLog[];
|
|
16
|
-
/** Total latency (ms) */
|
|
17
|
-
totalLatencyMs: number;
|
|
18
|
-
}
|
|
19
|
-
export interface CorrectionLog {
|
|
20
|
-
attempt: number;
|
|
21
|
-
expression: string;
|
|
22
|
-
valid: boolean;
|
|
23
|
-
errorCount: number;
|
|
24
|
-
warningCount: number;
|
|
25
|
-
autoFixed: boolean;
|
|
26
|
-
autoFixChanges: string[];
|
|
27
|
-
}
|
|
28
|
-
export interface SelfCorrectionConfig {
|
|
29
|
-
/** Maximum correction attempts (default 3) */
|
|
30
|
-
maxAttempts?: number;
|
|
31
|
-
/** Minimum confidence threshold (default 0.7) */
|
|
32
|
-
minConfidence?: number;
|
|
33
|
-
/** Whether AutoFix is enabled (default true) */
|
|
34
|
-
enableAutoFix?: boolean;
|
|
35
|
-
}
|
|
36
|
-
export declare class SelfCorrectionLoop {
|
|
37
|
-
private readonly pipeline;
|
|
38
|
-
private readonly autoFixer;
|
|
39
|
-
private readonly config;
|
|
40
|
-
constructor(config?: SelfCorrectionConfig, pipeline?: ValidationPipeline, autoFixer?: AutoFixer);
|
|
41
|
-
/**
|
|
42
|
-
* Execute the self-correction loop
|
|
43
|
-
*/
|
|
44
|
-
correct(expression: string, contextSchema: ContextSchema, generateFn: (prompt: LLMPrompt) => Promise<LLMResponse>, originalPrompt: LLMPrompt): Promise<SelfCorrectionResult>;
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=self-correction-loop.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"self-correction-loop.d.ts","sourceRoot":"","sources":["../../src/validation/self-correction-loop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACnC,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IAEnB,gCAAgC;IAChC,KAAK,EAAE,OAAO,CAAC;IAEf,0BAA0B;IAC1B,cAAc,EAAE,MAAM,CAAC;IAEvB,oCAAoC;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAE3B,mCAAmC;IACnC,WAAW,EAAE,aAAa,EAAE,CAAC;IAE7B,yBAAyB;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;gBAG5C,MAAM,GAAE,oBAAyB,EACjC,QAAQ,CAAC,EAAE,kBAAkB,EAC7B,SAAS,CAAC,EAAE,SAAS;IAWvB;;OAEG;IACU,OAAO,CAClB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,WAAW,CAAC,EACvD,cAAc,EAAE,SAAS,GACxB,OAAO,CAAC,oBAAoB,CAAC;CA+HjC"}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import { ValidationPipeline } from './validation-pipeline.js';
|
|
2
|
-
import { AutoFixer } from './auto-fixer.js';
|
|
3
|
-
export class SelfCorrectionLoop {
|
|
4
|
-
pipeline;
|
|
5
|
-
autoFixer;
|
|
6
|
-
config;
|
|
7
|
-
constructor(config = {}, pipeline, autoFixer) {
|
|
8
|
-
this.config = {
|
|
9
|
-
maxAttempts: config.maxAttempts ?? 3,
|
|
10
|
-
minConfidence: config.minConfidence ?? 0.7,
|
|
11
|
-
enableAutoFix: config.enableAutoFix ?? true,
|
|
12
|
-
};
|
|
13
|
-
this.pipeline = pipeline ?? new ValidationPipeline();
|
|
14
|
-
this.autoFixer = autoFixer ?? new AutoFixer();
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Execute the self-correction loop
|
|
18
|
-
*/
|
|
19
|
-
async correct(expression, contextSchema, generateFn, originalPrompt) {
|
|
20
|
-
const startTime = Date.now();
|
|
21
|
-
const corrections = [];
|
|
22
|
-
let currentExpression = expression;
|
|
23
|
-
let valid = false;
|
|
24
|
-
// Attempt 0: directly validate original output
|
|
25
|
-
const initialResult = await this.pipeline.validate(currentExpression, contextSchema);
|
|
26
|
-
if (initialResult.valid) {
|
|
27
|
-
return {
|
|
28
|
-
expression: currentExpression,
|
|
29
|
-
valid: true,
|
|
30
|
-
originalOutput: expression,
|
|
31
|
-
correctionAttempts: 0,
|
|
32
|
-
corrections,
|
|
33
|
-
totalLatencyMs: Date.now() - startTime,
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
// Attempt 0.5: try AutoFix
|
|
37
|
-
if (this.config.enableAutoFix && initialResult.errors.length > 0) {
|
|
38
|
-
const autoFixResult = this.autoFixer.fix(currentExpression);
|
|
39
|
-
if (autoFixResult.wasFixed) {
|
|
40
|
-
currentExpression = autoFixResult.expression;
|
|
41
|
-
// Validate AutoFix result
|
|
42
|
-
const afterFix = await this.pipeline.validate(currentExpression, contextSchema);
|
|
43
|
-
corrections.push({
|
|
44
|
-
attempt: 0,
|
|
45
|
-
expression: currentExpression,
|
|
46
|
-
valid: afterFix.valid,
|
|
47
|
-
errorCount: afterFix.errors.length,
|
|
48
|
-
warningCount: afterFix.warnings.length,
|
|
49
|
-
autoFixed: true,
|
|
50
|
-
autoFixChanges: autoFixResult.changes,
|
|
51
|
-
});
|
|
52
|
-
if (afterFix.valid) {
|
|
53
|
-
return {
|
|
54
|
-
expression: currentExpression,
|
|
55
|
-
valid: true,
|
|
56
|
-
originalOutput: expression,
|
|
57
|
-
correctionAttempts: 1,
|
|
58
|
-
corrections,
|
|
59
|
-
totalLatencyMs: Date.now() - startTime,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
// AutoFix not sufficient, continue to LLM correction
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
// Attempts 1..N: LLM regeneration
|
|
66
|
-
for (let attempt = 1; attempt <= this.config.maxAttempts; attempt++) {
|
|
67
|
-
const lastValidation = await this.pipeline.validate(currentExpression, contextSchema);
|
|
68
|
-
// Build correction prompt
|
|
69
|
-
const errorDescriptions = lastValidation.errors
|
|
70
|
-
.map((e) => `- [${e.code}] ${e.message}`)
|
|
71
|
-
.join('\n');
|
|
72
|
-
const correctionPrompt = {
|
|
73
|
-
...originalPrompt,
|
|
74
|
-
user: [
|
|
75
|
-
originalPrompt.user,
|
|
76
|
-
'',
|
|
77
|
-
'---',
|
|
78
|
-
'The previous generated expression was INVALID. Please fix it:',
|
|
79
|
-
`Expression: ${currentExpression}`,
|
|
80
|
-
`Errors:\n${errorDescriptions}`,
|
|
81
|
-
'---',
|
|
82
|
-
'Generate ONLY the corrected SpEL expression, nothing else.',
|
|
83
|
-
].join('\n'),
|
|
84
|
-
};
|
|
85
|
-
try {
|
|
86
|
-
const response = await generateFn(correctionPrompt);
|
|
87
|
-
currentExpression = response.text.trim();
|
|
88
|
-
// Apply AutoFix again
|
|
89
|
-
if (this.config.enableAutoFix) {
|
|
90
|
-
const afResult = this.autoFixer.fix(currentExpression);
|
|
91
|
-
if (afResult.wasFixed) {
|
|
92
|
-
currentExpression = afResult.expression;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
const currentValidation = await this.pipeline.validate(currentExpression, contextSchema);
|
|
96
|
-
corrections.push({
|
|
97
|
-
attempt,
|
|
98
|
-
expression: currentExpression,
|
|
99
|
-
valid: currentValidation.valid,
|
|
100
|
-
errorCount: currentValidation.errors.length,
|
|
101
|
-
warningCount: currentValidation.warnings.length,
|
|
102
|
-
autoFixed: false,
|
|
103
|
-
autoFixChanges: [],
|
|
104
|
-
});
|
|
105
|
-
if (currentValidation.valid) {
|
|
106
|
-
valid = true;
|
|
107
|
-
break;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
catch (err) {
|
|
111
|
-
corrections.push({
|
|
112
|
-
attempt,
|
|
113
|
-
expression: currentExpression,
|
|
114
|
-
valid: false,
|
|
115
|
-
errorCount: 1,
|
|
116
|
-
warningCount: 0,
|
|
117
|
-
autoFixed: false,
|
|
118
|
-
autoFixChanges: [],
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
return {
|
|
123
|
-
expression: currentExpression,
|
|
124
|
-
valid,
|
|
125
|
-
originalOutput: expression,
|
|
126
|
-
correctionAttempts: corrections.filter((c) => c.attempt > 0).length,
|
|
127
|
-
corrections,
|
|
128
|
-
totalLatencyMs: Date.now() - startTime,
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
//# sourceMappingURL=self-correction-loop.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"self-correction-loop.js","sourceRoot":"","sources":["../../src/validation/self-correction-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import type { ContextSchema, SpelEvaluator } from '@agentix-e/spel-ts';
|
|
2
|
-
export interface ValidationResult {
|
|
3
|
-
/** Whether all validation stages passed */
|
|
4
|
-
valid: boolean;
|
|
5
|
-
/** Stage results */
|
|
6
|
-
stages: {
|
|
7
|
-
parse: StageResult;
|
|
8
|
-
type: StageResult;
|
|
9
|
-
semantic: StageResult;
|
|
10
|
-
context: StageResult;
|
|
11
|
-
};
|
|
12
|
-
/** All errors */
|
|
13
|
-
errors: ValidationError[];
|
|
14
|
-
/** All warnings */
|
|
15
|
-
warnings: ValidationWarning[];
|
|
16
|
-
}
|
|
17
|
-
export interface StageResult {
|
|
18
|
-
passed: boolean;
|
|
19
|
-
errors: ValidationError[];
|
|
20
|
-
warnings: ValidationWarning[];
|
|
21
|
-
}
|
|
22
|
-
export interface ValidationError {
|
|
23
|
-
code: string;
|
|
24
|
-
message: string;
|
|
25
|
-
/** Error position in expression */
|
|
26
|
-
position?: number;
|
|
27
|
-
/** Stage the error belongs to */
|
|
28
|
-
stage: 'parse' | 'type' | 'semantic' | 'context';
|
|
29
|
-
/** Whether LLM regeneration is needed */
|
|
30
|
-
requiresLLM?: boolean;
|
|
31
|
-
}
|
|
32
|
-
export interface ValidationWarning {
|
|
33
|
-
code: string;
|
|
34
|
-
message: string;
|
|
35
|
-
/** Warning position in expression */
|
|
36
|
-
position?: number;
|
|
37
|
-
/** Stage the warning belongs to */
|
|
38
|
-
stage: 'parse' | 'type' | 'semantic' | 'context';
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* ValidationPipeline — four-stage validation pipeline.
|
|
42
|
-
*
|
|
43
|
-
* 1. Parse: syntax validity (depends on SpelEvaluator)
|
|
44
|
-
* 2. Type: type checking (operator-operand type matching)
|
|
45
|
-
* 3. Semantic: semantic reasonableness (is the expression meaningful)
|
|
46
|
-
* 4. Context: context references (do all references exist in ContextSchema)
|
|
47
|
-
*/
|
|
48
|
-
export declare class ValidationPipeline {
|
|
49
|
-
private evaluator;
|
|
50
|
-
constructor(evaluator?: SpelEvaluator | null);
|
|
51
|
-
setEvaluator(evaluator: SpelEvaluator): void;
|
|
52
|
-
/**
|
|
53
|
-
* Run the full validation pipeline
|
|
54
|
-
*/
|
|
55
|
-
validate(expression: string, contextSchema?: ContextSchema): Promise<ValidationResult>;
|
|
56
|
-
/**
|
|
57
|
-
* Stage 1: Parse Check — syntax validation
|
|
58
|
-
*/
|
|
59
|
-
private validateParse;
|
|
60
|
-
/**
|
|
61
|
-
* Stage 2: Type Check — type validation
|
|
62
|
-
*/
|
|
63
|
-
private validateTypes;
|
|
64
|
-
/**
|
|
65
|
-
* Stage 3: Semantic Check — semantic reasonableness validation
|
|
66
|
-
*/
|
|
67
|
-
private validateSemantic;
|
|
68
|
-
/**
|
|
69
|
-
* Stage 4: Context Check — context reference validation
|
|
70
|
-
*/
|
|
71
|
-
private validateContext;
|
|
72
|
-
/**
|
|
73
|
-
* Check if parentheses are balanced
|
|
74
|
-
*/
|
|
75
|
-
private hasBalancedParentheses;
|
|
76
|
-
/**
|
|
77
|
-
* Extract all identifier references from expression
|
|
78
|
-
*/
|
|
79
|
-
private extractReferences;
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=validation-pipeline.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validation-pipeline.d.ts","sourceRoot":"","sources":["../../src/validation/validation-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMvE,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,KAAK,EAAE,OAAO,CAAC;IAEf,oBAAoB;IACpB,MAAM,EAAE;QACN,KAAK,EAAE,WAAW,CAAC;QACnB,IAAI,EAAE,WAAW,CAAC;QAClB,QAAQ,EAAE,WAAW,CAAC;QACtB,OAAO,EAAE,WAAW,CAAC;KACtB,CAAC;IAEF,iBAAiB;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;IAE1B,mBAAmB;IACnB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACjD,yCAAyC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;CAClD;AAMD;;;;;;;GAOG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAuB;gBAE5B,SAAS,GAAE,aAAa,GAAG,IAAW;IAI3C,YAAY,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI;IAInD;;OAEG;IACU,QAAQ,CACnB,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,gBAAgB,CAAC;IA0C5B;;OAEG;YACW,aAAa;IAsF3B;;OAEG;IACH,OAAO,CAAC,aAAa;IAyCrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8BxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAyEvB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAgB9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAoB1B"}
|
|
@@ -1,306 +0,0 @@
|
|
|
1
|
-
// ============================================================
|
|
2
|
-
// ValidationPipeline
|
|
3
|
-
// ============================================================
|
|
4
|
-
/**
|
|
5
|
-
* ValidationPipeline — four-stage validation pipeline.
|
|
6
|
-
*
|
|
7
|
-
* 1. Parse: syntax validity (depends on SpelEvaluator)
|
|
8
|
-
* 2. Type: type checking (operator-operand type matching)
|
|
9
|
-
* 3. Semantic: semantic reasonableness (is the expression meaningful)
|
|
10
|
-
* 4. Context: context references (do all references exist in ContextSchema)
|
|
11
|
-
*/
|
|
12
|
-
export class ValidationPipeline {
|
|
13
|
-
evaluator;
|
|
14
|
-
constructor(evaluator = null) {
|
|
15
|
-
this.evaluator = evaluator;
|
|
16
|
-
}
|
|
17
|
-
setEvaluator(evaluator) {
|
|
18
|
-
this.evaluator = evaluator;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Run the full validation pipeline
|
|
22
|
-
*/
|
|
23
|
-
async validate(expression, contextSchema) {
|
|
24
|
-
const errors = [];
|
|
25
|
-
const warnings = [];
|
|
26
|
-
// Stage 1: Parse Check
|
|
27
|
-
const parseStage = await this.validateParse(expression);
|
|
28
|
-
// Stage 2: Type Check
|
|
29
|
-
const typeStage = this.validateTypes(expression, contextSchema);
|
|
30
|
-
// Stage 3: Semantic Check
|
|
31
|
-
const semanticStage = this.validateSemantic(expression);
|
|
32
|
-
// Stage 4: Context Check
|
|
33
|
-
const contextStage = this.validateContext(expression, contextSchema);
|
|
34
|
-
errors.push(...parseStage.errors, ...typeStage.errors, ...semanticStage.errors, ...contextStage.errors);
|
|
35
|
-
warnings.push(...parseStage.warnings, ...typeStage.warnings, ...semanticStage.warnings, ...contextStage.warnings);
|
|
36
|
-
return {
|
|
37
|
-
valid: parseStage.passed && typeStage.passed && semanticStage.passed && contextStage.passed,
|
|
38
|
-
stages: {
|
|
39
|
-
parse: parseStage,
|
|
40
|
-
type: typeStage,
|
|
41
|
-
semantic: semanticStage,
|
|
42
|
-
context: contextStage,
|
|
43
|
-
},
|
|
44
|
-
errors,
|
|
45
|
-
warnings,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Stage 1: Parse Check — syntax validation
|
|
50
|
-
*/
|
|
51
|
-
async validateParse(expression) {
|
|
52
|
-
const errors = [];
|
|
53
|
-
const warnings = [];
|
|
54
|
-
// Basic empty expression check
|
|
55
|
-
if (!expression || expression.trim().length === 0) {
|
|
56
|
-
errors.push({
|
|
57
|
-
code: 'PARSE-EMPTY',
|
|
58
|
-
message: 'Expression is empty',
|
|
59
|
-
stage: 'parse',
|
|
60
|
-
requiresLLM: true,
|
|
61
|
-
});
|
|
62
|
-
return { passed: false, errors, warnings };
|
|
63
|
-
}
|
|
64
|
-
// Parentheses balance check
|
|
65
|
-
if (!this.hasBalancedParentheses(expression)) {
|
|
66
|
-
errors.push({
|
|
67
|
-
code: 'PARSE-UNBALANCED_PARENS',
|
|
68
|
-
message: 'Unbalanced parentheses in expression',
|
|
69
|
-
stage: 'parse',
|
|
70
|
-
requiresLLM: true,
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
// Illegal character check
|
|
74
|
-
if (expression.includes('===') || expression.includes('!==')) {
|
|
75
|
-
errors.push({
|
|
76
|
-
code: 'PARSE-JS_OPERATOR',
|
|
77
|
-
message: 'JavaScript operators detected (=== or !==), use == or != in SpEL',
|
|
78
|
-
stage: 'parse',
|
|
79
|
-
requiresLLM: true,
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
// Check for JS-style logical operators
|
|
83
|
-
if (expression.includes('&&')) {
|
|
84
|
-
errors.push({
|
|
85
|
-
code: 'PARSE-JS_LOGIC',
|
|
86
|
-
message: 'JavaScript && detected, use "and" in SpEL',
|
|
87
|
-
stage: 'parse',
|
|
88
|
-
requiresLLM: true,
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
if (expression.includes('||')) {
|
|
92
|
-
errors.push({
|
|
93
|
-
code: 'PARSE-JS_LOGIC',
|
|
94
|
-
message: 'JavaScript || detected, use "or" in SpEL',
|
|
95
|
-
stage: 'parse',
|
|
96
|
-
requiresLLM: true,
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
// If an evaluator is configured, perform actual syntax parsing
|
|
100
|
-
if (this.evaluator) {
|
|
101
|
-
try {
|
|
102
|
-
const parseResult = await this.evaluator.parse(expression);
|
|
103
|
-
if (!parseResult.valid) {
|
|
104
|
-
for (const pe of parseResult.errors) {
|
|
105
|
-
errors.push({
|
|
106
|
-
code: `PARSE-${pe.code ?? 'SYNTAX'}`,
|
|
107
|
-
message: pe.message,
|
|
108
|
-
position: pe.position,
|
|
109
|
-
stage: 'parse',
|
|
110
|
-
requiresLLM: true,
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
catch (err) {
|
|
116
|
-
errors.push({
|
|
117
|
-
code: 'PARSE-EXCEPTION',
|
|
118
|
-
message: `Parse threw exception: ${err.message}`,
|
|
119
|
-
stage: 'parse',
|
|
120
|
-
requiresLLM: true,
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
return {
|
|
125
|
-
passed: errors.length === 0,
|
|
126
|
-
errors,
|
|
127
|
-
warnings,
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Stage 2: Type Check — type validation
|
|
132
|
-
*/
|
|
133
|
-
validateTypes(expression, contextSchema) {
|
|
134
|
-
const errors = [];
|
|
135
|
-
const warnings = [];
|
|
136
|
-
// Check string vs number comparison (may require full ContextSchema support)
|
|
137
|
-
// Here we do basic heuristic checks
|
|
138
|
-
// Check if string literals are used with numeric operators
|
|
139
|
-
const strNumMismatch = /'(?:\\.|[^'\\])*'\s*(?:>|<|>=|<=)\s*\d+/;
|
|
140
|
-
if (strNumMismatch.test(expression)) {
|
|
141
|
-
warnings.push({
|
|
142
|
-
code: 'TYPE-STR_NUM_CMP',
|
|
143
|
-
message: 'String literal compared with number using arithmetic operator',
|
|
144
|
-
stage: 'type',
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
// If ContextSchema is provided, do deeper checks
|
|
148
|
-
if (contextSchema?.root) {
|
|
149
|
-
for (const [fieldName, field] of Object.entries(contextSchema.root.fields)) {
|
|
150
|
-
if (field.type === 'boolean') {
|
|
151
|
-
// Check boolean field compared with number
|
|
152
|
-
const boolNumPattern = new RegExp(`#\\w+\\.${fieldName}\\s*(?:>|<|>=|<=)\\s*\\d+`);
|
|
153
|
-
if (boolNumPattern.test(expression)) {
|
|
154
|
-
warnings.push({
|
|
155
|
-
code: 'TYPE-BOOL_NUM_CMP',
|
|
156
|
-
message: `Boolean field '${fieldName}' compared with number`,
|
|
157
|
-
stage: 'type',
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
return {
|
|
164
|
-
passed: errors.length === 0,
|
|
165
|
-
errors,
|
|
166
|
-
warnings,
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Stage 3: Semantic Check — semantic reasonableness validation
|
|
171
|
-
*/
|
|
172
|
-
validateSemantic(expression) {
|
|
173
|
-
const errors = [];
|
|
174
|
-
const warnings = [];
|
|
175
|
-
// Check for tautology/contradiction like `x == x`
|
|
176
|
-
const selfCompare = /(#\w+(?:\.\w+)*)\s*==\s*\1/;
|
|
177
|
-
if (selfCompare.test(expression)) {
|
|
178
|
-
warnings.push({
|
|
179
|
-
code: 'SEM-SELF_COMPARE',
|
|
180
|
-
message: 'Self-comparison detected: expression is always true',
|
|
181
|
-
stage: 'semantic',
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
// Check for double negation (`!!`)
|
|
185
|
-
if (expression.includes('!!')) {
|
|
186
|
-
warnings.push({
|
|
187
|
-
code: 'SEM-DOUBLE_NEGATION',
|
|
188
|
-
message: 'Double negation detected, consider simplifying',
|
|
189
|
-
stage: 'semantic',
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
return {
|
|
193
|
-
passed: errors.length === 0,
|
|
194
|
-
errors,
|
|
195
|
-
warnings,
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Stage 4: Context Check — context reference validation
|
|
200
|
-
*/
|
|
201
|
-
validateContext(expression, contextSchema) {
|
|
202
|
-
const errors = [];
|
|
203
|
-
const warnings = [];
|
|
204
|
-
if (!contextSchema) {
|
|
205
|
-
warnings.push({
|
|
206
|
-
code: 'CTX-NO_SCHEMA',
|
|
207
|
-
message: 'No ContextSchema provided, skipping context validation',
|
|
208
|
-
stage: 'context',
|
|
209
|
-
});
|
|
210
|
-
return { passed: true, errors, warnings };
|
|
211
|
-
}
|
|
212
|
-
// Extract all references from expression
|
|
213
|
-
const refs = this.extractReferences(expression);
|
|
214
|
-
// Validate root references
|
|
215
|
-
if (contextSchema.root) {
|
|
216
|
-
const rootName = contextSchema.root.name;
|
|
217
|
-
for (const ref of refs) {
|
|
218
|
-
if (ref.startsWith(`#${rootName}`)) {
|
|
219
|
-
const parts = ref.split('.');
|
|
220
|
-
const field = parts[1];
|
|
221
|
-
if (field && !(field in contextSchema.root.fields)) {
|
|
222
|
-
warnings.push({
|
|
223
|
-
code: 'CTX-UNKNOWN_FIELD',
|
|
224
|
-
message: `Field '${field}' not found in root '${rootName}'`,
|
|
225
|
-
stage: 'context',
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
// Validate variable references
|
|
232
|
-
for (const ref of refs) {
|
|
233
|
-
if (ref.startsWith('#') && !ref.includes('.')) {
|
|
234
|
-
const varName = ref.slice(1);
|
|
235
|
-
const isRoot = contextSchema.root?.name === varName;
|
|
236
|
-
const isVariable = varName in contextSchema.variables;
|
|
237
|
-
const isFunction = varName in contextSchema.functions;
|
|
238
|
-
if (!isRoot && !isVariable && !isFunction) {
|
|
239
|
-
warnings.push({
|
|
240
|
-
code: 'CTX-UNKNOWN_REF',
|
|
241
|
-
message: `Unknown reference '${ref}'`,
|
|
242
|
-
stage: 'context',
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
// Validate Bean references
|
|
248
|
-
const beanMatch = expression.match(/@(\w+)/g);
|
|
249
|
-
if (beanMatch && contextSchema.beans) {
|
|
250
|
-
for (const b of beanMatch) {
|
|
251
|
-
const beanName = b.slice(1);
|
|
252
|
-
if (!(beanName in contextSchema.beans)) {
|
|
253
|
-
warnings.push({
|
|
254
|
-
code: 'CTX-UNKNOWN_BEAN',
|
|
255
|
-
message: `Bean '${beanName}' not found in ContextSchema`,
|
|
256
|
-
stage: 'context',
|
|
257
|
-
});
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
return {
|
|
262
|
-
passed: errors.length === 0,
|
|
263
|
-
errors,
|
|
264
|
-
warnings,
|
|
265
|
-
};
|
|
266
|
-
}
|
|
267
|
-
/**
|
|
268
|
-
* Check if parentheses are balanced
|
|
269
|
-
*/
|
|
270
|
-
hasBalancedParentheses(expression) {
|
|
271
|
-
const stack = [];
|
|
272
|
-
const pairs = { '(': ')', '[': ']', '{': '}' };
|
|
273
|
-
for (const ch of expression) {
|
|
274
|
-
if (ch in pairs) {
|
|
275
|
-
stack.push(ch);
|
|
276
|
-
}
|
|
277
|
-
else if (ch === ')' || ch === ']' || ch === '}') {
|
|
278
|
-
const last = stack.pop();
|
|
279
|
-
if (!last || pairs[last] !== ch)
|
|
280
|
-
return false;
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
return stack.length === 0;
|
|
284
|
-
}
|
|
285
|
-
/**
|
|
286
|
-
* Extract all identifier references from expression
|
|
287
|
-
*/
|
|
288
|
-
extractReferences(expression) {
|
|
289
|
-
const refs = [];
|
|
290
|
-
// #root.field pattern
|
|
291
|
-
const varMatch = expression.matchAll(/#(\w+(?:\.\w+(?:\.\w+)?)?)/g);
|
|
292
|
-
for (const m of varMatch) {
|
|
293
|
-
refs.push(`#${m[1]}`);
|
|
294
|
-
}
|
|
295
|
-
// #variable pattern
|
|
296
|
-
const simpleMatch = expression.matchAll(/#(\w+)(?!\w*\()/g);
|
|
297
|
-
for (const m of simpleMatch) {
|
|
298
|
-
const ref = `#${m[1]}`;
|
|
299
|
-
if (!refs.includes(ref)) {
|
|
300
|
-
refs.push(ref);
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
return refs;
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
//# sourceMappingURL=validation-pipeline.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validation-pipeline.js","sourceRoot":"","sources":["../../src/validation/validation-pipeline.ts"],"names":[],"mappings":"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"}
|