@agentix-e/nl2spel 0.0.0 → 1.1.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.
Files changed (130) hide show
  1. package/README.md +69 -39
  2. package/dist/__tests__/auto-fixer.test.d.ts +2 -0
  3. package/dist/__tests__/auto-fixer.test.d.ts.map +1 -0
  4. package/dist/__tests__/auto-fixer.test.js +285 -0
  5. package/dist/__tests__/auto-fixer.test.js.map +1 -0
  6. package/dist/__tests__/chinese-number-parser.test.d.ts +2 -0
  7. package/dist/__tests__/chinese-number-parser.test.d.ts.map +1 -0
  8. package/dist/__tests__/chinese-number-parser.test.js +106 -0
  9. package/dist/__tests__/chinese-number-parser.test.js.map +1 -0
  10. package/dist/__tests__/context-extractor.test.d.ts +2 -0
  11. package/dist/__tests__/context-extractor.test.d.ts.map +1 -0
  12. package/dist/__tests__/context-extractor.test.js +347 -0
  13. package/dist/__tests__/context-extractor.test.js.map +1 -0
  14. package/dist/__tests__/coverage-gaps.test.d.ts +2 -0
  15. package/dist/__tests__/coverage-gaps.test.d.ts.map +1 -0
  16. package/dist/__tests__/coverage-gaps.test.js +578 -0
  17. package/dist/__tests__/coverage-gaps.test.js.map +1 -0
  18. package/dist/__tests__/intent-classifier.test.d.ts +2 -0
  19. package/dist/__tests__/intent-classifier.test.d.ts.map +1 -0
  20. package/dist/__tests__/intent-classifier.test.js +384 -0
  21. package/dist/__tests__/intent-classifier.test.js.map +1 -0
  22. package/dist/__tests__/nl2spel-engine.test.d.ts +2 -0
  23. package/dist/__tests__/nl2spel-engine.test.d.ts.map +1 -0
  24. package/dist/__tests__/nl2spel-engine.test.js +344 -0
  25. package/dist/__tests__/nl2spel-engine.test.js.map +1 -0
  26. package/dist/__tests__/pattern-matcher.test.d.ts +2 -0
  27. package/dist/__tests__/pattern-matcher.test.d.ts.map +1 -0
  28. package/dist/__tests__/pattern-matcher.test.js +754 -0
  29. package/dist/__tests__/pattern-matcher.test.js.map +1 -0
  30. package/dist/__tests__/prompt-builder.test.d.ts +2 -0
  31. package/dist/__tests__/prompt-builder.test.d.ts.map +1 -0
  32. package/dist/__tests__/prompt-builder.test.js +99 -0
  33. package/dist/__tests__/prompt-builder.test.js.map +1 -0
  34. package/dist/__tests__/provider-registry.test.d.ts +2 -0
  35. package/dist/__tests__/provider-registry.test.d.ts.map +1 -0
  36. package/dist/__tests__/provider-registry.test.js +240 -0
  37. package/dist/__tests__/provider-registry.test.js.map +1 -0
  38. package/dist/__tests__/schema-formatter.test.d.ts +2 -0
  39. package/dist/__tests__/schema-formatter.test.d.ts.map +1 -0
  40. package/dist/__tests__/schema-formatter.test.js +298 -0
  41. package/dist/__tests__/schema-formatter.test.js.map +1 -0
  42. package/dist/__tests__/self-correction-loop.test.d.ts +2 -0
  43. package/dist/__tests__/self-correction-loop.test.d.ts.map +1 -0
  44. package/dist/__tests__/self-correction-loop.test.js +253 -0
  45. package/dist/__tests__/self-correction-loop.test.js.map +1 -0
  46. package/dist/__tests__/strategy-router.test.d.ts +2 -0
  47. package/dist/__tests__/strategy-router.test.d.ts.map +1 -0
  48. package/dist/__tests__/strategy-router.test.js +493 -0
  49. package/dist/__tests__/strategy-router.test.js.map +1 -0
  50. package/dist/__tests__/template-engine.test.d.ts +2 -0
  51. package/dist/__tests__/template-engine.test.d.ts.map +1 -0
  52. package/dist/__tests__/template-engine.test.js +367 -0
  53. package/dist/__tests__/template-engine.test.js.map +1 -0
  54. package/dist/__tests__/validation-pipeline.test.d.ts +2 -0
  55. package/dist/__tests__/validation-pipeline.test.d.ts.map +1 -0
  56. package/dist/__tests__/validation-pipeline.test.js +262 -0
  57. package/dist/__tests__/validation-pipeline.test.js.map +1 -0
  58. package/dist/context/context-extractor.d.ts +82 -0
  59. package/dist/context/context-extractor.d.ts.map +1 -0
  60. package/dist/context/context-extractor.js +166 -0
  61. package/dist/context/context-extractor.js.map +1 -0
  62. package/dist/context/schema-formatter.d.ts +20 -0
  63. package/dist/context/schema-formatter.d.ts.map +1 -0
  64. package/dist/context/schema-formatter.js +104 -0
  65. package/dist/context/schema-formatter.js.map +1 -0
  66. package/dist/engine/nl2spel-engine.d.ts +145 -0
  67. package/dist/engine/nl2spel-engine.d.ts.map +1 -0
  68. package/dist/engine/nl2spel-engine.js +132 -0
  69. package/dist/engine/nl2spel-engine.js.map +1 -0
  70. package/dist/index.d.ts +28 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +24 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/pattern/builtin-patterns.d.ts +12 -0
  75. package/dist/pattern/builtin-patterns.d.ts.map +1 -0
  76. package/dist/pattern/builtin-patterns.js +812 -0
  77. package/dist/pattern/builtin-patterns.js.map +1 -0
  78. package/dist/pattern/pattern-definition.d.ts +49 -0
  79. package/dist/pattern/pattern-definition.d.ts.map +1 -0
  80. package/dist/pattern/pattern-definition.js +2 -0
  81. package/dist/pattern/pattern-definition.js.map +1 -0
  82. package/dist/pattern/pattern-matcher.d.ts +55 -0
  83. package/dist/pattern/pattern-matcher.d.ts.map +1 -0
  84. package/dist/pattern/pattern-matcher.js +216 -0
  85. package/dist/pattern/pattern-matcher.js.map +1 -0
  86. package/dist/provider/llm-provider.d.ts +146 -0
  87. package/dist/provider/llm-provider.d.ts.map +1 -0
  88. package/dist/provider/llm-provider.js +2 -0
  89. package/dist/provider/llm-provider.js.map +1 -0
  90. package/dist/provider/provider-registry.d.ts +28 -0
  91. package/dist/provider/provider-registry.d.ts.map +1 -0
  92. package/dist/provider/provider-registry.js +65 -0
  93. package/dist/provider/provider-registry.js.map +1 -0
  94. package/dist/strategy/strategy-router.d.ts +79 -0
  95. package/dist/strategy/strategy-router.d.ts.map +1 -0
  96. package/dist/strategy/strategy-router.js +182 -0
  97. package/dist/strategy/strategy-router.js.map +1 -0
  98. package/dist/template/intent-classifier.d.ts +56 -0
  99. package/dist/template/intent-classifier.d.ts.map +1 -0
  100. package/dist/template/intent-classifier.js +251 -0
  101. package/dist/template/intent-classifier.js.map +1 -0
  102. package/dist/template/nl-intent.d.ts +38 -0
  103. package/dist/template/nl-intent.d.ts.map +1 -0
  104. package/dist/template/nl-intent.js +39 -0
  105. package/dist/template/nl-intent.js.map +1 -0
  106. package/dist/template/prompts/prompt-builder.d.ts +20 -0
  107. package/dist/template/prompts/prompt-builder.d.ts.map +1 -0
  108. package/dist/template/prompts/prompt-builder.js +243 -0
  109. package/dist/template/prompts/prompt-builder.js.map +1 -0
  110. package/dist/template/template-engine.d.ts +27 -0
  111. package/dist/template/template-engine.d.ts.map +1 -0
  112. package/dist/template/template-engine.js +378 -0
  113. package/dist/template/template-engine.js.map +1 -0
  114. package/dist/utils/chinese-number-parser.d.ts +30 -0
  115. package/dist/utils/chinese-number-parser.d.ts.map +1 -0
  116. package/dist/utils/chinese-number-parser.js +92 -0
  117. package/dist/utils/chinese-number-parser.js.map +1 -0
  118. package/dist/validation/auto-fixer.d.ts +14 -0
  119. package/dist/validation/auto-fixer.d.ts.map +1 -0
  120. package/dist/validation/auto-fixer.js +111 -0
  121. package/dist/validation/auto-fixer.js.map +1 -0
  122. package/dist/validation/self-correction-loop.d.ts +46 -0
  123. package/dist/validation/self-correction-loop.d.ts.map +1 -0
  124. package/dist/validation/self-correction-loop.js +141 -0
  125. package/dist/validation/self-correction-loop.js.map +1 -0
  126. package/dist/validation/validation-pipeline.d.ts +81 -0
  127. package/dist/validation/validation-pipeline.d.ts.map +1 -0
  128. package/dist/validation/validation-pipeline.js +306 -0
  129. package/dist/validation/validation-pipeline.js.map +1 -0
  130. package/package.json +45 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-patterns.js","sourceRoot":"","sources":["../../src/pattern/builtin-patterns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Pattern definition — core data structures for Layer 0.
