@juspay/neurolink 12.58.1 → 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 +14 -3
  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 +42 -63
  139. package/package.json +10 -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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@juspay/neurolink",
3
- "version": "12.58.1",
3
+ "version": "13.0.0",
4
4
  "packageManager": "pnpm@10.15.1",
5
5
  "description": "The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002/call) for routing, tool selection and context budgeting. MCP-native (4 transports), voice TTS/STT/realtime, RAG, agents, memory, compaction, 9 observability exporters. OpenAI · Anthropic · Gemini · Bedrock · Azure · Ollama · TypeSafe Jev and more.",
6
6
  "author": {
@@ -399,6 +399,11 @@
399
399
  "import": "./dist/voice/index.js",
400
400
  "default": "./dist/voice/index.js"
401
401
  },
402
+ "./voice/endpointer": {
403
+ "types": "./dist/voice/streaming/endpointer.d.ts",
404
+ "import": "./dist/voice/streaming/endpointer.js",
405
+ "default": "./dist/voice/streaming/endpointer.js"
406
+ },
402
407
  "./music": {
403
408
  "types": "./dist/music/index.d.ts",
404
409
  "import": "./dist/music/index.js",
@@ -471,6 +476,8 @@
471
476
  "@aws-sdk/types": "^3.862.0",
472
477
  "@cfworker/json-schema": "^4.1.1",
473
478
  "@google/genai": "^2.23.0",
479
+ "@langfuse/core": "^5.13.1",
480
+ "@langfuse/tracing": "^5.13.1",
474
481
  "@modelcontextprotocol/sdk": "^1.31.0",
475
482
  "@opentelemetry/api-logs": "^0.214.0",
476
483
  "@opentelemetry/context-async-hooks": "^2.6.1",
@@ -483,6 +490,7 @@
483
490
  "@opentelemetry/sdk-logs": "^0.214.0",
484
491
  "@opentelemetry/sdk-metrics": "^2.6.1",
485
492
  "@opentelemetry/sdk-trace-base": "^2.6.0",
493
+ "@opentelemetry/sdk-trace-node": "^2.6.0",
486
494
  "@opentelemetry/semantic-conventions": "^1.40.0",
487
495
  "@types/json-schema": "^7.0.15",
488
496
  "@types/ws": "^8.18.1",
@@ -519,7 +527,6 @@
519
527
  "peerDependencies": {
520
528
  "@juspay/hippocampus": ">=0.2.1",
521
529
  "@opentelemetry/api": "^1.9.0",
522
- "@opentelemetry/sdk-trace-node": "^2.6.0",
523
530
  "react": ">=18.0.0",
524
531
  "react-dom": ">=18.0.0"
525
532
  },
@@ -546,7 +553,6 @@
546
553
  "@hono/node-server": "^1.19.15",
547
554
  "@koa/cors": "^5.0.0",
548
555
  "@koa/router": "^15.3.1",
549
- "@langfuse/otel": "^5.0.1",
550
556
  "@livekit/agents": "^1.4.5",
551
557
  "@livekit/agents-plugin-cartesia": "^1.4.5",
552
558
  "@livekit/agents-plugin-deepgram": "^1.4.5",
@@ -583,8 +589,8 @@
583
589
  "@changesets/cli": "^2.29.8",
584
590
  "@electric-sql/pglite": "^0.4.6",
585
591
  "@eslint/js": "^10.0.1",
592
+ "@langfuse/otel": "^5.13.1",
586
593
  "@opentelemetry/api": "^1.9.0",
587
- "@opentelemetry/sdk-trace-node": "^2.6.0",
588
594
  "@semantic-release/changelog": "^6.0.3",
589
595
  "@semantic-release/commit-analyzer": "^13.0.1",
590
596
  "@semantic-release/github": "^12.0.6",
@@ -1,79 +0,0 @@
1
- import type { HealthMetrics } from "../types/index.js";
2
- export declare class TelemetryService {
3
- private static instance;
4
- private tracerProvider?;
5
- private enabled;
6
- private initialized;
7
- private usingExternalTracerProvider;
8
- private meter?;
9
- private tracer?;
10
- private aiRequestCounter?;
11
- private aiRequestDuration?;
12
- private aiTokensUsed?;
13
- private aiProviderErrors?;
14
- private aiCostUsd?;
15
- private mcpToolCalls?;
16
- private connectionCounter?;
17
- private responseTimeHistogram?;
18
- private activeConnectionCount;
19
- private errorCount;
20
- private requestCount;
21
- private totalResponseTime;
22
- private responseTimeCount;
23
- private static readonly MAX_PENDING_CALLS;
24
- private pendingCalls;
25
- private isReady;
26
- private droppedPendingCallWarned;
27
- /** The in-flight (or already-settled) async init. Never rejects — see
28
- * initializeTelemetry()'s catch block, which always resolves normally.
29
- * `initialize()`/`shutdown()` await it so they don't race construction. */
30
- private readyPromise?;
31
- private constructor();
32
- static getInstance(): TelemetryService;
33
- private isTelemetryEnabled;
34
- private hasExternalTracerProvider;
35
- private adoptExternalTracerProvider;
36
- private initializeTelemetry;
37
- private initializeMetrics;
38
- private bufferPendingCall;
39
- /** Instruments now exist — drain anything buffered while we waited, in
40
- * order, then flip fully sync for every call after this one. */
41
- private markReady;
42
- private discardPendingCalls;
43
- initialize(): Promise<void>;
44
- /**
45
- * @deprecated Vercel AI SDK's experimental_telemetry creates ai.generateText/ai.streamText
46
- * spans automatically via OpenTelemetry. Using this method would create duplicate spans.
47
- * Kept for potential future use with non-Vercel providers (e.g., Amazon Bedrock).
48
- * See: TelemetryHandler.getTelemetryConfig() for the active telemetry path.
49
- */
50
- traceAIRequest<T>(provider: string, operation: () => Promise<T>, operationType?: string): Promise<T>;
51
- recordAIRequest(provider: string, model: string, tokens: number, duration: number, cost?: number): void;
52
- private emitAIRequest;
53
- recordAIError(provider: string, error: Error): void;
54
- private emitAIError;
55
- recordMCPToolCall(toolName: string, duration: number, success: boolean): void;
56
- private emitMCPToolCall;
57
- recordConnection(type: "websocket" | "sse" | "http"): void;
58
- private emitConnection;
59
- recordConnectionClosed(type: "websocket" | "sse" | "http"): void;
60
- private emitConnectionClosed;
61
- recordResponseTime(endpoint: string, method: string, duration: number): void;
62
- private emitResponseTime;
63
- recordCustomMetric(name: string, value: number, labels?: Record<string, string>): void;
64
- private emitCustomMetric;
65
- recordCustomHistogram(name: string, value: number, labels?: Record<string, string>): void;
66
- private emitCustomHistogram;
67
- getHealthMetrics(): Promise<HealthMetrics>;
68
- isEnabled(): boolean;
69
- getStatus(): {
70
- enabled: boolean;
71
- initialized: boolean;
72
- endpoint?: string;
73
- service?: string;
74
- version?: string;
75
- };
76
- private getDurationBucket;
77
- private getStatusBucket;
78
- shutdown(): Promise<void>;
79
- }