@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.
Files changed (95) hide show
  1. package/CHANGELOG.md +25 -2
  2. package/README.md +34 -2
  3. package/dist/cli/commands/config.d.ts +3 -3
  4. package/dist/cli/commands/sagemaker.d.ts +11 -0
  5. package/dist/cli/commands/sagemaker.js +778 -0
  6. package/dist/cli/factories/commandFactory.js +7 -2
  7. package/dist/cli/index.js +3 -0
  8. package/dist/cli/utils/interactiveSetup.js +28 -0
  9. package/dist/core/baseProvider.d.ts +2 -2
  10. package/dist/core/types.d.ts +16 -4
  11. package/dist/core/types.js +24 -3
  12. package/dist/factories/providerFactory.js +10 -1
  13. package/dist/factories/providerRegistry.js +6 -1
  14. package/dist/lib/core/baseProvider.d.ts +2 -2
  15. package/dist/lib/core/types.d.ts +16 -4
  16. package/dist/lib/core/types.js +24 -3
  17. package/dist/lib/factories/providerFactory.js +10 -1
  18. package/dist/lib/factories/providerRegistry.js +6 -1
  19. package/dist/lib/neurolink.d.ts +15 -0
  20. package/dist/lib/neurolink.js +73 -1
  21. package/dist/lib/providers/amazonSagemaker.d.ts +67 -0
  22. package/dist/lib/providers/amazonSagemaker.js +149 -0
  23. package/dist/lib/providers/googleVertex.d.ts +4 -0
  24. package/dist/lib/providers/googleVertex.js +44 -3
  25. package/dist/lib/providers/index.d.ts +4 -0
  26. package/dist/lib/providers/index.js +4 -0
  27. package/dist/lib/providers/sagemaker/adaptive-semaphore.d.ts +86 -0
  28. package/dist/lib/providers/sagemaker/adaptive-semaphore.js +212 -0
  29. package/dist/lib/providers/sagemaker/client.d.ts +156 -0
  30. package/dist/lib/providers/sagemaker/client.js +462 -0
  31. package/dist/lib/providers/sagemaker/config.d.ts +73 -0
  32. package/dist/lib/providers/sagemaker/config.js +308 -0
  33. package/dist/lib/providers/sagemaker/detection.d.ts +176 -0
  34. package/dist/lib/providers/sagemaker/detection.js +596 -0
  35. package/dist/lib/providers/sagemaker/diagnostics.d.ts +37 -0
  36. package/dist/lib/providers/sagemaker/diagnostics.js +137 -0
  37. package/dist/lib/providers/sagemaker/error-constants.d.ts +78 -0
  38. package/dist/lib/providers/sagemaker/error-constants.js +227 -0
  39. package/dist/lib/providers/sagemaker/errors.d.ts +83 -0
  40. package/dist/lib/providers/sagemaker/errors.js +216 -0
  41. package/dist/lib/providers/sagemaker/index.d.ts +35 -0
  42. package/dist/lib/providers/sagemaker/index.js +67 -0
  43. package/dist/lib/providers/sagemaker/language-model.d.ts +182 -0
  44. package/dist/lib/providers/sagemaker/language-model.js +755 -0
  45. package/dist/lib/providers/sagemaker/parsers.d.ts +136 -0
  46. package/dist/lib/providers/sagemaker/parsers.js +625 -0
  47. package/dist/lib/providers/sagemaker/streaming.d.ts +39 -0
  48. package/dist/lib/providers/sagemaker/streaming.js +320 -0
  49. package/dist/lib/providers/sagemaker/structured-parser.d.ts +117 -0
  50. package/dist/lib/providers/sagemaker/structured-parser.js +625 -0
  51. package/dist/lib/providers/sagemaker/types.d.ts +456 -0
  52. package/dist/lib/providers/sagemaker/types.js +7 -0
  53. package/dist/lib/sdk/toolRegistration.d.ts +1 -1
  54. package/dist/lib/sdk/toolRegistration.js +13 -5
  55. package/dist/lib/types/cli.d.ts +36 -1
  56. package/dist/lib/utils/providerHealth.js +19 -4
  57. package/dist/neurolink.d.ts +15 -0
  58. package/dist/neurolink.js +73 -1
  59. package/dist/providers/amazonSagemaker.d.ts +67 -0
  60. package/dist/providers/amazonSagemaker.js +149 -0
  61. package/dist/providers/googleVertex.d.ts +4 -0
  62. package/dist/providers/googleVertex.js +44 -3
  63. package/dist/providers/index.d.ts +4 -0
  64. package/dist/providers/index.js +4 -0
  65. package/dist/providers/sagemaker/adaptive-semaphore.d.ts +86 -0
  66. package/dist/providers/sagemaker/adaptive-semaphore.js +212 -0
  67. package/dist/providers/sagemaker/client.d.ts +156 -0
  68. package/dist/providers/sagemaker/client.js +462 -0
  69. package/dist/providers/sagemaker/config.d.ts +73 -0
  70. package/dist/providers/sagemaker/config.js +308 -0
  71. package/dist/providers/sagemaker/detection.d.ts +176 -0
  72. package/dist/providers/sagemaker/detection.js +596 -0
  73. package/dist/providers/sagemaker/diagnostics.d.ts +37 -0
  74. package/dist/providers/sagemaker/diagnostics.js +137 -0
  75. package/dist/providers/sagemaker/error-constants.d.ts +78 -0
  76. package/dist/providers/sagemaker/error-constants.js +227 -0
  77. package/dist/providers/sagemaker/errors.d.ts +83 -0
  78. package/dist/providers/sagemaker/errors.js +216 -0
  79. package/dist/providers/sagemaker/index.d.ts +35 -0
  80. package/dist/providers/sagemaker/index.js +67 -0
  81. package/dist/providers/sagemaker/language-model.d.ts +182 -0
  82. package/dist/providers/sagemaker/language-model.js +755 -0
  83. package/dist/providers/sagemaker/parsers.d.ts +136 -0
  84. package/dist/providers/sagemaker/parsers.js +625 -0
  85. package/dist/providers/sagemaker/streaming.d.ts +39 -0
  86. package/dist/providers/sagemaker/streaming.js +320 -0
  87. package/dist/providers/sagemaker/structured-parser.d.ts +117 -0
  88. package/dist/providers/sagemaker/structured-parser.js +625 -0
  89. package/dist/providers/sagemaker/types.d.ts +456 -0
  90. package/dist/providers/sagemaker/types.js +7 -0
  91. package/dist/sdk/toolRegistration.d.ts +1 -1
  92. package/dist/sdk/toolRegistration.js +13 -5
  93. package/dist/types/cli.d.ts +36 -1
  94. package/dist/utils/providerHealth.js +19 -4
  95. 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 {};