@juspay/neurolink 12.59.0 → 13.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.
Files changed (143) hide show
  1. package/CHANGELOG.md +13 -2
  2. package/dist/auth/anthropicOAuth.js +3 -3
  3. package/dist/auth/middleware/AuthMiddleware.d.ts +1 -1
  4. package/dist/auth/sessionManager.js +4 -4
  5. package/dist/auth/tokenStore.js +4 -4
  6. package/dist/browser/neurolink.min.js +474 -473
  7. package/dist/cli/commands/observability.d.ts +1 -6
  8. package/dist/cli/commands/observability.js +0 -106
  9. package/dist/cli/commands/proxy.js +9 -18
  10. package/dist/cli/commands/telemetry.d.ts +3 -13
  11. package/dist/cli/commands/telemetry.js +7 -354
  12. package/dist/cli/loop/session.js +1 -1
  13. package/dist/client/httpClient.js +1 -1
  14. package/dist/client/sseClient.js +1 -1
  15. package/dist/client/streamingClient.js +2 -2
  16. package/dist/client/wsClient.js +1 -1
  17. package/dist/constants/langfuse.d.ts +25 -0
  18. package/dist/constants/langfuse.js +38 -0
  19. package/dist/constants/telemetry.d.ts +20 -0
  20. package/dist/constants/telemetry.js +34 -0
  21. package/dist/core/baseProvider.d.ts +2 -1
  22. package/dist/core/baseProvider.js +4 -11
  23. package/dist/core/conversationMemoryManager.js +5 -8
  24. package/dist/core/factory.js +1 -1
  25. package/dist/core/geminiLoopAdapter.d.ts +8 -1
  26. package/dist/core/geminiLoopAdapter.js +25 -1
  27. package/dist/core/loopEngine.js +69 -40
  28. package/dist/core/modules/MessageBuilder.js +2 -2
  29. package/dist/core/modules/StreamHandler.js +2 -2
  30. package/dist/core/modules/TelemetryHandler.d.ts +2 -18
  31. package/dist/core/modules/TelemetryHandler.js +1 -66
  32. package/dist/core/modules/ToolsManager.js +40 -31
  33. package/dist/core/nativeGenerateLoop.js +78 -8
  34. package/dist/core/redisConversationMemoryManager.js +8 -15
  35. package/dist/core/toolExecutionGuards.js +1 -13
  36. package/dist/index.d.ts +5 -12
  37. package/dist/index.js +5 -37
  38. package/dist/mcp/batching/requestBatcher.js +1 -1
  39. package/dist/mcp/externalServerManager.js +3 -21
  40. package/dist/mcp/toolDiscoveryService.js +4 -16
  41. package/dist/mcp/toolRegistry.js +2 -5
  42. package/dist/memory/memoryRetrievalTools.js +1 -1
  43. package/dist/neurolink.d.ts +16 -27
  44. package/dist/neurolink.js +788 -792
  45. package/dist/observability/exporterSpanProcessor.d.ts +50 -0
  46. package/dist/observability/exporterSpanProcessor.js +181 -0
  47. package/dist/observability/exporters/langfuseExporter.d.ts +13 -34
  48. package/dist/observability/exporters/langfuseExporter.js +101 -154
  49. package/dist/observability/index.d.ts +1 -0
  50. package/dist/observability/index.js +1 -0
  51. package/dist/observability/langfuseMasking.d.ts +8 -0
  52. package/dist/observability/langfuseMasking.js +47 -0
  53. package/dist/observability/otlpEncoding.d.ts +20 -0
  54. package/dist/observability/otlpEncoding.js +85 -0
  55. package/dist/providers/amazonBedrock/client.js +142 -176
  56. package/dist/providers/amazonBedrock/loopAdapter.js +14 -1
  57. package/dist/providers/amazonSagemaker.js +118 -80
  58. package/dist/providers/anthropic/client.js +3 -52
  59. package/dist/providers/anthropic/loopAdapter.js +24 -1
  60. package/dist/providers/anthropic/rateLimitCapture.js +9 -12
  61. package/dist/providers/googleAiStudio/client.d.ts +4 -5
  62. package/dist/providers/googleAiStudio/client.js +38 -40
  63. package/dist/providers/googleVertex/client.d.ts +2 -7
  64. package/dist/providers/googleVertex/client.js +282 -378
  65. package/dist/providers/googleVertex/constants.js +2 -2
  66. package/dist/providers/litellm/client.d.ts +2 -9
  67. package/dist/providers/litellm/client.js +1 -63
  68. package/dist/providers/openAI/client.d.ts +1 -8
  69. package/dist/providers/openAI/client.js +0 -65
  70. package/dist/providers/openaiChatCompletionsBase.d.ts +1 -0
  71. package/dist/providers/openaiChatCompletionsBase.js +61 -4
  72. package/dist/providers/replicate.js +22 -4
  73. package/dist/proxy/codexUsage.js +7 -0
  74. package/dist/proxy/proxyFetch.js +19 -25
  75. package/dist/proxy/proxyTracer.d.ts +14 -7
  76. package/dist/proxy/proxyTracer.js +129 -83
  77. package/dist/proxy/proxyTranslationEngine.js +0 -1
  78. package/dist/proxy/requestLogger.d.ts +1 -1
  79. package/dist/proxy/requestLogger.js +39 -45
  80. package/dist/server/middleware/common.js +1 -1
  81. package/dist/server/routes/agentRoutes.js +4 -4
  82. package/dist/server/routes/claudeProxyRoutes.js +99 -196
  83. package/dist/server/routes/codexProxyRoutes.js +621 -591
  84. package/dist/server/routes/healthRoutes.js +6 -6
  85. package/dist/server/routes/mcpRoutes.js +7 -7
  86. package/dist/server/routes/memoryRoutes.js +7 -7
  87. package/dist/server/routes/openApiRoutes.js +3 -3
  88. package/dist/server/routes/toolRoutes.js +5 -5
  89. package/dist/server/routes/transcribeRoutes.js +1 -1
  90. package/dist/server/utils/validation.d.ts +3 -3
  91. package/dist/services/server/ai/observability/instrumentation.d.ts +34 -201
  92. package/dist/services/server/ai/observability/instrumentation.js +220 -1267
  93. package/dist/services/server/ai/observability/langfuseSetup.d.ts +14 -0
  94. package/dist/services/server/ai/observability/langfuseSetup.js +55 -0
  95. package/dist/services/server/ai/observability/otlpSetup.d.ts +16 -0
  96. package/dist/services/server/ai/observability/otlpSetup.js +58 -0
  97. package/dist/session/globalSessionState.js +0 -11
  98. package/dist/telemetry/attributes.d.ts +23 -46
  99. package/dist/telemetry/attributes.js +76 -162
  100. package/dist/telemetry/chatMessages.d.ts +13 -0
  101. package/dist/telemetry/chatMessages.js +59 -0
  102. package/dist/telemetry/index.d.ts +5 -19
  103. package/dist/telemetry/index.js +5 -26
  104. package/dist/telemetry/observation.d.ts +37 -0
  105. package/dist/telemetry/observation.js +112 -0
  106. package/dist/telemetry/observationNames.d.ts +18 -0
  107. package/dist/telemetry/observationNames.js +24 -0
  108. package/dist/telemetry/spanSanitizer.d.ts +39 -0
  109. package/dist/telemetry/spanSanitizer.js +92 -0
  110. package/dist/telemetry/spanSerialization.d.ts +13 -0
  111. package/dist/telemetry/spanSerialization.js +46 -0
  112. package/dist/telemetry/tracers.d.ts +37 -18
  113. package/dist/telemetry/tracers.js +97 -19
  114. package/dist/telemetry/withSpan.d.ts +47 -25
  115. package/dist/telemetry/withSpan.js +158 -71
  116. package/dist/types/cli.d.ts +0 -11
  117. package/dist/types/decision.d.ts +3 -0
  118. package/dist/types/exporter.d.ts +54 -0
  119. package/dist/types/exporter.js +0 -4
  120. package/dist/types/generate.d.ts +4 -1
  121. package/dist/types/isolatedAgent.d.ts +5 -4
  122. package/dist/types/loopEngine.d.ts +18 -28
  123. package/dist/types/observability.d.ts +127 -160
  124. package/dist/types/providers.d.ts +15 -0
  125. package/dist/types/proxy.d.ts +41 -2
  126. package/dist/utils/anthropicTraceSanitizer.d.ts +2 -2
  127. package/dist/utils/anthropicTraceSanitizer.js +3 -1
  128. package/dist/utils/conversationMemory.js +4 -4
  129. package/dist/utils/fileDetector.js +1 -1
  130. package/dist/utils/messageBuilder.js +1 -1
  131. package/dist/utils/noOutputSentinel.d.ts +4 -16
  132. package/dist/utils/noOutputSentinel.js +12 -28
  133. package/dist/utils/providerRetry.js +4 -4
  134. package/dist/voice/livekit/brain.js +1 -1
  135. package/dist/voice/livekit/realtimeMemory.d.ts +1 -1
  136. package/dist/voice/livekit/realtimeMemory.js +66 -1
  137. package/dist/voice/livekit/realtimeVoiceAgent.js +1 -1
  138. package/docs-site/static/search-index.json +41 -63
  139. package/package.json +5 -4
  140. package/dist/telemetry/telemetryService.d.ts +0 -79
  141. package/dist/telemetry/telemetryService.js +0 -572
  142. package/dist/utils/observabilityHelpers.d.ts +0 -27
  143. package/dist/utils/observabilityHelpers.js +0 -47
