@devflow-tools/context-engine 0.17.7 → 0.18.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 (100) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2 -2
  3. package/dist/code-evidence-producer.d.ts +29 -0
  4. package/dist/code-evidence-producer.d.ts.map +1 -0
  5. package/dist/code-evidence-producer.js +522 -0
  6. package/dist/code-evidence-producer.js.map +1 -0
  7. package/dist/code-evidence-types.d.ts +26 -0
  8. package/dist/code-evidence-types.d.ts.map +1 -0
  9. package/dist/code-evidence-types.js +2 -0
  10. package/dist/code-evidence-types.js.map +1 -0
  11. package/dist/compressor.d.ts.map +1 -1
  12. package/dist/compressor.js +2 -3
  13. package/dist/compressor.js.map +1 -1
  14. package/dist/context-budget-allocator.d.ts +5 -1
  15. package/dist/context-budget-allocator.d.ts.map +1 -1
  16. package/dist/context-budget-allocator.js +25 -3
  17. package/dist/context-budget-allocator.js.map +1 -1
  18. package/dist/context-engine.d.ts +19 -43
  19. package/dist/context-engine.d.ts.map +1 -1
  20. package/dist/context-engine.js +203 -1702
  21. package/dist/context-engine.js.map +1 -1
  22. package/dist/create-engines.d.ts +15 -19
  23. package/dist/create-engines.d.ts.map +1 -1
  24. package/dist/create-engines.js +39 -106
  25. package/dist/create-engines.js.map +1 -1
  26. package/dist/index.d.ts +7 -22
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +5 -15
  29. package/dist/index.js.map +1 -1
  30. package/dist/symbol-embedder.d.ts +1 -1
  31. package/dist/symbol-embedder.d.ts.map +1 -1
  32. package/dist/symbol-embedder.js +17 -12
  33. package/dist/symbol-embedder.js.map +1 -1
  34. package/dist/symbol-embedding-document.d.ts +4 -0
  35. package/dist/symbol-embedding-document.d.ts.map +1 -0
  36. package/dist/symbol-embedding-document.js +39 -0
  37. package/dist/symbol-embedding-document.js.map +1 -0
  38. package/dist/symbol-vector-store.d.ts +13 -1
  39. package/dist/symbol-vector-store.d.ts.map +1 -1
  40. package/dist/symbol-vector-store.js +45 -16
  41. package/dist/symbol-vector-store.js.map +1 -1
  42. package/dist/types.d.ts +1 -0
  43. package/dist/types.d.ts.map +1 -1
  44. package/package.json +12 -9
  45. package/dist/artifact-inventory.d.ts +0 -39
  46. package/dist/artifact-inventory.d.ts.map +0 -1
  47. package/dist/artifact-inventory.js +0 -224
  48. package/dist/artifact-inventory.js.map +0 -1
  49. package/dist/channel-query-planner.d.ts +0 -9
  50. package/dist/channel-query-planner.d.ts.map +0 -1
  51. package/dist/channel-query-planner.js +0 -92
  52. package/dist/channel-query-planner.js.map +0 -1
  53. package/dist/intent-parser.d.ts +0 -15
  54. package/dist/intent-parser.d.ts.map +0 -1
  55. package/dist/intent-parser.js +0 -388
  56. package/dist/intent-parser.js.map +0 -1
  57. package/dist/retrieval-gap-detector.d.ts +0 -10
  58. package/dist/retrieval-gap-detector.d.ts.map +0 -1
  59. package/dist/retrieval-gap-detector.js +0 -85
  60. package/dist/retrieval-gap-detector.js.map +0 -1
  61. package/dist/retrieval-handlers.d.ts +0 -73
  62. package/dist/retrieval-handlers.d.ts.map +0 -1
  63. package/dist/retrieval-handlers.js +0 -289
  64. package/dist/retrieval-handlers.js.map +0 -1
  65. package/dist/retrieval-ledger.d.ts +0 -3
  66. package/dist/retrieval-ledger.d.ts.map +0 -1
  67. package/dist/retrieval-ledger.js +0 -156
  68. package/dist/retrieval-ledger.js.map +0 -1
  69. package/dist/retrieval-session-controller.d.ts +0 -6
  70. package/dist/retrieval-session-controller.d.ts.map +0 -1
  71. package/dist/retrieval-session-controller.js +0 -372
  72. package/dist/retrieval-session-controller.js.map +0 -1
  73. package/dist/retrieval-task-plan.d.ts +0 -28
  74. package/dist/retrieval-task-plan.d.ts.map +0 -1
  75. package/dist/retrieval-task-plan.js +0 -232
  76. package/dist/retrieval-task-plan.js.map +0 -1
  77. package/dist/semantic-authority-merger.d.ts +0 -11
  78. package/dist/semantic-authority-merger.d.ts.map +0 -1
  79. package/dist/semantic-authority-merger.js +0 -176
  80. package/dist/semantic-authority-merger.js.map +0 -1
  81. package/dist/semantic-resolver.d.ts +0 -19
  82. package/dist/semantic-resolver.d.ts.map +0 -1
  83. package/dist/semantic-resolver.js +0 -49
  84. package/dist/semantic-resolver.js.map +0 -1
  85. package/dist/semantic-route-catalog.d.ts +0 -22
  86. package/dist/semantic-route-catalog.d.ts.map +0 -1
  87. package/dist/semantic-route-catalog.js +0 -53
  88. package/dist/semantic-route-catalog.js.map +0 -1
  89. package/dist/semantic-router.d.ts +0 -39
  90. package/dist/semantic-router.d.ts.map +0 -1
  91. package/dist/semantic-router.js +0 -153
  92. package/dist/semantic-router.js.map +0 -1
  93. package/dist/semantic-structural-evidence.d.ts +0 -20
  94. package/dist/semantic-structural-evidence.d.ts.map +0 -1
  95. package/dist/semantic-structural-evidence.js +0 -84
  96. package/dist/semantic-structural-evidence.js.map +0 -1
  97. package/dist/task-retrieval-orchestrator.d.ts +0 -46
  98. package/dist/task-retrieval-orchestrator.d.ts.map +0 -1
  99. package/dist/task-retrieval-orchestrator.js +0 -418
  100. package/dist/task-retrieval-orchestrator.js.map +0 -1
