@mastra/rag 0.1.18-alpha.4 → 0.1.18-alpha.5

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.
@@ -1,23 +1,23 @@
1
1
 
2
- > @mastra/rag@0.1.18-alpha.4 build /home/runner/work/mastra/mastra/packages/rag
2
+ > @mastra/rag@0.1.18-alpha.5 build /home/runner/work/mastra/mastra/packages/rag
3
3
  > tsup src/index.ts --format esm,cjs --experimental-dts --clean --treeshake=smallest --splitting
4
4
 
5
5
  CLI Building entry: src/index.ts
6
6
  CLI Using tsconfig: tsconfig.json
7
7
  CLI tsup v8.4.0
8
8
  TSC Build start
9
- TSC ⚡️ Build success in 28135ms
9
+ TSC ⚡️ Build success in 25972ms
10
10
  DTS Build start
11
11
  CLI Target: es2022
12
12
  Analysis will use the bundled TypeScript version 5.8.2
13
13
  Writing package typings: /home/runner/work/mastra/mastra/packages/rag/dist/_tsup-dts-rollup.d.ts
14
14
  Analysis will use the bundled TypeScript version 5.8.2
15
15
  Writing package typings: /home/runner/work/mastra/mastra/packages/rag/dist/_tsup-dts-rollup.d.cts
16
- DTS ⚡️ Build success in 40051ms
16
+ DTS ⚡️ Build success in 37741ms
17
17
  CLI Cleaning output folder
18
18
  ESM Build start
19
19
  CJS Build start
20
- CJS dist/index.cjs 93.37 KB
21
- CJS ⚡️ Build success in 2052ms
22
- ESM dist/index.js 92.65 KB
23
- ESM ⚡️ Build success in 2052ms
20
+ CJS dist/index.cjs 96.18 KB
21
+ CJS ⚡️ Build success in 2138ms
22
+ ESM dist/index.js 95.46 KB
23
+ ESM ⚡️ Build success in 2138ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @mastra/rag
2
2
 
3
+ ## 0.1.18-alpha.5
4
+
5
+ ### Patch Changes
6
+
7
+ - 18d0758: [MASTRA-3073] added error logging and more debug logs to vector-query and graph-rag
8
+
3
9
  ## 0.1.18-alpha.4
4
10
 
5
11
  ### Patch Changes
package/dist/index.cjs CHANGED
@@ -1904,10 +1904,24 @@ var createGraphRAGTool = ({
1904
1904
  }),
1905
1905
  description: toolDescription,
