@juspay/neurolink 13.4.10 → 13.5.1

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 (145) hide show
  1. package/CHANGELOG.md +2 -3
  2. package/README.md +3 -2
  3. package/dist/adapters/video/videoAnalyzer.d.ts +1 -0
  4. package/dist/adapters/video/videoAnalyzer.js +4 -0
  5. package/dist/autoresearch/index.d.ts +1 -0
  6. package/dist/autoresearch/index.js +4 -0
  7. package/dist/autoresearch/worker.js +4 -0
  8. package/dist/browser/neurolink.min.js +466 -466
  9. package/dist/cli/commands/decide.js +25 -5
  10. package/dist/cli/commands/observability.js +11 -4
  11. package/dist/cli/commands/telemetry.js +36 -6
  12. package/dist/cli/utils/formatters.d.ts +17 -0
  13. package/dist/cli/utils/formatters.js +39 -0
  14. package/dist/constants/langfuse.d.ts +17 -1
  15. package/dist/constants/langfuse.js +23 -1
  16. package/dist/constants/telemetry.d.ts +6 -0
  17. package/dist/constants/telemetry.js +6 -0
  18. package/dist/core/baseProvider.js +2 -0
  19. package/dist/core/geminiLoopAdapter.js +19 -0
  20. package/dist/core/loopEngine.js +10 -7
  21. package/dist/core/modules/StreamHandler.js +5 -4
  22. package/dist/core/modules/TelemetryHandler.d.ts +5 -1
  23. package/dist/core/modules/TelemetryHandler.js +16 -0
  24. package/dist/core/modules/ToolsManager.js +3 -0
  25. package/dist/core/nativeGenerateLoop.js +1 -1
  26. package/dist/evaluation/index.d.ts +1 -0
  27. package/dist/evaluation/index.js +4 -0
  28. package/dist/evaluation/ragasEvaluator.js +1 -0
  29. package/dist/factories/providerDescriptors.d.ts +4 -3
  30. package/dist/factories/providerDescriptors.js +6 -4
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.js +1 -1
  33. package/dist/mcp/externalServerManager.js +6 -2
  34. package/dist/mcp/toolRegistry.js +3 -0
  35. package/dist/neurolink.d.ts +20 -10
  36. package/dist/neurolink.js +134 -65
  37. package/dist/observability/FEATURE-STATUS.md +0 -4
  38. package/dist/observability/exporterRegistry.d.ts +6 -1
  39. package/dist/observability/exporterRegistry.js +18 -0
  40. package/dist/observability/exporterSpanProcessor.d.ts +20 -6
  41. package/dist/observability/exporterSpanProcessor.js +166 -34
  42. package/dist/observability/exporters/baseExporter.d.ts +22 -3
  43. package/dist/observability/exporters/baseExporter.js +87 -5
  44. package/dist/observability/exporters/langfuseExporter.d.ts +29 -3
  45. package/dist/observability/exporters/langfuseExporter.js +251 -41
  46. package/dist/observability/langfuseMasking.d.ts +1 -1
  47. package/dist/observability/langfuseMasking.js +1 -1
  48. package/dist/observability/otlpEncoding.d.ts +18 -5
  49. package/dist/observability/otlpEncoding.js +69 -12
  50. package/dist/observability/utils/spanSerializer.d.ts +3 -2
  51. package/dist/observability/utils/spanSerializer.js +5 -3
  52. package/dist/processors/base/BaseFileProcessor.d.ts +1 -0
  53. package/dist/processors/base/BaseFileProcessor.js +4 -0
  54. package/dist/processors/index.d.ts +1 -0
  55. package/dist/processors/index.js +4 -0
  56. package/dist/processors/registry/ProcessorRegistry.d.ts +1 -0
  57. package/dist/processors/registry/ProcessorRegistry.js +5 -0
  58. package/dist/providers/amazonBedrock/client.js +7 -5
  59. package/dist/providers/amazonSagemaker.js +32 -12
  60. package/dist/providers/anthropic/client.js +1 -0
  61. package/dist/providers/anthropic/loopAdapter.js +7 -3
  62. package/dist/providers/catalog/provider-catalog.schema.json +64 -3
  63. package/dist/providers/catalog/schema.js +81 -1
  64. package/dist/providers/catalog/xor.json +30 -10
  65. package/dist/providers/configuredDecision.d.ts +8 -1
  66. package/dist/providers/configuredDecision.js +22 -0
  67. package/dist/providers/decide/dialects/openaiDecisions.js +8 -0
  68. package/dist/providers/decide/dialects/systemOne.js +28 -2
  69. package/dist/providers/decide/guards.d.ts +6 -0
  70. package/dist/providers/decide/guards.js +22 -0
  71. package/dist/providers/googleAiStudio/client.js +2 -0
  72. package/dist/providers/googleVertex/client.d.ts +6 -5
  73. package/dist/providers/googleVertex/client.js +46 -19
  74. package/dist/providers/openaiChatCompletionsBase.js +4 -4
  75. package/dist/providers/systemOneDecision.d.ts +30 -7
  76. package/dist/providers/systemOneDecision.js +71 -14
  77. package/dist/proxy/codexUsage.js +59 -2
  78. package/dist/proxy/proxyTracer.d.ts +25 -1
  79. package/dist/proxy/proxyTracer.js +146 -22
  80. package/dist/proxy/proxyTranslationEngine.js +4 -2
  81. package/dist/proxy/sseInterceptor.js +6 -4
  82. package/dist/rag/chunkers/BaseChunker.js +1 -0
  83. package/dist/rag/index.d.ts +1 -0
  84. package/dist/rag/index.js +4 -0
  85. package/dist/rag/ragIntegration.js +1 -0
  86. package/dist/rag/reranker/reranker.js +2 -0
  87. package/dist/rag/retrieval/vectorQueryTool.js +1 -0
  88. package/dist/server/routes/codexProxyRoutes.js +3 -1
  89. package/dist/server/utils/validation.d.ts +3 -3
  90. package/dist/services/server/ai/observability/instrumentation.d.ts +8 -7
  91. package/dist/services/server/ai/observability/instrumentation.js +217 -47
  92. package/dist/services/server/ai/observability/langfuseSetup.d.ts +19 -1
  93. package/dist/services/server/ai/observability/langfuseSetup.js +62 -4
  94. package/dist/services/server/ai/observability/otlpSetup.d.ts +12 -2
  95. package/dist/services/server/ai/observability/otlpSetup.js +55 -4
  96. package/dist/telemetry/aiMetrics.d.ts +56 -0
  97. package/dist/telemetry/aiMetrics.js +229 -0
  98. package/dist/telemetry/attributes.d.ts +24 -1
  99. package/dist/telemetry/attributes.js +94 -9
  100. package/dist/telemetry/chatMessages.d.ts +6 -0
  101. package/dist/telemetry/chatMessages.js +37 -0
  102. package/dist/telemetry/index.d.ts +1 -1
  103. package/dist/telemetry/index.js +1 -1
  104. package/dist/telemetry/observation.d.ts +5 -5
  105. package/dist/telemetry/observation.js +128 -39
  106. package/dist/telemetry/spanSanitizer.d.ts +2 -2
  107. package/dist/telemetry/spanSanitizer.js +76 -8
  108. package/dist/telemetry/telemetryStarter.d.ts +16 -0
  109. package/dist/telemetry/telemetryStarter.js +28 -0
  110. package/dist/telemetry/traceContext.d.ts +3 -3
  111. package/dist/telemetry/traceContext.js +3 -3
  112. package/dist/telemetry/tracers.d.ts +13 -1
  113. package/dist/telemetry/tracers.js +49 -10
  114. package/dist/telemetry/withSpan.d.ts +19 -3
  115. package/dist/telemetry/withSpan.js +149 -20
  116. package/dist/types/cli.d.ts +2 -0
  117. package/dist/types/decision.d.ts +117 -10
  118. package/dist/types/exporter.d.ts +98 -3
  119. package/dist/types/livekit.d.ts +16 -1
  120. package/dist/types/loopEngine.d.ts +16 -1
  121. package/dist/types/observability.d.ts +38 -5
  122. package/dist/types/providerCatalog.d.ts +12 -1
  123. package/dist/types/providers.d.ts +2 -0
  124. package/dist/types/proxy.d.ts +2 -0
  125. package/dist/types/span.d.ts +26 -0
  126. package/dist/utils/decisionAnswers.d.ts +7 -1
  127. package/dist/utils/decisionAnswers.js +43 -2
  128. package/dist/utils/decisionLimits.d.ts +13 -1
  129. package/dist/utils/decisionLimits.js +52 -1
  130. package/dist/utils/decisionMedia.d.ts +4 -2
  131. package/dist/utils/decisionMedia.js +216 -14
  132. package/dist/utils/timeout.js +4 -2
  133. package/dist/voice/livekit/realtimeMcpTools.js +11 -2
  134. package/dist/voice/livekit/realtimeMemory.d.ts +20 -2
  135. package/dist/voice/livekit/realtimeMemory.js +139 -46
  136. package/dist/voice/livekit/realtimeVoiceAgent.js +20 -8
  137. package/dist/voice/livekit/turnRecorder.js +22 -9
  138. package/dist/workflow/core/ensembleExecutor.js +2 -0
  139. package/dist/workflow/core/judgeScorer.js +1 -0
  140. package/dist/workflow/core/responseConditioner.js +1 -0
  141. package/dist/workflow/core/workflowRunner.js +6 -1
  142. package/dist/workflow/index.d.ts +1 -0
  143. package/dist/workflow/index.js +4 -0
  144. package/docs-site/static/search-index.json +56 -48
  145. package/package.json +21 -2
