@juspay/neurolink 7.7.1 → 7.9.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 +25 -2
- package/README.md +34 -2
- package/dist/cli/commands/config.d.ts +3 -3
- package/dist/cli/commands/sagemaker.d.ts +11 -0
- package/dist/cli/commands/sagemaker.js +778 -0
- package/dist/cli/factories/commandFactory.js +7 -2
- package/dist/cli/index.js +3 -0
- package/dist/cli/utils/interactiveSetup.js +28 -0
- package/dist/core/baseProvider.d.ts +2 -2
- package/dist/core/types.d.ts +16 -4
- package/dist/core/types.js +24 -3
- package/dist/factories/providerFactory.js +10 -1
- package/dist/factories/providerRegistry.js +6 -1
- package/dist/lib/core/baseProvider.d.ts +2 -2
- package/dist/lib/core/types.d.ts +16 -4
- package/dist/lib/core/types.js +24 -3
- package/dist/lib/factories/providerFactory.js +10 -1
- package/dist/lib/factories/providerRegistry.js +6 -1
- package/dist/lib/neurolink.d.ts +15 -0
- package/dist/lib/neurolink.js +73 -1
- package/dist/lib/providers/amazonSagemaker.d.ts +67 -0
- package/dist/lib/providers/amazonSagemaker.js +149 -0
- package/dist/lib/providers/googleVertex.d.ts +4 -0
- package/dist/lib/providers/googleVertex.js +44 -3
- package/dist/lib/providers/index.d.ts +4 -0
- package/dist/lib/providers/index.js +4 -0
- package/dist/lib/providers/sagemaker/adaptive-semaphore.d.ts +86 -0
- package/dist/lib/providers/sagemaker/adaptive-semaphore.js +212 -0
- package/dist/lib/providers/sagemaker/client.d.ts +156 -0
- package/dist/lib/providers/sagemaker/client.js +462 -0
- package/dist/lib/providers/sagemaker/config.d.ts +73 -0
- package/dist/lib/providers/sagemaker/config.js +308 -0
- package/dist/lib/providers/sagemaker/detection.d.ts +176 -0
- package/dist/lib/providers/sagemaker/detection.js +596 -0
- package/dist/lib/providers/sagemaker/diagnostics.d.ts +37 -0
- package/dist/lib/providers/sagemaker/diagnostics.js +137 -0
- package/dist/lib/providers/sagemaker/error-constants.d.ts +78 -0
- package/dist/lib/providers/sagemaker/error-constants.js +227 -0
- package/dist/lib/providers/sagemaker/errors.d.ts +83 -0
- package/dist/lib/providers/sagemaker/errors.js +216 -0
- package/dist/lib/providers/sagemaker/index.d.ts +35 -0
- package/dist/lib/providers/sagemaker/index.js +67 -0
- package/dist/lib/providers/sagemaker/language-model.d.ts +182 -0
- package/dist/lib/providers/sagemaker/language-model.js +755 -0
- package/dist/lib/providers/sagemaker/parsers.d.ts +136 -0
- package/dist/lib/providers/sagemaker/parsers.js +625 -0
- package/dist/lib/providers/sagemaker/streaming.d.ts +39 -0
- package/dist/lib/providers/sagemaker/streaming.js +320 -0
- package/dist/lib/providers/sagemaker/structured-parser.d.ts +117 -0
- package/dist/lib/providers/sagemaker/structured-parser.js +625 -0
- package/dist/lib/providers/sagemaker/types.d.ts +456 -0
- package/dist/lib/providers/sagemaker/types.js +7 -0
- package/dist/lib/sdk/toolRegistration.d.ts +1 -1
- package/dist/lib/sdk/toolRegistration.js +13 -5
- package/dist/lib/types/cli.d.ts +36 -1
- package/dist/lib/utils/providerHealth.js +19 -4
- package/dist/neurolink.d.ts +15 -0
- package/dist/neurolink.js +73 -1
- package/dist/providers/amazonSagemaker.d.ts +67 -0
- package/dist/providers/amazonSagemaker.js +149 -0
- package/dist/providers/googleVertex.d.ts +4 -0
- package/dist/providers/googleVertex.js +44 -3
- package/dist/providers/index.d.ts +4 -0
- package/dist/providers/index.js +4 -0
- package/dist/providers/sagemaker/adaptive-semaphore.d.ts +86 -0
- package/dist/providers/sagemaker/adaptive-semaphore.js +212 -0
- package/dist/providers/sagemaker/client.d.ts +156 -0
- package/dist/providers/sagemaker/client.js +462 -0
- package/dist/providers/sagemaker/config.d.ts +73 -0
- package/dist/providers/sagemaker/config.js +308 -0
- package/dist/providers/sagemaker/detection.d.ts +176 -0
- package/dist/providers/sagemaker/detection.js +596 -0
- package/dist/providers/sagemaker/diagnostics.d.ts +37 -0
- package/dist/providers/sagemaker/diagnostics.js +137 -0
- package/dist/providers/sagemaker/error-constants.d.ts +78 -0
- package/dist/providers/sagemaker/error-constants.js +227 -0
- package/dist/providers/sagemaker/errors.d.ts +83 -0
- package/dist/providers/sagemaker/errors.js +216 -0
- package/dist/providers/sagemaker/index.d.ts +35 -0
- package/dist/providers/sagemaker/index.js +67 -0
- package/dist/providers/sagemaker/language-model.d.ts +182 -0
- package/dist/providers/sagemaker/language-model.js +755 -0
- package/dist/providers/sagemaker/parsers.d.ts +136 -0
- package/dist/providers/sagemaker/parsers.js +625 -0
- package/dist/providers/sagemaker/streaming.d.ts +39 -0
- package/dist/providers/sagemaker/streaming.js +320 -0
- package/dist/providers/sagemaker/structured-parser.d.ts +117 -0
- package/dist/providers/sagemaker/structured-parser.js +625 -0
- package/dist/providers/sagemaker/types.d.ts +456 -0
- package/dist/providers/sagemaker/types.js +7 -0
- package/dist/sdk/toolRegistration.d.ts +1 -1
- package/dist/sdk/toolRegistration.js +13 -5
- package/dist/types/cli.d.ts +36 -1
- package/dist/utils/providerHealth.js +19 -4
- package/package.json +8 -2
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SageMaker Streaming Response Parsers
|
|
3
|
+
*
|
|
4
|
+
* This module provides protocol-specific parsers for different streaming
|
|
5
|
+
* formats used by SageMaker endpoints (HuggingFace, LLaMA, custom models).
|
|
6
|
+
*/
|
|
7
|
+
import type { SageMakerStreamChunk, SageMakerUsage, SageMakerStructuredOutput } from "./types.js";
|
|
8
|
+
import { type StructuredOutputParser } from "./structured-parser.js";
|
|
9
|
+
/**
|
|
10
|
+
* Shared bracket counting state and utilities
|
|
11
|
+
* Used by both validateJSONCompleteness and StructuredOutputParser
|
|
12
|
+
*/
|
|
13
|
+
export interface BracketCountingState {
|
|
14
|
+
braceCount: number;
|
|
15
|
+
bracketCount: number;
|
|
16
|
+
inString: boolean;
|
|
17
|
+
escapeNext: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Process a single character for bracket counting logic
|
|
21
|
+
* Shared utility to avoid code duplication between parsers
|
|
22
|
+
*/
|
|
23
|
+
export declare function processBracketCharacter(char: string, state: BracketCountingState): {
|
|
24
|
+
isValid: boolean;
|
|
25
|
+
reason?: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Utility function to validate JSON completeness using efficient bracket counting
|
|
29
|
+
* Extracted from parseArgumentsForToolCall for reusability
|
|
30
|
+
*/
|
|
31
|
+
export declare function validateJSONCompleteness(jsonString: string): {
|
|
32
|
+
isComplete: boolean;
|
|
33
|
+
reason?: string;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Utility function to parse tool call arguments with robust validation
|
|
37
|
+
* Extracted from parseArgumentsForToolCall for reusability
|
|
38
|
+
*/
|
|
39
|
+
export declare function parseToolCallArguments(args: string): {
|
|
40
|
+
arguments?: string;
|
|
41
|
+
complete?: boolean;
|
|
42
|
+
argumentsDelta?: string;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Base interface for streaming response parsers
|
|
46
|
+
*/
|
|
47
|
+
export interface StreamingParser {
|
|
48
|
+
/** Parse a chunk of streaming data */
|
|
49
|
+
parse(chunk: Uint8Array): SageMakerStreamChunk[];
|
|
50
|
+
/** Check if a chunk indicates completion */
|
|
51
|
+
isComplete(chunk: SageMakerStreamChunk): boolean;
|
|
52
|
+
/** Extract final usage information */
|
|
53
|
+
extractUsage(finalChunk: SageMakerStreamChunk): SageMakerUsage | undefined;
|
|
54
|
+
/** Get parser name for debugging */
|
|
55
|
+
getName(): string;
|
|
56
|
+
/** Reset parser state for new stream */
|
|
57
|
+
reset(): void;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Abstract base parser with common functionality
|
|
61
|
+
*/
|
|
62
|
+
declare abstract class BaseStreamingParser implements StreamingParser {
|
|
63
|
+
protected buffer: string;
|
|
64
|
+
protected isCompleted: boolean;
|
|
65
|
+
protected totalUsage?: SageMakerUsage;
|
|
66
|
+
protected structuredParser?: StructuredOutputParser;
|
|
67
|
+
protected responseSchema?: Record<string, unknown>;
|
|
68
|
+
abstract parse(chunk: Uint8Array): SageMakerStreamChunk[];
|
|
69
|
+
abstract getName(): string;
|
|
70
|
+
isComplete(chunk: SageMakerStreamChunk): boolean;
|
|
71
|
+
extractUsage(finalChunk: SageMakerStreamChunk): SageMakerUsage | undefined;
|
|
72
|
+
reset(): void;
|
|
73
|
+
/**
|
|
74
|
+
* Enable structured output parsing with optional schema
|
|
75
|
+
*/
|
|
76
|
+
enableStructuredOutput(schema?: Record<string, unknown>): void;
|
|
77
|
+
/**
|
|
78
|
+
* Parse structured content if enabled
|
|
79
|
+
*/
|
|
80
|
+
protected parseStructuredContent(content: string): SageMakerStructuredOutput | undefined;
|
|
81
|
+
protected decodeChunk(chunk: Uint8Array): string;
|
|
82
|
+
protected parseJSON(text: string): unknown;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* HuggingFace Transformers streaming parser (Server-Sent Events)
|
|
86
|
+
*/
|
|
87
|
+
export declare class HuggingFaceStreamParser extends BaseStreamingParser {
|
|
88
|
+
getName(): string;
|
|
89
|
+
parse(chunk: Uint8Array): SageMakerStreamChunk[];
|
|
90
|
+
private parseHuggingFaceChunk;
|
|
91
|
+
private parseHuggingFaceUsage;
|
|
92
|
+
private mapFinishReason;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* LLaMA/OpenAI-compatible streaming parser (JSON Lines)
|
|
96
|
+
*/
|
|
97
|
+
export declare class LlamaStreamParser extends BaseStreamingParser {
|
|
98
|
+
getName(): string;
|
|
99
|
+
parse(chunk: Uint8Array): SageMakerStreamChunk[];
|
|
100
|
+
private parseLlamaChunk;
|
|
101
|
+
/**
|
|
102
|
+
* Parse tool call arguments with robust validation and error handling
|
|
103
|
+
*/
|
|
104
|
+
private parseToolCallArguments;
|
|
105
|
+
/**
|
|
106
|
+
* Parse streaming tool call from OpenAI-compatible format (Phase 2.3)
|
|
107
|
+
*/
|
|
108
|
+
private parseStreamingToolCall;
|
|
109
|
+
private parseLlamaUsage;
|
|
110
|
+
private mapFinishReason;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Custom/Generic streaming parser (Chunked Transfer)
|
|
114
|
+
*/
|
|
115
|
+
export declare class CustomStreamParser extends BaseStreamingParser {
|
|
116
|
+
private expectedFormat;
|
|
117
|
+
constructor(format?: "json" | "text");
|
|
118
|
+
getName(): string;
|
|
119
|
+
parse(chunk: Uint8Array): SageMakerStreamChunk[];
|
|
120
|
+
private parseJSONFormat;
|
|
121
|
+
private parseTextFormat;
|
|
122
|
+
private parseCustomChunk;
|
|
123
|
+
private parseCustomUsage;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Parser factory to create appropriate parser for detected protocol
|
|
127
|
+
*/
|
|
128
|
+
export declare class StreamingParserFactory {
|
|
129
|
+
static createParser(protocol: string, options?: Record<string, unknown>): StreamingParser;
|
|
130
|
+
static getSupportedProtocols(): string[];
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Utility function to estimate token usage when not provided
|
|
134
|
+
*/
|
|
135
|
+
export declare function estimateTokenUsage(prompt: string, completion: string): SageMakerUsage;
|
|
136
|
+
export {};
|