@@ -1,224 +0,0 @@
1
- import { extname, normalize } from 'node:path';
2
- import { emitSemanticControlLog } from '@devflow-tools/telemetry';
3
- import { expandQuery } from './intent-parser.js';
4
- import { artifactIdentity } from './artifact-identity-resolver.js';
5
- export function buildArtifactInventory(input) {
6
- const files = input.codegraph.getFiles().map(file => normalizeProjectPath(file.path));
7
- const indexedFiles = new Set(files);
8
- const explicitAnchors = [...new Set(input.explicitTargetAnchors.map(normalizeProjectPath).filter(Boolean))];
9
- const terms = artifactTerms(input.query, explicitAnchors);
10
- const requestedKinds = inferRequestedArtifactKinds(input.query);
11
- const candidates = new Map();
12
- for (const anchor of explicitAnchors) {
13
- const exact = resolveExplicitAnchor(anchor, files);
14
- if (exact) {
15
- setCandidate(candidates, inventoryEntry(input, exact, 'operation_target', 1, 'explicit_path', [
16
- `explicit target anchor resolved to ${exact}`,
17
- ]));
18
- continue;
19
- }
20
- const freshness = input.indexer.getFileFreshness(anchor);
21
- setCandidate(candidates, {
22
- identity: artifactIdentity(input.identity?.projectRoot ?? 'project:unknown', {
23
- path: anchor, kind: artifactKind(anchor), contentHash: freshness.currentHash,
24
- }),
25
- path: anchor,
26
- artifactRole: 'operation_target',
27
- score: 1,
28
- matchMode: 'missing_explicit_path',
29
- artifactKind: artifactKind(anchor),
30
- symbols: [],
31
- evidence: [`explicit target anchor ${anchor} does not resolve to a current project file`],
32
- freshness,
33
- });
34
- }
35
- for (const path of files) {
36
- if (!isInventoryFile(path))
37
- continue;
38
- const nodes = input.codegraph.getNodesInFile(path)
39
- .filter(node => node.kind !== 'file' && node.kind !== 'import');
40
- const symbols = [...new Set(nodes.map(node => String(node.name)).filter(Boolean))];
41
- const normalizedBase = normalizeIdentity(path.split('/').at(-1)?.replace(/\.[^.]+$/u, '') ?? '');
42
- const normalizedPath = normalizeIdentity(path);
43
- const symbolIdentities = symbols.map(normalizeIdentity);
44
- const exactName = terms.find(term => normalizedBase === term || symbolIdentities.includes(term));
45
- const partialName = terms.find(term => term.length >= 4
46
- && (normalizedBase.includes(term) || symbolIdentities.some(symbol => symbol.includes(term))));
47
- const routeMatch = artifactKind(path) === 'route' && terms.some(term => normalizedPath.includes(term));
48
- if (!exactName && !partialName && !routeMatch)
49
- continue;
50
- const kind = artifactKind(path);
51
- const kindAdjustment = requestedKinds.size === 0
52
- ? 0
53
- : requestedKinds.has(kind) ? 0.08
54
- : kind === 'route' || kind === 'source' || kind === 'module' ? -0.12 : -0.04;
55
- const score = clampScore((exactName ? 0.97 : routeMatch ? 0.91 : 0.88) + kindAdjustment);
56
- const mode = exactName
57
- ? symbolIdentities.includes(exactName) ? 'exported_symbol' : 'artifact_name'
58
- : routeMatch ? 'route_registration' : 'artifact_name';
59
- const strongArtifactMatch = score >= 0.88 && !isSupportOnlyPath(path)
60
- && (requestedKinds.size === 0 || requestedKinds.has(kind));
61
- const artifactRole = strongArtifactMatch
62
- ? 'operation_target'
63
- : 'supporting_file';
64
- setCandidate(candidates, inventoryEntry(input, path, artifactRole, score, mode, [
65
- `${mode} matched ${exactName ?? partialName ?? 'route'} in ${path}`,
66
- ], symbols));
67
- }
68
- const entries = [...candidates.values()]
69
- .filter(entry => entry.matchMode === 'missing_explicit_path' || entry.freshness.exists)
70
- .sort((left, right) => right.score - left.score || left.path.localeCompare(right.path));
71
- const explicitTargets = entries.filter(entry => entry.matchMode === 'explicit_path'
72
- || entry.matchMode === 'missing_explicit_path');
73
- let operationTargets = explicitTargets.length > 0
74
- ? explicitTargets
75
- : entries.filter(entry => entry.artifactRole === 'operation_target' && entry.score >= 0.88);
76
- if (operationTargets.length > 1 && explicitTargets.length === 0) {
77
- const top = operationTargets[0].score;
78
- operationTargets = operationTargets.filter(entry => top - entry.score <= 0.03).slice(0, 5);
79
- }
80
- else {
81
- operationTargets = operationTargets.slice(0, explicitTargets.length > 0 ? 16 : 3);
82
- }
83
- const operationPaths = new Set(operationTargets.map(entry => entry.path));
84
- for (const entry of entries) {
85
- if (!operationPaths.has(entry.path) && entry.artifactRole === 'operation_target') {
86
- entry.artifactRole = input.action === 'create' ? 'reference_pattern' : 'supporting_file';
87
- }
88
- }
89
- const ambiguous = explicitTargets.length === 0 && operationTargets.length > 1;
90
- const result = {
91
- entries: entries.slice(0, 40),
92
- operationTargets,
93
- missingExplicitTargets: entries.filter(entry => entry.matchMode === 'missing_explicit_path'),
94
- ambiguous,
95
- };
96
- if (input.identity) {
97
- try {
98
- emitSemanticControlLog({
99
- event: 'artifact.inventory.completed',
100
- identity: input.identity,
101
- level: result.missingExplicitTargets.length > 0 || ambiguous ? 'warn' : 'info',
102
- timestamp: Date.now(),
103
- data: {
104
- action: input.action,
105
- explicitAnchorCount: explicitAnchors.length,
106
- candidateCount: result.entries.length,
107
- operationTargets: operationTargets.map(entry => entry.path),
108
- missingExplicitTargets: result.missingExplicitTargets.map(entry => entry.path),
109
- ambiguous,
110
- },
111
- });
112
- }
113
- catch {
114
- // Inventory observability cannot alter context selection.
115
- }
116
- }
117
- return result;
118
- }
119
- function inventoryEntry(input, path, artifactRole, score, matchMode, evidence, symbols = []) {
120
- return {
121
- identity: artifactIdentity(input.identity?.projectRoot ?? 'project:unknown', {
122
- path, kind: artifactKind(path), symbols,
123
- contentHash: input.indexer.getFileFreshness(path).currentHash,
124
- }),
125
- path,
126
- artifactRole,
127
- score,
128
- matchMode,
129
- artifactKind: artifactKind(path),
130
- symbols,
131
- evidence,
132
- freshness: input.indexer.getFileFreshness(path),
133
- };
134
- }
135
- function setCandidate(candidates, candidate) {
136
- const existing = candidates.get(candidate.path);
137
- if (!existing || candidate.score > existing.score
138
- || candidate.matchMode === 'explicit_path' || candidate.matchMode === 'missing_explicit_path') {
139
- candidates.set(candidate.path, candidate);
140
- }
141
- }
142
- function resolveExplicitAnchor(anchor, files) {
143
- if (files.includes(anchor))
144
- return anchor;
145
- const caseInsensitive = files.filter(path => path.toLocaleLowerCase('en-US') === anchor.toLocaleLowerCase('en-US'));
146
- if (caseInsensitive.length === 1)
147
- return caseInsensitive[0];
148
- const withoutExtension = anchor.replace(/\.[^.]+$/u, '');
149
- const candidates = files.filter(path => path.replace(/\.[^.]+$/u, '') === withoutExtension
150
- || path.startsWith(`${withoutExtension}/index.`));
151
- return candidates.length === 1 ? candidates[0] : undefined;
152
- }
153
- function inferRequestedArtifactKinds(query) {
154
- const kinds = new Set();
155
- if (/component|组件/iu.test(query)) {
156
- kinds.add('component');
157
- kinds.add('page');
158
- }
159
- if (/\bpage\b|页面/iu.test(query)) {
160
- kinds.add('page');
161
- kinds.add('component');
162
- }
163
- if (/\broute\b|routing|路由/iu.test(query))
164
- kinds.add('route');
165
- if (/\bmodule\b|模块/iu.test(query))
166
- kinds.add('module');
167
- if (/\btests?\b|测试/iu.test(query))
168
- kinds.add('test');
169
- if (/\bconfig\b|配置/iu.test(query))
170
- kinds.add('config');
171
- return kinds;
172
- }
173
- function clampScore(value) {
174
- return Math.max(0, Math.min(1, value));
175
- }
176
- function artifactTerms(query, anchors) {
177
- const expanded = expandQuery(query, { segmentation: 'regex' });
178
- const normalized = expanded.normalize('NFKC').replace(/([a-z0-9])([A-Z])/gu, '$1 $2').toLocaleLowerCase('en-US');
179
- const raw = [
180
- ...(normalized.match(/[a-z_$][a-z0-9_$-]{2,}/gu) ?? []),
181
- ...(query.normalize('NFKC').match(/\p{Script=Han}{2,}/gu) ?? []),
182
- ...anchors.flatMap(anchor => anchor.split(/[/.\\_-]+/u)),
183
- ];
184
- const stop = new Set([
185
- 'component', 'components', 'page', 'pages', 'module', 'file', 'files', 'src',
186
- 'create', 'modify', 'update', 'build', 'review', 'analyze', 'performance',
187
- 'add', 'new', 'feature', 'implement', 'props', 'jsx', 'react', 'tsx',
188
- 'typescript', 'javascript', 'help', 'please', 'using', 'current', 'project',
189
- '组件', '页面', '模块', '文件', '路由', '测试', '配置', '创建', '生成',
190
- '修改', '分析', '实现', '项目', '符合', '一个', '当前',
191
- ]);
192
- return [...new Set(raw.map(normalizeIdentity).filter(term => (term.length >= 3 || /\p{Script=Han}{2,}/u.test(term)) && !stop.has(term)))];
193
- }
194
- function normalizeIdentity(value) {
195
- return value.normalize('NFKC').toLocaleLowerCase('en-US').replace(/[^\p{Letter}\p{Number}_$]+/gu, '');
196
- }
197
- function artifactKind(path) {
198
- if (/(?:^|\/)routes?(?:\/|\.)|\.route\.[cm]?[jt]sx?$/iu.test(path))
199
- return 'route';
200
- if (/(?:^|\/)pages?(?:\/|\.)|page\.[cm]?[jt]sx?$/iu.test(path))
201
- return 'page';
202
- if (/(?:^|\/)components?(?:\/|\.)|\.[jt]sx$/iu.test(path))
203
- return 'component';
204
- if (/\.(?:test|spec)\.[cm]?[jt]sx?$/iu.test(path))
205
- return 'test';
206
- if (/(?:^|\/)config|\.config\.[cm]?[jt]s$/iu.test(path))
207
- return 'config';
208
- if (/\.(?:css|scss|sass|less|svg|png|jpe?g|webp)$/iu.test(path))
209
- return 'resource';
210
- if (/(?:^|\/)modules?(?:\/|\.)/iu.test(path))
211
- return 'module';
212
- return 'source';
213
- }
214
- function isSupportOnlyPath(path) {
215
- return artifactKind(path) === 'test' || artifactKind(path) === 'config'
216
- || artifactKind(path) === 'resource';
217
- }
218
- function isInventoryFile(path) {
219
- return ['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs', '.mts', '.cts'].includes(extname(path).toLocaleLowerCase('en-US'));
220
- }
221
- function normalizeProjectPath(value) {
222
- return normalize(value).replaceAll('\\', '/').replace(/^\.\//u, '');
223
- }
224
- //# sourceMappingURL=artifact-inventory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"artifact-inventory.js","sourceRoot":"","sources":["../src/artifact-inventory.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { ChannelQueryPlan, ImmutableTaskIntentArtifact } from '@devflow-tools/sdk';
2
- import type { RetrievalTaskPlan } from './retrieval-task-plan.js';
3
- export declare function buildChannelQueryPlan(input: {
4
- artifact: ImmutableTaskIntentArtifact;
5
- taskPlan: RetrievalTaskPlan;
6
- expandedTerms?: string;
7
- generatedBy?: ChannelQueryPlan['generatedBy'];
8
- }): ChannelQueryPlan;
9
- //# sourceMappingURL=channel-query-planner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channel-query-planner.d.ts","sourceRoot":"","sources":["../src/channel-query-planner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAEhB,2BAA2B,EAG5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,QAAQ,EAAE,2BAA2B,CAAC;IACtC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;CAC/C,GAAG,gBAAgB,CA6CnB"}
@@ -1,92 +0,0 @@
1
- import { createHash } from 'node:crypto';
2
- export function buildChannelQueryPlan(input) {
3
- const authoritativeQuery = taskQuery(input.artifact);
4
- const expanded = boundedQuery(input.expandedTerms);
5
- const retrievalQuery = expanded ? `${authoritativeQuery} ${expanded}` : authoritativeQuery;
6
- const code = input.artifact.intent === 'memory'
7
- ? []
8
- : [{
9
- query: retrievalQuery,
10
- targetAnchors: [...input.artifact.targetAnchors],
11
- symbols: [...input.taskPlan.symbols],
12
- relationKinds: relationKinds(input.taskPlan),
13
- maxDepth: input.artifact.targetAnchors.length > 0 ? 1 : 2,
14
- }];
15
- const memory = [{
16
- query: authoritativeQuery,
17
- scopes: input.artifact.activeSkill ? ['project', 'skill', 'session'] : ['project', 'session'],
18
- entities: [...input.taskPlan.entities],
19
- facets: [...input.taskPlan.requiredPolicyFacets],
20
- requireVerifiedEvidence: true,
21
- }];
22
- const knowledge = input.taskPlan.knowledgeNeeds.length > 0
23
- ? input.taskPlan.knowledgeNeeds.map(need => ({
24
- query: queryForKnowledgeNeed(need, authoritativeQuery),
25
- requirement: need.required ? 'knowledge_required' : 'knowledge_optional',
26
- kind: need.kind,
27
- ...(need.entity ? { entity: need.entity } : {}),
28
- ...(need.symbol ? { symbol: need.symbol } : {}),
29
- ...(need.version ? { version: need.version } : {}),
30
- }))
31
- : [{
32
- query: '',
33
- requirement: 'knowledge_not_required',
34
- kind: 'overview',
35
- }];
36
- const createdAt = input.artifact.createdAt;
37
- const planBody = {
38
- identity: input.artifact.identity,
39
- sourceIntentHash: input.artifact.artifactHash,
40
- code,
41
- memory,
42
- knowledge,
43
- generatedBy: input.generatedBy ?? (expanded ? 'hybrid' : 'deterministic'),
44
- createdAt,
45
- };
46
- return { ...planBody, planHash: stableHash(planBody) };
47
- }
48
- function taskQuery(artifact) {
49
- const withoutCommand = artifact.command
50
- ? artifact.normalizedPrompt.replace(new RegExp(`^\\/${escapeRegExp(artifact.command)}\\b`, 'iu'), '').trim()
51
- : artifact.normalizedPrompt;
52
- return boundedQuery(withoutCommand) || boundedQuery(artifact.rawPrompt) || artifact.action;
53
- }
54
- function boundedQuery(value) {
55
- return value?.normalize('NFKC').replace(/\s+/gu, ' ').trim().slice(0, 2_000) ?? '';
56
- }
57
- function relationKinds(plan) {
58
- const kinds = new Set(['dependency']);
59
- if (['debug', 'modify', 'analyze'].includes(plan.action))
60
- kinds.add('caller');
61
- if (plan.intent === 'performance')
62
- kinds.add('caller');
63
- if (plan.action === 'create') {
64
- kinds.add('route');
65
- kinds.add('config');
66
- }
67
- if (plan.action === 'test')
68
- kinds.add('test');
69
- return [...kinds];
70
- }
71
- function queryForKnowledgeNeed(need, fallback) {
72
- return [need.entity, need.symbol, need.kind, need.version].filter(Boolean).join(' ') || fallback;
73
- }
74
- function stableHash(value) {
75
- return createHash('sha256').update(stableJson(value)).digest('hex');
76
- }
77
- function stableJson(value) {
78
- if (value === null || typeof value === 'string' || typeof value === 'boolean')
79
- return JSON.stringify(value);
80
- if (typeof value === 'number')
81
- return Number.isFinite(value) ? JSON.stringify(value) : 'null';
82
- if (Array.isArray(value))
83
- return `[${value.map(stableJson).join(',')}]`;
84
- if (!value || typeof value !== 'object')
85
- return JSON.stringify(String(value));
86
- const record = value;
87
- return `{${Object.keys(record).sort().map(key => `${JSON.stringify(key)}:${stableJson(record[key])}`).join(',')}}`;
88
- }
89
- function escapeRegExp(value) {
90
- return value.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
91
- }
92
- //# sourceMappingURL=channel-query-planner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channel-query-planner.js","sourceRoot":"","sources":["../src/channel-query-planner.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import type { IntentResult } from "./types.js";
2
- import { type TaskSemanticFrameV2 } from '@devflow-tools/sdk';
3
- export interface IntentParserOptions {
4
- segmentation?: 'hybrid' | 'regex';
5
- semanticFrame?: TaskSemanticFrameV2;
6
- }
7
- export declare function parseIntent(query: string, options?: IntentParserOptions): IntentResult;
8
- /**
9
- * Segment a Chinese query into terms using jieba, then look up each word
10
- * and consecutive bigrams in WORD_MAP for English expansions.
11
- *
12
- * Falls back to ZH_EN_REGEX when jieba is unavailable.
13
- */
14
- export declare function expandQuery(query: string, options?: IntentParserOptions): string;
15
- //# sourceMappingURL=intent-parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intent-parser.d.ts","sourceRoot":"","sources":["../src/intent-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAsC,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAsClG,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAClC,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,YAAY,CAiE1F;AAuPD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,MAAM,CAwDpF"}