package/CHANGELOG.md CHANGED
@@ -1,9 +1,8 @@
1
- ## [13.4.10](https://github.com/juspay/neurolink/compare/v13.4.9...v13.4.10) (2026-10-19)
1
+ ## [13.5.1](https://github.com/juspay/neurolink/compare/v13.5.0...v13.5.1) (2026-10-20)
2
2
 
3
3
  ### Bug Fixes
4
4
 
5
- - **(hitl):** log the real allowArgumentModification default and complete the documented response ([7b6ce94](https://github.com/juspay/neurolink/commit/7b6ce943e83dfe72905b33729143dac3d45acb25))
6
- - **(test):** restore network hooks and env when the provider-status case fails during setup ([fe71e65](https://github.com/juspay/neurolink/commit/fe71e653351626702ce1800a735101b1dcc186a1))
5
+ - **(observability):** close the review findings of the Langfuse OTEL pipeline (BZ-6924) ([dc39f4d](https://github.com/juspay/neurolink/commit/dc39f4ded73cca4a3faf3a5bea48babea6dd4d6f))
7
6
 
8
7
  ## [11.2.3](https://github.com/juspay/neurolink/compare/v11.2.2...v11.2.3) (2026-08-19)
9
8
 
package/README.md CHANGED
@@ -286,12 +286,13 @@ TypeSafe and Laya both configured, TypeSafe runs; with only Laya's key and base
286
286
  set, Laya runs.
287
287
 
288
288
  [**XOR**](docs/getting-started/providers/xor.md) is Juspay's Apache-2.0,
289
- open-weights decision model (`xor-latest` for text, `xor-omni` for images and video); setup is on
289
+ open-weights decision model (`xor-latest` for text, `xor-omni` for an image, audio and `value` extraction); setup is on
290
290
  [Hugging Face](https://huggingface.co/juspay/xor). It has no built-in endpoint
291
291
  either: set `XOR_API_KEY` and `XOR_BASE_URL` to the origin of a deployment or of
292
292
  a LiteLLM proxy route (or pass `credentials.xor`). XOR counts only with both its
293
293
  key and base URL set, and a call can always name it with `provider: "xor"`. It
294
- accepts images and video, which TypeSafe, Laya, SubQ and ScaleDown refuse.
294
+ accepts one image and one audio clip (WAV, FLAC, Ogg or MP3; it hears the first
295
+ 30 seconds), which TypeSafe, Laya, SubQ and ScaleDown refuse. It refuses video.
295
296
 
296
297
  [**SubQ**](docs/getting-started/providers/subq.md) is Subquadratic's hosted
297
298
  decision model, SubQ Snap (`subq-snap-preview`, in public preview; provider id
@@ -7,6 +7,7 @@
7
7
  * @module adapters/video/geminiVideoAnalyzer
8
8
  */
9
9
  import { AIProviderName } from "../../constants/enums.js";
10
+ import "../../services/server/ai/observability/instrumentation.js";
10
11
  import type { ModelMessage } from "../../types/index.js";
11
12
  export declare function analyzeVideoWithVertexAI(messages: ModelMessage[], options?: {
12
13
  project?: string;
@@ -9,6 +9,10 @@
9
9
  import { AIProviderName, ErrorSeverity, ErrorCategory, } from "../../constants/enums.js";
10
10
  import { logger } from "../../utils/logger.js";
11
11
  import { googleSdkProxyHttpOptions } from "../../proxy/proxyFetch.js";
12
+ // Starts tracing at the first span, as this module always did: the shared
13
+ // tracers only start what a loaded entry registered, and this path can be
14
+ // imported without the package entry. The client entry stays free of it.
15
+ import "../../services/server/ai/observability/instrumentation.js";
12
16
  import { readFile } from "node:fs/promises";
13
17
  import { NeuroLinkError, ErrorFactory } from "../../utils/errorHandling.js";
14
18
  // ---------------------------------------------------------------------------
@@ -10,6 +10,7 @@
10
10
  * import { resolveConfig, validateConfig, ResearchStateStore, RepoPolicy, ExperimentRunner, ResultRecorder } from "@juspay/neurolink/autoresearch";
11
11
  * ```
12
12
  */
13
+ import "../services/server/ai/observability/instrumentation.js";
13
14
  export { resolveConfig, validateConfig } from "./config.js";
14
15
  export { ResearchStateStore } from "./stateStore.js";
15
16
  export { RepoPolicy } from "./repoPolicy.js";
@@ -10,6 +10,10 @@
10
10
  * import { resolveConfig, validateConfig, ResearchStateStore, RepoPolicy, ExperimentRunner, ResultRecorder } from "@juspay/neurolink/autoresearch";
11
11
  * ```
12
12
  */
13
+ // Imported on its own, this entry starts tracing at its first span, as the
14
+ // main entry does. The import sits here rather than in the shared tracers so
15
+ // that the client entry stays free of the OpenTelemetry Node SDK.
16
+ import "../services/server/ai/observability/instrumentation.js";
13
17
  // Configuration
14
18
  export { resolveConfig, validateConfig } from "./config.js";
15
19
  // State management
@@ -70,6 +70,7 @@ export class ResearchWorker {
70
70
  return withSpan({
71
71
  name: "autoresearch.initialize",
72
72
  tracer: tracers.autoresearch,
73
+ observationType: "span",
73
74
  attributes: {
74
75
  [ATTR.AR_TAG]: tag,
75
76
  [ATTR.AR_BRANCH]: `${this.config.branchPrefix}${tag}`,
@@ -130,6 +131,7 @@ export class ResearchWorker {
130
131
  return withSpan({
131
132
  name: "autoresearch.resume",
132
133
  tracer: tracers.autoresearch,
134
+ observationType: "span",
133
135
  }, async (span) => {
134
136
  const state = await this.stateStore.load();
135
137
  if (!state) {
@@ -181,6 +183,7 @@ export class ResearchWorker {
181
183
  return withSpan({
182
184
  name: "autoresearch.experiment_cycle",
183
185
  tracer: tracers.autoresearch,
186
+ observationType: "span",
184
187
  attributes: {
185
188
  [ATTR.AR_TAG]: state.tag,
186
189
  [ATTR.AR_RUN_COUNT]: state.runCount,
@@ -202,6 +205,7 @@ export class ResearchWorker {
202
205
  const summary = await withSpan({
203
206
  name: "autoresearch.experiment_run",
204
207
  tracer: tracers.autoresearch,
208
+ observationType: "span",
205
209
  attributes: { [ATTR.AR_TAG]: state.tag },
206
210
  }, async () => {
207
211
  return withTimeout(this.runner.run(), this.config.timeoutMs + 30_000, new Error("Experiment runner exceeded safety timeout"));