@juspay/neurolink 3.0.0 → 4.0.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 +62 -4
- package/README.md +235 -2
- package/dist/agent/direct-tools.d.ts +6 -6
- package/dist/chat/client-utils.d.ts +92 -0
- package/dist/chat/client-utils.js +298 -0
- package/dist/chat/index.d.ts +27 -0
- package/dist/chat/index.js +41 -0
- package/dist/chat/session-storage.d.ts +77 -0
- package/dist/chat/session-storage.js +233 -0
- package/dist/chat/session.d.ts +95 -0
- package/dist/chat/session.js +257 -0
- package/dist/chat/sse-handler.d.ts +49 -0
- package/dist/chat/sse-handler.js +266 -0
- package/dist/chat/types.d.ts +73 -0
- package/dist/chat/types.js +5 -0
- package/dist/chat/websocket-chat-handler.d.ts +36 -0
- package/dist/chat/websocket-chat-handler.js +262 -0
- package/dist/cli/commands/config.js +12 -12
- package/dist/cli/commands/mcp.js +3 -4
- package/dist/cli/index.d.ts +0 -7
- package/dist/cli/index.js +256 -27
- package/dist/config/configManager.d.ts +60 -0
- package/dist/config/configManager.js +300 -0
- package/dist/config/types.d.ts +136 -0
- package/dist/config/types.js +43 -0
- package/dist/core/analytics.d.ts +23 -0
- package/dist/core/analytics.js +131 -0
- package/dist/core/constants.d.ts +41 -0
- package/dist/core/constants.js +50 -0
- package/dist/core/defaults.d.ts +18 -0
- package/dist/core/defaults.js +29 -0
- package/dist/core/evaluation-config.d.ts +29 -0
- package/dist/core/evaluation-config.js +144 -0
- package/dist/core/evaluation-providers.d.ts +30 -0
- package/dist/core/evaluation-providers.js +187 -0
- package/dist/core/evaluation.d.ts +117 -0
- package/dist/core/evaluation.js +528 -0
- package/dist/core/factory.js +33 -25
- package/dist/core/types.d.ts +165 -6
- package/dist/core/types.js +3 -4
- package/dist/index.d.ts +9 -4
- package/dist/index.js +25 -4
- package/dist/lib/agent/direct-tools.d.ts +6 -6
- package/dist/lib/chat/client-utils.d.ts +92 -0
- package/dist/lib/chat/client-utils.js +298 -0
- package/dist/lib/chat/index.d.ts +27 -0
- package/dist/lib/chat/index.js +41 -0
- package/dist/lib/chat/session-storage.d.ts +77 -0
- package/dist/lib/chat/session-storage.js +233 -0
- package/dist/lib/chat/session.d.ts +95 -0
- package/dist/lib/chat/session.js +257 -0
- package/dist/lib/chat/sse-handler.d.ts +49 -0
- package/dist/lib/chat/sse-handler.js +266 -0
- package/dist/lib/chat/types.d.ts +73 -0
- package/dist/lib/chat/types.js +5 -0
- package/dist/lib/chat/websocket-chat-handler.d.ts +36 -0
- package/dist/lib/chat/websocket-chat-handler.js +262 -0
- package/dist/lib/config/configManager.d.ts +60 -0
- package/dist/lib/config/configManager.js +300 -0
- package/dist/lib/config/types.d.ts +136 -0
- package/dist/lib/config/types.js +43 -0
- package/dist/lib/core/analytics.d.ts +23 -0
- package/dist/lib/core/analytics.js +131 -0
- package/dist/lib/core/constants.d.ts +41 -0
- package/dist/lib/core/constants.js +50 -0
- package/dist/lib/core/defaults.d.ts +18 -0
- package/dist/lib/core/defaults.js +29 -0
- package/dist/lib/core/evaluation-config.d.ts +29 -0
- package/dist/lib/core/evaluation-config.js +144 -0
- package/dist/lib/core/evaluation-providers.d.ts +30 -0
- package/dist/lib/core/evaluation-providers.js +187 -0
- package/dist/lib/core/evaluation.d.ts +117 -0
- package/dist/lib/core/evaluation.js +528 -0
- package/dist/lib/core/factory.js +33 -26
- package/dist/lib/core/types.d.ts +165 -6
- package/dist/lib/core/types.js +3 -4
- package/dist/lib/index.d.ts +9 -4
- package/dist/lib/index.js +25 -4
- package/dist/lib/mcp/contracts/mcpContract.d.ts +118 -0
- package/dist/lib/mcp/contracts/mcpContract.js +5 -0
- package/dist/lib/mcp/function-calling.js +11 -3
- package/dist/lib/mcp/logging.js +5 -0
- package/dist/lib/mcp/neurolink-mcp-client.js +2 -1
- package/dist/lib/mcp/orchestrator.js +18 -9
- package/dist/lib/mcp/registry.d.ts +49 -16
- package/dist/lib/mcp/registry.js +80 -6
- package/dist/lib/mcp/servers/ai-providers/ai-workflow-tools.js +5 -4
- package/dist/lib/mcp/tool-integration.js +1 -1
- package/dist/lib/mcp/tool-registry.d.ts +55 -34
- package/dist/lib/mcp/tool-registry.js +111 -97
- package/dist/lib/mcp/unified-mcp.js +6 -1
- package/dist/lib/mcp/unified-registry.d.ts +12 -4
- package/dist/lib/mcp/unified-registry.js +17 -4
- package/dist/lib/neurolink.d.ts +28 -0
- package/dist/lib/neurolink.js +48 -4
- package/dist/lib/providers/agent-enhanced-provider.d.ts +11 -2
- package/dist/lib/providers/agent-enhanced-provider.js +86 -15
- package/dist/lib/providers/amazonBedrock.d.ts +9 -1
- package/dist/lib/providers/amazonBedrock.js +26 -2
- package/dist/lib/providers/analytics-helper.d.ts +53 -0
- package/dist/lib/providers/analytics-helper.js +151 -0
- package/dist/lib/providers/anthropic.d.ts +11 -1
- package/dist/lib/providers/anthropic.js +29 -4
- package/dist/lib/providers/azureOpenAI.d.ts +3 -1
- package/dist/lib/providers/azureOpenAI.js +28 -4
- package/dist/lib/providers/function-calling-provider.d.ts +9 -1
- package/dist/lib/providers/function-calling-provider.js +14 -1
- package/dist/lib/providers/googleAIStudio.d.ts +15 -1
- package/dist/lib/providers/googleAIStudio.js +32 -2
- package/dist/lib/providers/googleVertexAI.d.ts +9 -1
- package/dist/lib/providers/googleVertexAI.js +31 -2
- package/dist/lib/providers/huggingFace.d.ts +3 -1
- package/dist/lib/providers/huggingFace.js +26 -3
- package/dist/lib/providers/mcp-provider.d.ts +9 -1
- package/dist/lib/providers/mcp-provider.js +12 -0
- package/dist/lib/providers/mistralAI.d.ts +3 -1
- package/dist/lib/providers/mistralAI.js +25 -2
- package/dist/lib/providers/ollama.d.ts +3 -1
- package/dist/lib/providers/ollama.js +27 -4
- package/dist/lib/providers/openAI.d.ts +15 -1
- package/dist/lib/providers/openAI.js +32 -2
- package/dist/lib/proxy/proxy-fetch.js +8 -7
- package/dist/lib/services/streaming/streaming-manager.d.ts +29 -0
- package/dist/lib/services/streaming/streaming-manager.js +244 -0
- package/dist/lib/services/types.d.ts +155 -0
- package/dist/lib/services/types.js +2 -0
- package/dist/lib/services/websocket/websocket-server.d.ts +34 -0
- package/dist/lib/services/websocket/websocket-server.js +304 -0
- package/dist/lib/telemetry/index.d.ts +15 -0
- package/dist/lib/telemetry/index.js +22 -0
- package/dist/lib/telemetry/telemetry-service.d.ts +47 -0
- package/dist/lib/telemetry/telemetry-service.js +259 -0
- package/dist/lib/utils/streaming-utils.d.ts +67 -0
- package/dist/lib/utils/streaming-utils.js +201 -0
- package/dist/mcp/contracts/mcpContract.d.ts +118 -0
- package/dist/mcp/contracts/mcpContract.js +5 -0
- package/dist/mcp/function-calling.js +11 -3
- package/dist/mcp/logging.js +5 -0
- package/dist/mcp/neurolink-mcp-client.js +2 -1
- package/dist/mcp/orchestrator.js +18 -9
- package/dist/mcp/registry.d.ts +49 -16
- package/dist/mcp/registry.js +80 -6
- package/dist/mcp/servers/ai-providers/ai-workflow-tools.d.ts +2 -2
- package/dist/mcp/servers/ai-providers/ai-workflow-tools.js +5 -4
- package/dist/mcp/tool-integration.js +1 -1
- package/dist/mcp/tool-registry.d.ts +55 -34
- package/dist/mcp/tool-registry.js +111 -97
- package/dist/mcp/unified-mcp.js +6 -1
- package/dist/mcp/unified-registry.d.ts +12 -4
- package/dist/mcp/unified-registry.js +17 -4
- package/dist/neurolink.d.ts +28 -0
- package/dist/neurolink.js +48 -4
- package/dist/providers/agent-enhanced-provider.d.ts +11 -2
- package/dist/providers/agent-enhanced-provider.js +86 -15
- package/dist/providers/amazonBedrock.d.ts +9 -1
- package/dist/providers/amazonBedrock.js +26 -2
- package/dist/providers/analytics-helper.d.ts +53 -0
- package/dist/providers/analytics-helper.js +151 -0
- package/dist/providers/anthropic.d.ts +11 -1
- package/dist/providers/anthropic.js +29 -4
- package/dist/providers/azureOpenAI.d.ts +3 -1
- package/dist/providers/azureOpenAI.js +29 -4
- package/dist/providers/function-calling-provider.d.ts +9 -1
- package/dist/providers/function-calling-provider.js +14 -1
- package/dist/providers/googleAIStudio.d.ts +15 -1
- package/dist/providers/googleAIStudio.js +32 -2
- package/dist/providers/googleVertexAI.d.ts +9 -1
- package/dist/providers/googleVertexAI.js +31 -2
- package/dist/providers/huggingFace.d.ts +3 -1
- package/dist/providers/huggingFace.js +26 -3
- package/dist/providers/mcp-provider.d.ts +9 -1
- package/dist/providers/mcp-provider.js +12 -0
- package/dist/providers/mistralAI.d.ts +3 -1
- package/dist/providers/mistralAI.js +25 -2
- package/dist/providers/ollama.d.ts +3 -1
- package/dist/providers/ollama.js +27 -4
- package/dist/providers/openAI.d.ts +15 -1
- package/dist/providers/openAI.js +33 -2
- package/dist/proxy/proxy-fetch.js +8 -7
- package/dist/services/streaming/streaming-manager.d.ts +29 -0
- package/dist/services/streaming/streaming-manager.js +244 -0
- package/dist/services/types.d.ts +155 -0
- package/dist/services/types.js +2 -0
- package/dist/services/websocket/websocket-server.d.ts +34 -0
- package/dist/services/websocket/websocket-server.js +304 -0
- package/dist/telemetry/index.d.ts +15 -0
- package/dist/telemetry/index.js +22 -0
- package/dist/telemetry/telemetry-service.d.ts +47 -0
- package/dist/telemetry/telemetry-service.js +261 -0
- package/dist/utils/streaming-utils.d.ts +67 -0
- package/dist/utils/streaming-utils.js +201 -0
- package/package.json +18 -2
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 2: Enhanced Streaming Infrastructure
|
|
3
|
+
* Streaming utilities for progress tracking and metadata enhancement
|
|
4
|
+
*/
|
|
5
|
+
import type { StreamingProgressData, StreamingMetadata, ProgressCallback, EnhancedStreamTextOptions } from "../core/types.js";
|
|
6
|
+
export interface UIProgressHandler {
|
|
7
|
+
onProgress: (progress: StreamingProgressData) => void;
|
|
8
|
+
onComplete: (metadata: StreamingMetadata) => void;
|
|
9
|
+
onError: (error: Error) => void;
|
|
10
|
+
}
|
|
11
|
+
export interface StreamingStats {
|
|
12
|
+
totalChunks: number;
|
|
13
|
+
totalBytes: number;
|
|
14
|
+
duration: number;
|
|
15
|
+
averageChunkSize: number;
|
|
16
|
+
provider: string;
|
|
17
|
+
model: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Enhanced streaming utilities for progress tracking and metadata
|
|
21
|
+
*/
|
|
22
|
+
export declare class StreamingEnhancer {
|
|
23
|
+
/**
|
|
24
|
+
* Add progress tracking to a readable stream
|
|
25
|
+
*/
|
|
26
|
+
static addProgressTracking(stream: ReadableStream, callback?: ProgressCallback, options?: {
|
|
27
|
+
streamId?: string;
|
|
28
|
+
bufferSize?: number;
|
|
29
|
+
}): ReadableStream;
|
|
30
|
+
/**
|
|
31
|
+
* Add metadata headers to streaming response
|
|
32
|
+
*/
|
|
33
|
+
static addMetadataHeaders(response: Response, stats: StreamingStats): Response;
|
|
34
|
+
/**
|
|
35
|
+
* Create progress callback for UI integration
|
|
36
|
+
*/
|
|
37
|
+
static createProgressCallback(ui: UIProgressHandler): ProgressCallback;
|
|
38
|
+
/**
|
|
39
|
+
* Estimate remaining time based on current progress
|
|
40
|
+
*/
|
|
41
|
+
static estimateRemainingTime(totalBytes: number, elapsedTime: number, chunkCount: number): number | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Create enhanced streaming configuration
|
|
44
|
+
*/
|
|
45
|
+
static createStreamingConfig(options: EnhancedStreamTextOptions): {
|
|
46
|
+
progressTracking: boolean;
|
|
47
|
+
callback?: ProgressCallback;
|
|
48
|
+
metadata: boolean;
|
|
49
|
+
bufferSize: number;
|
|
50
|
+
headers: boolean;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Streaming performance monitor for debugging and optimization
|
|
55
|
+
*/
|
|
56
|
+
export declare class StreamingMonitor {
|
|
57
|
+
private static activeStreams;
|
|
58
|
+
static registerStream(streamId: string): void;
|
|
59
|
+
static updateStream(streamId: string, progress: StreamingProgressData): void;
|
|
60
|
+
static completeStream(streamId: string): void;
|
|
61
|
+
static getActiveStreams(): StreamingProgressData[];
|
|
62
|
+
static getStreamStats(): {
|
|
63
|
+
activeCount: number;
|
|
64
|
+
totalBytesActive: number;
|
|
65
|
+
averageProgress: number;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phase 2: Enhanced Streaming Infrastructure
|
|
3
|
+
* Streaming utilities for progress tracking and metadata enhancement
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Enhanced streaming utilities for progress tracking and metadata
|
|
7
|
+
*/
|
|
8
|
+
export class StreamingEnhancer {
|
|
9
|
+
/**
|
|
10
|
+
* Add progress tracking to a readable stream
|
|
11
|
+
*/
|
|
12
|
+
static addProgressTracking(stream, callback, options) {
|
|
13
|
+
const streamId = options?.streamId || `stream_${Date.now()}`;
|
|
14
|
+
const startTime = Date.now();
|
|
15
|
+
let chunkCount = 0;
|
|
16
|
+
let totalBytes = 0;
|
|
17
|
+
let lastProgressTime = startTime;
|
|
18
|
+
return new ReadableStream({
|
|
19
|
+
start(controller) {
|
|
20
|
+
if (callback) {
|
|
21
|
+
callback({
|
|
22
|
+
chunkCount: 0,
|
|
23
|
+
totalBytes: 0,
|
|
24
|
+
chunkSize: 0,
|
|
25
|
+
elapsedTime: 0,
|
|
26
|
+
streamId,
|
|
27
|
+
phase: "initializing",
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
async pull(controller) {
|
|
32
|
+
const reader = stream.getReader();
|
|
33
|
+
try {
|
|
34
|
+
const { done, value } = await reader.read();
|
|
35
|
+
if (done) {
|
|
36
|
+
controller.close();
|
|
37
|
+
if (callback) {
|
|
38
|
+
const elapsedTime = Date.now() - startTime;
|
|
39
|
+
callback({
|
|
40
|
+
chunkCount,
|
|
41
|
+
totalBytes,
|
|
42
|
+
chunkSize: totalBytes > 0 ? Math.round(totalBytes / chunkCount) : 0,
|
|
43
|
+
elapsedTime,
|
|
44
|
+
streamId,
|
|
45
|
+
phase: "complete",
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
// Track progress
|
|
51
|
+
chunkCount++;
|
|
52
|
+
const chunkSize = value
|
|
53
|
+
? new TextEncoder().encode(value.toString()).length
|
|
54
|
+
: 0;
|
|
55
|
+
totalBytes += chunkSize;
|
|
56
|
+
const currentTime = Date.now();
|
|
57
|
+
const elapsedTime = currentTime - startTime;
|
|
58
|
+
const timeSinceLastProgress = currentTime - lastProgressTime;
|
|
59
|
+
// Call progress callback
|
|
60
|
+
if (callback && (timeSinceLastProgress > 100 || chunkCount === 1)) {
|
|
61
|
+
// Throttle to max 10 calls/second
|
|
62
|
+
const estimatedRemaining = StreamingEnhancer.estimateRemainingTime(totalBytes, elapsedTime, chunkCount);
|
|
63
|
+
callback({
|
|
64
|
+
chunkCount,
|
|
65
|
+
totalBytes,
|
|
66
|
+
chunkSize,
|
|
67
|
+
elapsedTime,
|
|
68
|
+
estimatedRemaining,
|
|
69
|
+
streamId,
|
|
70
|
+
phase: "streaming",
|
|
71
|
+
});
|
|
72
|
+
lastProgressTime = currentTime;
|
|
73
|
+
}
|
|
74
|
+
controller.enqueue(value);
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
controller.error(error);
|
|
78
|
+
if (callback) {
|
|
79
|
+
callback({
|
|
80
|
+
chunkCount,
|
|
81
|
+
totalBytes,
|
|
82
|
+
chunkSize: 0,
|
|
83
|
+
elapsedTime: Date.now() - startTime,
|
|
84
|
+
streamId,
|
|
85
|
+
phase: "error",
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
finally {
|
|
90
|
+
reader.releaseLock();
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Add metadata headers to streaming response
|
|
97
|
+
*/
|
|
98
|
+
static addMetadataHeaders(response, stats) {
|
|
99
|
+
const headers = new Headers(response.headers);
|
|
100
|
+
headers.set("X-Streaming-Chunks", stats.totalChunks.toString());
|
|
101
|
+
headers.set("X-Streaming-Bytes", stats.totalBytes.toString());
|
|
102
|
+
headers.set("X-Streaming-Duration", stats.duration.toString());
|
|
103
|
+
headers.set("X-Streaming-Avg-Chunk-Size", stats.averageChunkSize.toString());
|
|
104
|
+
headers.set("X-Streaming-Provider", stats.provider);
|
|
105
|
+
headers.set("X-Streaming-Model", stats.model);
|
|
106
|
+
headers.set("X-Streaming-Throughput", Math.round(stats.totalBytes / (stats.duration / 1000)).toString());
|
|
107
|
+
return new Response(response.body, {
|
|
108
|
+
status: response.status,
|
|
109
|
+
statusText: response.statusText,
|
|
110
|
+
headers,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Create progress callback for UI integration
|
|
115
|
+
*/
|
|
116
|
+
static createProgressCallback(ui) {
|
|
117
|
+
return (progress) => {
|
|
118
|
+
try {
|
|
119
|
+
ui.onProgress(progress);
|
|
120
|
+
if (progress.phase === "complete") {
|
|
121
|
+
ui.onComplete({
|
|
122
|
+
startTime: Date.now() - progress.elapsedTime,
|
|
123
|
+
endTime: Date.now(),
|
|
124
|
+
totalDuration: progress.elapsedTime,
|
|
125
|
+
averageChunkSize: Math.round(progress.totalBytes / progress.chunkCount),
|
|
126
|
+
maxChunkSize: progress.chunkSize, // This would need to be tracked better in real implementation
|
|
127
|
+
minChunkSize: progress.chunkSize, // This would need to be tracked better in real implementation
|
|
128
|
+
throughputBytesPerSecond: Math.round(progress.totalBytes / (progress.elapsedTime / 1000)),
|
|
129
|
+
streamingProvider: "unknown", // Would be passed from provider
|
|
130
|
+
modelUsed: "unknown", // Would be passed from provider
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
ui.onError(error);
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Estimate remaining time based on current progress
|
|
141
|
+
*/
|
|
142
|
+
static estimateRemainingTime(totalBytes, elapsedTime, chunkCount) {
|
|
143
|
+
if (elapsedTime < 1000 || chunkCount < 3) {
|
|
144
|
+
return undefined; // Not enough data for estimation
|
|
145
|
+
}
|
|
146
|
+
const bytesPerMs = totalBytes / elapsedTime;
|
|
147
|
+
const avgChunkSize = totalBytes / chunkCount;
|
|
148
|
+
// Rough estimation assuming similar chunk sizes going forward
|
|
149
|
+
// This is a simple heuristic - real implementation might be more sophisticated
|
|
150
|
+
const estimatedTotalBytes = avgChunkSize * (chunkCount + 10); // Assume 10 more chunks
|
|
151
|
+
const remainingBytes = estimatedTotalBytes - totalBytes;
|
|
152
|
+
return Math.max(0, remainingBytes / bytesPerMs);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Create enhanced streaming configuration
|
|
156
|
+
*/
|
|
157
|
+
static createStreamingConfig(options) {
|
|
158
|
+
return {
|
|
159
|
+
progressTracking: options.enableProgressTracking ?? false,
|
|
160
|
+
callback: options.progressCallback,
|
|
161
|
+
metadata: options.includeStreamingMetadata ?? false,
|
|
162
|
+
bufferSize: options.streamingBufferSize ?? 8192,
|
|
163
|
+
headers: options.enableStreamingHeaders ?? false,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Streaming performance monitor for debugging and optimization
|
|
169
|
+
*/
|
|
170
|
+
export class StreamingMonitor {
|
|
171
|
+
static activeStreams = new Map();
|
|
172
|
+
static registerStream(streamId) {
|
|
173
|
+
this.activeStreams.set(streamId, {
|
|
174
|
+
chunkCount: 0,
|
|
175
|
+
totalBytes: 0,
|
|
176
|
+
chunkSize: 0,
|
|
177
|
+
elapsedTime: 0,
|
|
178
|
+
streamId,
|
|
179
|
+
phase: "initializing",
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
static updateStream(streamId, progress) {
|
|
183
|
+
this.activeStreams.set(streamId, progress);
|
|
184
|
+
}
|
|
185
|
+
static completeStream(streamId) {
|
|
186
|
+
this.activeStreams.delete(streamId);
|
|
187
|
+
}
|
|
188
|
+
static getActiveStreams() {
|
|
189
|
+
return Array.from(this.activeStreams.values());
|
|
190
|
+
}
|
|
191
|
+
static getStreamStats() {
|
|
192
|
+
const streams = this.getActiveStreams();
|
|
193
|
+
return {
|
|
194
|
+
activeCount: streams.length,
|
|
195
|
+
totalBytesActive: streams.reduce((sum, s) => sum + s.totalBytes, 0),
|
|
196
|
+
averageProgress: streams.length > 0
|
|
197
|
+
? streams.reduce((sum, s) => sum + s.elapsedTime, 0) / streams.length
|
|
198
|
+
: 0,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@juspay/neurolink",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Universal AI Development Platform with working MCP integration, multi-provider support, and professional CLI. Built-in tools operational, 58+ external MCP servers discoverable. Connect to filesystem, GitHub, database operations, and more. Build, test, and deploy AI applications with 9 major providers: OpenAI, Anthropic, Google AI, AWS Bedrock, Azure, Hugging Face, Ollama, and Mistral AI.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Juspay Technologies",
|
|
@@ -132,16 +132,32 @@
|
|
|
132
132
|
"@google/generative-ai": "^0.24.1",
|
|
133
133
|
"@huggingface/inference": "^2.8.0",
|
|
134
134
|
"@modelcontextprotocol/sdk": "^1.13.0",
|
|
135
|
+
"@opentelemetry/api": "^1.9.0",
|
|
136
|
+
"@opentelemetry/auto-instrumentations-node": "^0.52.1",
|
|
137
|
+
"@opentelemetry/exporter-logs-otlp-http": "^0.54.2",
|
|
138
|
+
"@opentelemetry/exporter-metrics-otlp-http": "^0.54.2",
|
|
139
|
+
"@opentelemetry/exporter-trace-otlp-http": "^0.54.2",
|
|
140
|
+
"@opentelemetry/instrumentation-fetch": "^0.54.2",
|
|
141
|
+
"@opentelemetry/instrumentation-http": "^0.54.2",
|
|
142
|
+
"@opentelemetry/propagator-b3": "^1.30.1",
|
|
143
|
+
"@opentelemetry/resource-detector-aws": "^1.12.0",
|
|
144
|
+
"@opentelemetry/resources": "^1.30.1",
|
|
145
|
+
"@opentelemetry/sdk-logs": "^0.54.2",
|
|
146
|
+
"@opentelemetry/sdk-metrics": "^1.30.1",
|
|
147
|
+
"@opentelemetry/sdk-node": "^0.54.2",
|
|
148
|
+
"@opentelemetry/semantic-conventions": "^1.34.0",
|
|
149
|
+
"@types/ws": "^8.18.1",
|
|
135
150
|
"ai": "^4.0.0",
|
|
136
151
|
"chalk": "^5.3.0",
|
|
137
152
|
"cors": "^2.8.5",
|
|
138
153
|
"dotenv": "^16.5.0",
|
|
139
154
|
"express": "^5.1.0",
|
|
140
155
|
"inquirer": "^9.2.15",
|
|
141
|
-
"undici": "^6.6.2",
|
|
142
156
|
"ora": "^7.0.1",
|
|
143
157
|
"playwright": "^1.52.0",
|
|
158
|
+
"undici": "^6.6.2",
|
|
144
159
|
"uuid": "^11.1.0",
|
|
160
|
+
"ws": "^8.18.3",
|
|
145
161
|
"yargs": "^17.7.2",
|
|
146
162
|
"zod": "^3.22.0",
|
|
147
163
|
"zod-to-json-schema": "^3.24.5"
|