@agentix-e/nl2spel 1.1.0 → 1.1.2
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 +9 -3
- package/dist/context/schema-formatter.js +1 -1
- package/dist/context/schema-formatter.js.map +1 -1
- package/dist/engine/nl2spel-engine.d.ts.map +1 -1
- package/dist/engine/nl2spel-engine.js +2 -4
- package/dist/engine/nl2spel-engine.js.map +1 -1
- package/dist/pattern/builtin-patterns.d.ts +1 -1
- package/dist/pattern/builtin-patterns.js +2 -2
- package/dist/pattern/pattern-matcher.d.ts.map +1 -1
- package/dist/pattern/pattern-matcher.js +1 -1
- package/dist/pattern/pattern-matcher.js.map +1 -1
- package/dist/provider/provider-registry.js +3 -3
- package/dist/provider/provider-registry.js.map +1 -1
- package/dist/strategy/strategy-router.d.ts.map +1 -1
- package/dist/strategy/strategy-router.js +3 -3
- package/dist/strategy/strategy-router.js.map +1 -1
- package/dist/template/intent-classifier.js +1 -1
- package/dist/template/intent-classifier.js.map +1 -1
- package/dist/template/prompts/prompt-builder.js +3 -3
- package/dist/template/prompts/prompt-builder.js.map +1 -1
- package/dist/template/template-engine.js +3 -3
- package/dist/template/template-engine.js.map +1 -1
- package/dist/validation/auto-fixer.d.ts +0 -1
- package/dist/validation/auto-fixer.d.ts.map +1 -1
- package/dist/validation/auto-fixer.js +0 -1
- package/dist/validation/auto-fixer.js.map +1 -1
- package/dist/validation/self-correction-loop.d.ts.map +1 -1
- package/dist/validation/self-correction-loop.js +7 -16
- package/dist/validation/self-correction-loop.js.map +1 -1
- package/package.json +1 -1
- package/dist/__tests__/auto-fixer.test.d.ts +0 -2
- package/dist/__tests__/auto-fixer.test.d.ts.map +0 -1
- package/dist/__tests__/auto-fixer.test.js +0 -285
- package/dist/__tests__/auto-fixer.test.js.map +0 -1
- package/dist/__tests__/chinese-number-parser.test.d.ts +0 -2
- package/dist/__tests__/chinese-number-parser.test.d.ts.map +0 -1
- package/dist/__tests__/chinese-number-parser.test.js +0 -106
- package/dist/__tests__/chinese-number-parser.test.js.map +0 -1
- package/dist/__tests__/context-extractor.test.d.ts +0 -2
- package/dist/__tests__/context-extractor.test.d.ts.map +0 -1
- package/dist/__tests__/context-extractor.test.js +0 -347
- package/dist/__tests__/context-extractor.test.js.map +0 -1
- package/dist/__tests__/coverage-gaps.test.d.ts +0 -2
- package/dist/__tests__/coverage-gaps.test.d.ts.map +0 -1
- package/dist/__tests__/coverage-gaps.test.js +0 -578
- package/dist/__tests__/coverage-gaps.test.js.map +0 -1
- package/dist/__tests__/intent-classifier.test.d.ts +0 -2
- package/dist/__tests__/intent-classifier.test.d.ts.map +0 -1
- package/dist/__tests__/intent-classifier.test.js +0 -384
- package/dist/__tests__/intent-classifier.test.js.map +0 -1
- package/dist/__tests__/nl2spel-engine.test.d.ts +0 -2
- package/dist/__tests__/nl2spel-engine.test.d.ts.map +0 -1
- package/dist/__tests__/nl2spel-engine.test.js +0 -344
- package/dist/__tests__/nl2spel-engine.test.js.map +0 -1
- package/dist/__tests__/pattern-matcher.test.d.ts +0 -2
- package/dist/__tests__/pattern-matcher.test.d.ts.map +0 -1
- package/dist/__tests__/pattern-matcher.test.js +0 -754
- package/dist/__tests__/pattern-matcher.test.js.map +0 -1
- package/dist/__tests__/prompt-builder.test.d.ts +0 -2
- package/dist/__tests__/prompt-builder.test.d.ts.map +0 -1
- package/dist/__tests__/prompt-builder.test.js +0 -99
- package/dist/__tests__/prompt-builder.test.js.map +0 -1
- package/dist/__tests__/provider-registry.test.d.ts +0 -2
- package/dist/__tests__/provider-registry.test.d.ts.map +0 -1
- package/dist/__tests__/provider-registry.test.js +0 -240
- package/dist/__tests__/provider-registry.test.js.map +0 -1
- package/dist/__tests__/schema-formatter.test.d.ts +0 -2
- package/dist/__tests__/schema-formatter.test.d.ts.map +0 -1
- package/dist/__tests__/schema-formatter.test.js +0 -298
- package/dist/__tests__/schema-formatter.test.js.map +0 -1
- package/dist/__tests__/self-correction-loop.test.d.ts +0 -2
- package/dist/__tests__/self-correction-loop.test.d.ts.map +0 -1
- package/dist/__tests__/self-correction-loop.test.js +0 -253
- package/dist/__tests__/self-correction-loop.test.js.map +0 -1
- package/dist/__tests__/strategy-router.test.d.ts +0 -2
- package/dist/__tests__/strategy-router.test.d.ts.map +0 -1
- package/dist/__tests__/strategy-router.test.js +0 -493
- package/dist/__tests__/strategy-router.test.js.map +0 -1
- package/dist/__tests__/template-engine.test.d.ts +0 -2
- package/dist/__tests__/template-engine.test.d.ts.map +0 -1
- package/dist/__tests__/template-engine.test.js +0 -367
- package/dist/__tests__/template-engine.test.js.map +0 -1
- package/dist/__tests__/validation-pipeline.test.d.ts +0 -2
- package/dist/__tests__/validation-pipeline.test.d.ts.map +0 -1
- package/dist/__tests__/validation-pipeline.test.js +0 -262
- package/dist/__tests__/validation-pipeline.test.js.map +0 -1
|
@@ -1,367 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { TemplateEngine } from '../template/template-engine.js';
|
|
3
|
-
import { IntentClassifier } from '../template/intent-classifier.js';
|
|
4
|
-
import { NLIntent } from '../template/nl-intent.js';
|
|
5
|
-
const classifier = new IntentClassifier();
|
|
6
|
-
function createEngine(schema) {
|
|
7
|
-
return new TemplateEngine(schema);
|
|
8
|
-
}
|
|
9
|
-
const ORDER_SCHEMA = {
|
|
10
|
-
root: {
|
|
11
|
-
name: 'order',
|
|
12
|
-
type: 'Order',
|
|
13
|
-
fields: {
|
|
14
|
-
amount: { type: 'number', description: '订单金额' },
|
|
15
|
-
status: { type: 'string', description: '订单状态' },
|
|
16
|
-
remark: { type: 'string', description: '备注' },
|
|
17
|
-
paid: { type: 'boolean', description: '是否支付' },
|
|
18
|
-
items: { type: 'array', isCollection: true, elementType: 'object' },
|
|
19
|
-
tags: { type: 'array', isCollection: true, elementType: 'string' },
|
|
20
|
-
},
|
|
21
|
-
methods: {},
|
|
22
|
-
},
|
|
23
|
-
variables: { user: { type: 'object' } },
|
|
24
|
-
beans: {},
|
|
25
|
-
types: {},
|
|
26
|
-
functions: {},
|
|
27
|
-
};
|
|
28
|
-
describe('TemplateEngine', () => {
|
|
29
|
-
// ===== TE-G01: COMPARISON templates =====
|
|
30
|
-
describe('TE-G01: COMPARISON', () => {
|
|
31
|
-
it('金额大于1000', () => {
|
|
32
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
33
|
-
const intent = classifier.classify('金额大于1000');
|
|
34
|
-
const result = engine.generate('金额大于1000', intent);
|
|
35
|
-
expect(result).not.toBeNull();
|
|
36
|
-
expect(result.expression).toContain('>');
|
|
37
|
-
expect(result.intent).toBe(NLIntent.COMPARISON);
|
|
38
|
-
});
|
|
39
|
-
it('amount > 500', () => {
|
|
40
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
41
|
-
const intent = classifier.classify('amount > 500');
|
|
42
|
-
const result = engine.generate('amount > 500', intent);
|
|
43
|
-
expect(result).not.toBeNull();
|
|
44
|
-
expect(result.expression).toContain('>');
|
|
45
|
-
});
|
|
46
|
-
it('数量小于10', () => {
|
|
47
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
48
|
-
const intent = classifier.classify('数量小于10');
|
|
49
|
-
const result = engine.generate('数量小于10', intent);
|
|
50
|
-
expect(result).not.toBeNull();
|
|
51
|
-
expect(result.expression).toContain('<');
|
|
52
|
-
});
|
|
53
|
-
it('should include comparison operator', () => {
|
|
54
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
55
|
-
const intent = classifier.classify('金额大于等于200');
|
|
56
|
-
const result = engine.generate('金额大于等于200', intent);
|
|
57
|
-
expect(result).not.toBeNull();
|
|
58
|
-
expect(result.expression).toContain('>=');
|
|
59
|
-
});
|
|
60
|
-
it('should handle equals comparison', () => {
|
|
61
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
62
|
-
const intent = classifier.classify('金额等于100');
|
|
63
|
-
const result = engine.generate('金额等于100', intent);
|
|
64
|
-
expect(result).not.toBeNull();
|
|
65
|
-
expect(result.expression).toContain('==');
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
// ===== TE-G02: NULL_CHECK templates =====
|
|
69
|
-
describe('TE-G02: NULL_CHECK', () => {
|
|
70
|
-
it('备注为空 → null check', () => {
|
|
71
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
72
|
-
const intent = classifier.classify('备注为空');
|
|
73
|
-
const result = engine.generate('备注为空', intent);
|
|
74
|
-
expect(result).not.toBeNull();
|
|
75
|
-
expect(result.intent).toBe(NLIntent.NULL_CHECK);
|
|
76
|
-
expect(result.expression).toContain('null');
|
|
77
|
-
});
|
|
78
|
-
it('remark is null', () => {
|
|
79
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
80
|
-
const intent = classifier.classify('remark is null');
|
|
81
|
-
const result = engine.generate('remark is null', intent);
|
|
82
|
-
expect(result).not.toBeNull();
|
|
83
|
-
expect(result.expression).toContain('null');
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
// ===== TE-G03: PERMISSION templates =====
|
|
87
|
-
describe('TE-G03: PERMISSION', () => {
|
|
88
|
-
it('user has admin role', () => {
|
|
89
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
90
|
-
const intent = classifier.classify('user has admin role');
|
|
91
|
-
const result = engine.generate('user has admin role', intent);
|
|
92
|
-
expect(result).not.toBeNull();
|
|
93
|
-
expect(result.intent).toBe(NLIntent.PERMISSION_CHECK);
|
|
94
|
-
});
|
|
95
|
-
it('user can delete', () => {
|
|
96
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
97
|
-
const intent = classifier.classify('user can delete');
|
|
98
|
-
const result = engine.generate('user can delete', intent);
|
|
99
|
-
expect(result).not.toBeNull();
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
// ===== TE-G04: LOGICAL templates =====
|
|
103
|
-
describe('TE-G04: LOGICAL', () => {
|
|
104
|
-
it('金额大于100且已确认', () => {
|
|
105
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
106
|
-
const intent = classifier.classify('金额大于100且已确认');
|
|
107
|
-
const result = engine.generate('金额大于100且已确认', intent);
|
|
108
|
-
expect(result).not.toBeNull();
|
|
109
|
-
expect(result.intent).toBe(NLIntent.LOGICAL);
|
|
110
|
-
});
|
|
111
|
-
it('VIP or admin', () => {
|
|
112
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
113
|
-
const intent = classifier.classify('VIP or admin');
|
|
114
|
-
const result = engine.generate('VIP or admin', intent);
|
|
115
|
-
expect(result).not.toBeNull();
|
|
116
|
-
});
|
|
117
|
-
it('not cancelled', () => {
|
|
118
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
119
|
-
const intent = classifier.classify('not cancelled');
|
|
120
|
-
const result = engine.generate('not cancelled', intent);
|
|
121
|
-
expect(result).not.toBeNull();
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
// ===== TE-G05: STRING templates =====
|
|
125
|
-
describe('TE-G05: STRING', () => {
|
|
126
|
-
it('备注包含加急 → contains', () => {
|
|
127
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
128
|
-
const intent = classifier.classify('备注包含加急');
|
|
129
|
-
const result = engine.generate('备注包含加急', intent);
|
|
130
|
-
expect(result).not.toBeNull();
|
|
131
|
-
expect(result.intent).toBe(NLIntent.STRING_MATCH);
|
|
132
|
-
});
|
|
133
|
-
it('name contains test', () => {
|
|
134
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
135
|
-
const intent = classifier.classify('name contains test');
|
|
136
|
-
const result = engine.generate('name contains test', intent);
|
|
137
|
-
expect(result).not.toBeNull();
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
|
-
// ===== TE-G06: COLLECTION templates =====
|
|
141
|
-
describe('TE-G06: COLLECTION', () => {
|
|
142
|
-
it('订单列表为空 → isEmpty', () => {
|
|
143
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
144
|
-
const intent = classifier.classify('订单列表为空');
|
|
145
|
-
const result = engine.generate('订单列表为空', intent);
|
|
146
|
-
expect(result).not.toBeNull();
|
|
147
|
-
expect(result.expression).toContain('isEmpty');
|
|
148
|
-
});
|
|
149
|
-
it('items is empty', () => {
|
|
150
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
151
|
-
const intent = classifier.classify('items is empty');
|
|
152
|
-
const result = engine.generate('items is empty', intent);
|
|
153
|
-
expect(result).not.toBeNull();
|
|
154
|
-
});
|
|
155
|
-
it('列表不为空', () => {
|
|
156
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
157
|
-
const intent = classifier.classify('列表不为空');
|
|
158
|
-
const result = engine.generate('列表不为空', intent);
|
|
159
|
-
expect(result).not.toBeNull();
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
// ===== TE-G07: RANGE templates =====
|
|
163
|
-
describe('TE-G07: RANGE', () => {
|
|
164
|
-
it('年龄在18到60之间 → between', () => {
|
|
165
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
166
|
-
const intent = classifier.classify('年龄在18到60之间');
|
|
167
|
-
const result = engine.generate('年龄在18到60之间', intent);
|
|
168
|
-
expect(result).not.toBeNull();
|
|
169
|
-
expect(result.intent).toBe(NLIntent.RANGE);
|
|
170
|
-
});
|
|
171
|
-
it('amount between 100 and 500', () => {
|
|
172
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
173
|
-
const intent = classifier.classify('amount between 100 and 500');
|
|
174
|
-
const result = engine.generate('amount between 100 and 500', intent);
|
|
175
|
-
expect(result).not.toBeNull();
|
|
176
|
-
expect(result.expression).toContain('between');
|
|
177
|
-
});
|
|
178
|
-
});
|
|
179
|
-
// ===== TE-G08: SELECTION templates =====
|
|
180
|
-
describe('TE-G08: SELECTION', () => {
|
|
181
|
-
it('所有满足条件的 → selection', () => {
|
|
182
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
183
|
-
const intent = classifier.classify('所有满足条件的');
|
|
184
|
-
const result = engine.generate('所有满足条件的', intent);
|
|
185
|
-
expect(result).not.toBeNull();
|
|
186
|
-
});
|
|
187
|
-
it('filter matching items', () => {
|
|
188
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
189
|
-
const intent = classifier.classify('filter matching items');
|
|
190
|
-
const result = engine.generate('filter matching items', intent);
|
|
191
|
-
expect(result).not.toBeNull();
|
|
192
|
-
});
|
|
193
|
-
});
|
|
194
|
-
// ===== TE-G09: PROJECTION templates =====
|
|
195
|
-
describe('TE-G09: PROJECTION', () => {
|
|
196
|
-
it('每个项目的名称 → projection', () => {
|
|
197
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
198
|
-
const intent = classifier.classify('每个项目的名称');
|
|
199
|
-
const result = engine.generate('每个项目的名称', intent);
|
|
200
|
-
expect(result).not.toBeNull();
|
|
201
|
-
expect(result.intent).toBe(NLIntent.PROJECTION);
|
|
202
|
-
});
|
|
203
|
-
it('each item price', () => {
|
|
204
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
205
|
-
const intent = classifier.classify('each item price');
|
|
206
|
-
const result = engine.generate('each item price', intent);
|
|
207
|
-
expect(result).not.toBeNull();
|
|
208
|
-
});
|
|
209
|
-
});
|
|
210
|
-
// ===== TE-G10: Context injection =====
|
|
211
|
-
describe('TE-G10: Context Schema Injection', () => {
|
|
212
|
-
it('should use root name from context schema', () => {
|
|
213
|
-
const schema = {
|
|
214
|
-
root: { name: 'invoice', type: 'Invoice', fields: {}, methods: {} },
|
|
215
|
-
variables: {},
|
|
216
|
-
beans: {},
|
|
217
|
-
types: {},
|
|
218
|
-
functions: {},
|
|
219
|
-
};
|
|
220
|
-
const engine = createEngine(schema);
|
|
221
|
-
const intent = classifier.classify('金额大于100');
|
|
222
|
-
const result = engine.generate('金额大于100', intent);
|
|
223
|
-
expect(result).not.toBeNull();
|
|
224
|
-
expect(result.expression).toContain('#invoice');
|
|
225
|
-
});
|
|
226
|
-
it('should use default root name when no schema', () => {
|
|
227
|
-
const engine = createEngine();
|
|
228
|
-
const intent = classifier.classify('金额大于100');
|
|
229
|
-
const result = engine.generate('金额大于100', intent);
|
|
230
|
-
expect(result).not.toBeNull();
|
|
231
|
-
expect(result.expression).toContain('#order');
|
|
232
|
-
});
|
|
233
|
-
it('should match field names from context schema', () => {
|
|
234
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
235
|
-
const intent = classifier.classify('金额大于100');
|
|
236
|
-
const result = engine.generate('金额大于100', intent);
|
|
237
|
-
expect(result).not.toBeNull();
|
|
238
|
-
expect(result.expression).toContain('#order');
|
|
239
|
-
});
|
|
240
|
-
it('should detect user root for user-related input', () => {
|
|
241
|
-
const engine = createEngine();
|
|
242
|
-
const intent = classifier.classify('用户是VIP');
|
|
243
|
-
const result = engine.generate('用户是VIP', intent);
|
|
244
|
-
expect(result).not.toBeNull();
|
|
245
|
-
expect(result.expression).toContain('#user');
|
|
246
|
-
});
|
|
247
|
-
});
|
|
248
|
-
// ===== TE-G11: Unfilled slots =====
|
|
249
|
-
describe('TE-G11: Unfilled Slots', () => {
|
|
250
|
-
it('should report unfilled slots', () => {
|
|
251
|
-
const engine = createEngine();
|
|
252
|
-
// Force a template with slots that can't be filled
|
|
253
|
-
const intent = {
|
|
254
|
-
primaryIntent: NLIntent.SELECTION,
|
|
255
|
-
intents: [{ intent: NLIntent.SELECTION, confidence: 0.8 }],
|
|
256
|
-
entities: [],
|
|
257
|
-
operators: [],
|
|
258
|
-
logicalConnectors: [],
|
|
259
|
-
complexity: 40,
|
|
260
|
-
};
|
|
261
|
-
const result = engine.generate('选择', intent);
|
|
262
|
-
if (result) {
|
|
263
|
-
expect(result.unfilledSlots.length).toBeGreaterThanOrEqual(0);
|
|
264
|
-
}
|
|
265
|
-
});
|
|
266
|
-
it('should mark unfilled slots in expression', () => {
|
|
267
|
-
const engine = createEngine();
|
|
268
|
-
const intent = {
|
|
269
|
-
primaryIntent: NLIntent.SELECTION,
|
|
270
|
-
intents: [{ intent: NLIntent.SELECTION, confidence: 0.8 }],
|
|
271
|
-
entities: [],
|
|
272
|
-
operators: [],
|
|
273
|
-
logicalConnectors: [],
|
|
274
|
-
complexity: 40,
|
|
275
|
-
};
|
|
276
|
-
const result = engine.generate('选择所有', intent);
|
|
277
|
-
if (result && result.unfilledSlots.length > 0) {
|
|
278
|
-
expect(result.expression).toContain('${');
|
|
279
|
-
}
|
|
280
|
-
});
|
|
281
|
-
});
|
|
282
|
-
// ===== TE-G11.5: String entity filling =====
|
|
283
|
-
describe('TE-G11.5: String entity filling', () => {
|
|
284
|
-
it('should fill substring slot from string entities (STR-CONTAINS)', () => {
|
|
285
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
286
|
-
const intent = {
|
|
287
|
-
primaryIntent: NLIntent.STRING_MATCH,
|
|
288
|
-
intents: [{ intent: NLIntent.STRING_MATCH, confidence: 0.9 }],
|
|
289
|
-
entities: [{ text: '加急', type: 'value', position: { start: 2, end: 4 } }],
|
|
290
|
-
operators: [],
|
|
291
|
-
logicalConnectors: [],
|
|
292
|
-
complexity: 20,
|
|
293
|
-
};
|
|
294
|
-
const result = engine.generate('备注包含加急', intent);
|
|
295
|
-
expect(result).not.toBeNull();
|
|
296
|
-
expect(result.expression).toContain('加急');
|
|
297
|
-
expect(result.unfilledSlots).toHaveLength(0);
|
|
298
|
-
});
|
|
299
|
-
it('should fill role slot from string entities (PERM-HAS_ROLE)', () => {
|
|
300
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
301
|
-
const intent = {
|
|
302
|
-
primaryIntent: NLIntent.PERMISSION_CHECK,
|
|
303
|
-
intents: [{ intent: NLIntent.PERMISSION_CHECK, confidence: 0.9 }],
|
|
304
|
-
entities: [{ text: 'admin', type: 'value', position: { start: 0, end: 5 } }],
|
|
305
|
-
operators: [],
|
|
306
|
-
logicalConnectors: [],
|
|
307
|
-
complexity: 10,
|
|
308
|
-
};
|
|
309
|
-
const result = engine.generate('has admin role', intent);
|
|
310
|
-
expect(result).not.toBeNull();
|
|
311
|
-
expect(result.expression).toContain("'admin'");
|
|
312
|
-
});
|
|
313
|
-
it('should fill typeName slot from string entities (TYPE-INSTANCEOF)', () => {
|
|
314
|
-
const engine = createEngine(ORDER_SCHEMA);
|
|
315
|
-
const intent = {
|
|
316
|
-
primaryIntent: NLIntent.TYPE_CHECK,
|
|
317
|
-
intents: [{ intent: NLIntent.TYPE_CHECK, confidence: 0.85 }],
|
|
318
|
-
entities: [{ text: 'Admin', type: 'value', position: { start: 11, end: 16 } }],
|
|
319
|
-
operators: [],
|
|
320
|
-
logicalConnectors: [],
|
|
321
|
-
complexity: 15,
|
|
322
|
-
};
|
|
323
|
-
const result = engine.generate('instanceof Admin', intent);
|
|
324
|
-
expect(result).not.toBeNull();
|
|
325
|
-
expect(result.expression).toContain('Admin');
|
|
326
|
-
});
|
|
327
|
-
});
|
|
328
|
-
// ===== TE-G12: End-to-end =====
|
|
329
|
-
describe('TE-G12: End-to-End', () => {
|
|
330
|
-
it('should return null for unsupported intent with no templates', () => {
|
|
331
|
-
const engine = createEngine();
|
|
332
|
-
// ELVIS without enough entities should still work
|
|
333
|
-
const intent = classifier.classify('默认值或者兜底');
|
|
334
|
-
const result = engine.generate('默认值或者兜底', intent);
|
|
335
|
-
// The ELVIS intent might or might not have enough entities
|
|
336
|
-
expect(result === null || result !== null).toBe(true);
|
|
337
|
-
});
|
|
338
|
-
it('hasRole template should work with permission intent', () => {
|
|
339
|
-
const engine = createEngine();
|
|
340
|
-
const intent = classifier.classify('has admin role');
|
|
341
|
-
const result = engine.generate('has admin role', intent);
|
|
342
|
-
expect(result).not.toBeNull();
|
|
343
|
-
});
|
|
344
|
-
it('date template should work with date intent', () => {
|
|
345
|
-
const engine = createEngine();
|
|
346
|
-
const intent = classifier.classify('date before 2025');
|
|
347
|
-
const result = engine.generate('date before 2025', intent);
|
|
348
|
-
expect(result).not.toBeNull();
|
|
349
|
-
expect(result.intent).toBe(NLIntent.DATE);
|
|
350
|
-
});
|
|
351
|
-
it('boolean template should work with boolean intent', () => {
|
|
352
|
-
const engine = createEngine();
|
|
353
|
-
const intent = classifier.classify('isVIP is true');
|
|
354
|
-
const result = engine.generate('isVIP is true', intent);
|
|
355
|
-
expect(result).not.toBeNull();
|
|
356
|
-
expect(result.intent).toBe(NLIntent.BOOLEAN);
|
|
357
|
-
});
|
|
358
|
-
it('type check template should work', () => {
|
|
359
|
-
const engine = createEngine();
|
|
360
|
-
const intent = classifier.classify('instanceof Admin');
|
|
361
|
-
const result = engine.generate('instanceof Admin', intent);
|
|
362
|
-
expect(result).not.toBeNull();
|
|
363
|
-
expect(result.intent).toBe(NLIntent.TYPE_CHECK);
|
|
364
|
-
});
|
|
365
|
-
});
|
|
366
|
-
});
|
|
367
|
-
//# sourceMappingURL=template-engine.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template-engine.test.js","sourceRoot":"","sources":["../../src/__tests__/template-engine.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validation-pipeline.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/validation-pipeline.test.ts"],"names":[],"mappings":""}
|