@juspay/neurolink 9.51.4 → 9.53.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.
Files changed (186) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +19 -0
  3. package/dist/agent/directTools.d.ts +2 -2
  4. package/dist/auth/errors.d.ts +1 -1
  5. package/dist/auth/middleware/AuthMiddleware.d.ts +1 -1
  6. package/dist/auth/providers/BaseAuthProvider.d.ts +1 -1
  7. package/dist/autoresearch/config.d.ts +11 -0
  8. package/dist/autoresearch/config.js +108 -0
  9. package/dist/autoresearch/errors.d.ts +40 -0
  10. package/dist/autoresearch/errors.js +20 -0
  11. package/dist/autoresearch/index.d.ts +23 -0
  12. package/dist/autoresearch/index.js +34 -0
  13. package/dist/autoresearch/phasePolicy.d.ts +9 -0
  14. package/dist/autoresearch/phasePolicy.js +69 -0
  15. package/dist/autoresearch/promptCompiler.d.ts +15 -0
  16. package/dist/autoresearch/promptCompiler.js +120 -0
  17. package/dist/autoresearch/repoPolicy.d.ts +32 -0
  18. package/dist/autoresearch/repoPolicy.js +128 -0
  19. package/dist/autoresearch/resultRecorder.d.ts +20 -0
  20. package/dist/autoresearch/resultRecorder.js +130 -0
  21. package/dist/autoresearch/runner.d.ts +10 -0
  22. package/dist/autoresearch/runner.js +102 -0
  23. package/dist/autoresearch/stateStore.d.ts +12 -0
  24. package/dist/autoresearch/stateStore.js +163 -0
  25. package/dist/autoresearch/summaryParser.d.ts +16 -0
  26. package/dist/autoresearch/summaryParser.js +94 -0
  27. package/dist/autoresearch/tools.d.ts +257 -0
  28. package/dist/autoresearch/tools.js +617 -0
  29. package/dist/autoresearch/worker.d.ts +71 -0
  30. package/dist/autoresearch/worker.js +417 -0
  31. package/dist/browser/neurolink.min.js +340 -324
  32. package/dist/cli/commands/autoresearch.d.ts +41 -0
  33. package/dist/cli/commands/autoresearch.js +487 -0
  34. package/dist/cli/commands/config.d.ts +1 -1
  35. package/dist/cli/commands/task.d.ts +2 -0
  36. package/dist/cli/commands/task.js +32 -3
  37. package/dist/cli/loop/optionsSchema.d.ts +1 -1
  38. package/dist/cli/parser.js +4 -1
  39. package/dist/core/baseProvider.js +18 -0
  40. package/dist/core/factory.d.ts +2 -2
  41. package/dist/core/factory.js +4 -4
  42. package/dist/evaluation/errors/EvaluationError.d.ts +1 -1
  43. package/dist/factories/providerFactory.d.ts +4 -4
  44. package/dist/factories/providerFactory.js +20 -7
  45. package/dist/factories/providerRegistry.d.ts +5 -0
  46. package/dist/factories/providerRegistry.js +45 -26
  47. package/dist/lib/agent/directTools.d.ts +2 -2
  48. package/dist/lib/auth/errors.d.ts +1 -1
  49. package/dist/lib/auth/middleware/AuthMiddleware.d.ts +1 -1
  50. package/dist/lib/auth/providers/BaseAuthProvider.d.ts +1 -1
  51. package/dist/lib/autoresearch/config.d.ts +11 -0
  52. package/dist/lib/autoresearch/config.js +109 -0
  53. package/dist/lib/autoresearch/errors.d.ts +40 -0
  54. package/dist/lib/autoresearch/errors.js +21 -0
  55. package/dist/lib/autoresearch/index.d.ts +23 -0
  56. package/dist/lib/autoresearch/index.js +35 -0
  57. package/dist/lib/autoresearch/phasePolicy.d.ts +9 -0
  58. package/dist/lib/autoresearch/phasePolicy.js +70 -0
  59. package/dist/lib/autoresearch/promptCompiler.d.ts +15 -0
  60. package/dist/lib/autoresearch/promptCompiler.js +121 -0
  61. package/dist/lib/autoresearch/repoPolicy.d.ts +32 -0
  62. package/dist/lib/autoresearch/repoPolicy.js +129 -0
  63. package/dist/lib/autoresearch/resultRecorder.d.ts +20 -0
  64. package/dist/lib/autoresearch/resultRecorder.js +131 -0
  65. package/dist/lib/autoresearch/runner.d.ts +10 -0
  66. package/dist/lib/autoresearch/runner.js +103 -0
  67. package/dist/lib/autoresearch/stateStore.d.ts +12 -0
  68. package/dist/lib/autoresearch/stateStore.js +164 -0
  69. package/dist/lib/autoresearch/summaryParser.d.ts +16 -0
  70. package/dist/lib/autoresearch/summaryParser.js +95 -0
  71. package/dist/lib/autoresearch/tools.d.ts +257 -0
  72. package/dist/lib/autoresearch/tools.js +618 -0
  73. package/dist/lib/autoresearch/worker.d.ts +71 -0
  74. package/dist/lib/autoresearch/worker.js +418 -0
  75. package/dist/lib/core/baseProvider.js +18 -0
  76. package/dist/lib/core/factory.d.ts +2 -2
  77. package/dist/lib/core/factory.js +4 -4
  78. package/dist/lib/evaluation/errors/EvaluationError.d.ts +1 -1
  79. package/dist/lib/factories/providerFactory.d.ts +4 -4
  80. package/dist/lib/factories/providerFactory.js +20 -7
  81. package/dist/lib/factories/providerRegistry.d.ts +5 -0
  82. package/dist/lib/factories/providerRegistry.js +45 -26
  83. package/dist/lib/files/fileTools.d.ts +1 -1
  84. package/dist/lib/neurolink.d.ts +21 -0
  85. package/dist/lib/neurolink.js +91 -8
  86. package/dist/lib/providers/amazonBedrock.d.ts +6 -1
  87. package/dist/lib/providers/amazonBedrock.js +14 -2
  88. package/dist/lib/providers/amazonSagemaker.d.ts +7 -1
  89. package/dist/lib/providers/amazonSagemaker.js +21 -3
  90. package/dist/lib/providers/anthropic.d.ts +4 -1
  91. package/dist/lib/providers/anthropic.js +18 -5
  92. package/dist/lib/providers/azureOpenai.d.ts +2 -1
  93. package/dist/lib/providers/azureOpenai.js +10 -5
  94. package/dist/lib/providers/googleAiStudio.d.ts +4 -1
  95. package/dist/lib/providers/googleAiStudio.js +6 -7
  96. package/dist/lib/providers/googleVertex.d.ts +3 -1
  97. package/dist/lib/providers/googleVertex.js +96 -17
  98. package/dist/lib/providers/huggingFace.d.ts +2 -1
  99. package/dist/lib/providers/huggingFace.js +4 -4
  100. package/dist/lib/providers/litellm.d.ts +5 -1
  101. package/dist/lib/providers/litellm.js +16 -11
  102. package/dist/lib/providers/mistral.d.ts +2 -1
  103. package/dist/lib/providers/mistral.js +2 -2
  104. package/dist/lib/providers/ollama.d.ts +3 -1
  105. package/dist/lib/providers/ollama.js +2 -2
  106. package/dist/lib/providers/openAI.d.ts +5 -1
  107. package/dist/lib/providers/openAI.js +15 -5
  108. package/dist/lib/providers/openRouter.d.ts +5 -1
  109. package/dist/lib/providers/openRouter.js +19 -7
  110. package/dist/lib/providers/openaiCompatible.d.ts +4 -1
  111. package/dist/lib/providers/openaiCompatible.js +18 -4
  112. package/dist/lib/tasks/autoresearchTaskExecutor.d.ts +32 -0
  113. package/dist/lib/tasks/autoresearchTaskExecutor.js +303 -0
  114. package/dist/lib/tasks/errors.d.ts +3 -1
  115. package/dist/lib/tasks/errors.js +1 -0
  116. package/dist/lib/tasks/taskExecutor.d.ts +4 -2
  117. package/dist/lib/tasks/taskExecutor.js +8 -1
  118. package/dist/lib/tasks/taskManager.js +27 -3
  119. package/dist/lib/tasks/tools/taskTools.d.ts +1 -1
  120. package/dist/lib/telemetry/attributes.d.ts +15 -0
  121. package/dist/lib/telemetry/attributes.js +16 -0
  122. package/dist/lib/telemetry/tracers.d.ts +1 -0
  123. package/dist/lib/telemetry/tracers.js +1 -0
  124. package/dist/lib/types/autoresearchTypes.d.ts +194 -0
  125. package/dist/lib/types/autoresearchTypes.js +18 -0
  126. package/dist/lib/types/common.d.ts +11 -0
  127. package/dist/lib/types/configTypes.d.ts +7 -0
  128. package/dist/lib/types/generateTypes.d.ts +13 -0
  129. package/dist/lib/types/index.d.ts +16 -14
  130. package/dist/lib/types/index.js +21 -17
  131. package/dist/lib/types/providers.d.ts +75 -0
  132. package/dist/lib/types/streamTypes.d.ts +7 -1
  133. package/dist/lib/types/taskTypes.d.ts +38 -0
  134. package/dist/lib/workflow/config.d.ts +3 -3
  135. package/dist/neurolink.d.ts +21 -0
  136. package/dist/neurolink.js +91 -8
  137. package/dist/providers/amazonBedrock.d.ts +6 -1
  138. package/dist/providers/amazonBedrock.js +14 -2
  139. package/dist/providers/amazonSagemaker.d.ts +7 -1
  140. package/dist/providers/amazonSagemaker.js +21 -3
  141. package/dist/providers/anthropic.d.ts +4 -1
  142. package/dist/providers/anthropic.js +18 -5
  143. package/dist/providers/azureOpenai.d.ts +2 -1
  144. package/dist/providers/azureOpenai.js +10 -5
  145. package/dist/providers/googleAiStudio.d.ts +4 -1
  146. package/dist/providers/googleAiStudio.js +6 -7
  147. package/dist/providers/googleVertex.d.ts +3 -1
  148. package/dist/providers/googleVertex.js +96 -17
  149. package/dist/providers/huggingFace.d.ts +2 -1
  150. package/dist/providers/huggingFace.js +4 -4
  151. package/dist/providers/litellm.d.ts +5 -1
  152. package/dist/providers/litellm.js +16 -11
  153. package/dist/providers/mistral.d.ts +2 -1
  154. package/dist/providers/mistral.js +2 -2
  155. package/dist/providers/ollama.d.ts +3 -1
  156. package/dist/providers/ollama.js +2 -2
  157. package/dist/providers/openAI.d.ts +5 -1
  158. package/dist/providers/openAI.js +15 -5
  159. package/dist/providers/openRouter.d.ts +5 -1
  160. package/dist/providers/openRouter.js +19 -7
  161. package/dist/providers/openaiCompatible.d.ts +4 -1
  162. package/dist/providers/openaiCompatible.js +18 -4
  163. package/dist/rag/errors/RAGError.d.ts +1 -1
  164. package/dist/tasks/autoresearchTaskExecutor.d.ts +32 -0
  165. package/dist/tasks/autoresearchTaskExecutor.js +302 -0
  166. package/dist/tasks/errors.d.ts +3 -1
  167. package/dist/tasks/errors.js +1 -0
  168. package/dist/tasks/taskExecutor.d.ts +4 -2
  169. package/dist/tasks/taskExecutor.js +8 -1
  170. package/dist/tasks/taskManager.js +27 -3
  171. package/dist/tasks/tools/taskTools.d.ts +1 -1
  172. package/dist/telemetry/attributes.d.ts +15 -0
  173. package/dist/telemetry/attributes.js +16 -0
  174. package/dist/telemetry/tracers.d.ts +1 -0
  175. package/dist/telemetry/tracers.js +1 -0
  176. package/dist/types/autoresearchTypes.d.ts +194 -0
  177. package/dist/types/autoresearchTypes.js +17 -0
  178. package/dist/types/common.d.ts +11 -0
  179. package/dist/types/configTypes.d.ts +7 -0
  180. package/dist/types/generateTypes.d.ts +13 -0
  181. package/dist/types/index.d.ts +16 -14
  182. package/dist/types/index.js +21 -17
  183. package/dist/types/providers.d.ts +75 -0
  184. package/dist/types/streamTypes.d.ts +7 -1
  185. package/dist/types/taskTypes.d.ts +38 -0
  186. package/package.json +3 -2