1906
1906
  execute: async ({ context: { queryText, topK, filter }, mastra }) => {
1907
- const topKValue = typeof topK === "number" && !isNaN(topK) ? topK : typeof topK === "string" && !isNaN(Number(topK)) ? Number(topK) : 10;
1908
- const vectorStore = mastra?.getVector(vectorStoreName);
1909
1907
  const logger = mastra?.getLogger();
1910
- if (vectorStore) {
1908
+ if (!logger) {
1909
+ console.warn(
1910
+ "[GraphRAGTool] Logger not initialized: no debug or error logs will be recorded for this tool execution."
1911
+ );
1912
+ }
1913
+ if (logger) {
1914
+ logger.debug("[GraphRAGTool] execute called with:", { queryText, topK, filter });
1915
+ }
1916
+ try {
1917
+ const topKValue = typeof topK === "number" && !isNaN(topK) ? topK : typeof topK === "string" && !isNaN(Number(topK)) ? Number(topK) : 10;
1918
+ const vectorStore = mastra?.getVector(vectorStoreName);
1919
+ if (!vectorStore) {
1920
+ if (logger) {
1921
+ logger.error("Vector store not found", { vectorStoreName });
1922
+ }
1923
+ return { relevantContext: [] };
1924
+ }
1911
1925
  let queryFilter = {};
1912
1926
  if (enableFilter) {
1913
1927
  queryFilter = (() => {
@@ -1922,7 +1936,7 @@ var createGraphRAGTool = ({
1922
1936
  })();
1923
1937
  }
1924
1938
  if (logger) {
1925
- logger.debug("Using this filter and topK:", { queryFilter, topK: topKValue });
1939
+ logger.debug("Prepared vector query parameters:", { queryFilter, topK: topKValue });
1926
1940
  }
1927
1941
  const { results, queryEmbedding } = await vectorQuerySearch({
1928
1942
  indexName,
@@ -1933,6 +1947,9 @@ var createGraphRAGTool = ({
1933
1947
  topK: topKValue,
1934
1948
  includeVectors: true
1935
1949
  });
1950
+ if (logger) {
1951
+ logger.debug("vectorQuerySearch returned results", { count: results.length });
1952
+ }
1936
1953
  if (!isInitialized) {
1937
1954
  const chunks = results.map((result) => ({
1938
1955
  text: result?.metadata?.text,
@@ -1941,8 +1958,13 @@ var createGraphRAGTool = ({
1941
1958
  const embeddings = results.map((result) => ({
1942
1959
  vector: result.vector || []
1943
1960
  }));
1961
+ if (logger) {
1962
+ logger.debug("Initializing graph", { chunkCount: chunks.length, embeddingCount: embeddings.length });
1963
+ }
1944
1964
  graphRag.createGraph(chunks, embeddings);
1945
1965
  isInitialized = true;
1966
+ } else if (logger) {
1967
+ logger.debug("Graph already initialized, skipping graph construction");
1946
1968
  }
1947
1969
  const rerankedResults = graphRag.query({
1948
1970
  query: queryEmbedding,
@@ -1950,14 +1972,26 @@ var createGraphRAGTool = ({
1950
1972
  randomWalkSteps: graphOptions.randomWalkSteps,
1951
1973
  restartProb: graphOptions.restartProb
1952
1974
  });
1975
+ if (logger) {
1976
+ logger.debug("GraphRAG query returned results", { count: rerankedResults.length });
1977
+ }
1953
1978
  const relevantChunks = rerankedResults.map((result) => result.content);
1979
+ if (logger) {
1980
+ logger.debug("Returning relevant context chunks", { count: relevantChunks.length });
1981
+ }
1954
1982
  return {
1955
1983
  relevantContext: relevantChunks
1956
1984
  };
1985
+ } catch (err) {
1986
+ if (logger) {
1987
+ logger.error("Unexpected error in VectorQueryTool execute", {
1988
+ error: err,
1989
+ errorMessage: err instanceof Error ? err.message : String(err),
1990
+ errorStack: err instanceof Error ? err.stack : void 0
1991
+ });
1992
+ }
1993
+ return { relevantContext: [] };
1957
1994
  }
1958
- return {
1959
- relevantContext: []
1960
- };
1961
1995
  }
1962
1996
  });
1963
1997
  };
@@ -1988,10 +2022,24 @@ var createVectorQueryTool = ({
1988
2022
  }),
1989
2023
  description: toolDescription,
1990
2024
  execute: async ({ context: { queryText, topK, filter }, mastra }) => {
1991
- const topKValue = typeof topK === "number" && !isNaN(topK) ? topK : typeof topK === "string" && !isNaN(Number(topK)) ? Number(topK) : 10;
1992
- const vectorStore = mastra?.getVector(vectorStoreName);
1993
2025
  const logger = mastra?.getLogger();
1994
- if (vectorStore) {
2026
+ if (!logger) {
2027
+ console.warn(
2028
+ "[VectorQueryTool] Logger not initialized: no debug or error logs will be recorded for this tool execution."
2029
+ );
2030
+ }
2031
+ if (logger) {
2032
+ logger.debug("[VectorQueryTool] execute called with:", { queryText, topK, filter });
2033
+ }
2034
+ try {
2035
+ const topKValue = typeof topK === "number" && !isNaN(topK) ? topK : typeof topK === "string" && !isNaN(Number(topK)) ? Number(topK) : 10;
2036
+ const vectorStore = mastra?.getVector(vectorStoreName);
2037
+ if (!vectorStore) {
2038
+ if (logger) {
2039
+ logger.error("Vector store not found", { vectorStoreName });
2040
+ }
2041
+ return { relevantContext: [] };
2042
+ }
1995
2043
  let queryFilter = {};
1996
2044
  if (enableFilter && filter) {
1997
2045
  queryFilter = (() => {
@@ -2006,7 +2054,7 @@ var createVectorQueryTool = ({
2006
2054
  })();
2007
2055
  }
2008
2056
  if (logger) {
2009
- logger.debug("Using this filter and topK:", { queryFilter, topK: topKValue });
2057
+ logger.debug("Prepared vector query parameters", { queryText, topK: topKValue, queryFilter });
2010
2058
  }
2011
2059
  const { results } = await vectorQuerySearch({
2012
2060
  indexName,
@@ -2016,22 +2064,43 @@ var createVectorQueryTool = ({
2016
2064
  queryFilter: Object.keys(queryFilter || {}).length > 0 ? queryFilter : void 0,
2017
2065
  topK: topKValue
2018
2066
  });
2067
+ if (logger) {
2068
+ logger.debug("vectorQuerySearch returned results", { count: results.length });
2069
+ }
2019
2070
  if (reranker) {
2071
+ if (logger) {
2072
+ logger.debug("Reranking results", { rerankerModel: reranker.model, rerankerOptions: reranker.options });
2073
+ }
2020
2074
  const rerankedResults = await rerank(results, queryText, reranker.model, {
2021
2075
  ...reranker.options,
2022
2076
  topK: reranker.options?.topK || topKValue
2023
2077
  });
2078
+ if (logger) {
2079
+ logger.debug("Reranking complete", { rerankedCount: rerankedResults.length });
2080
+ }
2024
2081
  const relevantChunks2 = rerankedResults.map(({ result }) => result?.metadata);
2082
+ if (logger) {
2083
+ logger.debug("Returning reranked relevant context chunks", { count: relevantChunks2.length });
2084
+ }
2025
2085
  return { relevantContext: relevantChunks2 };
2026
2086
  }
2027
2087
  const relevantChunks = results.map((result) => result?.metadata);
2088
+ if (logger) {
2089
+ logger.debug("Returning relevant context chunks", { count: relevantChunks.length });
2090
+ }
2028
2091
  return {
2029
2092
  relevantContext: relevantChunks
2030
2093
  };
2094
+ } catch (err) {
2095
+ if (logger) {
2096
+ logger.error("Unexpected error in VectorQueryTool execute", {
2097
+ error: err,
2098
+ errorMessage: err instanceof Error ? err.message : String(err),
2099
+ errorStack: err instanceof Error ? err.stack : void 0
2100
+ });
2101
+ }
2102
+ return { relevantContext: [] };
2031
2103
  }
2032
- return {
2033
- relevantContext: []
2034
- };
2035
2104
  }
2036
2105
  });
2037
2106
  };
package/dist/index.js CHANGED
@@ -1902,10 +1902,24 @@ var createGraphRAGTool = ({
1902
1902
  }),
1903
1903
  description: toolDescription,
1904
1904
  execute: async ({ context: { queryText, topK, filter }, mastra }) => {
1905
- const topKValue = typeof topK === "number" && !isNaN(topK) ? topK : typeof topK === "string" && !isNaN(Number(topK)) ? Number(topK) : 10;
1906
- const vectorStore = mastra?.getVector(vectorStoreName);
1907
1905
  const logger = mastra?.getLogger();
1908
- if (vectorStore) {
1906
+ if (!logger) {
1907
+ console.warn(
1908
+ "[GraphRAGTool] Logger not initialized: no debug or error logs will be recorded for this tool execution."
1909
+ );
1910
+ }
1911
+ if (logger) {
1912
+ logger.debug("[GraphRAGTool] execute called with:", { queryText, topK, filter });
1913
+ }
1914
+ try {
1915
+ const topKValue = typeof topK === "number" && !isNaN(topK) ? topK : typeof topK === "string" && !isNaN(Number(topK)) ? Number(topK) : 10;
1916
+ const vectorStore = mastra?.getVector(vectorStoreName);
1917
+ if (!vectorStore) {
1918
+ if (logger) {
1919
+ logger.error("Vector store not found", { vectorStoreName });
1920
+ }
1921
+ return { relevantContext: [] };
1922
+ }
1909
1923
  let queryFilter = {};
1910
1924
  if (enableFilter) {
1911
1925
  queryFilter = (() => {
@@ -1920,7 +1934,7 @@ var createGraphRAGTool = ({
1920
1934
  })();
1921
1935
  }
1922
1936
  if (logger) {
1923
- logger.debug("Using this filter and topK:", { queryFilter, topK: topKValue });
1937
+ logger.debug("Prepared vector query parameters:", { queryFilter, topK: topKValue });
1924
1938
  }
1925
1939
  const { results, queryEmbedding } = await vectorQuerySearch({
1926
1940
  indexName,
@@ -1931,6 +1945,9 @@ var createGraphRAGTool = ({
1931
1945
  topK: topKValue,
1932
1946
  includeVectors: true
1933
1947
  });
1948
+ if (logger) {
1949
+ logger.debug("vectorQuerySearch returned results", { count: results.length });
1950
+ }
1934
1951
  if (!isInitialized) {
1935
1952
  const chunks = results.map((result) => ({
1936
1953
  text: result?.metadata?.text,
@@ -1939,8 +1956,13 @@ var createGraphRAGTool = ({
1939
1956
  const embeddings = results.map((result) => ({
1940
1957
  vector: result.vector || []
1941
1958
  }));
1959
+ if (logger) {
1960
+ logger.debug("Initializing graph", { chunkCount: chunks.length, embeddingCount: embeddings.length });
1961
+ }
1942
1962
  graphRag.createGraph(chunks, embeddings);
1943
1963
  isInitialized = true;
1964
+ } else if (logger) {
1965
+ logger.debug("Graph already initialized, skipping graph construction");
1944
1966
  }
1945
1967
  const rerankedResults = graphRag.query({
1946
1968
  query: queryEmbedding,
@@ -1948,14 +1970,26 @@ var createGraphRAGTool = ({
1948
1970
  randomWalkSteps: graphOptions.randomWalkSteps,
1949
1971
  restartProb: graphOptions.restartProb
1950
1972
  });
1973
+ if (logger) {
1974
+ logger.debug("GraphRAG query returned results", { count: rerankedResults.length });
1975
+ }
1951
1976
  const relevantChunks = rerankedResults.map((result) => result.content);
1977
+ if (logger) {
1978
+ logger.debug("Returning relevant context chunks", { count: relevantChunks.length });
1979
+ }
1952
1980
  return {
1953
1981
  relevantContext: relevantChunks
1954
1982
  };
1983
+ } catch (err) {
1984
+ if (logger) {
1985
+ logger.error("Unexpected error in VectorQueryTool execute", {
1986
+ error: err,
1987
+ errorMessage: err instanceof Error ? err.message : String(err),
1988
+ errorStack: err instanceof Error ? err.stack : void 0
1989
+ });
1990
+ }
1991
+ return { relevantContext: [] };
1955
1992
  }
1956
- return {
1957
- relevantContext: []
1958
- };
1959
1993
  }
1960
1994
  });
1961
1995
  };
@@ -1986,10 +2020,24 @@ var createVectorQueryTool = ({
1986
2020
  }),
1987
2021
  description: toolDescription,
1988
2022
  execute: async ({ context: { queryText, topK, filter }, mastra }) => {
1989
- const topKValue = typeof topK === "number" && !isNaN(topK) ? topK : typeof topK === "string" && !isNaN(Number(topK)) ? Number(topK) : 10;
1990
- const vectorStore = mastra?.getVector(vectorStoreName);
1991
2023
  const logger = mastra?.getLogger();
1992
- if (vectorStore) {
2024
+ if (!logger) {
2025
+ console.warn(
2026
+ "[VectorQueryTool] Logger not initialized: no debug or error logs will be recorded for this tool execution."
2027
+ );
2028
+ }
2029
+ if (logger) {
2030
+ logger.debug("[VectorQueryTool] execute called with:", { queryText, topK, filter });
2031
+ }
2032
+ try {
2033
+ const topKValue = typeof topK === "number" && !isNaN(topK) ? topK : typeof topK === "string" && !isNaN(Number(topK)) ? Number(topK) : 10;
2034
+ const vectorStore = mastra?.getVector(vectorStoreName);
2035
+ if (!vectorStore) {
2036
+ if (logger) {
2037
+ logger.error("Vector store not found", { vectorStoreName });
2038
+ }
2039
+ return { relevantContext: [] };
2040
+ }
1993
2041
  let queryFilter = {};
1994
2042
  if (enableFilter && filter) {
1995
2043
  queryFilter = (() => {
@@ -2004,7 +2052,7 @@ var createVectorQueryTool = ({
2004
2052
  })();
2005
2053
  }
2006
2054
  if (logger) {
2007
- logger.debug("Using this filter and topK:", { queryFilter, topK: topKValue });
2055
+ logger.debug("Prepared vector query parameters", { queryText, topK: topKValue, queryFilter });
2008
2056
  }
2009
2057
  const { results } = await vectorQuerySearch({
2010
2058
  indexName,
@@ -2014,22 +2062,43 @@ var createVectorQueryTool = ({
2014
2062
  queryFilter: Object.keys(queryFilter || {}).length > 0 ? queryFilter : void 0,
2015
2063
  topK: topKValue
2016
2064
  });
2065
+ if (logger) {
2066
+ logger.debug("vectorQuerySearch returned results", { count: results.length });
2067
+ }
2017
2068
  if (reranker) {
2069
+ if (logger) {
2070
+ logger.debug("Reranking results", { rerankerModel: reranker.model, rerankerOptions: reranker.options });
2071
+ }
2018
2072
  const rerankedResults = await rerank(results, queryText, reranker.model, {
2019
2073
  ...reranker.options,
2020
2074
  topK: reranker.options?.topK || topKValue
2021
2075
  });
2076
+ if (logger) {
2077
+ logger.debug("Reranking complete", { rerankedCount: rerankedResults.length });
2078
+ }
2022
2079
  const relevantChunks2 = rerankedResults.map(({ result }) => result?.metadata);
2080
+ if (logger) {
2081
+ logger.debug("Returning reranked relevant context chunks", { count: relevantChunks2.length });
2082
+ }
2023
2083
  return { relevantContext: relevantChunks2 };
2024
2084
  }
2025
2085
  const relevantChunks = results.map((result) => result?.metadata);
2086
+ if (logger) {
2087
+ logger.debug("Returning relevant context chunks", { count: relevantChunks.length });
2088
+ }
2026
2089
  return {
2027
2090
  relevantContext: relevantChunks
2028
2091
  };
2092
+ } catch (err) {
2093
+ if (logger) {
2094
+ logger.error("Unexpected error in VectorQueryTool execute", {
2095
+ error: err,
2096
+ errorMessage: err instanceof Error ? err.message : String(err),
2097
+ errorStack: err instanceof Error ? err.stack : void 0
2098
+ });
2099
+ }
2100
+ return { relevantContext: [] };
2029
2101
  }
2030
- return {
2031
- relevantContext: []
2032
- };
2033
2102
  }
2034
2103
  });
2035
2104
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/rag",
3
- "version": "0.1.18-alpha.4",
3
+ "version": "0.1.18-alpha.5",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -64,16 +64,31 @@ export const createGraphRAGTool = ({
64
64
  }),
65
65
  description: toolDescription,
66
66
  execute: async ({ context: { queryText, topK, filter }, mastra }) => {
67
- const topKValue =
68
- typeof topK === 'number' && !isNaN(topK)
69
- ? topK
70
- : typeof topK === 'string' && !isNaN(Number(topK))
71
- ? Number(topK)
72
- : 10;
73
- const vectorStore = mastra?.getVector(vectorStoreName);
74
67
  const logger = mastra?.getLogger();
68
+ if (!logger) {
69
+ console.warn(
70
+ '[GraphRAGTool] Logger not initialized: no debug or error logs will be recorded for this tool execution.',
71
+ );
72
+ }
73
+ if (logger) {
74
+ logger.debug('[GraphRAGTool] execute called with:', { queryText, topK, filter });
75
+ }
76
+ try {
77
+ const topKValue =
78
+ typeof topK === 'number' && !isNaN(topK)
79
+ ? topK
80
+ : typeof topK === 'string' && !isNaN(Number(topK))
81
+ ? Number(topK)
82
+ : 10;
83
+ const vectorStore = mastra?.getVector(vectorStoreName);
84
+
85
+ if (!vectorStore) {
86
+ if (logger) {
87
+ logger.error('Vector store not found', { vectorStoreName });
88
+ }
89
+ return { relevantContext: [] };
90
+ }
75
91
 
76
- if (vectorStore) {
77
92
  let queryFilter = {};
78
93
  if (enableFilter) {
79
94
  queryFilter = (() => {
@@ -89,7 +104,7 @@ export const createGraphRAGTool = ({
89
104
  })();
90
105
  }
91
106
  if (logger) {
92
- logger.debug('Using this filter and topK:', { queryFilter, topK: topKValue });
107
+ logger.debug('Prepared vector query parameters:', { queryFilter, topK: topKValue });
93
108
  }
94
109
  const { results, queryEmbedding } = await vectorQuerySearch({
95
110
  indexName,
@@ -100,6 +115,9 @@ export const createGraphRAGTool = ({
100
115
  topK: topKValue,
101
116
  includeVectors: true,
102
117
  });
118
+ if (logger) {
119
+ logger.debug('vectorQuerySearch returned results', { count: results.length });
120
+ }
103
121
 
104
122
  // Initialize graph if not done yet
105
123
  if (!isInitialized) {
@@ -112,8 +130,13 @@ export const createGraphRAGTool = ({
112
130
  vector: result.vector || [],
113
131
  }));
114
132
 
133
+ if (logger) {
134
+ logger.debug('Initializing graph', { chunkCount: chunks.length, embeddingCount: embeddings.length });
135
+ }
115
136
  graphRag.createGraph(chunks, embeddings);
116
137
  isInitialized = true;
138
+ } else if (logger) {
139
+ logger.debug('Graph already initialized, skipping graph construction');
117
140
  }
118
141
 
119
142
  // Get reranked results using GraphRAG
@@ -123,16 +146,27 @@ export const createGraphRAGTool = ({
123
146
  randomWalkSteps: graphOptions.randomWalkSteps,
124
147
  restartProb: graphOptions.restartProb,
125
148
  });
126
-
149
+ if (logger) {
150
+ logger.debug('GraphRAG query returned results', { count: rerankedResults.length });
151
+ }
127
152
  // Extract and combine relevant chunks
128
153
  const relevantChunks = rerankedResults.map(result => result.content);
154
+ if (logger) {
155
+ logger.debug('Returning relevant context chunks', { count: relevantChunks.length });
156
+ }
129
157
  return {
130
158
  relevantContext: relevantChunks,
131
159
  };
160
+ } catch (err) {
161
+ if (logger) {
162
+ logger.error('Unexpected error in VectorQueryTool execute', {
163
+ error: err,
164
+ errorMessage: err instanceof Error ? err.message : String(err),
165
+ errorStack: err instanceof Error ? err.stack : undefined,
166
+ });
167
+ }
168
+ return { relevantContext: [] };
132
169
  }
133
- return {
134
- relevantContext: [],
135
- };
136
170
  },
137
171
  });
138
172
  };
@@ -52,18 +52,32 @@ export const createVectorQueryTool = ({
52
52
  }),
53
53
  description: toolDescription,
54
54
  execute: async ({ context: { queryText, topK, filter }, mastra }) => {
55
- const topKValue =
56
- typeof topK === 'number' && !isNaN(topK)
57
- ? topK
58
- : typeof topK === 'string' && !isNaN(Number(topK))
59
- ? Number(topK)
60
- : 10;
61
-
62
- const vectorStore = mastra?.getVector(vectorStoreName);
63
55
  const logger = mastra?.getLogger();
56
+ if (!logger) {
57
+ console.warn(
58
+ '[VectorQueryTool] Logger not initialized: no debug or error logs will be recorded for this tool execution.',
59
+ );
60
+ }
61
+ if (logger) {
62
+ logger.debug('[VectorQueryTool] execute called with:', { queryText, topK, filter });
63
+ }
64
+ try {
65
+ const topKValue =
66
+ typeof topK === 'number' && !isNaN(topK)
67
+ ? topK
68
+ : typeof topK === 'string' && !isNaN(Number(topK))
69
+ ? Number(topK)
70
+ : 10;
64
71
 
65
- // Get relevant chunks from the vector database
66
- if (vectorStore) {
72
+ const vectorStore = mastra?.getVector(vectorStoreName);
73
+
74
+ if (!vectorStore) {
75
+ if (logger) {
76
+ logger.error('Vector store not found', { vectorStoreName });
77
+ }
78
+ return { relevantContext: [] };
79
+ }
80
+ // Get relevant chunks from the vector database
67
81
  let queryFilter = {};
68
82
  if (enableFilter && filter) {
69
83
  queryFilter = (() => {
@@ -79,7 +93,7 @@ export const createVectorQueryTool = ({
79
93
  })();
80
94
  }
81
95
  if (logger) {
82
- logger.debug('Using this filter and topK:', { queryFilter, topK: topKValue });
96
+ logger.debug('Prepared vector query parameters', { queryText, topK: topKValue, queryFilter });
83
97
  }
84
98
 
85
99
  const { results } = await vectorQuerySearch({
@@ -90,23 +104,44 @@ export const createVectorQueryTool = ({
90
104
  queryFilter: Object.keys(queryFilter || {}).length > 0 ? queryFilter : undefined,
91
105
  topK: topKValue,
92
106
  });
107
+ if (logger) {
108
+ logger.debug('vectorQuerySearch returned results', { count: results.length });
109
+ }
93
110
  if (reranker) {
111
+ if (logger) {
112
+ logger.debug('Reranking results', { rerankerModel: reranker.model, rerankerOptions: reranker.options });
113
+ }
94
114
  const rerankedResults = await rerank(results, queryText, reranker.model, {
95
115
  ...reranker.options,
96
116
  topK: reranker.options?.topK || topKValue,
97
117
  });
118
+ if (logger) {
119
+ logger.debug('Reranking complete', { rerankedCount: rerankedResults.length });
120
+ }
98
121
  const relevantChunks = rerankedResults.map(({ result }) => result?.metadata);
122
+ if (logger) {
123
+ logger.debug('Returning reranked relevant context chunks', { count: relevantChunks.length });
124
+ }
99
125
  return { relevantContext: relevantChunks };
100
126
  }
101
127
 
102
128
  const relevantChunks = results.map(result => result?.metadata);
129
+ if (logger) {
130
+ logger.debug('Returning relevant context chunks', { count: relevantChunks.length });
131
+ }
103
132
  return {
104
133
  relevantContext: relevantChunks,
105
134
  };
135
+ } catch (err) {
136
+ if (logger) {
137
+ logger.error('Unexpected error in VectorQueryTool execute', {
138
+ error: err,
139
+ errorMessage: err instanceof Error ? err.message : String(err),
140
+ errorStack: err instanceof Error ? err.stack : undefined,
141
+ });
142
+ }
143
+ return { relevantContext: [] };
106
144
  }
107
- return {
108
- relevantContext: [],
109
- };
110
145
  },
111
146
  });
112
147
  };