package/CHANGELOG.md CHANGED
@@ -1,8 +1,19 @@
1
- ## [12.59.0](https://github.com/juspay/neurolink/compare/v12.58.1...v12.59.0) (2026-10-15)
1
+ ## [13.0.0](https://github.com/juspay/neurolink/compare/v12.59.0...v13.0.0) (2026-10-16)
2
+
3
+ ### ⚠ BREAKING CHANGES
4
+
5
+ - **(observability):** removed initializeOpenTelemetry, getSpanProcessors,
6
+ createContextEnricher, getLangfuseSpanProcessor, getTracerProvider,
7
+ getLangfuseContext, runWithCurrentLangfuseContext, ExporterRegistry, the
8
+ samplers, TelemetryService, initializeTelemetry and the LangfuseConfig
9
+ fields enabled, userId, sessionId, useExternalTracerProvider,
10
+ autoDetectExternalProvider, skipLangfuseSpanProcessor,
11
+ autoDetectOperationName and traceNameFormat. See
12
+ docs/features/observability.md for the migration table.
2
13
 
3
14
  ### Features
4
15
 
5
- - **(voice):** export the energy endpointer as @juspay/neurolink/voice/endpointer ([7bf7d39](https://github.com/juspay/neurolink/commit/7bf7d398cb39678d9a92e16a9b7f0dccf9177672))
16
+ - **(observability):** send complete AI data to Langfuse through one OTEL pipeline ([fc892bb](https://github.com/juspay/neurolink/commit/fc892bbb58087096594f7ab80d5105e62a94189c))
6
17
 
7
18
  ## [11.2.3](https://github.com/juspay/neurolink/compare/v11.2.2...v11.2.3) (2026-08-19)
8
19
 
@@ -470,7 +470,7 @@ export class AnthropicOAuth {
470
470
  */
471
471
  async exchangeCodeForTokens(code, codeVerifier, config = {}) {
472
472
  return withSpan({
473
- name: "neurolink.auth.oauth.exchange_code",
473
+ name: "auth.oauth.exchange_code",
474
474
  tracer: tracers.auth,
475
475
  attributes: { "auth.oauth.grant_type": "authorization_code" },
476
476
  }, async () => this._exchangeCodeForTokens(code, codeVerifier, config));
@@ -565,7 +565,7 @@ export class AnthropicOAuth {
565
565
  */
566
566
  async refreshAccessToken(refreshToken, config = {}) {
567
567
  return withSpan({
568
- name: "neurolink.auth.oauth.refresh",
568
+ name: "auth.oauth.refresh",
569
569
  tracer: tracers.auth,
570
570
  attributes: { "auth.oauth.grant_type": "refresh_token" },
571
571
  }, async () => this._refreshAccessToken(refreshToken, config));
@@ -768,7 +768,7 @@ export class AnthropicOAuth {
768
768
  */
769
769
  async revokeToken(token, tokenType = "access_token") {
770
770
  return withSpan({
771
- name: "neurolink.auth.oauth.revoke",
771
+ name: "auth.oauth.revoke",
772
772
  tracer: tracers.auth,
773
773
  attributes: { "auth.oauth.token_type": tokenType },
774
774
  }, async () => this._revokeToken(token, tokenType));
@@ -31,7 +31,7 @@ export declare const AuthMiddlewareError: {
31
31
  readonly PROVIDER_ERROR: "AUTH_MIDDLEWARE-005";
32
32
  readonly CONFIGURATION_ERROR: "AUTH_MIDDLEWARE-006";
33
33
  };
34
- create: (code: "INVALID_TOKEN" | "MISSING_TOKEN" | "PROVIDER_ERROR" | "CONFIGURATION_ERROR" | "UNAUTHORIZED" | "FORBIDDEN", message: string, options?: {
34
+ create: (code: "UNAUTHORIZED" | "INVALID_TOKEN" | "MISSING_TOKEN" | "PROVIDER_ERROR" | "CONFIGURATION_ERROR" | "FORBIDDEN", message: string, options?: {
35
35
  retryable?: boolean;
36
36
  details?: Record<string, unknown>;
37
37
  cause?: Error;
@@ -336,7 +336,7 @@ export class SessionManager {
336
336
  */
337
337
  async createSession(user, metadata) {
338
338
  return withSpan({
339
- name: "neurolink.auth.session.create",
339
+ name: "auth.session.create",
340
340
  tracer: tracers.auth,
341
341
  attributes: {
342
342
  "auth.user_id": maskId(user.id),
@@ -369,7 +369,7 @@ export class SessionManager {
369
369
  */
370
370
  async getSession(sessionId, autoRefresh = this.config.autoRefresh) {
371
371
  return withSpan({
372
- name: "neurolink.auth.session.get",
372
+ name: "auth.session.get",
373
373
  tracer: tracers.auth,
374
374
  attributes: {
375
375
  "auth.session_id": maskId(sessionId),
@@ -408,7 +408,7 @@ export class SessionManager {
408
408
  */
409
409
  async refreshSession(sessionId) {
410
410
  return withSpan({
411
- name: "neurolink.auth.session.refresh",
411
+ name: "auth.session.refresh",
412
412
  tracer: tracers.auth,
413
413
  attributes: { "auth.session_id": maskId(sessionId) },
414
414
  }, async (span) => {
@@ -450,7 +450,7 @@ export class SessionManager {
450
450
  */
451
451
  async validateSession(sessionId) {
452
452
  return withSpan({
453
- name: "neurolink.auth.session.validate",
453
+ name: "auth.session.validate",
454
454
  tracer: tracers.auth,
455
455
  attributes: { "auth.session_id": maskId(sessionId) },
456
456
  }, async (span) => {
@@ -110,7 +110,7 @@ export class TokenStore {
110
110
  */
111
111
  async saveTokens(provider, tokens) {
112
112
  return withSpan({
113
- name: "neurolink.auth.token.save",
113
+ name: "auth.token.save",
114
114
  tracer: tracers.auth,
115
115
  attributes: {
116
116
  "auth.provider": provider,
@@ -200,7 +200,7 @@ export class TokenStore {
200
200
  */
201
201
  async loadTokens(provider) {
202
202
  return withSpan({
203
- name: "neurolink.auth.token.load",
203
+ name: "auth.token.load",
204
204
  tracer: tracers.auth,
205
205
  attributes: { "auth.provider": provider },
206
206
  }, async (span) => {
@@ -294,7 +294,7 @@ export class TokenStore {
294
294
  */
295
295
  async clearTokens(provider) {
296
296
  return withSpan({
297
- name: "neurolink.auth.token.clear",
297
+ name: "auth.token.clear",
298
298
  tracer: tracers.auth,
299
299
  attributes: { "auth.provider": provider },
300
300
  }, async () => this._clearTokensImpl(provider));
@@ -358,7 +358,7 @@ export class TokenStore {
358
358
  */
359
359
  async getValidToken(provider) {
360
360
  return withSpan({
361
- name: "neurolink.auth.token.get_valid",
361
+ name: "auth.token.get_valid",
362
362
  tracer: tracers.auth,
363
363
  attributes: { "auth.provider": provider },
364
364
  }, async (span) => this._getValidTokenImpl(provider, span));