@context-engine-bridge/context-engine-mcp-bridge 0.0.66 → 0.0.69
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/package.json +1 -1
- package/src/mcpServer.js +38 -26
package/package.json
CHANGED
package/src/mcpServer.js
CHANGED
|
@@ -1292,7 +1292,8 @@ async function createBridgeServer(options) {
|
|
|
1292
1292
|
if (shouldFanOut) {
|
|
1293
1293
|
const fanOutCallTimeoutMs = Math.min(timeoutMs, 10000);
|
|
1294
1294
|
const fanOutDeadlineMs = Math.round(fanOutCallTimeoutMs * 0.8);
|
|
1295
|
-
const
|
|
1295
|
+
const allFanOutCollections = [defaultCollection || primaryCollection, ...additionalCollections].filter(Boolean);
|
|
1296
|
+
const fanOutPromises = allFanOutCollections.map(col => {
|
|
1296
1297
|
const colArgs = { ...args, collection: col, output_format: "json", compact: false };
|
|
1297
1298
|
return targetClient.callTool(
|
|
1298
1299
|
{ name, arguments: colArgs },
|
|
@@ -1883,22 +1884,33 @@ function _mergeResults(primaryText, additionalTexts) {
|
|
|
1883
1884
|
for (const addText of additionalTexts) {
|
|
1884
1885
|
try {
|
|
1885
1886
|
const additional = JSON.parse(addText);
|
|
1886
|
-
if (!additional || !additional.ok)
|
|
1887
|
+
if (!additional || !additional.ok) {
|
|
1888
|
+
primary._merge_skip = { ok: additional?.ok, keys: additional ? Object.keys(additional).slice(0, 10) : [] };
|
|
1889
|
+
continue;
|
|
1890
|
+
}
|
|
1887
1891
|
|
|
1888
1892
|
const aInner = _unwrapSearchEnvelope(additional);
|
|
1889
1893
|
const pResults = _getResultsArray(pInner);
|
|
1890
1894
|
const aResults = _getResultsArray(aInner);
|
|
1891
1895
|
if (pResults && aResults) {
|
|
1896
|
+
primary._merge_branch = "both_arrays";
|
|
1897
|
+
const beforeLen = pResults.length;
|
|
1892
1898
|
const existingPaths = new Set(
|
|
1893
1899
|
pResults.map(r => `${r.path || ""}:${r.start_line || 0}:${r.symbol || ""}`)
|
|
1894
1900
|
);
|
|
1901
|
+
let added = 0;
|
|
1895
1902
|
for (const r of aResults) {
|
|
1896
1903
|
const key = `${r.path || ""}:${r.start_line || 0}:${r.symbol || ""}`;
|
|
1897
1904
|
if (!existingPaths.has(key)) {
|
|
1898
1905
|
pResults.push(r);
|
|
1899
1906
|
existingPaths.add(key);
|
|
1907
|
+
added++;
|
|
1900
1908
|
}
|
|
1901
1909
|
}
|
|
1910
|
+
primary._merge_added = added;
|
|
1911
|
+
primary._merge_pre_sort = pResults.length;
|
|
1912
|
+
primary._merge_before_len = beforeLen;
|
|
1913
|
+
primary._merge_a_len = aResults.length;
|
|
1902
1914
|
if (Array.isArray(pInner.results_json)) {
|
|
1903
1915
|
pInner.results_json = pResults;
|
|
1904
1916
|
} else if (Array.isArray(pInner.results)) {
|
|
@@ -1907,7 +1919,13 @@ function _mergeResults(primaryText, additionalTexts) {
|
|
|
1907
1919
|
pInner.results_json = pResults;
|
|
1908
1920
|
}
|
|
1909
1921
|
} else if (!pResults && aResults) {
|
|
1922
|
+
primary._merge_branch = "only_additional";
|
|
1923
|
+
primary._merge_added = aResults.length;
|
|
1910
1924
|
pInner.results_json = [...aResults];
|
|
1925
|
+
} else {
|
|
1926
|
+
primary._merge_branch = "no_merge";
|
|
1927
|
+
primary._merge_p_type = pResults ? "array" : typeof pInner.results;
|
|
1928
|
+
primary._merge_a_type = aResults ? "array" : typeof aInner.results;
|
|
1911
1929
|
}
|
|
1912
1930
|
|
|
1913
1931
|
if (typeof pInner.total === "number" && typeof aInner.total === "number") {
|
|
@@ -1918,41 +1936,35 @@ function _mergeResults(primaryText, additionalTexts) {
|
|
|
1918
1936
|
const arr = _getResultsArray(pInner);
|
|
1919
1937
|
pInner.count = Array.isArray(arr) ? arr.length : pInner.count + aInner.count;
|
|
1920
1938
|
}
|
|
1921
|
-
} catch (
|
|
1939
|
+
} catch (mergeErr) {
|
|
1940
|
+
primary._merge_error = String(mergeErr);
|
|
1941
|
+
}
|
|
1922
1942
|
}
|
|
1923
1943
|
|
|
1924
1944
|
const resultsArr = _getResultsArray(pInner);
|
|
1925
1945
|
if (Array.isArray(resultsArr) && resultsArr.length > 1) {
|
|
1926
1946
|
resultsArr.sort((a, b) => (b.score || 0) - (a.score || 0));
|
|
1927
1947
|
}
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
pInner.results_json = sliced;
|
|
1934
|
-
} else {
|
|
1935
|
-
pInner.results = sliced;
|
|
1936
|
-
}
|
|
1937
|
-
if (typeof pInner.total === "number") pInner.total = sliced.length;
|
|
1938
|
-
if (typeof pInner.count === "number") pInner.count = sliced.length;
|
|
1948
|
+
if (typeof pInner.total === "number" && Array.isArray(resultsArr)) {
|
|
1949
|
+
pInner.total = resultsArr.length;
|
|
1950
|
+
}
|
|
1951
|
+
if (typeof pInner.count === "number" && Array.isArray(resultsArr)) {
|
|
1952
|
+
pInner.count = resultsArr.length;
|
|
1939
1953
|
}
|
|
1940
1954
|
|
|
1941
1955
|
primary._cross_collection = true;
|
|
1942
|
-
const
|
|
1956
|
+
const finalArr = _getResultsArray(pInner);
|
|
1943
1957
|
primary._fanout_debug = {
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
envelope: pInner !== primary,
|
|
1949
|
-
p_inner_keys: Object.keys(pInner),
|
|
1950
|
-
p_results_type: typeof pInner.results,
|
|
1951
|
-
p_results_json_type: typeof pInner.results_json,
|
|
1952
|
-
p_results_is_array: Array.isArray(pInner.results),
|
|
1953
|
-
p_results_json_is_array: Array.isArray(pInner.results_json),
|
|
1954
|
-
a_first: _aFirst,
|
|
1958
|
+
additional_count: additionalTexts.length,
|
|
1959
|
+
merged_count: Array.isArray(finalArr) ? finalArr.length : 0,
|
|
1960
|
+
branch: primary._merge_branch || "none",
|
|
1961
|
+
added: primary._merge_added || 0,
|
|
1955
1962
|
};
|
|
1963
|
+
if (primary._merge_error) primary._fanout_debug.error = primary._merge_error;
|
|
1964
|
+
if (primary._merge_skip) primary._fanout_debug.skip = primary._merge_skip;
|
|
1965
|
+
delete primary._merge_branch; delete primary._merge_added; delete primary._merge_pre_sort;
|
|
1966
|
+
delete primary._merge_before_len; delete primary._merge_a_len; delete primary._merge_error;
|
|
1967
|
+
delete primary._merge_skip; delete primary._merge_p_type; delete primary._merge_a_type;
|
|
1956
1968
|
return JSON.stringify(primary);
|
|
1957
1969
|
} catch (_) {
|
|
1958
1970
|
return primaryText;
|