3
+ *
4
+ * Each PatternDefinition describes a mapping from natural language pattern to SpEL expression.
5
+ * Supports both Chinese and English languages.
6
+ */
7
+ export interface PatternDefinition {
8
+ /** Unique identifier */
9
+ id: string;
10
+ /**
11
+ * Match regex (at least one language)
12
+ * Uses named capture groups (?<slotName>...) to extract slots
13
+ */
14
+ match: RegExp;
15
+ /**
16
+ * SpEL template string
17
+ * Uses {slotName} placeholders to reference capture groups
18
+ */
19
+ spelTemplate: string;
20
+ /**
21
+ * Slot definitions (capture groups mapped to SpEL types)
22
+ */
23
+ slots: Record<string, SlotDefinition>;
24
+ /** Priority (0-100), higher priority matched first */
25
+ priority: number;
26
+ /** Tags (for classification and debugging) */
27
+ tags: string[];
28
+ /** Example input/output pairs */
29
+ examples: Array<{
30
+ nl: string;
31
+ spel: string;
32
+ }>;
33
+ /** Difficulty level */
34
+ difficulty: 'easy' | 'medium';
35
+ /** Confidence (0-1) */
36
+ confidence: number;
37
+ }
38
+ export interface SlotDefinition {
39
+ /** Key appearing in spelTemplate */
40
+ key: string;
41
+ /** SpEL value type: 'number' | 'string' | 'boolean' | 'variable' | 'literal' */
42
+ type: 'number' | 'string' | 'boolean' | 'variable' | 'literal';
43
+ /** Optional: value transformer (e.g. Chinese numbers → number) */
44
+ transform?: SlotTransform;
45
+ /** Optional: default value */
46
+ defaultValue?: string;
47
+ }
48
+ export type SlotTransform = 'toNumber' | 'toBoolean' | 'toString' | 'trim' | 'lowercase' | 'normalize';
49
+ //# sourceMappingURL=pattern-definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-definition.d.ts","sourceRoot":"","sources":["../../src/pattern/pattern-definition.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IAEX;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAEtC,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IAEjB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,EAAE,CAAC;IAEf,iCAAiC;IACjC,QAAQ,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IAEH,uBAAuB;IACvB,UAAU,EAAE,MAAM,GAAG,QAAQ,CAAC;IAE9B,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,gFAAgF;IAChF,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAC/D,kEAAkE;IAClE,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,aAAa,GACvB,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pattern-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-definition.js","sourceRoot":"","sources":["../../src/pattern/pattern-definition.ts"],"names":[],"mappings":""}
@@ -0,0 +1,55 @@
1
+ import type { PatternDefinition } from './pattern-definition.js';
2
+ export interface PatternMatchResult {
3
+ /** Whether matched */
4
+ matched: boolean;
5
+ /** The matching PatternDefinition */
6
+ pattern?: PatternDefinition;
7
+ /** Generated SpEL expression (if matched) */
8
+ spel?: string;
9
+ /** Confidence (0-1) */
10
+ confidence: number;
11
+ /** Match latency (ms) */
12
+ latencyMs: number;
13
+ /** Extracted slot values */
14
+ slots?: Record<string, string>;
15
+ }
16
+ /**
17
+ * PatternMatcher — Layer 0 pattern matching core.
18
+ */
19
+ export declare class PatternMatcher {
20
+ private _patterns;
21
+ constructor(patterns?: PatternDefinition[]);
22
+ get patternCount(): number;
23
+ register(pattern: PatternDefinition): void;
24
+ registerAll(patterns: PatternDefinition[]): void;
25
+ private sortByPriority;
26
+ /**
27
+ * Match natural language input, return the best match
28
+ */
29
+ match(nl: string): PatternMatchResult;
30
+ /**
31
+ * Batch match
32
+ */
33
+ matchAll(nl: string, maxResults?: number): PatternMatchResult[];
34
+ /**
35
+ * Input normalization
36
+ */
37
+ private normalize;
38
+ /**
39
+ * Infer SpEL root object name from Chinese input
40
+ */
41
+ private inferRoot;
42
+ /**
43
+ * Extract Chinese field names from input and map to SpEL fields
44
+ */
45
+ private extractChineseField;
46
+ /**
47
+ * Template filling and value transformation
48
+ */
49
+ private fillTemplate;
50
+ /**
51
+ * Infer SpEL field name from capture group
52
+ */
53
+ private inferFieldFromCapture;
54
+ }
55
+ //# sourceMappingURL=pattern-matcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-matcher.d.ts","sourceRoot":"","sources":["../../src/pattern/pattern-matcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,yBAAyB,CAAC;AAGjF,MAAM,WAAW,kBAAkB;IACjC,sBAAsB;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAsB;gBAE3B,QAAQ,GAAE,iBAAiB,EAAO;IAK9C,IAAW,YAAY,IAAI,MAAM,CAEhC;IAEM,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAK1C,WAAW,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAKvD,OAAO,CAAC,cAAc;IAItB;;OAEG;IACI,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB;IA2B5C;;OAEG;IACI,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,GAAE,MAAU,GAAG,kBAAkB,EAAE;IA8BzE;;OAEG;IACH,OAAO,CAAC,SAAS;IAQjB;;OAEG;IACH,OAAO,CAAC,SAAS;IASjB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8C3B;;OAEG;IACH,OAAO,CAAC,YAAY;IA+DpB;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAM9B"}
@@ -0,0 +1,216 @@
1
+ import { ChineseNumberParser } from '../utils/chinese-number-parser.js';
2
+ /**
3
+ * PatternMatcher — Layer 0 pattern matching core.
4
+ */
5
+ export class PatternMatcher {
6
+ _patterns;
7
+ constructor(patterns = []) {
8
+ this._patterns = [...patterns];
9
+ this.sortByPriority();
10
+ }
11
+ get patternCount() {
12
+ return this._patterns.length;
13
+ }
14
+ register(pattern) {
15
+ this._patterns.push(pattern);
16
+ this.sortByPriority();
17
+ }
18
+ registerAll(patterns) {
19
+ this._patterns.push(...patterns);
20
+ this.sortByPriority();
21
+ }
22
+ sortByPriority() {
23
+ this._patterns.sort((a, b) => b.priority - a.priority);
24
+ }
25
+ /**
26
+ * Match natural language input, return the best match
27
+ */
28
+ match(nl) {
29
+ const startTime = Date.now();
30
+ const normalized = this.normalize(nl);
31
+ for (const pattern of this._patterns) {
32
+ const matchResult = pattern.match.exec(normalized);
33
+ if (!matchResult)
34
+ continue;
35
+ const slots = {};
36
+ if (matchResult.groups) {
37
+ for (const [key, value] of Object.entries(matchResult.groups)) {
38
+ if (value !== undefined) {
39
+ slots[key] = value;
40
+ }
41
+ }
42
+ }
43
+ const spel = this.fillTemplate(pattern, slots, normalized, matchResult);
44
+ const latencyMs = Date.now() - startTime;
45
+ return { matched: true, pattern, spel, confidence: pattern.confidence, latencyMs, slots };
46
+ }
47
+ const latencyMs = Date.now() - startTime;
48
+ return { matched: false, confidence: 0, latencyMs };
49
+ }
50
+ /**
51
+ * Batch match
52
+ */
53
+ matchAll(nl, maxResults = 5) {
54
+ const normalized = this.normalize(nl);
55
+ const results = [];
56
+ for (const pattern of this._patterns) {
57
+ if (results.length >= maxResults)
58
+ break;
59
+ const matchResult = pattern.match.exec(normalized);
60
+ if (!matchResult)
61
+ continue;
62
+ const slots = {};
63
+ if (matchResult.groups) {
64
+ for (const [key, value] of Object.entries(matchResult.groups)) {
65
+ if (value !== undefined)
66
+ slots[key] = value;
67
+ }
68
+ }
69
+ results.push({
70
+ matched: true,
71
+ pattern,
72
+ spel: this.fillTemplate(pattern, slots, normalized, matchResult),
73
+ confidence: pattern.confidence,
74
+ latencyMs: 0,
75
+ slots,
76
+ });
77
+ }
78
+ return results;
79
+ }
80
+ /**
81
+ * Input normalization
82
+ */
83
+ normalize(input) {
84
+ return input
85
+ .trim()
86
+ .replace(/[\uFF01-\uFF5E]/g, ch => String.fromCharCode(ch.charCodeAt(0) - 0xfee0))
87
+ .replace(/\s+/g, ' ')
88
+ .replace(/[,,。.!!??;;::]+$/, '');
89
+ }
90
+ /**
91
+ * Infer SpEL root object name from Chinese input
92
+ */
93
+ inferRoot(input) {
94
+ if (/^(?:订单|order)/i.test(input))
95
+ return 'order';
96
+ if (/^(?:用户|user)/i.test(input))
97
+ return 'user';
98
+ if (/^(?:文件|file)/i.test(input))
99
+ return 'file';
100
+ if (/^(?:账号|account)/i.test(input))
101
+ return 'account';
102
+ if (/^(?:商品|product|item)/i.test(input))
103
+ return 'product';
104
+ return 'order';
105
+ }
106
+ /**
107
+ * Extract Chinese field names from input and map to SpEL fields
108
+ */
109
+ extractChineseField(input) {
110
+ // Extract first word chunk as field identifier
111
+ const m = input.match(/^[^\s,,、]+/);
112
+ if (!m)
113
+ return 'value';
114
+ const first = m[0];
115
+ // If input already contains a SpEL field name, return it directly
116
+ // Otherwise preserve the original word for template filling
117
+ // Common Chinese → English mapping
118
+ const cnMap = {
119
+ 备注: 'remark',
120
+ 说明: 'description',
121
+ 描述: 'description',
122
+ 金额: 'amount',
123
+ 数量: 'count',
124
+ 个数: 'count',
125
+ 状态: 'status',
126
+ 类型: 'type',
127
+ 名称: 'name',
128
+ 标题: 'title',
129
+ 地址: 'address',
130
+ 邮箱: 'email',
131
+ 手机: 'phone',
132
+ 电话: 'phone',
133
+ 日期: 'date',
134
+ 时间: 'time',
135
+ 年龄: 'age',
136
+ 价格: 'price',
137
+ 用户名: 'name',
138
+ 权限: 'role',
139
+ 标签: 'tags',
140
+ 列表: 'list',
141
+ 数组: 'items',
142
+ 文件: 'file',
143
+ 文件名: 'name',
144
+ 过期: 'expiryDate',
145
+ 创建: 'createdAt',
146
+ 有效: 'valid',
147
+ 活跃: 'active',
148
+ 激活: 'active',
149
+ };
150
+ return cnMap[first] ?? first;
151
+ }
152
+ /**
153
+ * Template filling and value transformation
154
+ */
155
+ fillTemplate(pattern, slots, originalInput, _matchResult) {
156
+ let result = pattern.spelTemplate;
157
+ const hasFieldSlot = 'field' in slots;
158
+ // field: prefer capture group 'field', otherwise infer from input
159
+ const field = hasFieldSlot
160
+ ? this.inferFieldFromCapture(slots['field'])
161
+ : this.extractChineseField(originalInput);
162
+ // root: infer from input
163
+ const root = this.inferRoot(originalInput);
164
+ result = result.replace(/\{field\}/g, field);
165
+ result = result.replace(/\{root\}/g, root);
166
+ // Replace operator placeholder {op}
167
+ if (originalInput.includes('>=') || originalInput.includes('≥')) {
168
+ result = result.replace(/\{op\}/g, '>=');
169
+ }
170
+ else if (originalInput.includes('<=') || originalInput.includes('≤')) {
171
+ result = result.replace(/\{op\}/g, '<=');
172
+ }
173
+ else if (originalInput.includes('!=') || originalInput.includes('≠')) {
174
+ result = result.replace(/\{op\}/g, '!=');
175
+ }
176
+ else if (originalInput.includes('>') ||
177
+ originalInput.includes('大于') ||
178
+ originalInput.includes('超过')) {
179
+ result = result.replace(/\{op\}/g, '>');
180
+ }
181
+ else if (originalInput.includes('<') ||
182
+ originalInput.includes('小于') ||
183
+ originalInput.includes('低于')) {
184
+ result = result.replace(/\{op\}/g, '<');
185
+ }
186
+ else {
187
+ result = result.replace(/\{op\}/g, '>');
188
+ }
189
+ // Replace specific slots
190
+ for (const [key, value] of Object.entries(slots)) {
191
+ if (key === 'field')
192
+ continue; // field already handled
193
+ const def = pattern.slots[key];
194
+ let transformedValue = value;
195
+ if (def?.transform === 'toNumber') {
196
+ const cnNumber = ChineseNumberParser.parseSafe(value);
197
+ transformedValue = cnNumber !== null ? String(cnNumber) : value;
198
+ }
199
+ result = result.replace(`{${key}}`, transformedValue ?? '');
200
+ }
201
+ // Clean up unfilled placeholders
202
+ result = result.replace(/\{[a-zA-Z_]+\}/g, '');
203
+ return result.trim();
204
+ }
205
+ /**
206
+ * Infer SpEL field name from capture group
207
+ */
208
+ inferFieldFromCapture(captured) {
209
+ // If already an English identifier, return as-is
210
+ if (/^[a-zA-Z_]\w*$/.test(captured))
211
+ return captured;
212
+ // Chinese, attempt mapping
213
+ return this.extractChineseField(captured);
214
+ }
215
+ }
216
+ //# sourceMappingURL=pattern-matcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-matcher.js","sourceRoot":"","sources":["../../src/pattern/pattern-matcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ import type { ContextSchema } from '@agentix-e/spel-ts';
2
+ /**
3
+ * LLMProvider interface — NL2Spel's pluggable LLM contract.
4
+ *
5
+ * Design principles:
6
+ * 1. Minimal interface: only exposes generate + generateStream + lifecycle
7
+ * 2. Capability declaration: capabilities let StrategyRouter make routing decisions
8
+ * 3. Async lifecycle: supports Providers that need init/dispose (e.g. WebLLM)
9
+ * 4. Stream support: optional generateStream for progressive generation
10
+ */
11
+ export interface LLMProvider {
12
+ /** Provider unique name, used for logging/debugging/Provider selection */
13
+ readonly name: string;
14
+ /** Provider capability declaration */
15
+ readonly capabilities: LLMCapabilities;
16
+ /**
17
+ * Generate a SpEL expression (core method)
18
+ */
19
+ generate(prompt: LLMPrompt, options?: LLMGenerateOptions): Promise<LLMResponse>;
20
+ /**
21
+ * Stream generate a SpEL expression (optional implementation)
22
+ */
23
+ generateStream?(prompt: LLMPrompt, options?: LLMGenerateOptions): AsyncIterable<LLMStreamChunk>;
24
+ /**
25
+ * Check if the Provider is currently available
26
+ */
27
+ isAvailable(): Promise<boolean>;
28
+ /**
29
+ * Initialize the Provider (optional)
30
+ */
31
+ initialize?(): Promise<void>;
32
+ /**
33
+ * Release Provider resources (optional)
34
+ */
35
+ dispose?(): Promise<void>;
36
+ }
37
+ /**
38
+ * LLMProvider capability declaration.
39
+ */
40
+ export interface LLMCapabilities {
41
+ /** Maximum context window (tokens) */
42
+ maxContextTokens: number;
43
+ /** Whether Grammar Constraint (GBNF, etc.) is supported */
44
+ supportsGrammarConstraint: boolean;
45
+ /** Whether streaming output is supported */
46
+ supportsStreaming: boolean;
47
+ /** Whether Structured Output (JSON mode) is supported */
48
+ supportsStructuredOutput: boolean;
49
+ /** Whether available offline */
50
+ offlineAvailable: boolean;
51
+ /**
52
+ * Estimated cost per request (USD)
53
+ */
54
+ estimatedCostPerRequest?: number;
55
+ /** Estimated latency (ms) */
56
+ estimatedLatencyMs: number;
57
+ }
58
+ /**
59
+ * Standardized LLM Prompt structure.
60
+ */
61
+ export interface LLMPrompt {
62
+ /** System prompt */
63
+ system: string;
64
+ /** User input */
65
+ user: string;
66
+ /** Context Schema */
67
+ contextSchema: ContextSchema;
68
+ /** Few-Shot example list */
69
+ examples: FewShotExample[];
70
+ /** Grammar constraint string (GBNF format) */
71
+ grammar?: string;
72
+ }
73
+ /**
74
+ * Few-Shot example
75
+ */
76
+ export interface FewShotExample {
77
+ /** Natural language input */
78
+ nl: string;
79
+ /** Expected SpEL expression */
80
+ spel: string;
81
+ /** Difficulty level */
82
+ difficulty: 'easy' | 'medium' | 'hard';
83
+ /** Category */
84
+ category: string;
85
+ }
86
+ /**
87
+ * LLM generation options
88
+ */
89
+ export interface LLMGenerateOptions {
90
+ /** Temperature (0-2), default 0.1 */
91
+ temperature?: number;
92
+ /** Maximum output tokens */
93
+ maxTokens?: number;
94
+ /** Top-p sampling */
95
+ topP?: number;
96
+ /** Stop sequences */
97
+ stopSequences?: string[];
98
+ /** Whether to enable stream */
99
+ stream?: boolean;
100
+ /** Custom model override */
101
+ model?: string;
102
+ /** Timeout (ms), default 30000 */
103
+ timeout?: number;
104
+ /** Maximum retry count */
105
+ maxRetries?: number;
106
+ }
107
+ /**
108
+ * LLM generation response
109
+ */
110
+ export interface LLMResponse {
111
+ /** Raw generated text */
112
+ text: string;
113
+ /** Actual model used */
114
+ model: string;
115
+ /** Token usage statistics */
116
+ usage: LLMUsage;
117
+ /** Generation latency (ms) */
118
+ latencyMs: number;
119
+ /** Finish reason */
120
+ finishReason: 'stop' | 'length' | 'content_filter' | 'error';
121
+ /** Provider name */
122
+ providerName: string;
123
+ }
124
+ /**
125
+ * LLM Stream Chunk
126
+ */
127
+ export interface LLMStreamChunk {
128
+ /** Delta text */
129
+ delta: string;
130
+ /** Accumulated text */
131
+ accumulated: string;
132
+ /** Whether done */
133
+ done: boolean;
134
+ /** Finish reason */
135
+ finishReason?: string;
136
+ }
137
+ /**
138
+ * Token usage statistics
139
+ */
140
+ export interface LLMUsage {
141
+ promptTokens: number;
142
+ completionTokens: number;
143
+ totalTokens: number;
144
+ }
145
+ export type { ContextSchema } from '@agentix-e/spel-ts';
146
+ //# sourceMappingURL=llm-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-provider.d.ts","sourceRoot":"","sources":["../../src/provider/llm-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=llm-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-provider.js","sourceRoot":"","sources":["../../src/provider/llm-provider.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import type { LLMProvider } from './llm-provider.js';
2
+ /**
3
+ * ProviderRegistry — manages registered LLMProvider instances.
4
+ *
5
+ * Responsibilities:
6
+ * 1. Register/unregister Providers
7
+ * 2. Sort by priority (offline first > low latency > high accuracy)
8
+ * 3. Look up Providers by name (for forced selection)
9
+ */
10
+ export declare class ProviderRegistry {
11
+ private _providers;
12
+ /** Register a Provider */
13
+ register(provider: LLMProvider): void;
14
+ /** Unregister a Provider */
15
+ unregister(name: string): void;
16
+ /** Get a Provider by name */
17
+ get(name: string): LLMProvider | undefined;
18
+ /**
19
+ * Get available Providers sorted by priority.
20
+ * Sort rule: offline > low cost > low latency > high accuracy
21
+ */
22
+ getPrioritized(): Promise<LLMProvider[]>;
23
+ /** List all registered Providers */
24
+ list(): LLMProvider[];
25
+ /** Number of registered Providers */
26
+ get count(): number;
27
+ }
28
+ //# sourceMappingURL=provider-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-registry.d.ts","sourceRoot":"","sources":["../../src/provider/provider-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAAqB;IAEvC,0BAA0B;IACnB,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAO5C,4BAA4B;IACrB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrC,6BAA6B;IACtB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIjD;;;OAGG;IACU,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAuBrD,oCAAoC;IAC7B,IAAI,IAAI,WAAW,EAAE;IAI5B,qCAAqC;IACrC,IAAW,KAAK,IAAI,MAAM,CAEzB;CACF"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * ProviderRegistry — manages registered LLMProvider instances.
3
+ *
4
+ * Responsibilities:
5
+ * 1. Register/unregister Providers
6
+ * 2. Sort by priority (offline first > low latency > high accuracy)
7
+ * 3. Look up Providers by name (for forced selection)
8
+ */
9
+ export class ProviderRegistry {
10
+ _providers = [];
11
+ /** Register a Provider */
12
+ register(provider) {
13
+ if (this._providers.some(p => p.name === provider.name)) {
14
+ throw new Error(`Provider '${provider.name}' already registered`);
15
+ }
16
+ this._providers.push(provider);
17
+ }
18
+ /** Unregister a Provider */
19
+ unregister(name) {
20
+ this._providers = this._providers.filter(p => p.name !== name);
21
+ }
22
+ /** Get a Provider by name */
23
+ get(name) {
24
+ return this._providers.find(p => p.name === name);
25
+ }
26
+ /**
27
+ * Get available Providers sorted by priority.
28
+ * Sort rule: offline > low cost > low latency > high accuracy
29
+ */
30
+ async getPrioritized() {
31
+ const available = [];
32
+ for (const p of this._providers) {
33
+ if (await p.isAvailable()) {
34
+ available.push(p);
35
+ }
36
+ }
37
+ return available.sort((a, b) => {
38
+ // 1. Offline first
39
+ const aOffline = a.capabilities.offlineAvailable;
40
+ const bOffline = b.capabilities.offlineAvailable;
41
+ if (aOffline && !bOffline)
42
+ return -1;
43
+ if (!aOffline && bOffline)
44
+ return 1;
45
+ // 2. Cheaper first
46
+ const costA = a.capabilities.estimatedCostPerRequest ?? Infinity;
47
+ const costB = b.capabilities.estimatedCostPerRequest ?? Infinity;
48
+ if (costA < costB)
49
+ return -1;
50
+ if (costB < costA)
51
+ return 1;
52
+ // 3. Lower latency first
53
+ return a.capabilities.estimatedLatencyMs - b.capabilities.estimatedLatencyMs;
54
+ });
55
+ }
56
+ /** List all registered Providers */
57
+ list() {
58
+ return [...this._providers];
59
+ }
60
+ /** Number of registered Providers */
61
+ get count() {
62
+ return this._providers.length;
63
+ }
64
+ }
65
+ //# sourceMappingURL=provider-registry.js.map