@@ -0,0 +1,257 @@
1
+ /**
2
+ * Research tools factory for AutoResearch system.
3
+ *
4
+ * These tools allow an AI agent to conduct autonomous experiments:
5
+ * reading/writing code, running experiments, recording results, and
6
+ * managing the research lifecycle (accept/revert/checkpoint).
7
+ *
8
+ * @module autoresearch/tools
9
+ */
10
+ import type { ExperimentRecord, ResearchConfig } from "../types/autoresearchTypes.js";
11
+ import type { RepoPolicy } from "./repoPolicy.js";
12
+ import type { ResultRecorder } from "./resultRecorder.js";
13
+ import type { ExperimentRunner } from "./runner.js";
14
+ import type { ResearchStateStore } from "./stateStore.js";
15
+ /**
16
+ * Dependencies required to create research tools.
17
+ */
18
+ export type ResearchToolsDeps = {
19
+ config: ResearchConfig;
20
+ stateStore: ResearchStateStore;
21
+ repoPolicy: RepoPolicy;
22
+ runner: ExperimentRunner;
23
+ recorder: ResultRecorder;
24
+ };
25
+ /**
26
+ * Create research management tools bound to a research session.
27
+ *
28
+ * These tools follow the same factory pattern as `createTaskTools()` in
29
+ * `src/lib/tasks/tools/taskTools.ts`. Dependencies are captured via closure,
30
+ * eliminating the need for module-level singleton state.
31
+ *
32
+ * @param deps - The research dependencies to bind to
33
+ * @returns Record of tool name to tool definition
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * const tools = createResearchTools({ config, stateStore, repoPolicy, runner, recorder });
38
+ * // tools.research_get_context, tools.research_read_file, etc.
39
+ * ```
40
+ */
41
+ export declare function createResearchTools(deps: ResearchToolsDeps): {
42
+ /**
43
+ * Get current research context including state, config, and recent results.
44
+ */
45
+ research_get_context: import("ai").Tool<Record<string, never>, {
46
+ success: boolean;
47
+ error: string;
48
+ branch?: undefined;
49
+ acceptedCommit?: undefined;
50
+ bestMetric?: undefined;
51
+ recentResults?: undefined;
52
+ mutablePaths?: undefined;
53
+ immutablePaths?: undefined;
54
+ currentPhase?: undefined;
55
+ runCount?: undefined;
56
+ tag?: undefined;
57
+ keepCount?: undefined;
58
+ } | {
59
+ success: boolean;
60
+ branch: string;
61
+ acceptedCommit: string | null;
62
+ bestMetric: number | null;
63
+ recentResults: ExperimentRecord[];
64
+ mutablePaths: string[];
65
+ immutablePaths: string[];
66
+ currentPhase: import("../index.js").ExperimentPhase;
67
+ runCount: number;
68
+ tag: string;
69
+ keepCount: number;
70
+ error?: undefined;
71
+ }>;
72
+ /**
73
+ * Read a file from the repository if allowed by policy.
74
+ */
75
+ research_read_file: import("ai").Tool<{
76
+ path: string;
77
+ }, {
78
+ success: boolean;
79
+ error: string;
80
+ path?: undefined;
81
+ content?: undefined;
82
+ } | {
83
+ success: boolean;
84
+ path: string;
85
+ content: string;
86
+ error?: undefined;
87
+ } | {
88
+ success: boolean;
89
+ error: string;
90
+ path: string;
91
+ content?: undefined;
92
+ }>;
93
+ /**
94
+ * Write a candidate file to the repository if allowed by policy.
95
+ */
96
+ research_write_candidate: import("ai").Tool<{
97
+ path: string;
98
+ content: string;
99
+ }, {
100
+ success: boolean;
101
+ error: string;
102
+ path?: undefined;
103
+ bytesWritten?: undefined;
104
+ } | {
105
+ success: boolean;
106
+ path: string;
107
+ bytesWritten: number;
108
+ error?: undefined;
109
+ } | {
110
+ success: boolean;
111
+ error: string;
112
+ path: string;
113
+ bytesWritten?: undefined;
114
+ }>;
115
+ /**
116
+ * Get git diff of mutable paths only.
117
+ */
118
+ research_diff: import("ai").Tool<Record<string, never>, {
119
+ success: boolean;
120
+ diff: string;
121
+ hasChanges: boolean;
122
+ error?: undefined;
123
+ } | {
124
+ success: boolean;
125
+ error: string;
126
+ diff?: undefined;
127
+ hasChanges?: undefined;
128
+ }>;
129
+ /**
130
+ * Commit staged changes as a candidate.
131
+ */
132
+ research_commit_candidate: import("ai").Tool<{
133
+ message: string;
134
+ }, {
135
+ success: boolean;
136
+ error: string;
137
+ violations?: undefined;
138
+ candidateCommit?: undefined;
139
+ message?: undefined;
140
+ } | {
141
+ success: boolean;
142
+ error: string;
143
+ violations: string[];
144
+ candidateCommit?: undefined;
145
+ message?: undefined;
146
+ } | {
147
+ success: boolean;
148
+ candidateCommit: string;
149
+ message: string;
150
+ error?: undefined;
151
+ violations?: undefined;
152
+ }>;
153
+ /**
154
+ * Run the experiment.
155
+ */
156
+ research_run_experiment: import("ai").Tool<{
157
+ description: string;
158
+ }, {
159
+ success: boolean;
160
+ description: string;
161
+ summary: import("../index.js").ExperimentSummary;
162
+ error?: undefined;
163
+ } | {
164
+ success: boolean;
165
+ error: string;
166
+ description?: undefined;
167
+ summary?: undefined;
168
+ }>;
169
+ /**
170
+ * Parse the experiment log file.
171
+ */
172
+ research_parse_log: import("ai").Tool<Record<string, never>, {
173
+ success: boolean;
174
+ summary: import("../index.js").ExperimentSummary;
175
+ error?: undefined;
176
+ } | {
177
+ success: boolean;
178
+ error: string;
179
+ summary?: undefined;
180
+ }>;
181
+ /**
182
+ * Record an experiment result.
183
+ */
184
+ research_record: import("ai").Tool<{
185
+ description: string;
186
+ }, {
187
+ success: boolean;
188
+ error: string;
189
+ record?: undefined;
190
+ } | {
191
+ success: boolean;
192
+ record: ExperimentRecord;
193
+ error?: undefined;
194
+ }>;
195
+ /**
196
+ * Accept the candidate commit as the new baseline.
197
+ */
198
+ research_accept: import("ai").Tool<Record<string, never>, {
199
+ success: boolean;
200
+ error: string;
201
+ acceptedCommit?: undefined;
202
+ bestMetric?: undefined;
203
+ keepCount?: undefined;
204
+ } | {
205
+ success: boolean;
206
+ acceptedCommit: string;
207
+ bestMetric: number;
208
+ keepCount: number;
209
+ error?: undefined;
210
+ }>;
211
+ /**
212
+ * Revert to the accepted commit.
213
+ */
214
+ research_revert: import("ai").Tool<Record<string, never>, {
215
+ success: boolean;
216
+ error: string;
217
+ revertedTo?: undefined;
218
+ } | {
219
+ success: boolean;
220
+ revertedTo: string;
221
+ error?: undefined;
222
+ }>;
223
+ /**
224
+ * Inspect the last 50 lines of the run log for debugging.
225
+ */
226
+ research_inspect_failure: import("ai").Tool<Record<string, never>, {
227
+ success: boolean;
228
+ tail: string;
229
+ totalLines: number;
230
+ error?: undefined;
231
+ } | {
232
+ success: boolean;
233
+ error: string;
234
+ tail?: undefined;
235
+ totalLines?: undefined;
236
+ }>;
237
+ /**
238
+ * Save the current state to disk.
239
+ */
240
+ research_checkpoint: import("ai").Tool<Record<string, never>, {
241
+ success: boolean;
242
+ error: string;
243
+ checkpointedAt?: undefined;
244
+ phase?: undefined;
245
+ runCount?: undefined;
246
+ } | {
247
+ success: boolean;
248
+ checkpointedAt: string;
249
+ phase: import("../index.js").ExperimentPhase;
250
+ runCount: number;
251
+ error?: undefined;
252
+ }>;
253
+ };
254
+ /**
255
+ * Type for the research tools returned by createResearchTools
256
+ */
257
+ export type ResearchTools = ReturnType<typeof createResearchTools>;