@devflow-tools/context-engine 0.3.2 → 0.5.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 ADDED
@@ -0,0 +1,38 @@
1
+ # @devflow-tools/context-engine
2
+
3
+ Context engine for DevFlow — intelligently retrieves the most relevant code snippets for natural language queries.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @devflow-tools/context-engine
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```typescript
14
+ import { ContextEngine } from '@devflow-tools/context-engine';
15
+
16
+ const engine = new ContextEngine({ projectRoot: '/path/to/project' });
17
+ const context = await engine.buildContext('user authentication flow');
18
+ console.log(context.files);
19
+ ```
20
+
21
+ ## Features
22
+
23
+ - **Intent parsing** — extract keywords from natural language queries
24
+ - **Fuzzy search** — find relevant symbols even with partial matches
25
+ - **Multi-dimensional ranking** — combines dependency graph, memory, and knowledge signals
26
+ - **Token budget control** — compress results to fit context windows (fast/deep modes)
27
+
28
+ ## API
29
+
30
+ - `createEngines(projectRoot)` — initialize all engines (indexer, graph, context)
31
+ - `ContextEngine` — context building engine
32
+ - `parseIntent(query)` — parse user query into structured intent
33
+ - `fuzzySearch(query, symbols)` — fuzzy symbol search
34
+ - `compressToTokenLimit(text, limit)` — compress context to token budget
35
+
36
+ ## License
37
+
38
+ MIT
@@ -1 +1 @@
1
- {"version":3,"file":"context-engine.d.ts","sourceRoot":"","sources":["../src/context-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAEb,WAAW,EACX,aAAa,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAOzD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,SAAS,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,eAAe,CAAC;CAC5B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,SAAS,CAAkB;gBAEvB,IAAI,EAAE,iBAAiB;IAQ7B,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAqG5D,SAAS,IAAI,WAAW;CASzB"}
1
+ {"version":3,"file":"context-engine.d.ts","sourceRoot":"","sources":["../src/context-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAEb,WAAW,EACX,aAAa,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAyBzD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,SAAS,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,eAAe,CAAC;CAC5B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,SAAS,CAAkB;gBAEvB,IAAI,EAAE,iBAAiB;IAQ7B,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IA2H5D,SAAS,IAAI,WAAW;CASzB"}
@@ -1,7 +1,24 @@
1
1
  import CGModule from "@colbymchenry/codegraph";
2
2
  import { parseIntent, expandQuery } from "./intent-parser.js";
3
+ import { fuzzySearch, shouldFallback } from "./fuzzy-fallback.js";
3
4
  import { compressToTokenLimit } from "./compressor.js";
4
5
  const CG = CGModule.default ?? CGModule;
6
+ /**
7
+ * Merge the original query with L1 dict expansion and Agent-provided English terms.
8
+ * Deduplicates terms before sending to codegraph.
9
+ */
10
+ function mergeQueries(original, l1, agentTerms) {
11
+ const terms = new Set();
12
+ for (const q of [original, l1, agentTerms]) {
13
+ if (!q)
14
+ continue;
15
+ for (const w of q.split(/\s+/)) {
16
+ if (w.length >= 2)
17
+ terms.add(w.toLowerCase());
18
+ }
19
+ }
20
+ return [...terms].join(" ");
21
+ }
5
22
  export class ContextEngine {
6
23
  cg;
7
24
  data;
@@ -20,15 +37,34 @@ export class ContextEngine {
20
37
  }
21
38
  async build(request) {
22
39
  const maxTokens = request.maxTokens ?? 8000;
23
- const expandedQuery = expandQuery(request.query);
24
40
  const intent = parseIntent(request.query);
25
41
  const depth = request.mode === "deep" ? 3 : 2;
26
- // 1. CodeGraph semantic search + graph traversal (with expanded query for better matching)
27
- const cgResult = await this.cg.findRelevantContext(expandedQuery, {
42
+ // Layer 1: ZH_EN_MAP dict expansion (offline, ~5ms)
43
+ const l1Query = expandQuery(request.query);
44
+ // Merge: original query + L1 dict terms + Agent-provided English terms
45
+ const combinedQuery = mergeQueries(request.query, l1Query, request.expandedTerms);
46
+ // 1. CodeGraph semantic search + graph traversal
47
+ const cgResult = await this.cg.findRelevantContext(combinedQuery, {
28
48
  searchLimit: 10,
29
49
  traversalDepth: depth,
30
50
  maxNodes: request.mode === "deep" ? 30 : 15,
31
51
  });
52
+ // Layer 3: Fuzzy fallback if primary search returned low confidence or too few results
53
+ if (shouldFallback(cgResult.nodes.size, cgResult.confidence)) {
54
+ const fallbackTerms = fuzzySearch(this.cg, combinedQuery, 10);
55
+ // Run targeted searchNodes for each fallback term and merge into cgResult roots
56
+ for (const term of fallbackTerms) {
57
+ const hits = this.cg.searchNodes(term, { limit: 3 });
58
+ for (const hit of hits) {
59
+ if (!cgResult.nodes.has(hit.node.id)) {
60
+ cgResult.nodes.set(hit.node.id, hit.node);
61
+ if (!cgResult.roots.includes(hit.node.id)) {
62
+ cgResult.roots.push(hit.node.id);
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
32
68
  // 2. Knowledge search (DevFlow unique)
33
69
  let knowledgeHits = [];
34
70
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"context-engine.js","sourceRoot":"","sources":["../src/context-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-engine.js","sourceRoot":"","sources":["../src/context-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { CodeGraph } from "@colbymchenry/codegraph";
2
+ /**
3
+ * Layer 3: Fuzzy fallback search when the primary findRelevantContext returns
4
+ * low confidence or too few results for a Chinese-turned-English query.
5
+ *
6
+ * Strategy: tokenize the expanded query into individual terms and run
7
+ * targeted FTS searches, then merge results by deduplicating on node ID.
8
+ */
9
+ export declare function fuzzySearch(cg: CodeGraph, query: string, limit?: number): string[];
10
+ /**
11
+ * Check if we should trigger fuzzy fallback based on the primary search result.
12
+ */
13
+ export declare function shouldFallback(nodeCount: number, confidence?: "high" | "low"): boolean;
14
+ //# sourceMappingURL=fuzzy-fallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fuzzy-fallback.d.ts","sourceRoot":"","sources":["../src/fuzzy-fallback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,MAAM,EACb,KAAK,SAAK,GACT,MAAM,EAAE,CA6BV;AA2BD;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAItF"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Layer 3: Fuzzy fallback search when the primary findRelevantContext returns
3
+ * low confidence or too few results for a Chinese-turned-English query.
4
+ *
5
+ * Strategy: tokenize the expanded query into individual terms and run
6
+ * targeted FTS searches, then merge results by deduplicating on node ID.
7
+ */
8
+ export function fuzzySearch(cg, query, limit = 10) {
9
+ // Split query into individual searchable terms
10
+ // English identifiers, camelCase splits, and individual tokens
11
+ const tokens = extractDistinctTerms(query);
12
+ if (tokens.length === 0)
13
+ return [];
14
+ const seen = new Set();
15
+ const results = [];
16
+ for (const token of tokens) {
17
+ if (token.length < 2)
18
+ continue;
19
+ try {
20
+ const hits = cg.searchNodes(token, { limit: 5 });
21
+ for (const hit of hits) {
22
+ const id = hit.node.id;
23
+ if (!seen.has(id)) {
24
+ seen.add(id);
25
+ results.push({ term: hit.node.name, score: hit.score });
26
+ }
27
+ }
28
+ }
29
+ catch {
30
+ // Individual token search failure is non-fatal
31
+ }
32
+ }
33
+ return results
34
+ .sort((a, b) => b.score - a.score)
35
+ .slice(0, limit)
36
+ .map((r) => r.term);
37
+ }
38
+ /**
39
+ * Extract distinct searchable terms from an expanded query.
40
+ * Handles: English words, camelCase/PascalCase splits, snake_case splits.
41
+ */
42
+ function extractDistinctTerms(query) {
43
+ const terms = new Set();
44
+ // English words (2+ chars)
45
+ const words = query.match(/[a-zA-Z_]\w+/g) ?? [];
46
+ for (const w of words) {
47
+ terms.add(w.toLowerCase());
48
+ // Split camelCase: "codeReview" → ["code", "review"]
49
+ const parts = w.split(/(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])/);
50
+ for (const p of parts) {
51
+ if (p.length >= 2)
52
+ terms.add(p.toLowerCase());
53
+ }
54
+ }
55
+ // Individual Chinese characters (for FTS prefix matching attempts)
56
+ // These won't match English FTS directly but serve as a last-resort signal
57
+ // that we tried exhaustive tokenization
58
+ return [...terms];
59
+ }
60
+ /**
61
+ * Check if we should trigger fuzzy fallback based on the primary search result.
62
+ */
63
+ export function shouldFallback(nodeCount, confidence) {
64
+ if (confidence === "low")
65
+ return true;
66
+ if (nodeCount < 3)
67
+ return true;
68
+ return false;
69
+ }
70
+ //# sourceMappingURL=fuzzy-fallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fuzzy-fallback.js","sourceRoot":"","sources":["../src/fuzzy-fallback.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACzB,EAAa,EACb,KAAa,EACb,KAAK,GAAG,EAAE;IAEV,+CAA+C;IAC/C,+DAA+D;IAC/D,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEnC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,OAAO,GAA2C,EAAE,CAAC;IAE3D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC/B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACjD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAClB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACb,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+CAA+C;QACjD,CAAC;IACH,CAAC;IAED,OAAO,OAAO;SACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;SACjC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,KAAa;IACzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhC,2BAA2B;IAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3B,qDAAqD;QACrD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACtE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,2EAA2E;IAC3E,wCAAwC;IAExC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,UAA2B;IAC3E,IAAI,UAAU,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,KAAK,CAAC;AACf,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- export { parseIntent } from "./intent-parser.js";
1
+ export { parseIntent, expandQuery } from "./intent-parser.js";
2
+ export { fuzzySearch, shouldFallback } from "./fuzzy-fallback.js";
2
3
  export { fuseResults } from "./ranker.js";
3
4
  export { compressToTokenLimit } from "./compressor.js";
4
5
  export { ContextEngine } from "./context-engine.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
- export { parseIntent } from "./intent-parser.js";
1
+ export { parseIntent, expandQuery } from "./intent-parser.js";
2
+ export { fuzzySearch, shouldFallback } from "./fuzzy-fallback.js";
2
3
  export { fuseResults } from "./ranker.js";
3
4
  export { compressToTokenLimit } from "./compressor.js";
4
5
  export { ContextEngine } from "./context-engine.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1 +1 @@
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;AAmB/C,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAwCvD;AAqDD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsBjD"}
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;AAmB/C,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAwCvD;AAyHD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsBjD"}
@@ -97,6 +97,74 @@ const ZH_EN_MAP = [
97
97
  [/(异步|并发)/g, ["async", "promise", "await", "concurrent", "parallel"]],
98
98
  [/(性能|优化|提速)/g, ["performance", "optimize", "memo", "cache", "lazy"]],
99
99
  [/(重构|整理|优化代码)/g, ["refactor", "clean", "restructure", "extract"]],
100
+ // 代码审核/审查
101
+ [/(代码审核|代码审查|code review)/gi, ["code review", "audit", "review"]],
102
+ [/(审核|审查|评审)/g, ["review", "audit", "evaluation", "inspection"]],
103
+ // 文档
104
+ [/(文档|doc)/gi, ["document", "documentation", "docs", "readme"]],
105
+ // 流程/模块
106
+ [/(流程|工作流|流水线)/g, ["workflow", "flow", "pipeline", "process"]],
107
+ [/(模块)/g, ["module", "component", "package"]],
108
+ // 日志
109
+ [/(日志|log)/gi, ["log", "logging", "audit log", "console"]],
110
+ // 用户
111
+ [/(用户|成员)/g, ["user", "member", "account", "profile"]],
112
+ [/(评论|留言)/g, ["comment", "review comment", "feedback"]],
113
+ // 文件
114
+ [/(文件)/g, ["file", "document", "attachment"]],
115
+ [/(版本)/g, ["version", "revision", "release"]],
116
+ [/(历史)/g, ["history", "changelog", "timeline"]],
117
+ // 搜索/过滤
118
+ [/(搜索|检索|查找)/g, ["search", "find", "query", "filter"]],
119
+ [/(过滤|筛选)/g, ["filter", "search", "query", "sort"]],
120
+ [/(分页)/g, ["pagination", "page", "offset", "limit"]],
121
+ // 统计/图表
122
+ [/(统计|数据统计)/g, ["stats", "statistics", "analytics", "metrics"]],
123
+ [/(图表|可视化)/g, ["chart", "graph", "diagram", "visualization"]],
124
+ [/(导出)/g, ["export", "download", "csv", "json"]],
125
+ [/(导入)/g, ["import", "upload", "parse"]],
126
+ // 通知/消息
127
+ [/(通知|提醒)/g, ["notification", "notify", "alert", "toast"]],
128
+ [/(消息|聊天)/g, ["message", "chat", "websocket", "notification"]],
129
+ // 文件操作
130
+ [/(上传)/g, ["upload", "import", "file"]],
131
+ [/(下载)/g, ["download", "export", "file"]],
132
+ [/(预览)/g, ["preview", "viewer", "thumbnail"]],
133
+ [/(保存)/g, ["save", "persist", "commit"]],
134
+ [/(删除|移除)/g, ["delete", "remove", "destroy"]],
135
+ [/(编辑|修改)/g, ["edit", "modify", "update", "patch"]],
136
+ // UI 元素
137
+ [/(菜单|导航栏)/g, ["menu", "navigation", "nav", "sidebar"]],
138
+ [/(面包屑)/g, ["breadcrumb", "navigation"]],
139
+ [/(标签页|tab)/gi, ["tab", "tag", "label", "badge"]],
140
+ [/(卡片)/g, ["card", "panel", "widget"]],
141
+ [/(列表)/g, ["list", "table", "grid"]],
142
+ [/(表格)/g, ["table", "grid", "data table"]],
143
+ [/(表单)/g, ["form", "input", "validation"]],
144
+ [/(弹窗|对话框|模态框)/g, ["modal", "dialog", "popup", "overlay"]],
145
+ [/(抽屉)/g, ["drawer", "sidebar", "panel"]],
146
+ [/(下拉|选择器)/g, ["dropdown", "select", "picker", "combo"]],
147
+ // 交互
148
+ [/(加载|loading)/gi, ["loading", "spinner", "skeleton"]],
149
+ [/(错误处理|异常处理)/g, ["error handling", "try catch", "exception"]],
150
+ [/(验证|校验)/g, ["validation", "verify", "validate", "schema"]],
151
+ [/(国际化|多语言)/g, ["i18n", "internationalization", "locale", "translation"]],
152
+ [/(主题|暗色模式)/g, ["theme", "dark mode", "color scheme"]],
153
+ // 架构
154
+ [/(服务)/g, ["service", "api", "endpoint"]],
155
+ [/(中间件)/g, ["middleware", "interceptor", "guard"]],
156
+ [/(拦截器)/g, ["interceptor", "middleware", "filter"]],
157
+ [/(数据)/g, ["data", "model", "store", "database"]],
158
+ [/(缓存)/g, ["cache", "memo", "storage", "redis"]],
159
+ [/(存储|持久化)/g, ["storage", "store", "persistence", "database"]],
160
+ // 媒体
161
+ [/(图片|图像)/g, ["image", "picture", "photo", "thumbnail"]],
162
+ [/(视频)/g, ["video", "media", "player"]],
163
+ [/(音频|声音)/g, ["audio", "sound", "media", "player"]],
164
+ // 通用
165
+ [/(逻辑|业务逻辑)/g, ["logic", "business", "service", "handler"]],
166
+ [/(工具|辅助|helper)/gi, ["tool", "utility", "helper", "utils"]],
167
+ [/(配置项|环境变量)/g, ["config", "env", "environment", "variable"]],
100
168
  ];
101
169
  export function expandQuery(query) {
102
170
  if (!query)
@@ -1 +1 @@
1
- {"version":3,"file":"intent-parser.js","sourceRoot":"","sources":["../src/intent-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intent-parser.js","sourceRoot":"","sources":["../src/intent-parser.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAA0D;IAC7E,EAAE,OAAO,EAAE,+CAA+C,EAAE,MAAM,EAAE,OAAO,EAAE;IAC7E,EAAE,OAAO,EAAE,+CAA+C,EAAE,MAAM,EAAE,SAAS,EAAE;IAC/E,EAAE,OAAO,EAAE,gDAAgD,EAAE,MAAM,EAAE,UAAU,EAAE;IACjF,EAAE,OAAO,EAAE,yDAAyD,EAAE,MAAM,EAAE,YAAY,EAAE;CAC7F,CAAC;AAEF,MAAM,eAAe,GAA0C;IAC7D,EAAE,OAAO,EAAE,uDAAuD,EAAE,MAAM,EAAE,MAAM,EAAE;IACpF,EAAE,OAAO,EAAE,6DAA6D,EAAE,MAAM,EAAE,KAAK,EAAE;IACzF,EAAE,OAAO,EAAE,mDAAmD,EAAE,MAAM,EAAE,OAAO,EAAE;IACjF,EAAE,OAAO,EAAE,mDAAmD,EAAE,MAAM,EAAE,OAAO,EAAE;IACjF,EAAE,OAAO,EAAE,qDAAqD,EAAE,MAAM,EAAE,UAAU,EAAE;IACtF,EAAE,OAAO,EAAE,mCAAmC,EAAE,MAAM,EAAE,MAAM,EAAE;IAChE,EAAE,OAAO,EAAE,4CAA4C,EAAE,MAAM,EAAE,IAAI,EAAE;CACxE,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEjC,IAAI,MAAM,GAA2B,SAAS,CAAC;IAC/C,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,eAAe,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACzC,IAAI,IAAI,GAAG,aAAa,EAAE,CAAC;gBACzB,MAAM,GAAG,CAAC,CAAC;gBACX,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,GAAG,SAAS,CAAC;IACvB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,eAAe,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACzC,IAAI,IAAI,GAAG,aAAa,EAAE,CAAC;gBACzB,MAAM,GAAG,CAAC,CAAC;gBACX,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,kCAAkC,CAAC,IAAI,EAAE,CAAC;IAC1E,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,+CAA+C,CAAC,IAAI,CAAC,CAAC,CAAC,CAChF,CAAC;IAEF,OAAO;QACL,MAAM;QACN,MAAM;QACN,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC;QAC3D,UAAU,EAAE,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAyB;IACtC,QAAQ;IACR,CAAC,UAAU,EAAE,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;IAC9D,KAAK;IACL,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAChE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO;IACP,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAC1E,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC9B,KAAK;IACL,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IACpE,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3D,KAAK;IACL,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACzD,KAAK;IACL,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;IACxD,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACvD,SAAS;IACT,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAC5E,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAC3D,KAAK;IACL,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAChE,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IACvD,MAAM;IACN,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzD,KAAK;IACL,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7D,QAAQ;IACR,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACrE,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7D,KAAK;IACL,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC3D,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACrE,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC,aAAa,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC,eAAe,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;IAClE,UAAU;IACV,CAAC,2BAA2B,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IAChE,KAAK;IACL,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/D,QAAQ;IACR,CAAC,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAC9D,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAC7C,KAAK;IACL,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAC1D,KAAK;IACL,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;IACvD,KAAK;IACL,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IAC7C,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAC7C,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAC/C,QAAQ;IACR,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpD,QAAQ;IACR,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAC/D,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAC7D,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxC,QAAQ;IACR,CAAC,UAAU,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IAC9D,OAAO;IACP,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7C,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,QAAQ;IACR,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACxC,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1C,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAC1C,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxD,KAAK;IACL,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC,cAAc,EAAE,CAAC,gBAAgB,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,sBAAsB,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IACzE,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IACtD,KAAK;IACL,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACzC,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC,QAAQ,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IACjD,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IAC9D,KAAK;IACL,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACxD,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnD,KAAK;IACL,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC3D,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;CAC9D,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAE9B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhC,KAAK,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,SAAS,EAAE,CAAC;QAChD,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;gBAC7B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Layer 2: Translate Chinese query terms using LLM with disk cache.
3
+ * On failure (timeout, no API key, network error), returns the original query unchanged.
4
+ */
5
+ export declare function translateQuery(query: string, projectRoot: string, _existingExpandedTerms?: string[]): Promise<string>;
6
+ //# sourceMappingURL=llm-translator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-translator.d.ts","sourceRoot":"","sources":["../src/llm-translator.ts"],"names":[],"mappings":"AAmHA;;;GAGG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,sBAAsB,GAAE,MAAM,EAAO,GACpC,OAAO,CAAC,MAAM,CAAC,CAiCjB"}
@@ -0,0 +1,143 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ let cache = null;
4
+ let cachePath = "";
5
+ let cacheLoaded = false;
6
+ function loadCache(projectRoot) {
7
+ const cgDir = join(projectRoot, ".codegraph");
8
+ const file = join(cgDir, "zh-en-cache.json");
9
+ cachePath = file;
10
+ if (!existsSync(file))
11
+ return {};
12
+ try {
13
+ return JSON.parse(readFileSync(file, "utf-8"));
14
+ }
15
+ catch {
16
+ return {};
17
+ }
18
+ }
19
+ function saveCache() {
20
+ if (!cachePath || !cache)
21
+ return;
22
+ const dir = join(cachePath, "..");
23
+ if (!existsSync(dir))
24
+ mkdirSync(dir, { recursive: true });
25
+ try {
26
+ writeFileSync(cachePath, JSON.stringify(cache, null, 2));
27
+ }
28
+ catch {
29
+ // Cache write failure is non-fatal
30
+ }
31
+ }
32
+ function getCached(projectRoot, term) {
33
+ if (!cacheLoaded) {
34
+ cache = loadCache(projectRoot);
35
+ cacheLoaded = true;
36
+ }
37
+ return cache?.[term] ?? null;
38
+ }
39
+ function setCached(projectRoot, term, translation) {
40
+ if (!cacheLoaded) {
41
+ cache = loadCache(projectRoot);
42
+ cacheLoaded = true;
43
+ }
44
+ if (!cache)
45
+ cache = {};
46
+ cache[term] = translation;
47
+ saveCache();
48
+ }
49
+ /**
50
+ * Call OpenRouter (OpenAI-compatible) API to translate Chinese terms to English
51
+ * code-relevant keywords. Timeout at 2s. Returns empty object on any failure.
52
+ */
53
+ async function callLLM(terms) {
54
+ const baseUrl = process.env.OPENROUTER_BASE_URL ??
55
+ "https://openrouter.ai/api/v1";
56
+ const apiKey = process.env.OPENROUTER_API_KEY ?? "";
57
+ if (!apiKey)
58
+ return {};
59
+ const controller = new AbortController();
60
+ const timeout = setTimeout(() => controller.abort(), 2000);
61
+ try {
62
+ const response = await fetch(`${baseUrl}/chat/completions`, {
63
+ method: "POST",
64
+ headers: {
65
+ "Content-Type": "application/json",
66
+ Authorization: `Bearer ${apiKey}`,
67
+ },
68
+ body: JSON.stringify({
69
+ model: "qwen/qwen-2.5-72b-instruct",
70
+ max_tokens: 100,
71
+ temperature: 0.1,
72
+ messages: [
73
+ {
74
+ role: "system",
75
+ content: "You are a code term translator. Translate Chinese phrases to English code-relevant keywords. Output one line per term in format: chinese=english keywords",
76
+ },
77
+ {
78
+ role: "user",
79
+ content: terms.join("\n"),
80
+ },
81
+ ],
82
+ }),
83
+ signal: controller.signal,
84
+ });
85
+ const data = (await response.json());
86
+ const text = data?.choices?.[0]?.message?.content ?? "";
87
+ const result = {};
88
+ for (const line of text.split("\n")) {
89
+ const eqIdx = line.indexOf("=");
90
+ if (eqIdx === -1)
91
+ continue;
92
+ const chinese = line.slice(0, eqIdx).trim();
93
+ const english = line.slice(eqIdx + 1).trim();
94
+ if (chinese && english) {
95
+ result[chinese] = english;
96
+ }
97
+ }
98
+ return result;
99
+ }
100
+ catch {
101
+ return {};
102
+ }
103
+ finally {
104
+ clearTimeout(timeout);
105
+ }
106
+ }
107
+ /**
108
+ * Layer 2: Translate Chinese query terms using LLM with disk cache.
109
+ * On failure (timeout, no API key, network error), returns the original query unchanged.
110
+ */
111
+ export async function translateQuery(query, projectRoot, _existingExpandedTerms = []) {
112
+ const hasChinese = /[一-鿿]/.test(query);
113
+ if (!hasChinese)
114
+ return query;
115
+ // Extract consecutive Chinese phrases (2+ chars)
116
+ const chinesePhrases = query.match(/[一-鿿]{2,}/g) ?? [];
117
+ if (chinesePhrases.length === 0)
118
+ return query;
119
+ // Check cache and collect uncached terms
120
+ const translations = [];
121
+ const uncached = [];
122
+ for (const phrase of chinesePhrases) {
123
+ const cached = getCached(projectRoot, phrase);
124
+ if (cached) {
125
+ translations.push(cached);
126
+ }
127
+ else {
128
+ uncached.push(phrase);
129
+ }
130
+ }
131
+ // Call LLM for uncached terms
132
+ if (uncached.length > 0) {
133
+ const llmResult = await callLLM(uncached);
134
+ for (const [chinese, english] of Object.entries(llmResult)) {
135
+ setCached(projectRoot, chinese, english);
136
+ translations.push(english);
137
+ }
138
+ }
139
+ if (translations.length === 0)
140
+ return query;
141
+ return query + " " + translations.join(" ");
142
+ }
143
+ //# sourceMappingURL=llm-translator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-translator.js","sourceRoot":"","sources":["../src/llm-translator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAMjC,IAAI,KAAK,GAA4B,IAAI,CAAC;AAC1C,IAAI,SAAS,GAAG,EAAE,CAAC;AACnB,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,SAAS,SAAS,CAAC,WAAmB;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC7C,SAAS,GAAG,IAAI,CAAC;IAEjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,SAAS;IAChB,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK;QAAE,OAAO;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,IAAI,CAAC;QACH,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,WAAmB,EAAE,IAAY;IAClD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;QAC/B,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,OAAO,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAC/B,CAAC;AAED,SAAS,SAAS,CAAC,WAAmB,EAAE,IAAY,EAAE,WAAmB;IACvE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;QAC/B,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,IAAI,CAAC,KAAK;QAAE,KAAK,GAAG,EAAE,CAAC;IACvB,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;IAC1B,SAAS,EAAE,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,OAAO,CAAC,KAAe;IACpC,MAAM,OAAO,GACX,OAAO,CAAC,GAAG,CAAC,mBAAmB;QAC/B,8BAA8B,CAAC;IACjC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC;IAEpD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IAE3D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,mBAAmB,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,MAAM,EAAE;aAClC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,4BAA4B;gBACnC,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,GAAG;gBAChB,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,QAAQ;wBACd,OAAO,EACL,2JAA2J;qBAC9J;oBACD;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;qBAC1B;iBACF;aACF,CAAC;YACF,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAQ,CAAC;QAC5C,MAAM,IAAI,GAAW,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;QAEhE,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,KAAK,KAAK,CAAC,CAAC;gBAAE,SAAS;YAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7C,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;gBACvB,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAa,EACb,WAAmB,EACnB,yBAAmC,EAAE;IAErC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAE9B,iDAAiD;IACjD,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE9C,yCAAyC;IACzC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,MAAM,EAAE,CAAC;YACX,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1C,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3D,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACzC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,OAAO,KAAK,GAAG,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devflow-tools/context-engine",
3
- "version": "0.3.2",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -18,10 +18,10 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "@colbymchenry/codegraph": "^1.1.1",
21
- "@devflow-tools/knowledge-engine": "^0.3.2",
22
- "@devflow-tools/memory-engine": "^0.3.2",
23
- "@devflow-tools/sdk": "^0.3.2",
24
- "@devflow-tools/telemetry": "^0.3.2"
21
+ "@devflow-tools/knowledge-engine": "^0.5.0",
22
+ "@devflow-tools/memory-engine": "^0.5.0",
23
+ "@devflow-tools/sdk": "^0.5.0",
24
+ "@devflow-tools/telemetry": "^0.5.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "typescript": "^5.5.0",
@@ -30,5 +30,5 @@
30
30
  "files": [
31
31
  "dist"
32
32
  ],
33
- "gitHead": "8bd4fe5d195782d3e5a5357fc9bff5998561c956"
33
+ "gitHead": "431c0f26e14d476c08d543ef5cd65367413dbc98"
34
34
  }