@devflow-tools/context-engine 0.15.0 → 0.16.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/dist/claude-rerank.d.ts +0 -3
- package/dist/claude-rerank.d.ts.map +1 -1
- package/dist/claude-rerank.js +0 -88
- package/dist/claude-rerank.js.map +1 -1
- package/dist/compressor.d.ts +8 -1
- package/dist/compressor.d.ts.map +1 -1
- package/dist/compressor.js +186 -19
- package/dist/compressor.js.map +1 -1
- package/dist/context-engine.d.ts +9 -0
- package/dist/context-engine.d.ts.map +1 -1
- package/dist/context-engine.js +158 -31
- package/dist/context-engine.js.map +1 -1
- package/dist/create-engines.d.ts +5 -2
- package/dist/create-engines.d.ts.map +1 -1
- package/dist/create-engines.js +28 -13
- package/dist/create-engines.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/indexer-adapter.d.ts +3 -1
- package/dist/indexer-adapter.d.ts.map +1 -1
- package/dist/indexer-adapter.js +31 -15
- package/dist/indexer-adapter.js.map +1 -1
- package/dist/intent-parser.js +2 -2
- package/dist/intent-parser.js.map +1 -1
- package/dist/onboarding-pack-builder.d.ts +31 -3
- package/dist/onboarding-pack-builder.d.ts.map +1 -1
- package/dist/onboarding-pack-builder.js +124 -7
- package/dist/onboarding-pack-builder.js.map +1 -1
- package/dist/retrieval-handlers.d.ts +42 -0
- package/dist/retrieval-handlers.d.ts.map +1 -0
- package/dist/retrieval-handlers.js +74 -0
- package/dist/retrieval-handlers.js.map +1 -0
- package/dist/symbol-embedder.d.ts +24 -2
- package/dist/symbol-embedder.d.ts.map +1 -1
- package/dist/symbol-embedder.js +149 -50
- package/dist/symbol-embedder.js.map +1 -1
- package/dist/symbol-vector-store.d.ts +10 -5
- package/dist/symbol-vector-store.d.ts.map +1 -1
- package/dist/symbol-vector-store.js +59 -16
- package/dist/symbol-vector-store.js.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -6
- package/dist/llm-translator.d.ts +0 -6
- package/dist/llm-translator.d.ts.map +0 -1
- package/dist/llm-translator.js +0 -143
- package/dist/llm-translator.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devflow-tools/context-engine",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@colbymchenry/codegraph": "^1.1.1",
|
|
25
|
-
"@devflow-tools/knowledge-engine": "0.
|
|
26
|
-
"@devflow-tools/memory-engine": "0.
|
|
27
|
-
"@devflow-tools/sdk": "0.
|
|
28
|
-
"@devflow-tools/telemetry": "0.
|
|
25
|
+
"@devflow-tools/knowledge-engine": "0.16.0",
|
|
26
|
+
"@devflow-tools/memory-engine": "0.16.0",
|
|
27
|
+
"@devflow-tools/sdk": "0.16.0",
|
|
28
|
+
"@devflow-tools/telemetry": "0.16.0",
|
|
29
29
|
"better-sqlite3": "^12.11.1",
|
|
30
30
|
"nodejieba": "^3.5.8",
|
|
31
31
|
"sqlite-vec": "^0.1.9"
|
|
@@ -37,5 +37,5 @@
|
|
|
37
37
|
"files": [
|
|
38
38
|
"dist"
|
|
39
39
|
],
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "2f52776bda72517354d44453756cccb9e8de9afa"
|
|
41
41
|
}
|
package/dist/llm-translator.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/llm-translator.js
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"llm-translator.js","sourceRoot":"","sources":["../src/llm-translator.ts"],"names":[],"mappings":"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"}
|