@juspay/neurolink 5.0.0 → 5.2.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.
- package/CHANGELOG.md +20 -7
- package/README.md +160 -172
- package/dist/agent/direct-tools.d.ts +6 -6
- package/dist/chat/sse-handler.js +5 -4
- package/dist/chat/websocket-chat-handler.js +9 -9
- package/dist/cli/commands/config.d.ts +3 -3
- package/dist/cli/commands/mcp.js +9 -8
- package/dist/cli/commands/ollama.js +3 -3
- package/dist/cli/factories/command-factory.d.ts +18 -0
- package/dist/cli/factories/command-factory.js +183 -0
- package/dist/cli/index.js +105 -157
- package/dist/cli/utils/interactive-setup.js +2 -2
- package/dist/core/base-provider.d.ts +423 -0
- package/dist/core/base-provider.js +365 -0
- package/dist/core/constants.d.ts +1 -1
- package/dist/core/constants.js +1 -1
- package/dist/core/dynamic-models.d.ts +6 -6
- package/dist/core/evaluation.d.ts +19 -80
- package/dist/core/evaluation.js +185 -484
- package/dist/core/factory.d.ts +3 -3
- package/dist/core/factory.js +31 -91
- package/dist/core/service-registry.d.ts +47 -0
- package/dist/core/service-registry.js +112 -0
- package/dist/core/types.d.ts +49 -49
- package/dist/core/types.js +1 -0
- package/dist/factories/compatibility-factory.d.ts +20 -0
- package/dist/factories/compatibility-factory.js +69 -0
- package/dist/factories/provider-factory.d.ts +72 -0
- package/dist/factories/provider-factory.js +144 -0
- package/dist/factories/provider-generate-factory.d.ts +20 -0
- package/dist/factories/provider-generate-factory.js +87 -0
- package/dist/factories/provider-registry.d.ts +38 -0
- package/dist/factories/provider-registry.js +107 -0
- package/dist/index.d.ts +8 -5
- package/dist/index.js +5 -5
- package/dist/lib/agent/direct-tools.d.ts +6 -6
- package/dist/lib/chat/sse-handler.js +5 -4
- package/dist/lib/chat/websocket-chat-handler.js +9 -9
- package/dist/lib/core/base-provider.d.ts +423 -0
- package/dist/lib/core/base-provider.js +365 -0
- package/dist/lib/core/constants.d.ts +1 -1
- package/dist/lib/core/constants.js +1 -1
- package/dist/lib/core/dynamic-models.d.ts +6 -6
- package/dist/lib/core/evaluation.d.ts +19 -80
- package/dist/lib/core/evaluation.js +185 -484
- package/dist/lib/core/factory.d.ts +3 -3
- package/dist/lib/core/factory.js +30 -91
- package/dist/lib/core/service-registry.d.ts +47 -0
- package/dist/lib/core/service-registry.js +112 -0
- package/dist/lib/core/types.d.ts +49 -49
- package/dist/lib/core/types.js +1 -0
- package/dist/lib/factories/compatibility-factory.d.ts +20 -0
- package/dist/lib/factories/compatibility-factory.js +69 -0
- package/dist/lib/factories/provider-factory.d.ts +72 -0
- package/dist/lib/factories/provider-factory.js +144 -0
- package/dist/lib/factories/provider-generate-factory.d.ts +20 -0
- package/dist/lib/factories/provider-generate-factory.js +87 -0
- package/dist/lib/factories/provider-registry.d.ts +38 -0
- package/dist/lib/factories/provider-registry.js +107 -0
- package/dist/lib/index.d.ts +8 -5
- package/dist/lib/index.js +5 -5
- package/dist/lib/mcp/client.js +5 -5
- package/dist/lib/mcp/config.js +28 -3
- package/dist/lib/mcp/dynamic-orchestrator.js +8 -8
- package/dist/lib/mcp/external-client.js +2 -2
- package/dist/lib/mcp/factory.d.ts +1 -1
- package/dist/lib/mcp/factory.js +1 -1
- package/dist/lib/mcp/function-calling.js +1 -1
- package/dist/lib/mcp/initialize-tools.d.ts +1 -1
- package/dist/lib/mcp/initialize-tools.js +45 -1
- package/dist/lib/mcp/initialize.js +16 -6
- package/dist/lib/mcp/neurolink-mcp-client.js +10 -10
- package/dist/lib/mcp/orchestrator.js +4 -4
- package/dist/lib/mcp/servers/agent/direct-tools-server.d.ts +8 -0
- package/dist/lib/mcp/servers/agent/direct-tools-server.js +109 -0
- package/dist/lib/mcp/servers/ai-providers/ai-analysis-tools.js +10 -10
- package/dist/lib/mcp/servers/ai-providers/ai-core-server.js +8 -6
- package/dist/lib/mcp/servers/ai-providers/ai-workflow-tools.d.ts +2 -2
- package/dist/lib/mcp/servers/ai-providers/ai-workflow-tools.js +16 -16
- package/dist/lib/mcp/unified-registry.d.ts +4 -0
- package/dist/lib/mcp/unified-registry.js +42 -9
- package/dist/lib/neurolink.d.ts +161 -174
- package/dist/lib/neurolink.js +723 -397
- package/dist/lib/providers/amazon-bedrock.d.ts +32 -0
- package/dist/lib/providers/amazon-bedrock.js +143 -0
- package/dist/lib/providers/analytics-helper.js +7 -4
- package/dist/lib/providers/anthropic-baseprovider.d.ts +23 -0
- package/dist/lib/providers/anthropic-baseprovider.js +114 -0
- package/dist/lib/providers/anthropic.d.ts +19 -39
- package/dist/lib/providers/anthropic.js +84 -378
- package/dist/lib/providers/azure-openai.d.ts +20 -0
- package/dist/lib/providers/azure-openai.js +89 -0
- package/dist/lib/providers/function-calling-provider.d.ts +14 -12
- package/dist/lib/providers/function-calling-provider.js +114 -64
- package/dist/lib/providers/google-ai-studio.d.ts +23 -0
- package/dist/lib/providers/google-ai-studio.js +107 -0
- package/dist/lib/providers/google-vertex.d.ts +47 -0
- package/dist/lib/providers/google-vertex.js +205 -0
- package/dist/lib/providers/huggingFace.d.ts +33 -27
- package/dist/lib/providers/huggingFace.js +103 -400
- package/dist/lib/providers/index.d.ts +9 -9
- package/dist/lib/providers/index.js +9 -9
- package/dist/lib/providers/mcp-provider.d.ts +13 -8
- package/dist/lib/providers/mcp-provider.js +63 -18
- package/dist/lib/providers/mistral.d.ts +42 -0
- package/dist/lib/providers/mistral.js +160 -0
- package/dist/lib/providers/ollama.d.ts +52 -35
- package/dist/lib/providers/ollama.js +297 -477
- package/dist/lib/providers/openAI.d.ts +21 -21
- package/dist/lib/providers/openAI.js +81 -245
- package/dist/lib/sdk/tool-extension.d.ts +181 -0
- package/dist/lib/sdk/tool-extension.js +283 -0
- package/dist/lib/sdk/tool-registration.d.ts +95 -0
- package/dist/lib/sdk/tool-registration.js +167 -0
- package/dist/lib/types/generate-types.d.ts +80 -0
- package/dist/lib/types/generate-types.js +1 -0
- package/dist/lib/types/mcp-types.d.ts +116 -0
- package/dist/lib/types/mcp-types.js +5 -0
- package/dist/lib/types/stream-types.d.ts +95 -0
- package/dist/lib/types/stream-types.js +1 -0
- package/dist/lib/types/universal-provider-options.d.ts +87 -0
- package/dist/lib/types/universal-provider-options.js +53 -0
- package/dist/lib/utils/providerUtils-fixed.js +1 -1
- package/dist/lib/utils/streaming-utils.d.ts +14 -2
- package/dist/lib/utils/streaming-utils.js +0 -3
- package/dist/mcp/client.js +5 -5
- package/dist/mcp/config.js +28 -3
- package/dist/mcp/dynamic-orchestrator.js +8 -8
- package/dist/mcp/external-client.js +2 -2
- package/dist/mcp/factory.d.ts +1 -1
- package/dist/mcp/factory.js +1 -1
- package/dist/mcp/function-calling.js +1 -1
- package/dist/mcp/initialize-tools.d.ts +1 -1
- package/dist/mcp/initialize-tools.js +45 -1
- package/dist/mcp/initialize.js +16 -6
- package/dist/mcp/neurolink-mcp-client.js +10 -10
- package/dist/mcp/orchestrator.js +4 -4
- package/dist/mcp/servers/agent/direct-tools-server.d.ts +8 -0
- package/dist/mcp/servers/agent/direct-tools-server.js +109 -0
- package/dist/mcp/servers/ai-providers/ai-analysis-tools.js +10 -10
- package/dist/mcp/servers/ai-providers/ai-core-server.js +8 -6
- package/dist/mcp/servers/ai-providers/ai-workflow-tools.d.ts +2 -2
- package/dist/mcp/servers/ai-providers/ai-workflow-tools.js +16 -16
- package/dist/mcp/unified-registry.d.ts +4 -0
- package/dist/mcp/unified-registry.js +42 -9
- package/dist/neurolink.d.ts +161 -174
- package/dist/neurolink.js +723 -397
- package/dist/providers/amazon-bedrock.d.ts +32 -0
- package/dist/providers/amazon-bedrock.js +143 -0
- package/dist/providers/analytics-helper.js +7 -4
- package/dist/providers/anthropic-baseprovider.d.ts +23 -0
- package/dist/providers/anthropic-baseprovider.js +114 -0
- package/dist/providers/anthropic.d.ts +19 -39
- package/dist/providers/anthropic.js +83 -377
- package/dist/providers/azure-openai.d.ts +20 -0
- package/dist/providers/azure-openai.js +89 -0
- package/dist/providers/function-calling-provider.d.ts +14 -12
- package/dist/providers/function-calling-provider.js +114 -64
- package/dist/providers/google-ai-studio.d.ts +23 -0
- package/dist/providers/google-ai-studio.js +108 -0
- package/dist/providers/google-vertex.d.ts +47 -0
- package/dist/providers/google-vertex.js +205 -0
- package/dist/providers/huggingFace.d.ts +33 -27
- package/dist/providers/huggingFace.js +102 -399
- package/dist/providers/index.d.ts +9 -9
- package/dist/providers/index.js +9 -9
- package/dist/providers/mcp-provider.d.ts +13 -8
- package/dist/providers/mcp-provider.js +63 -18
- package/dist/providers/mistral.d.ts +42 -0
- package/dist/providers/mistral.js +160 -0
- package/dist/providers/ollama.d.ts +52 -35
- package/dist/providers/ollama.js +297 -476
- package/dist/providers/openAI.d.ts +21 -21
- package/dist/providers/openAI.js +81 -246
- package/dist/sdk/tool-extension.d.ts +181 -0
- package/dist/sdk/tool-extension.js +283 -0
- package/dist/sdk/tool-registration.d.ts +95 -0
- package/dist/sdk/tool-registration.js +168 -0
- package/dist/types/generate-types.d.ts +80 -0
- package/dist/types/generate-types.js +1 -0
- package/dist/types/mcp-types.d.ts +116 -0
- package/dist/types/mcp-types.js +5 -0
- package/dist/types/stream-types.d.ts +95 -0
- package/dist/types/stream-types.js +1 -0
- package/dist/types/universal-provider-options.d.ts +87 -0
- package/dist/types/universal-provider-options.js +53 -0
- package/dist/utils/providerUtils-fixed.js +1 -1
- package/dist/utils/streaming-utils.d.ts +14 -2
- package/dist/utils/streaming-utils.js +0 -3
- package/package.json +15 -10
- package/dist/lib/providers/agent-enhanced-provider.d.ts +0 -89
- package/dist/lib/providers/agent-enhanced-provider.js +0 -614
- package/dist/lib/providers/amazonBedrock.d.ts +0 -19
- package/dist/lib/providers/amazonBedrock.js +0 -334
- package/dist/lib/providers/azureOpenAI.d.ts +0 -39
- package/dist/lib/providers/azureOpenAI.js +0 -436
- package/dist/lib/providers/googleAIStudio.d.ts +0 -49
- package/dist/lib/providers/googleAIStudio.js +0 -333
- package/dist/lib/providers/googleVertexAI.d.ts +0 -38
- package/dist/lib/providers/googleVertexAI.js +0 -519
- package/dist/lib/providers/mistralAI.d.ts +0 -34
- package/dist/lib/providers/mistralAI.js +0 -294
- package/dist/providers/agent-enhanced-provider.d.ts +0 -89
- package/dist/providers/agent-enhanced-provider.js +0 -614
- package/dist/providers/amazonBedrock.d.ts +0 -19
- package/dist/providers/amazonBedrock.js +0 -334
- package/dist/providers/azureOpenAI.d.ts +0 -39
- package/dist/providers/azureOpenAI.js +0 -437
- package/dist/providers/googleAIStudio.d.ts +0 -49
- package/dist/providers/googleAIStudio.js +0 -333
- package/dist/providers/googleVertexAI.d.ts +0 -38
- package/dist/providers/googleVertexAI.js +0 -519
- package/dist/providers/mistralAI.d.ts +0 -34
- package/dist/providers/mistralAI.js +0 -294
|
@@ -60,12 +60,12 @@ export class WebSocketChatHandler extends SSEChatHandler {
|
|
|
60
60
|
latencyTarget: 200,
|
|
61
61
|
});
|
|
62
62
|
// Generate AI response
|
|
63
|
-
const result = await this.provider.
|
|
63
|
+
const result = await this.provider.generate({
|
|
64
64
|
prompt: request.prompt,
|
|
65
65
|
temperature: request.options?.temperature,
|
|
66
66
|
maxTokens: request.options?.maxTokens,
|
|
67
67
|
});
|
|
68
|
-
if (!result || !result.
|
|
68
|
+
if (!result || !result.content) {
|
|
69
69
|
throw new Error("Invalid AI response");
|
|
70
70
|
}
|
|
71
71
|
// Send response via WebSocket
|
|
@@ -75,7 +75,7 @@ export class WebSocketChatHandler extends SSEChatHandler {
|
|
|
75
75
|
connectionId,
|
|
76
76
|
timestamp: Date.now(),
|
|
77
77
|
data: {
|
|
78
|
-
text: result.
|
|
78
|
+
text: result.content,
|
|
79
79
|
sessionId: request.sessionId,
|
|
80
80
|
metadata: {
|
|
81
81
|
provider: this.provider.constructor.name,
|
|
@@ -98,12 +98,12 @@ export class WebSocketChatHandler extends SSEChatHandler {
|
|
|
98
98
|
async handleGroupChat(roomId, request) {
|
|
99
99
|
try {
|
|
100
100
|
// Process AI request
|
|
101
|
-
const result = await this.provider.
|
|
101
|
+
const result = await this.provider.generate({
|
|
102
102
|
prompt: request.prompt,
|
|
103
103
|
temperature: request.options?.temperature,
|
|
104
104
|
maxTokens: request.options?.maxTokens,
|
|
105
105
|
});
|
|
106
|
-
if (!result || !result.
|
|
106
|
+
if (!result || !result.content) {
|
|
107
107
|
throw new Error("Invalid AI response");
|
|
108
108
|
}
|
|
109
109
|
// Broadcast to room
|
|
@@ -113,7 +113,7 @@ export class WebSocketChatHandler extends SSEChatHandler {
|
|
|
113
113
|
connectionId: "system",
|
|
114
114
|
timestamp: Date.now(),
|
|
115
115
|
data: {
|
|
116
|
-
text: result.
|
|
116
|
+
text: result.content,
|
|
117
117
|
sessionId: request.sessionId,
|
|
118
118
|
userId: request.userId,
|
|
119
119
|
isGroupMessage: true,
|
|
@@ -136,11 +136,11 @@ export class WebSocketChatHandler extends SSEChatHandler {
|
|
|
136
136
|
const channelId = randomUUID();
|
|
137
137
|
const channel = this.wsServer.createStreamingChannel(connectionId, channelId);
|
|
138
138
|
// Generate response
|
|
139
|
-
const result = await this.provider.
|
|
139
|
+
const result = await this.provider.generate({
|
|
140
140
|
prompt: request.prompt,
|
|
141
141
|
...request.options,
|
|
142
142
|
});
|
|
143
|
-
if (!result || !result.
|
|
143
|
+
if (!result || !result.content) {
|
|
144
144
|
throw new Error("Invalid AI response");
|
|
145
145
|
}
|
|
146
146
|
// Send complete response
|
|
@@ -150,7 +150,7 @@ export class WebSocketChatHandler extends SSEChatHandler {
|
|
|
150
150
|
connectionId,
|
|
151
151
|
timestamp: Date.now(),
|
|
152
152
|
data: {
|
|
153
|
-
text: result.
|
|
153
|
+
text: result.content,
|
|
154
154
|
isStreamingComplete: true,
|
|
155
155
|
channelId,
|
|
156
156
|
},
|
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
import type { ZodType, ZodTypeDef } from "zod";
|
|
2
|
+
import type { Schema } from "ai";
|
|
3
|
+
import type { Tool } from "ai";
|
|
4
|
+
import type { AIProvider, TextGenerationOptions, EnhancedGenerateResult, AnalyticsData, AIProviderName } from "../core/types.js";
|
|
5
|
+
import type { StreamOptions, StreamResult } from "../types/stream-types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Abstract base class for all AI providers
|
|
8
|
+
* Tools are integrated as first-class citizens - always available by default
|
|
9
|
+
*/
|
|
10
|
+
export declare abstract class BaseProvider implements AIProvider {
|
|
11
|
+
protected readonly modelName: string;
|
|
12
|
+
protected readonly providerName: AIProviderName;
|
|
13
|
+
protected readonly defaultTimeout: number;
|
|
14
|
+
protected readonly directTools: {
|
|
15
|
+
getCurrentTime: Tool<import("zod").ZodObject<{
|
|
16
|
+
timezone: import("zod").ZodOptional<import("zod").ZodString>;
|
|
17
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
18
|
+
timezone?: string | undefined;
|
|
19
|
+
}, {
|
|
20
|
+
timezone?: string | undefined;
|
|
21
|
+
}>, {
|
|
22
|
+
success: boolean;
|
|
23
|
+
time: string;
|
|
24
|
+
timezone: string;
|
|
25
|
+
iso: string;
|
|
26
|
+
timestamp?: undefined;
|
|
27
|
+
error?: undefined;
|
|
28
|
+
} | {
|
|
29
|
+
success: boolean;
|
|
30
|
+
time: string;
|
|
31
|
+
iso: string;
|
|
32
|
+
timestamp: number;
|
|
33
|
+
timezone?: undefined;
|
|
34
|
+
error?: undefined;
|
|
35
|
+
} | {
|
|
36
|
+
success: boolean;
|
|
37
|
+
error: string;
|
|
38
|
+
time?: undefined;
|
|
39
|
+
timezone?: undefined;
|
|
40
|
+
iso?: undefined;
|
|
41
|
+
timestamp?: undefined;
|
|
42
|
+
}> & {
|
|
43
|
+
execute: (args: {
|
|
44
|
+
timezone?: string | undefined;
|
|
45
|
+
}, options: import("ai").ToolExecutionOptions) => PromiseLike<{
|
|
46
|
+
success: boolean;
|
|
47
|
+
time: string;
|
|
48
|
+
timezone: string;
|
|
49
|
+
iso: string;
|
|
50
|
+
timestamp?: undefined;
|
|
51
|
+
error?: undefined;
|
|
52
|
+
} | {
|
|
53
|
+
success: boolean;
|
|
54
|
+
time: string;
|
|
55
|
+
iso: string;
|
|
56
|
+
timestamp: number;
|
|
57
|
+
timezone?: undefined;
|
|
58
|
+
error?: undefined;
|
|
59
|
+
} | {
|
|
60
|
+
success: boolean;
|
|
61
|
+
error: string;
|
|
62
|
+
time?: undefined;
|
|
63
|
+
timezone?: undefined;
|
|
64
|
+
iso?: undefined;
|
|
65
|
+
timestamp?: undefined;
|
|
66
|
+
}>;
|
|
67
|
+
};
|
|
68
|
+
readFile: Tool<import("zod").ZodObject<{
|
|
69
|
+
path: import("zod").ZodString;
|
|
70
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
71
|
+
path: string;
|
|
72
|
+
}, {
|
|
73
|
+
path: string;
|
|
74
|
+
}>, {
|
|
75
|
+
success: boolean;
|
|
76
|
+
error: string;
|
|
77
|
+
content?: undefined;
|
|
78
|
+
size?: undefined;
|
|
79
|
+
path?: undefined;
|
|
80
|
+
lastModified?: undefined;
|
|
81
|
+
} | {
|
|
82
|
+
success: boolean;
|
|
83
|
+
content: string;
|
|
84
|
+
size: number;
|
|
85
|
+
path: string;
|
|
86
|
+
lastModified: string;
|
|
87
|
+
error?: undefined;
|
|
88
|
+
} | {
|
|
89
|
+
success: boolean;
|
|
90
|
+
error: string;
|
|
91
|
+
path: string;
|
|
92
|
+
content?: undefined;
|
|
93
|
+
size?: undefined;
|
|
94
|
+
lastModified?: undefined;
|
|
95
|
+
}> & {
|
|
96
|
+
execute: (args: {
|
|
97
|
+
path: string;
|
|
98
|
+
}, options: import("ai").ToolExecutionOptions) => PromiseLike<{
|
|
99
|
+
success: boolean;
|
|
100
|
+
error: string;
|
|
101
|
+
content?: undefined;
|
|
102
|
+
size?: undefined;
|
|
103
|
+
path?: undefined;
|
|
104
|
+
lastModified?: undefined;
|
|
105
|
+
} | {
|
|
106
|
+
success: boolean;
|
|
107
|
+
content: string;
|
|
108
|
+
size: number;
|
|
109
|
+
path: string;
|
|
110
|
+
lastModified: string;
|
|
111
|
+
error?: undefined;
|
|
112
|
+
} | {
|
|
113
|
+
success: boolean;
|
|
114
|
+
error: string;
|
|
115
|
+
path: string;
|
|
116
|
+
content?: undefined;
|
|
117
|
+
size?: undefined;
|
|
118
|
+
lastModified?: undefined;
|
|
119
|
+
}>;
|
|
120
|
+
};
|
|
121
|
+
listDirectory: Tool<import("zod").ZodObject<{
|
|
122
|
+
path: import("zod").ZodString;
|
|
123
|
+
includeHidden: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
|
|
124
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
125
|
+
path: string;
|
|
126
|
+
includeHidden: boolean;
|
|
127
|
+
}, {
|
|
128
|
+
path: string;
|
|
129
|
+
includeHidden?: boolean | undefined;
|
|
130
|
+
}>, {
|
|
131
|
+
success: boolean;
|
|
132
|
+
path: string;
|
|
133
|
+
items: {
|
|
134
|
+
name: string;
|
|
135
|
+
type: string;
|
|
136
|
+
size: number | undefined;
|
|
137
|
+
lastModified: string;
|
|
138
|
+
}[];
|
|
139
|
+
count: number;
|
|
140
|
+
error?: undefined;
|
|
141
|
+
} | {
|
|
142
|
+
success: boolean;
|
|
143
|
+
error: string;
|
|
144
|
+
path: string;
|
|
145
|
+
items?: undefined;
|
|
146
|
+
count?: undefined;
|
|
147
|
+
}> & {
|
|
148
|
+
execute: (args: {
|
|
149
|
+
path: string;
|
|
150
|
+
includeHidden: boolean;
|
|
151
|
+
}, options: import("ai").ToolExecutionOptions) => PromiseLike<{
|
|
152
|
+
success: boolean;
|
|
153
|
+
path: string;
|
|
154
|
+
items: {
|
|
155
|
+
name: string;
|
|
156
|
+
type: string;
|
|
157
|
+
size: number | undefined;
|
|
158
|
+
lastModified: string;
|
|
159
|
+
}[];
|
|
160
|
+
count: number;
|
|
161
|
+
error?: undefined;
|
|
162
|
+
} | {
|
|
163
|
+
success: boolean;
|
|
164
|
+
error: string;
|
|
165
|
+
path: string;
|
|
166
|
+
items?: undefined;
|
|
167
|
+
count?: undefined;
|
|
168
|
+
}>;
|
|
169
|
+
};
|
|
170
|
+
calculateMath: Tool<import("zod").ZodObject<{
|
|
171
|
+
expression: import("zod").ZodString;
|
|
172
|
+
precision: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
|
|
173
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
174
|
+
expression: string;
|
|
175
|
+
precision: number;
|
|
176
|
+
}, {
|
|
177
|
+
expression: string;
|
|
178
|
+
precision?: number | undefined;
|
|
179
|
+
}>, {
|
|
180
|
+
success: boolean;
|
|
181
|
+
error: string;
|
|
182
|
+
expression?: undefined;
|
|
183
|
+
result?: undefined;
|
|
184
|
+
type?: undefined;
|
|
185
|
+
} | {
|
|
186
|
+
success: boolean;
|
|
187
|
+
expression: string;
|
|
188
|
+
result: any;
|
|
189
|
+
type: "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function";
|
|
190
|
+
error?: undefined;
|
|
191
|
+
} | {
|
|
192
|
+
success: boolean;
|
|
193
|
+
error: string;
|
|
194
|
+
expression: string;
|
|
195
|
+
result?: undefined;
|
|
196
|
+
type?: undefined;
|
|
197
|
+
}> & {
|
|
198
|
+
execute: (args: {
|
|
199
|
+
expression: string;
|
|
200
|
+
precision: number;
|
|
201
|
+
}, options: import("ai").ToolExecutionOptions) => PromiseLike<{
|
|
202
|
+
success: boolean;
|
|
203
|
+
error: string;
|
|
204
|
+
expression?: undefined;
|
|
205
|
+
result?: undefined;
|
|
206
|
+
type?: undefined;
|
|
207
|
+
} | {
|
|
208
|
+
success: boolean;
|
|
209
|
+
expression: string;
|
|
210
|
+
result: any;
|
|
211
|
+
type: "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function";
|
|
212
|
+
error?: undefined;
|
|
213
|
+
} | {
|
|
214
|
+
success: boolean;
|
|
215
|
+
error: string;
|
|
216
|
+
expression: string;
|
|
217
|
+
result?: undefined;
|
|
218
|
+
type?: undefined;
|
|
219
|
+
}>;
|
|
220
|
+
};
|
|
221
|
+
writeFile: Tool<import("zod").ZodObject<{
|
|
222
|
+
path: import("zod").ZodString;
|
|
223
|
+
content: import("zod").ZodString;
|
|
224
|
+
mode: import("zod").ZodDefault<import("zod").ZodEnum<["create", "overwrite", "append"]>>;
|
|
225
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
226
|
+
path: string;
|
|
227
|
+
content: string;
|
|
228
|
+
mode: "create" | "overwrite" | "append";
|
|
229
|
+
}, {
|
|
230
|
+
path: string;
|
|
231
|
+
content: string;
|
|
232
|
+
mode?: "create" | "overwrite" | "append" | undefined;
|
|
233
|
+
}>, {
|
|
234
|
+
success: boolean;
|
|
235
|
+
error: string;
|
|
236
|
+
path?: undefined;
|
|
237
|
+
mode?: undefined;
|
|
238
|
+
size?: undefined;
|
|
239
|
+
written?: undefined;
|
|
240
|
+
} | {
|
|
241
|
+
success: boolean;
|
|
242
|
+
path: string;
|
|
243
|
+
mode: "create" | "overwrite" | "append";
|
|
244
|
+
size: number;
|
|
245
|
+
written: number;
|
|
246
|
+
error?: undefined;
|
|
247
|
+
} | {
|
|
248
|
+
success: boolean;
|
|
249
|
+
error: string;
|
|
250
|
+
path: string;
|
|
251
|
+
mode?: undefined;
|
|
252
|
+
size?: undefined;
|
|
253
|
+
written?: undefined;
|
|
254
|
+
}> & {
|
|
255
|
+
execute: (args: {
|
|
256
|
+
path: string;
|
|
257
|
+
content: string;
|
|
258
|
+
mode: "create" | "overwrite" | "append";
|
|
259
|
+
}, options: import("ai").ToolExecutionOptions) => PromiseLike<{
|
|
260
|
+
success: boolean;
|
|
261
|
+
error: string;
|
|
262
|
+
path?: undefined;
|
|
263
|
+
mode?: undefined;
|
|
264
|
+
size?: undefined;
|
|
265
|
+
written?: undefined;
|
|
266
|
+
} | {
|
|
267
|
+
success: boolean;
|
|
268
|
+
path: string;
|
|
269
|
+
mode: "create" | "overwrite" | "append";
|
|
270
|
+
size: number;
|
|
271
|
+
written: number;
|
|
272
|
+
error?: undefined;
|
|
273
|
+
} | {
|
|
274
|
+
success: boolean;
|
|
275
|
+
error: string;
|
|
276
|
+
path: string;
|
|
277
|
+
mode?: undefined;
|
|
278
|
+
size?: undefined;
|
|
279
|
+
written?: undefined;
|
|
280
|
+
}>;
|
|
281
|
+
};
|
|
282
|
+
searchFiles: Tool<import("zod").ZodObject<{
|
|
283
|
+
directory: import("zod").ZodString;
|
|
284
|
+
pattern: import("zod").ZodString;
|
|
285
|
+
recursive: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
|
|
286
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
287
|
+
directory: string;
|
|
288
|
+
pattern: string;
|
|
289
|
+
recursive: boolean;
|
|
290
|
+
}, {
|
|
291
|
+
directory: string;
|
|
292
|
+
pattern: string;
|
|
293
|
+
recursive?: boolean | undefined;
|
|
294
|
+
}>, {
|
|
295
|
+
success: boolean;
|
|
296
|
+
error: string;
|
|
297
|
+
directory?: undefined;
|
|
298
|
+
pattern?: undefined;
|
|
299
|
+
matches?: undefined;
|
|
300
|
+
count?: undefined;
|
|
301
|
+
} | {
|
|
302
|
+
success: boolean;
|
|
303
|
+
directory: string;
|
|
304
|
+
pattern: string;
|
|
305
|
+
matches: {
|
|
306
|
+
name: string;
|
|
307
|
+
path: string;
|
|
308
|
+
size: number;
|
|
309
|
+
lastModified: string;
|
|
310
|
+
}[];
|
|
311
|
+
count: number;
|
|
312
|
+
error?: undefined;
|
|
313
|
+
} | {
|
|
314
|
+
success: boolean;
|
|
315
|
+
error: string;
|
|
316
|
+
directory: string;
|
|
317
|
+
pattern: string;
|
|
318
|
+
matches?: undefined;
|
|
319
|
+
count?: undefined;
|
|
320
|
+
}> & {
|
|
321
|
+
execute: (args: {
|
|
322
|
+
directory: string;
|
|
323
|
+
pattern: string;
|
|
324
|
+
recursive: boolean;
|
|
325
|
+
}, options: import("ai").ToolExecutionOptions) => PromiseLike<{
|
|
326
|
+
success: boolean;
|
|
327
|
+
error: string;
|
|
328
|
+
directory?: undefined;
|
|
329
|
+
pattern?: undefined;
|
|
330
|
+
matches?: undefined;
|
|
331
|
+
count?: undefined;
|
|
332
|
+
} | {
|
|
333
|
+
success: boolean;
|
|
334
|
+
directory: string;
|
|
335
|
+
pattern: string;
|
|
336
|
+
matches: {
|
|
337
|
+
name: string;
|
|
338
|
+
path: string;
|
|
339
|
+
size: number;
|
|
340
|
+
lastModified: string;
|
|
341
|
+
}[];
|
|
342
|
+
count: number;
|
|
343
|
+
error?: undefined;
|
|
344
|
+
} | {
|
|
345
|
+
success: boolean;
|
|
346
|
+
error: string;
|
|
347
|
+
directory: string;
|
|
348
|
+
pattern: string;
|
|
349
|
+
matches?: undefined;
|
|
350
|
+
count?: undefined;
|
|
351
|
+
}>;
|
|
352
|
+
};
|
|
353
|
+
};
|
|
354
|
+
protected mcpTools?: Record<string, Tool>;
|
|
355
|
+
protected sessionId?: string;
|
|
356
|
+
protected userId?: string;
|
|
357
|
+
protected sdk?: any;
|
|
358
|
+
constructor(modelName?: string, providerName?: AIProviderName, sdk?: any);
|
|
359
|
+
/**
|
|
360
|
+
* Check if this provider supports tool/function calling
|
|
361
|
+
* Override in subclasses to disable tools for specific providers or models
|
|
362
|
+
* @returns true by default, providers can override to return false
|
|
363
|
+
*/
|
|
364
|
+
supportsTools(): boolean;
|
|
365
|
+
/**
|
|
366
|
+
* Primary streaming method - implements AIProvider interface
|
|
367
|
+
* When tools are involved, falls back to generate() with synthetic streaming
|
|
368
|
+
*/
|
|
369
|
+
stream(optionsOrPrompt: StreamOptions | string, analysisSchema?: ZodType<unknown, ZodTypeDef, unknown> | Schema<unknown>): Promise<StreamResult>;
|
|
370
|
+
/**
|
|
371
|
+
* Text generation method - implements AIProvider interface
|
|
372
|
+
* Tools are always available unless explicitly disabled
|
|
373
|
+
*/
|
|
374
|
+
generate(optionsOrPrompt: TextGenerationOptions | string, analysisSchema?: ZodType<unknown, ZodTypeDef, unknown> | Schema<unknown>): Promise<EnhancedGenerateResult | null>;
|
|
375
|
+
/**
|
|
376
|
+
* Alias for generate method - implements AIProvider interface
|
|
377
|
+
*/
|
|
378
|
+
gen(optionsOrPrompt: TextGenerationOptions | string, analysisSchema?: ZodType<unknown, ZodTypeDef, unknown> | Schema<unknown>): Promise<EnhancedGenerateResult | null>;
|
|
379
|
+
/**
|
|
380
|
+
* Provider-specific streaming implementation (only used when tools are disabled)
|
|
381
|
+
*/
|
|
382
|
+
protected abstract executeStream(options: StreamOptions, analysisSchema?: ZodType<unknown, ZodTypeDef, unknown> | Schema<unknown>): Promise<StreamResult>;
|
|
383
|
+
/**
|
|
384
|
+
* Get the provider name
|
|
385
|
+
*/
|
|
386
|
+
protected abstract getProviderName(): AIProviderName;
|
|
387
|
+
/**
|
|
388
|
+
* Get the default model for this provider
|
|
389
|
+
*/
|
|
390
|
+
protected abstract getDefaultModel(): string;
|
|
391
|
+
/**
|
|
392
|
+
* REQUIRED: Every provider MUST implement this method
|
|
393
|
+
* Returns the Vercel AI SDK model instance for this provider
|
|
394
|
+
*/
|
|
395
|
+
protected abstract getAISDKModel(): any | Promise<any>;
|
|
396
|
+
/**
|
|
397
|
+
* Get all available tools - direct tools are ALWAYS available
|
|
398
|
+
* MCP tools are added when available (without blocking)
|
|
399
|
+
*/
|
|
400
|
+
protected getAllTools(): Promise<Record<string, Tool>>;
|
|
401
|
+
/**
|
|
402
|
+
* Set session context for MCP tools
|
|
403
|
+
*/
|
|
404
|
+
setSessionContext(sessionId?: string, userId?: string): void;
|
|
405
|
+
/**
|
|
406
|
+
* Provider-specific error handling
|
|
407
|
+
*/
|
|
408
|
+
protected abstract handleProviderError(error: any): Error;
|
|
409
|
+
protected normalizeTextOptions(optionsOrPrompt: TextGenerationOptions | string): TextGenerationOptions;
|
|
410
|
+
protected normalizeStreamOptions(optionsOrPrompt: StreamOptions | string): StreamOptions;
|
|
411
|
+
protected enhanceResult(result: EnhancedGenerateResult, options: TextGenerationOptions, startTime: number): Promise<EnhancedGenerateResult>;
|
|
412
|
+
protected createAnalytics(result: EnhancedGenerateResult, responseTime: number, options: TextGenerationOptions): Promise<AnalyticsData>;
|
|
413
|
+
protected createEvaluation(result: EnhancedGenerateResult, options: TextGenerationOptions): Promise<any>;
|
|
414
|
+
protected validateOptions(options: TextGenerationOptions): void;
|
|
415
|
+
protected getProviderInfo(): {
|
|
416
|
+
provider: string;
|
|
417
|
+
model: string;
|
|
418
|
+
};
|
|
419
|
+
/**
|
|
420
|
+
* Get timeout value in milliseconds
|
|
421
|
+
*/
|
|
422
|
+
getTimeout(options: TextGenerationOptions | StreamOptions): number;
|
|
423
|
+
}
|