@juspay/neurolink 9.65.0 → 9.65.2

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.
Files changed (266) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/adapters/video/videoAnalyzer.d.ts +1 -1
  3. package/dist/agent/directTools.d.ts +9 -17
  4. package/dist/agent/directTools.js +12 -8
  5. package/dist/autoresearch/tools.d.ts +2 -214
  6. package/dist/autoresearch/tools.js +1 -1
  7. package/dist/browser/neurolink.min.js +362 -368
  8. package/dist/client/reactHooks.js +16 -8
  9. package/dist/client/reactHooks.tsx +24 -9
  10. package/dist/core/baseProvider.d.ts +1 -6
  11. package/dist/core/baseProvider.js +1 -1
  12. package/dist/core/constants.d.ts +1 -0
  13. package/dist/core/constants.js +3 -0
  14. package/dist/core/modules/GenerationHandler.d.ts +2 -2
  15. package/dist/core/modules/GenerationHandler.js +3 -1
  16. package/dist/core/modules/MessageBuilder.d.ts +1 -15
  17. package/dist/core/modules/MessageBuilder.js +0 -14
  18. package/dist/core/modules/StreamHandler.js +1 -1
  19. package/dist/core/modules/ToolsManager.d.ts +1 -17
  20. package/dist/core/modules/ToolsManager.js +1 -17
  21. package/dist/core/redisConversationMemoryManager.js +0 -6
  22. package/dist/core/streamAnalytics.js +1 -1
  23. package/dist/evaluation/contextBuilder.d.ts +1 -4
  24. package/dist/evaluation/contextBuilder.js +0 -3
  25. package/dist/evaluation/index.d.ts +1 -4
  26. package/dist/evaluation/index.js +0 -3
  27. package/dist/files/fileTools.d.ts +2 -18
  28. package/dist/files/fileTools.js +3 -19
  29. package/dist/lib/adapters/video/videoAnalyzer.d.ts +1 -1
  30. package/dist/lib/agent/directTools.d.ts +9 -17
  31. package/dist/lib/agent/directTools.js +12 -8
  32. package/dist/lib/autoresearch/tools.d.ts +2 -214
  33. package/dist/lib/autoresearch/tools.js +1 -1
  34. package/dist/lib/client/reactHooks.js +16 -8
  35. package/dist/lib/core/baseProvider.d.ts +1 -6
  36. package/dist/lib/core/baseProvider.js +1 -1
  37. package/dist/lib/core/constants.d.ts +1 -0
  38. package/dist/lib/core/constants.js +3 -0
  39. package/dist/lib/core/modules/GenerationHandler.d.ts +2 -2
  40. package/dist/lib/core/modules/GenerationHandler.js +3 -1
  41. package/dist/lib/core/modules/MessageBuilder.d.ts +1 -15
  42. package/dist/lib/core/modules/MessageBuilder.js +0 -14
  43. package/dist/lib/core/modules/StreamHandler.js +1 -1
  44. package/dist/lib/core/modules/ToolsManager.d.ts +1 -17
  45. package/dist/lib/core/modules/ToolsManager.js +1 -17
  46. package/dist/lib/core/redisConversationMemoryManager.js +0 -6
  47. package/dist/lib/core/streamAnalytics.js +1 -1
  48. package/dist/lib/evaluation/contextBuilder.d.ts +1 -4
  49. package/dist/lib/evaluation/contextBuilder.js +0 -3
  50. package/dist/lib/evaluation/index.d.ts +1 -4
  51. package/dist/lib/evaluation/index.js +0 -3
  52. package/dist/lib/files/fileTools.d.ts +2 -18
  53. package/dist/lib/files/fileTools.js +3 -19
  54. package/dist/lib/memory/memoryRetrievalTools.d.ts +2 -126
  55. package/dist/lib/memory/memoryRetrievalTools.js +1 -9
  56. package/dist/lib/middleware/builtin/autoEvaluation.d.ts +0 -3
  57. package/dist/lib/middleware/builtin/autoEvaluation.js +0 -3
  58. package/dist/lib/middleware/builtin/guardrails.js +1 -1
  59. package/dist/lib/middleware/builtin/lifecycle.d.ts +0 -9
  60. package/dist/lib/middleware/builtin/lifecycle.js +0 -9
  61. package/dist/lib/middleware/factory.d.ts +1 -1
  62. package/dist/lib/middleware/factory.js +1 -1
  63. package/dist/lib/middleware/registry.d.ts +1 -1
  64. package/dist/lib/neurolink.d.ts +14 -2
  65. package/dist/lib/neurolink.js +46 -18
  66. package/dist/lib/processors/media/AudioProcessor.js +8 -3
  67. package/dist/lib/providers/amazonBedrock.js +1 -2
  68. package/dist/lib/providers/amazonSagemaker.d.ts +1 -7
  69. package/dist/lib/providers/amazonSagemaker.js +0 -6
  70. package/dist/lib/providers/anthropic.d.ts +1 -1
  71. package/dist/lib/providers/anthropic.js +2 -1
  72. package/dist/lib/providers/anthropicBaseProvider.d.ts +1 -1
  73. package/dist/lib/providers/anthropicBaseProvider.js +2 -1
  74. package/dist/lib/providers/azureOpenai.d.ts +1 -1
  75. package/dist/lib/providers/azureOpenai.js +2 -1
  76. package/dist/lib/providers/cloudflare.d.ts +1 -1
  77. package/dist/lib/providers/cloudflare.js +2 -1
  78. package/dist/lib/providers/cohere.d.ts +1 -1
  79. package/dist/lib/providers/cohere.js +2 -1
  80. package/dist/lib/providers/deepseek.d.ts +1 -1
  81. package/dist/lib/providers/deepseek.js +2 -1
  82. package/dist/lib/providers/fireworks.d.ts +1 -1
  83. package/dist/lib/providers/fireworks.js +2 -1
  84. package/dist/lib/providers/googleAiStudio.d.ts +1 -1
  85. package/dist/lib/providers/googleAiStudio.js +82 -6
  86. package/dist/lib/providers/googleNativeGemini3.d.ts +3 -6
  87. package/dist/lib/providers/googleNativeGemini3.js +104 -9
  88. package/dist/lib/providers/googleVertex.d.ts +1 -1
  89. package/dist/lib/providers/googleVertex.js +466 -165
  90. package/dist/lib/providers/groq.d.ts +1 -1
  91. package/dist/lib/providers/groq.js +2 -1
  92. package/dist/lib/providers/huggingFace.d.ts +1 -1
  93. package/dist/lib/providers/huggingFace.js +3 -1
  94. package/dist/lib/providers/ideogram.d.ts +1 -1
  95. package/dist/lib/providers/jina.d.ts +1 -1
  96. package/dist/lib/providers/litellm.d.ts +1 -1
  97. package/dist/lib/providers/litellm.js +12 -6
  98. package/dist/lib/providers/llamaCpp.d.ts +1 -1
  99. package/dist/lib/providers/llamaCpp.js +2 -1
  100. package/dist/lib/providers/lmStudio.d.ts +1 -1
  101. package/dist/lib/providers/lmStudio.js +2 -1
  102. package/dist/lib/providers/mistral.d.ts +1 -1
  103. package/dist/lib/providers/mistral.js +2 -1
  104. package/dist/lib/providers/nvidiaNim.d.ts +1 -1
  105. package/dist/lib/providers/nvidiaNim.js +2 -1
  106. package/dist/lib/providers/ollama.d.ts +1 -1
  107. package/dist/lib/providers/ollama.js +1 -2
  108. package/dist/lib/providers/openAI.d.ts +1 -1
  109. package/dist/lib/providers/openAI.js +3 -1
  110. package/dist/lib/providers/openRouter.d.ts +1 -1
  111. package/dist/lib/providers/openRouter.js +3 -1
  112. package/dist/lib/providers/openaiCompatible.d.ts +1 -1
  113. package/dist/lib/providers/openaiCompatible.js +3 -1
  114. package/dist/lib/providers/perplexity.d.ts +1 -1
  115. package/dist/lib/providers/perplexity.js +2 -1
  116. package/dist/lib/providers/providerTypeUtils.d.ts +2 -7
  117. package/dist/lib/providers/providerTypeUtils.js +0 -6
  118. package/dist/lib/providers/recraft.d.ts +1 -1
  119. package/dist/lib/providers/replicate.d.ts +1 -1
  120. package/dist/lib/providers/stability.d.ts +1 -1
  121. package/dist/lib/providers/togetherAi.d.ts +1 -1
  122. package/dist/lib/providers/togetherAi.js +2 -1
  123. package/dist/lib/providers/voyage.d.ts +1 -1
  124. package/dist/lib/providers/xai.d.ts +1 -1
  125. package/dist/lib/providers/xai.js +2 -1
  126. package/dist/lib/proxy/claudeFormat.d.ts +0 -15
  127. package/dist/lib/proxy/claudeFormat.js +1 -11
  128. package/dist/lib/rag/ragIntegration.d.ts +1 -12
  129. package/dist/lib/rag/ragIntegration.js +0 -8
  130. package/dist/lib/tasks/tools/taskTools.d.ts +2 -117
  131. package/dist/lib/tasks/tools/taskTools.js +1 -10
  132. package/dist/lib/types/aliases.d.ts +1 -1
  133. package/dist/lib/types/conversation.d.ts +17 -0
  134. package/dist/lib/types/evaluation.d.ts +1 -5
  135. package/dist/lib/types/evaluation.js +0 -4
  136. package/dist/lib/types/generate.d.ts +2 -22
  137. package/dist/lib/types/guardrails.d.ts +1 -1
  138. package/dist/lib/types/middleware.d.ts +8 -3
  139. package/dist/lib/types/providers.d.ts +2 -1
  140. package/dist/lib/types/rag.d.ts +1 -1
  141. package/dist/lib/types/rag.js +0 -6
  142. package/dist/lib/types/stream.d.ts +2 -11
  143. package/dist/lib/types/tools.d.ts +2 -1
  144. package/dist/lib/utils/generation.d.ts +8 -0
  145. package/dist/lib/utils/generation.js +9 -0
  146. package/dist/lib/utils/generationErrors.d.ts +10 -0
  147. package/dist/lib/utils/generationErrors.js +11 -0
  148. package/dist/lib/utils/messageBuilder.d.ts +1 -6
  149. package/dist/lib/utils/messageBuilder.js +0 -5
  150. package/dist/lib/utils/noOutputSentinel.d.ts +0 -13
  151. package/dist/lib/utils/noOutputSentinel.js +1 -14
  152. package/dist/lib/utils/providerRetry.js +1 -1
  153. package/dist/lib/utils/tool.d.ts +8 -0
  154. package/dist/lib/utils/tool.js +9 -0
  155. package/dist/lib/utils/toolCallRepair.d.ts +1 -16
  156. package/dist/lib/utils/toolCallRepair.js +1 -16
  157. package/dist/lib/utils/toolChoice.d.ts +1 -1
  158. package/dist/lib/utils/videoAnalysisProcessor.d.ts +1 -8
  159. package/dist/lib/utils/videoAnalysisProcessor.js +0 -7
  160. package/dist/memory/memoryRetrievalTools.d.ts +2 -126
  161. package/dist/memory/memoryRetrievalTools.js +1 -9
  162. package/dist/middleware/builtin/autoEvaluation.d.ts +0 -3
  163. package/dist/middleware/builtin/autoEvaluation.js +0 -3
  164. package/dist/middleware/builtin/guardrails.js +1 -1
  165. package/dist/middleware/builtin/lifecycle.d.ts +0 -9
  166. package/dist/middleware/builtin/lifecycle.js +0 -9
  167. package/dist/middleware/factory.d.ts +1 -1
  168. package/dist/middleware/factory.js +1 -1
  169. package/dist/middleware/registry.d.ts +1 -1
  170. package/dist/neurolink.d.ts +14 -2
  171. package/dist/neurolink.js +46 -18
  172. package/dist/processors/media/AudioProcessor.js +8 -3
  173. package/dist/providers/amazonBedrock.js +1 -2
  174. package/dist/providers/amazonSagemaker.d.ts +1 -7
  175. package/dist/providers/amazonSagemaker.js +0 -6
  176. package/dist/providers/anthropic.d.ts +1 -1
  177. package/dist/providers/anthropic.js +2 -1
  178. package/dist/providers/anthropicBaseProvider.d.ts +1 -1
  179. package/dist/providers/anthropicBaseProvider.js +2 -1
  180. package/dist/providers/azureOpenai.d.ts +1 -1
  181. package/dist/providers/azureOpenai.js +2 -1
  182. package/dist/providers/cloudflare.d.ts +1 -1
  183. package/dist/providers/cloudflare.js +2 -1
  184. package/dist/providers/cohere.d.ts +1 -1
  185. package/dist/providers/cohere.js +2 -1
  186. package/dist/providers/deepseek.d.ts +1 -1
  187. package/dist/providers/deepseek.js +2 -1
  188. package/dist/providers/fireworks.d.ts +1 -1
  189. package/dist/providers/fireworks.js +2 -1
  190. package/dist/providers/googleAiStudio.d.ts +1 -1
  191. package/dist/providers/googleAiStudio.js +82 -5
  192. package/dist/providers/googleNativeGemini3.d.ts +3 -6
  193. package/dist/providers/googleNativeGemini3.js +104 -9
  194. package/dist/providers/googleVertex.d.ts +1 -1
  195. package/dist/providers/googleVertex.js +466 -164
  196. package/dist/providers/groq.d.ts +1 -1
  197. package/dist/providers/groq.js +2 -1
  198. package/dist/providers/huggingFace.d.ts +1 -1
  199. package/dist/providers/huggingFace.js +3 -1
  200. package/dist/providers/ideogram.d.ts +1 -1
  201. package/dist/providers/jina.d.ts +1 -1
  202. package/dist/providers/litellm.d.ts +1 -1
  203. package/dist/providers/litellm.js +12 -6
  204. package/dist/providers/llamaCpp.d.ts +1 -1
  205. package/dist/providers/llamaCpp.js +2 -1
  206. package/dist/providers/lmStudio.d.ts +1 -1
  207. package/dist/providers/lmStudio.js +2 -1
  208. package/dist/providers/mistral.d.ts +1 -1
  209. package/dist/providers/mistral.js +2 -1
  210. package/dist/providers/nvidiaNim.d.ts +1 -1
  211. package/dist/providers/nvidiaNim.js +2 -1
  212. package/dist/providers/ollama.d.ts +1 -1
  213. package/dist/providers/ollama.js +1 -2
  214. package/dist/providers/openAI.d.ts +1 -1
  215. package/dist/providers/openAI.js +3 -1
  216. package/dist/providers/openRouter.d.ts +1 -1
  217. package/dist/providers/openRouter.js +3 -1
  218. package/dist/providers/openaiCompatible.d.ts +1 -1
  219. package/dist/providers/openaiCompatible.js +3 -1
  220. package/dist/providers/perplexity.d.ts +1 -1
  221. package/dist/providers/perplexity.js +2 -1
  222. package/dist/providers/providerTypeUtils.d.ts +2 -7
  223. package/dist/providers/providerTypeUtils.js +0 -6
  224. package/dist/providers/recraft.d.ts +1 -1
  225. package/dist/providers/replicate.d.ts +1 -1
  226. package/dist/providers/stability.d.ts +1 -1
  227. package/dist/providers/togetherAi.d.ts +1 -1
  228. package/dist/providers/togetherAi.js +2 -1
  229. package/dist/providers/voyage.d.ts +1 -1
  230. package/dist/providers/xai.d.ts +1 -1
  231. package/dist/providers/xai.js +2 -1
  232. package/dist/proxy/claudeFormat.d.ts +0 -15
  233. package/dist/proxy/claudeFormat.js +1 -11
  234. package/dist/rag/ragIntegration.d.ts +1 -12
  235. package/dist/rag/ragIntegration.js +0 -8
  236. package/dist/tasks/tools/taskTools.d.ts +2 -117
  237. package/dist/tasks/tools/taskTools.js +1 -10
  238. package/dist/types/aliases.d.ts +1 -1
  239. package/dist/types/conversation.d.ts +17 -0
  240. package/dist/types/evaluation.d.ts +1 -5
  241. package/dist/types/evaluation.js +0 -4
  242. package/dist/types/generate.d.ts +2 -22
  243. package/dist/types/guardrails.d.ts +1 -1
  244. package/dist/types/middleware.d.ts +8 -3
  245. package/dist/types/providers.d.ts +2 -1
  246. package/dist/types/rag.d.ts +1 -1
  247. package/dist/types/rag.js +0 -6
  248. package/dist/types/stream.d.ts +2 -11
  249. package/dist/types/tools.d.ts +2 -1
  250. package/dist/utils/generation.d.ts +8 -0
  251. package/dist/utils/generation.js +8 -0
  252. package/dist/utils/generationErrors.d.ts +10 -0
  253. package/dist/utils/generationErrors.js +10 -0
  254. package/dist/utils/messageBuilder.d.ts +1 -6
  255. package/dist/utils/messageBuilder.js +0 -5
  256. package/dist/utils/noOutputSentinel.d.ts +0 -13
  257. package/dist/utils/noOutputSentinel.js +1 -14
  258. package/dist/utils/providerRetry.js +1 -1
  259. package/dist/utils/tool.d.ts +8 -0
  260. package/dist/utils/tool.js +8 -0
  261. package/dist/utils/toolCallRepair.d.ts +1 -16
  262. package/dist/utils/toolCallRepair.js +1 -16
  263. package/dist/utils/toolChoice.d.ts +1 -1
  264. package/dist/utils/videoAnalysisProcessor.d.ts +1 -8
  265. package/dist/utils/videoAnalysisProcessor.js +0 -7
  266. package/package.json +2 -3
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [9.65.2](https://github.com/juspay/neurolink/compare/v9.65.1...v9.65.2) (2026-05-24)
2
+
3
+ ## [9.65.1](https://github.com/juspay/neurolink/compare/v9.65.0...v9.65.1) (2026-05-24)
4
+
5
+ ### Bug Fixes
6
+
7
+ - **(providers):** restore native Vertex tool storage + Claude streaming + Gemini history replay ([7b00e06](https://github.com/juspay/neurolink/commit/7b00e0608a9184e48f3badd90a2238cb330a8128))
8
+
1
9
  ## [9.65.0](https://github.com/juspay/neurolink/compare/v9.64.0...v9.65.0) (2026-05-17)
2
10
 
3
11
  ### Features
@@ -7,7 +7,7 @@
7
7
  * @module adapters/video/geminiVideoAnalyzer
8
8
  */
9
9
  import { AIProviderName } from "../../constants/enums.js";
10
- import type { ModelMessage } from "ai";
10
+ import type { ModelMessage } from "../../types/index.js";
11
11
  export declare function analyzeVideoWithVertexAI(messages: ModelMessage[], options?: {
12
12
  project?: string;
13
13
  location?: string;
@@ -1,14 +1,10 @@
1
- /**
2
- * Direct Tool Definitions for NeuroLink CLI Agent
3
- * Simple, reliable tools that work immediately with Vercel AI SDK
4
- */
5
- import type { AllToolsMap, BasicToolsMap, FilesystemToolsMap, UtilityToolsMap } from "../types/index.js";
1
+ import type { AllToolsMap, BasicToolsMap, FilesystemToolsMap, Tool, UtilityToolsMap } from "../types/index.js";
6
2
  /**
7
3
  * Direct tool definitions that work immediately with Gemini/AI SDK
8
4
  * These bypass MCP complexity and provide reliable agent functionality
9
5
  */
10
6
  export declare const directAgentTools: {
11
- getCurrentTime: import("ai").Tool<{
7
+ getCurrentTime: Tool<{
12
8
  timezone?: string | undefined;
13
9
  }, {
14
10
  success: boolean;
@@ -32,7 +28,7 @@ export declare const directAgentTools: {
32
28
  iso?: undefined;
33
29
  timestamp?: undefined;
34
30
  }>;
35
- readFile: import("ai").Tool<{
31
+ readFile: Tool<{
36
32
  path: string;
37
33
  }, {
38
34
  success: boolean;
@@ -56,7 +52,7 @@ export declare const directAgentTools: {
56
52
  size?: undefined;
57
53
  lastModified?: undefined;
58
54
  }>;
59
- listDirectory: import("ai").Tool<{
55
+ listDirectory: Tool<{
60
56
  path: string;
61
57
  includeHidden: boolean;
62
58
  }, {
@@ -77,7 +73,7 @@ export declare const directAgentTools: {
77
73
  items?: undefined;
78
74
  count?: undefined;
79
75
  }>;
80
- calculateMath: import("ai").Tool<{
76
+ calculateMath: Tool<{
81
77
  expression: string;
82
78
  precision: number;
83
79
  }, {
@@ -99,7 +95,7 @@ export declare const directAgentTools: {
99
95
  result?: undefined;
100
96
  type?: undefined;
101
97
  }>;
102
- writeFile: import("ai").Tool<{
98
+ writeFile: Tool<{
103
99
  path: string;
104
100
  content: string;
105
101
  mode: "append" | "create" | "overwrite";
@@ -125,7 +121,7 @@ export declare const directAgentTools: {
125
121
  size?: undefined;
126
122
  written?: undefined;
127
123
  }>;
128
- analyzeCSV: import("ai").Tool<{
124
+ analyzeCSV: Tool<{
129
125
  filePath: string;
130
126
  operation: "count_by_column" | "sum_by_column" | "average_by_column" | "min_max_by_column" | "describe";
131
127
  column: string;
@@ -147,7 +143,7 @@ export declare const directAgentTools: {
147
143
  operation: "count_by_column" | "sum_by_column" | "average_by_column" | "min_max_by_column" | "describe";
148
144
  column: string;
149
145
  }>;
150
- websearchGrounding: import("ai").Tool<{
146
+ websearchGrounding: Tool<{
151
147
  query: string;
152
148
  maxResults: number;
153
149
  maxWords: number;
@@ -221,11 +217,7 @@ export declare const directAgentTools: {
221
217
  * Import this directly when you need bash execution capabilities:
222
218
  * import { bashTool } from '../agent/directTools.js';
223
219
  */
224
- export declare const bashTool: import("ai").Tool<{
225
- command: string;
226
- timeout: number;
227
- cwd?: string | undefined;
228
- }, unknown>;
220
+ export declare const bashTool: Tool;
229
221
  /**
230
222
  * Get a subset of tools for specific use cases with improved type safety
231
223
  */
@@ -1,8 +1,3 @@
1
- /**
2
- * Direct Tool Definitions for NeuroLink CLI Agent
3
- * Simple, reliable tools that work immediately with Vercel AI SDK
4
- */
5
- import { tool } from "ai";
6
1
  import { z } from "zod";
7
2
  import * as fs from "fs";
8
3
  import * as path from "path";
@@ -11,6 +6,7 @@ import { logger } from "../utils/logger.js";
11
6
  import { VertexAI } from "@google-cloud/vertexai";
12
7
  import { CSVProcessor } from "../utils/csvProcessor.js";
13
8
  import { shouldEnableBashTool } from "../utils/toolUtils.js";
9
+ import { tool } from "../utils/tool.js";
14
10
  const MAX_OUTPUT_BYTES = 102400; // 100KB
15
11
  function truncateOutput(output) {
16
12
  if (output.length > MAX_OUTPUT_BYTES) {
@@ -547,9 +543,16 @@ export const directAgentTools = {
547
543
  // It is only included in directAgentTools when NEUROLINK_ENABLE_BASH_TOOL=true or
548
544
  // toolConfig.enableBashTool is explicitly set to true. See shouldEnableBashTool() in toolUtils.ts.
549
545
  websearchGrounding: tool({
550
- description: "Search the web for current information using Google Search grounding. Returns raw search data for AI processing.",
546
+ description: "Performs a Google Search and returns a summarized answer with source citations. Always check the current date before constructing the query. Use whenever the answer depends on time-sensitive facts or requires verification against real-world sources.",
551
547
  inputSchema: z.object({
552
- query: z.string().describe("Search query to find information about"),
548
+ query: z
549
+ .string()
550
+ .trim()
551
+ .min(1, { message: "must be a non-empty search string" })
552
+ .refine((v) => v.toLowerCase() !== "undefined", {
553
+ message: 'must not be the literal string "undefined" — pass a real search query',
554
+ })
555
+ .describe("The search query string to look up on the web."),
553
556
  maxResults: z
554
557
  .number()
555
558
  .optional()
@@ -581,7 +584,8 @@ export const directAgentTools = {
581
584
  project: hasProjectId,
582
585
  location: projectLocation,
583
586
  });
584
- const websearchModel = "gemini-2.5-flash-lite";
587
+ const websearchModel = process.env.NEUROLINK_WEBSEARCH_MODEL?.trim() ||
588
+ "gemini-2.5-flash-lite";
585
589
  const model = vertex_ai.getGenerativeModel({
586
590
  model: websearchModel,
587
591
  tools: createGoogleSearchTools(),
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @module autoresearch/tools
9
9
  */
10
- import type { ExperimentRecord, ResearchToolsDeps } from "../types/index.js";
10
+ import type { ResearchToolsDeps, Tool } from "../types/index.js";
11
11
  /**
12
12
  * Create research management tools bound to a research session.
13
13
  *
@@ -24,216 +24,4 @@ import type { ExperimentRecord, ResearchToolsDeps } from "../types/index.js";
24
24
  * // tools.research_get_context, tools.research_read_file, etc.
25
25
  * ```
26
26
  */
27
- export declare function createResearchTools(deps: ResearchToolsDeps): {
28
- /**
29
- * Get current research context including state, config, and recent results.
30
- */
31
- research_get_context: import("ai").Tool<Record<string, never>, {
32
- success: boolean;
33
- error: string;
34
- branch?: undefined;
35
- acceptedCommit?: undefined;
36
- bestMetric?: undefined;
37
- recentResults?: undefined;
38
- mutablePaths?: undefined;
39
- immutablePaths?: undefined;
40
- currentPhase?: undefined;
41
- runCount?: undefined;
42
- tag?: undefined;
43
- keepCount?: undefined;
44
- } | {
45
- success: boolean;
46
- branch: string;
47
- acceptedCommit: string | null;
48
- bestMetric: number | null;
49
- recentResults: ExperimentRecord[];
50
- mutablePaths: string[];
51
- immutablePaths: string[];
52
- currentPhase: import("../index.js").ExperimentPhase;
53
- runCount: number;
54
- tag: string;
55
- keepCount: number;
56
- error?: undefined;
57
- }>;
58
- /**
59
- * Read a file from the repository if allowed by policy.
60
- */
61
- research_read_file: import("ai").Tool<{
62
- path: string;
63
- }, {
64
- success: boolean;
65
- error: string;
66
- path?: undefined;
67
- content?: undefined;
68
- } | {
69
- success: boolean;
70
- path: string;
71
- content: string;
72
- error?: undefined;
73
- } | {
74
- success: boolean;
75
- error: string;
76
- path: string;
77
- content?: undefined;
78
- }>;
79
- /**
80
- * Write a candidate file to the repository if allowed by policy.
81
- */
82
- research_write_candidate: import("ai").Tool<{
83
- path: string;
84
- content: string;
85
- }, {
86
- success: boolean;
87
- error: string;
88
- path?: undefined;
89
- bytesWritten?: undefined;
90
- } | {
91
- success: boolean;
92
- path: string;
93
- bytesWritten: number;
94
- error?: undefined;
95
- } | {
96
- success: boolean;
97
- error: string;
98
- path: string;
99
- bytesWritten?: undefined;
100
- }>;
101
- /**
102
- * Get git diff of mutable paths only.
103
- */
104
- research_diff: import("ai").Tool<Record<string, never>, {
105
- success: boolean;
106
- diff: string;
107
- hasChanges: boolean;
108
- error?: undefined;
109
- } | {
110
- success: boolean;
111
- error: string;
112
- diff?: undefined;
113
- hasChanges?: undefined;
114
- }>;
115
- /**
116
- * Commit staged changes as a candidate.
117
- */
118
- research_commit_candidate: import("ai").Tool<{
119
- message: string;
120
- }, {
121
- success: boolean;
122
- error: string;
123
- violations?: undefined;
124
- candidateCommit?: undefined;
125
- message?: undefined;
126
- } | {
127
- success: boolean;
128
- error: string;
129
- violations: string[];
130
- candidateCommit?: undefined;
131
- message?: undefined;
132
- } | {
133
- success: boolean;
134
- candidateCommit: string;
135
- message: string;
136
- error?: undefined;
137
- violations?: undefined;
138
- }>;
139
- /**
140
- * Run the experiment.
141
- */
142
- research_run_experiment: import("ai").Tool<{
143
- description: string;
144
- }, {
145
- success: boolean;
146
- description: string;
147
- summary: import("../index.js").ExperimentSummary;
148
- error?: undefined;
149
- } | {
150
- success: boolean;
151
- error: string;
152
- description?: undefined;
153
- summary?: undefined;
154
- }>;
155
- /**
156
- * Parse the experiment log file.
157
- */
158
- research_parse_log: import("ai").Tool<Record<string, never>, {
159
- success: boolean;
160
- summary: import("../index.js").ExperimentSummary;
161
- error?: undefined;
162
- } | {
163
- success: boolean;
164
- error: string;
165
- summary?: undefined;
166
- }>;
167
- /**
168
- * Record an experiment result.
169
- */
170
- research_record: import("ai").Tool<{
171
- description: string;
172
- }, {
173
- success: boolean;
174
- error: string;
175
- record?: undefined;
176
- } | {
177
- success: boolean;
178
- record: ExperimentRecord;
179
- error?: undefined;
180
- }>;
181
- /**
182
- * Accept the candidate commit as the new baseline.
183
- */
184
- research_accept: import("ai").Tool<Record<string, never>, {
185
- success: boolean;
186
- error: string;
187
- acceptedCommit?: undefined;
188
- bestMetric?: undefined;
189
- keepCount?: undefined;
190
- } | {
191
- success: boolean;
192
- acceptedCommit: string;
193
- bestMetric: number;
194
- keepCount: number;
195
- error?: undefined;
196
- }>;
197
- /**
198
- * Revert to the accepted commit.
199
- */
200
- research_revert: import("ai").Tool<Record<string, never>, {
201
- success: boolean;
202
- error: string;
203
- revertedTo?: undefined;
204
- } | {
205
- success: boolean;
206
- revertedTo: string;
207
- error?: undefined;
208
- }>;
209
- /**
210
- * Inspect the last 50 lines of the run log for debugging.
211
- */
212
- research_inspect_failure: import("ai").Tool<Record<string, never>, {
213
- success: boolean;
214
- tail: string;
215
- totalLines: number;
216
- error?: undefined;
217
- } | {
218
- success: boolean;
219
- error: string;
220
- tail?: undefined;
221
- totalLines?: undefined;
222
- }>;
223
- /**
224
- * Save the current state to disk.
225
- */
226
- research_checkpoint: import("ai").Tool<Record<string, never>, {
227
- success: boolean;
228
- error: string;
229
- checkpointedAt?: undefined;
230
- phase?: undefined;
231
- runCount?: undefined;
232
- } | {
233
- success: boolean;
234
- checkpointedAt: string;
235
- phase: import("../index.js").ExperimentPhase;
236
- runCount: number;
237
- error?: undefined;
238
- }>;
239
- };
27
+ export declare function createResearchTools(deps: ResearchToolsDeps): Record<string, Tool>;
@@ -10,11 +10,11 @@
10
10
  import { execFileSync } from "node:child_process";
11
11
  import { existsSync, readFileSync, writeFileSync } from "node:fs";
12
12
  import path from "node:path";
13
- import { tool } from "ai";
14
13
  import { z } from "zod";
15
14
  import { withTimeout } from "../utils/errorHandling.js";
16
15
  import { logger } from "../utils/logger.js";
17
16
  import { parseExperimentSummary } from "./summaryParser.js";
17
+ import { tool } from "../utils/tool.js";
18
18
  /**
19
19
  * Create research management tools bound to a research session.
20
20
  *