@devflow-tools/context-engine 0.15.0 → 0.16.1
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/dist/claude-rerank.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { LLMClient } from '@devflow-tools/sdk';
|
|
2
1
|
export interface RerankCandidate {
|
|
3
2
|
id: string;
|
|
4
3
|
name: string;
|
|
@@ -6,8 +5,6 @@ export interface RerankCandidate {
|
|
|
6
5
|
file?: string;
|
|
7
6
|
score?: number;
|
|
8
7
|
}
|
|
9
|
-
export declare function setRerankLLMClient(client: LLMClient): void;
|
|
10
|
-
export declare function isRerankAvailable(): boolean;
|
|
11
8
|
export declare function claudeRerank(query: string, candidates: RerankCandidate[], options?: {
|
|
12
9
|
topK?: number;
|
|
13
10
|
model?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-rerank.d.ts","sourceRoot":"","sources":["../src/claude-rerank.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"claude-rerank.d.ts","sourceRoot":"","sources":["../src/claude-rerank.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,eAAe,EAAE,EAC7B,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,OAAO,CAAC,eAAe,EAAE,CAAC,CAG5B"}
|
package/dist/claude-rerank.js
CHANGED
|
@@ -1,93 +1,5 @@
|
|
|
1
|
-
const TIMEOUT_MS = 2000;
|
|
2
|
-
const CACHE_TTL = 5 * 60 * 1000;
|
|
3
|
-
const RERANK_SYSTEM_PROMPT = `You are a code search relevance ranker. Given a user query and
|
|
4
|
-
a list of code search results, return the indices of the most relevant results
|
|
5
|
-
in order of relevance. Only include results that are genuinely relevant to the query.
|
|
6
|
-
Respond with ONLY a JSON array of indices, like [3, 0, 7, 1]. Do not explain.`;
|
|
7
|
-
let llmClient = null;
|
|
8
|
-
export function setRerankLLMClient(client) {
|
|
9
|
-
llmClient = client;
|
|
10
|
-
}
|
|
11
|
-
export function isRerankAvailable() {
|
|
12
|
-
return llmClient?.isAvailable ?? false;
|
|
13
|
-
}
|
|
14
|
-
// LRU cache
|
|
15
|
-
const cache = new Map();
|
|
16
|
-
function cacheGet(query) {
|
|
17
|
-
const key = query.toLowerCase().trim();
|
|
18
|
-
const entry = cache.get(key);
|
|
19
|
-
if (entry && Date.now() - entry.ts < CACHE_TTL)
|
|
20
|
-
return entry.indices;
|
|
21
|
-
cache.delete(key);
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
// Concurrency semaphore
|
|
25
|
-
let activeCalls = 0;
|
|
26
|
-
const MAX_CONCURRENT = 2;
|
|
27
|
-
async function acquireSemaphore() {
|
|
28
|
-
const start = Date.now();
|
|
29
|
-
while (activeCalls >= MAX_CONCURRENT) {
|
|
30
|
-
if (Date.now() - start > 5000)
|
|
31
|
-
return false;
|
|
32
|
-
await new Promise(r => setTimeout(r, 100));
|
|
33
|
-
}
|
|
34
|
-
activeCalls++;
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
function releaseSemaphore() { activeCalls = Math.max(0, activeCalls - 1); }
|
|
38
|
-
// Multi-pattern response parser
|
|
39
|
-
function parseIndices(text, maxIndex) {
|
|
40
|
-
const patterns = [
|
|
41
|
-
t => { try {
|
|
42
|
-
const v = JSON.parse(t);
|
|
43
|
-
if (Array.isArray(v) && v.every(x => typeof x === 'number'))
|
|
44
|
-
return v;
|
|
45
|
-
}
|
|
46
|
-
catch { } return null; },
|
|
47
|
-
t => { const m = t.match(/```(?:json)?\s*([\s\S]*?)```/); return m ? parseIndices(m[1], maxIndex) : null; },
|
|
48
|
-
t => { const m = t.match(/\[([0-9,\s]+)\]/); return m ? m[1].split(',').map(s => parseInt(s.trim())).filter(n => !isNaN(n) && n >= 0 && n < maxIndex) : null; },
|
|
49
|
-
];
|
|
50
|
-
for (const p of patterns) {
|
|
51
|
-
const result = p(text);
|
|
52
|
-
if (result !== null && result.length > 0)
|
|
53
|
-
return result;
|
|
54
|
-
}
|
|
55
|
-
return null;
|
|
56
|
-
}
|
|
57
1
|
export async function claudeRerank(query, candidates, options) {
|
|
58
2
|
const topK = options?.topK ?? 10;
|
|
59
|
-
if (candidates.length <= topK)
|
|
60
|
-
return candidates;
|
|
61
|
-
const cached = cacheGet(query);
|
|
62
|
-
if (cached)
|
|
63
|
-
return cached.map(i => candidates[i]).filter(Boolean).slice(0, topK);
|
|
64
|
-
if (!llmClient?.isAvailable) {
|
|
65
|
-
return candidates.slice(0, topK);
|
|
66
|
-
}
|
|
67
|
-
if (!(await acquireSemaphore())) {
|
|
68
|
-
return candidates.slice(0, topK);
|
|
69
|
-
}
|
|
70
|
-
try {
|
|
71
|
-
const candidatesJson = candidates.map((c, i) => ({
|
|
72
|
-
index: i, id: c.id, name: c.name,
|
|
73
|
-
snippet: c.snippet.slice(0, 150),
|
|
74
|
-
file: c.file ?? '',
|
|
75
|
-
}));
|
|
76
|
-
const response = await llmClient.chat({
|
|
77
|
-
systemPrompt: RERANK_SYSTEM_PROMPT,
|
|
78
|
-
messages: [{ role: 'user', content: `Query: ${query}\n\nCandidates:\n${JSON.stringify(candidatesJson)}` }],
|
|
79
|
-
maxTokens: 256,
|
|
80
|
-
});
|
|
81
|
-
const indices = parseIndices(response.content.trim(), candidates.length);
|
|
82
|
-
if (indices) {
|
|
83
|
-
cache.set(query.toLowerCase().trim(), { indices, ts: Date.now() });
|
|
84
|
-
return indices.map(i => candidates[i]).filter(Boolean).slice(0, topK);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
catch { /* silent fallback */ }
|
|
88
|
-
finally {
|
|
89
|
-
releaseSemaphore();
|
|
90
|
-
}
|
|
91
3
|
return candidates.slice(0, topK);
|
|
92
4
|
}
|
|
93
5
|
//# sourceMappingURL=claude-rerank.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-rerank.js","sourceRoot":"","sources":["../src/claude-rerank.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claude-rerank.js","sourceRoot":"","sources":["../src/claude-rerank.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAa,EACb,UAA6B,EAC7B,OAA2C;IAE3C,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;IACjC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC"}
|
package/dist/compressor.d.ts
CHANGED
|
@@ -2,6 +2,13 @@ import type { FileSnippet } from "@devflow-tools/sdk";
|
|
|
2
2
|
export interface CompressionResult {
|
|
3
3
|
files: FileSnippet[];
|
|
4
4
|
tokenCount: number;
|
|
5
|
+
droppedBlockCount: number;
|
|
6
|
+
overBudget: boolean;
|
|
7
|
+
blindTruncated: boolean;
|
|
5
8
|
}
|
|
6
|
-
export
|
|
9
|
+
export interface CompressionOptions {
|
|
10
|
+
allowBlindTruncate?: boolean;
|
|
11
|
+
errorLogPath?: string | null;
|
|
12
|
+
}
|
|
13
|
+
export declare function compressToTokenLimit(files: FileSnippet[], maxTokens: number, options?: CompressionOptions): CompressionResult;
|
|
7
14
|
//# sourceMappingURL=compressor.d.ts.map
|
package/dist/compressor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compressor.d.ts","sourceRoot":"","sources":["../src/compressor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"compressor.d.ts","sourceRoot":"","sources":["../src/compressor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMtD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAOD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,WAAW,EAAE,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CA4EnB"}
|
package/dist/compressor.js
CHANGED
|
@@ -1,30 +1,197 @@
|
|
|
1
|
-
import { countTokens } from "@devflow-tools/sdk";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { countTokens, truncateToTokenLimit } from "@devflow-tools/sdk";
|
|
2
|
+
import { appendFileSync, mkdirSync } from "node:fs";
|
|
3
|
+
import { homedir } from "node:os";
|
|
4
|
+
import { dirname, join } from "node:path";
|
|
5
|
+
export function compressToTokenLimit(files, maxTokens, options = {}) {
|
|
6
|
+
if (files.length === 0 || maxTokens <= 0) {
|
|
7
|
+
return {
|
|
8
|
+
files: [],
|
|
9
|
+
tokenCount: 0,
|
|
10
|
+
droppedBlockCount: files.length,
|
|
11
|
+
overBudget: files.length > 0,
|
|
12
|
+
blindTruncated: false,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
5
15
|
const sorted = [...files].sort((a, b) => (b.score ?? 0) - (a.score ?? 0));
|
|
6
|
-
const
|
|
16
|
+
const selected = new Map();
|
|
7
17
|
let totalTokens = 0;
|
|
18
|
+
let droppedBlockCount = 0;
|
|
19
|
+
let blindTruncated = false;
|
|
8
20
|
for (const file of sorted) {
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
totalTokens
|
|
21
|
+
const blocks = splitStructuralBlocks(file.path, file.snippet);
|
|
22
|
+
let acceptedForFile = 0;
|
|
23
|
+
for (const block of blocks) {
|
|
24
|
+
if (totalTokens + block.tokens <= maxTokens) {
|
|
25
|
+
const entry = selected.get(file.path) ?? { file, blocks: [] };
|
|
26
|
+
entry.blocks.push(block.content);
|
|
27
|
+
selected.set(file.path, entry);
|
|
28
|
+
totalTokens += block.tokens;
|
|
29
|
+
acceptedForFile += 1;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
droppedBlockCount += 1;
|
|
33
|
+
}
|
|
13
34
|
}
|
|
14
|
-
|
|
35
|
+
if (acceptedForFile === 0
|
|
36
|
+
&& options.allowBlindTruncate
|
|
37
|
+
&& maxTokens - totalTokens > 20
|
|
38
|
+
&& file.snippet.trim()) {
|
|
15
39
|
const remaining = maxTokens - totalTokens;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
40
|
+
const truncated = truncateToTokenLimit(file.snippet, remaining);
|
|
41
|
+
const tokens = countTokens(truncated);
|
|
42
|
+
if (tokens > 0) {
|
|
43
|
+
selected.set(file.path, {
|
|
44
|
+
file,
|
|
45
|
+
blocks: [`${truncated}\n// ... blind truncation enabled`],
|
|
22
46
|
});
|
|
23
|
-
totalTokens
|
|
47
|
+
totalTokens += tokens;
|
|
48
|
+
blindTruncated = true;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const result = {
|
|
53
|
+
files: [...selected.values()].map(({ file, blocks }) => ({
|
|
54
|
+
...file,
|
|
55
|
+
snippet: blocks.join("\n\n"),
|
|
56
|
+
})),
|
|
57
|
+
tokenCount: totalTokens,
|
|
58
|
+
droppedBlockCount,
|
|
59
|
+
overBudget: droppedBlockCount > 0,
|
|
60
|
+
blindTruncated,
|
|
61
|
+
};
|
|
62
|
+
if (result.overBudget && options.errorLogPath !== null) {
|
|
63
|
+
logCompressionOverflow(options.errorLogPath, {
|
|
64
|
+
maxTokens,
|
|
65
|
+
selectedTokens: totalTokens,
|
|
66
|
+
inputFiles: files.length,
|
|
67
|
+
selectedFiles: result.files.length,
|
|
68
|
+
droppedBlockCount,
|
|
69
|
+
blindTruncated,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return result;
|
|
73
|
+
}
|
|
74
|
+
function splitStructuralBlocks(path, snippet) {
|
|
75
|
+
if (!snippet.trim())
|
|
76
|
+
return [];
|
|
77
|
+
const extension = path.toLowerCase().split(".").pop() ?? "";
|
|
78
|
+
let rawBlocks;
|
|
79
|
+
if (extension === "json" || looksLikeJson(snippet)) {
|
|
80
|
+
rawBlocks = splitJson(snippet);
|
|
81
|
+
}
|
|
82
|
+
else if (["md", "mdx"].includes(extension) || looksLikeMarkdown(snippet)) {
|
|
83
|
+
rawBlocks = splitMarkdown(snippet);
|
|
84
|
+
}
|
|
85
|
+
else if (["ts", "tsx", "js", "jsx", "mjs", "cjs", "java", "css", "scss"].includes(extension)) {
|
|
86
|
+
rawBlocks = splitCode(snippet);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
rawBlocks = splitParagraphs(snippet);
|
|
90
|
+
}
|
|
91
|
+
return rawBlocks
|
|
92
|
+
.map((content) => content.trim())
|
|
93
|
+
.filter(Boolean)
|
|
94
|
+
.map((content) => ({ content, tokens: countTokens(content) }));
|
|
95
|
+
}
|
|
96
|
+
function splitCode(source) {
|
|
97
|
+
const lines = source.split("\n");
|
|
98
|
+
const blocks = [];
|
|
99
|
+
let current = [];
|
|
100
|
+
let braceDepth = 0;
|
|
101
|
+
let inString = null;
|
|
102
|
+
let escaped = false;
|
|
103
|
+
const flush = () => {
|
|
104
|
+
if (current.some((line) => line.trim()))
|
|
105
|
+
blocks.push(current.join("\n"));
|
|
106
|
+
current = [];
|
|
107
|
+
};
|
|
108
|
+
for (const line of lines) {
|
|
109
|
+
current.push(line);
|
|
110
|
+
for (let index = 0; index < line.length; index += 1) {
|
|
111
|
+
const char = line[index];
|
|
112
|
+
if (escaped) {
|
|
113
|
+
escaped = false;
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
if (inString) {
|
|
117
|
+
if (char === "\\")
|
|
118
|
+
escaped = true;
|
|
119
|
+
else if (char === inString)
|
|
120
|
+
inString = null;
|
|
121
|
+
continue;
|
|
24
122
|
}
|
|
25
|
-
|
|
123
|
+
if (char === "'" || char === '"' || char === "`")
|
|
124
|
+
inString = char;
|
|
125
|
+
else if (char === "{")
|
|
126
|
+
braceDepth += 1;
|
|
127
|
+
else if (char === "}")
|
|
128
|
+
braceDepth = Math.max(0, braceDepth - 1);
|
|
26
129
|
}
|
|
130
|
+
const trimmed = line.trim();
|
|
131
|
+
if (braceDepth === 0 && (trimmed === "" || /[;}],?$/.test(trimmed)))
|
|
132
|
+
flush();
|
|
133
|
+
}
|
|
134
|
+
flush();
|
|
135
|
+
return blocks.length > 0 ? blocks : [source];
|
|
136
|
+
}
|
|
137
|
+
function splitMarkdown(source) {
|
|
138
|
+
const lines = source.split("\n");
|
|
139
|
+
const blocks = [];
|
|
140
|
+
const headings = [];
|
|
141
|
+
let current = [];
|
|
142
|
+
let inFence = false;
|
|
143
|
+
const flush = () => {
|
|
144
|
+
if (!current.some((line) => line.trim())) {
|
|
145
|
+
current = [];
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
const prefix = headings.filter((heading) => !current.includes(heading));
|
|
149
|
+
blocks.push([...prefix, ...current].join("\n"));
|
|
150
|
+
current = [];
|
|
151
|
+
};
|
|
152
|
+
for (const line of lines) {
|
|
153
|
+
if (/^\s*```/.test(line))
|
|
154
|
+
inFence = !inFence;
|
|
155
|
+
const heading = !inFence ? /^(#{1,6})\s+/.exec(line) : null;
|
|
156
|
+
if (heading) {
|
|
157
|
+
flush();
|
|
158
|
+
const level = heading[1].length;
|
|
159
|
+
headings.splice(level - 1);
|
|
160
|
+
headings[level - 1] = line;
|
|
161
|
+
}
|
|
162
|
+
current.push(line);
|
|
163
|
+
}
|
|
164
|
+
flush();
|
|
165
|
+
return blocks.length > 0 ? blocks : [source];
|
|
166
|
+
}
|
|
167
|
+
function splitJson(source) {
|
|
168
|
+
try {
|
|
169
|
+
const value = JSON.parse(source);
|
|
170
|
+
return [JSON.stringify(value, null, 2)];
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
return [source];
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
function splitParagraphs(source) {
|
|
177
|
+
return source.split(/\n\s*\n+/).filter(Boolean);
|
|
178
|
+
}
|
|
179
|
+
function looksLikeJson(source) {
|
|
180
|
+
const trimmed = source.trim();
|
|
181
|
+
return (trimmed.startsWith("{") && trimmed.endsWith("}"))
|
|
182
|
+
|| (trimmed.startsWith("[") && trimmed.endsWith("]"));
|
|
183
|
+
}
|
|
184
|
+
function looksLikeMarkdown(source) {
|
|
185
|
+
return /^(?:#{1,6}\s|```)/m.test(source);
|
|
186
|
+
}
|
|
187
|
+
function logCompressionOverflow(configuredPath, details) {
|
|
188
|
+
try {
|
|
189
|
+
const path = configuredPath ?? join(homedir(), ".devflow", "errors", "compressor.log");
|
|
190
|
+
mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
|
|
191
|
+
appendFileSync(path, `${JSON.stringify({ ts: Date.now(), ...details })}\n`, { mode: 0o600 });
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
// Compression must remain available when diagnostics cannot be written.
|
|
27
195
|
}
|
|
28
|
-
return { files: result, tokenCount: totalTokens };
|
|
29
196
|
}
|
|
30
197
|
//# sourceMappingURL=compressor.js.map
|
package/dist/compressor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compressor.js","sourceRoot":"","sources":["../src/compressor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"compressor.js","sourceRoot":"","sources":["../src/compressor.ts"],"names":[],"mappings":"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"}
|
package/dist/context-engine.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type { GraphAdapter } from "./graph-adapter.js";
|
|
|
6
6
|
import type { IndexerAdapter } from "./indexer-adapter.js";
|
|
7
7
|
import type { CodeGraph } from "@colbymchenry/codegraph";
|
|
8
8
|
import type { SymbolVectorStore } from "./symbol-vector-store.js";
|
|
9
|
+
import type { SymbolEmbedder } from "./symbol-embedder.js";
|
|
9
10
|
export interface ContextEngineDeps {
|
|
10
11
|
cg: CodeGraph;
|
|
11
12
|
data: IDataProvider;
|
|
@@ -15,6 +16,7 @@ export interface ContextEngineDeps {
|
|
|
15
16
|
knowledge: KnowledgeEngine;
|
|
16
17
|
embedder?: EmbeddingProvider;
|
|
17
18
|
symbolStore?: SymbolVectorStore;
|
|
19
|
+
symbolEmbedder?: SymbolEmbedder;
|
|
18
20
|
}
|
|
19
21
|
export declare class ContextEngine {
|
|
20
22
|
private cg;
|
|
@@ -25,7 +27,9 @@ export declare class ContextEngine {
|
|
|
25
27
|
private knowledge;
|
|
26
28
|
private embedder?;
|
|
27
29
|
private symbolStore?;
|
|
30
|
+
private symbolEmbedder?;
|
|
28
31
|
constructor(deps: ContextEngineDeps);
|
|
32
|
+
close(): void;
|
|
29
33
|
private queryCache;
|
|
30
34
|
index(_projectRoot: string): Promise<void>;
|
|
31
35
|
build(request: ContextRequest): Promise<ContextResult>;
|
|
@@ -36,6 +40,11 @@ export declare class ContextEngine {
|
|
|
36
40
|
sessionId?: string;
|
|
37
41
|
}): Promise<TaskContextResult>;
|
|
38
42
|
private buildTaskContextLegacy;
|
|
43
|
+
private scheduleSymbolVectorBuild;
|
|
44
|
+
private applyTaskSymbolVectorRecall;
|
|
45
|
+
private applyLegacySymbolVectorRecall;
|
|
46
|
+
private isSymbolVectorReady;
|
|
47
|
+
private addSymbolVectorWarning;
|
|
39
48
|
getStatus(): IndexStatus;
|
|
40
49
|
}
|
|
41
50
|
//# sourceMappingURL=context-engine.d.ts.map
|
|
@@ -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,EACb,iBAAiB,EAMlB,MAAM,oBAAoB,CAAC;
|
|
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,EACb,iBAAiB,EAMlB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAOzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA4N3D,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,SAAS,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,CAAoB;IACrC,OAAO,CAAC,WAAW,CAAC,CAAoB;IACxC,OAAO,CAAC,cAAc,CAAC,CAAiB;gBAE5B,IAAI,EAAE,iBAAiB;IAYnC,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,UAAU,CAAkD;IAE9D,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;YA8Q9C,gBAAgB;IAgBxB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;YA6QjI,sBAAsB;IA6LpC,OAAO,CAAC,yBAAyB;YAgBnB,2BAA2B;YA4B3B,6BAA6B;IAkB3C,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,sBAAsB;IAM9B,SAAS,IAAI,WAAW;CASzB"}
|