@juspay/neurolink 9.82.0 → 9.84.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 (127) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/agent/agent.d.ts +104 -0
  3. package/dist/agent/agent.js +401 -0
  4. package/dist/agent/agentNetwork.d.ts +87 -0
  5. package/dist/agent/agentNetwork.js +458 -0
  6. package/dist/agent/communication/index.d.ts +9 -0
  7. package/dist/agent/communication/index.js +9 -0
  8. package/dist/agent/communication/message-bus.d.ts +113 -0
  9. package/dist/agent/communication/message-bus.js +406 -0
  10. package/dist/agent/coordination/coordinator.d.ts +83 -0
  11. package/dist/agent/coordination/coordinator.js +598 -0
  12. package/dist/agent/coordination/index.d.ts +10 -0
  13. package/dist/agent/coordination/index.js +10 -0
  14. package/dist/agent/coordination/task-distributor.d.ts +113 -0
  15. package/dist/agent/coordination/task-distributor.js +585 -0
  16. package/dist/agent/index.d.ts +38 -0
  17. package/dist/agent/index.js +44 -0
  18. package/dist/agent/orchestration/index.d.ts +10 -0
  19. package/dist/agent/orchestration/index.js +10 -0
  20. package/dist/agent/orchestration/orchestrator.d.ts +114 -0
  21. package/dist/agent/orchestration/orchestrator.js +476 -0
  22. package/dist/agent/orchestration/topology.d.ts +164 -0
  23. package/dist/agent/orchestration/topology.js +520 -0
  24. package/dist/agent/prompts/routingPrompts.d.ts +63 -0
  25. package/dist/agent/prompts/routingPrompts.js +201 -0
  26. package/dist/browser/neurolink.min.js +377 -358
  27. package/dist/cli/commands/agent.d.ts +37 -0
  28. package/dist/cli/commands/agent.js +718 -0
  29. package/dist/cli/factories/commandFactory.d.ts +8 -0
  30. package/dist/cli/factories/commandFactory.js +116 -0
  31. package/dist/cli/loop/optionsSchema.d.ts +1 -1
  32. package/dist/cli/parser.js +4 -0
  33. package/dist/index.d.ts +6 -0
  34. package/dist/index.js +19 -0
  35. package/dist/lib/agent/agent.d.ts +104 -0
  36. package/dist/lib/agent/agent.js +402 -0
  37. package/dist/lib/agent/agentNetwork.d.ts +87 -0
  38. package/dist/lib/agent/agentNetwork.js +459 -0
  39. package/dist/lib/agent/communication/index.d.ts +9 -0
  40. package/dist/lib/agent/communication/index.js +10 -0
  41. package/dist/lib/agent/communication/message-bus.d.ts +113 -0
  42. package/dist/lib/agent/communication/message-bus.js +407 -0
  43. package/dist/lib/agent/coordination/coordinator.d.ts +83 -0
  44. package/dist/lib/agent/coordination/coordinator.js +599 -0
  45. package/dist/lib/agent/coordination/index.d.ts +10 -0
  46. package/dist/lib/agent/coordination/index.js +11 -0
  47. package/dist/lib/agent/coordination/task-distributor.d.ts +113 -0
  48. package/dist/lib/agent/coordination/task-distributor.js +586 -0
  49. package/dist/lib/agent/index.d.ts +38 -0
  50. package/dist/lib/agent/index.js +45 -0
  51. package/dist/lib/agent/orchestration/index.d.ts +10 -0
  52. package/dist/lib/agent/orchestration/index.js +11 -0
  53. package/dist/lib/agent/orchestration/orchestrator.d.ts +114 -0
  54. package/dist/lib/agent/orchestration/orchestrator.js +477 -0
  55. package/dist/lib/agent/orchestration/topology.d.ts +164 -0
  56. package/dist/lib/agent/orchestration/topology.js +521 -0
  57. package/dist/lib/agent/prompts/routingPrompts.d.ts +63 -0
  58. package/dist/lib/agent/prompts/routingPrompts.js +202 -0
  59. package/dist/lib/index.d.ts +6 -0
  60. package/dist/lib/index.js +19 -0
  61. package/dist/lib/neurolink.d.ts +129 -0
  62. package/dist/lib/neurolink.js +276 -0
  63. package/dist/lib/processors/config/{fileTypes.js → fileExtensions.js} +1 -1
  64. package/dist/lib/processors/config/index.d.ts +2 -2
  65. package/dist/lib/processors/config/index.js +2 -2
  66. package/dist/lib/processors/config/{mimeTypes.js → mimeConstants.js} +1 -1
  67. package/dist/lib/processors/index.js +8 -0
  68. package/dist/lib/providers/googleAiStudio.js +28 -7
  69. package/dist/lib/providers/googleNativeGemini3.d.ts +18 -0
  70. package/dist/lib/providers/googleNativeGemini3.js +69 -3
  71. package/dist/lib/providers/googleVertex.js +33 -9
  72. package/dist/lib/types/agentNetwork.d.ts +1184 -0
  73. package/dist/lib/types/agentNetwork.js +8 -0
  74. package/dist/lib/types/cli.d.ts +66 -0
  75. package/dist/lib/types/common.d.ts +3 -0
  76. package/dist/lib/types/generate.d.ts +53 -0
  77. package/dist/lib/types/index.d.ts +2 -0
  78. package/dist/lib/types/index.js +3 -0
  79. package/dist/lib/types/ioProcessor.d.ts +119 -0
  80. package/dist/lib/types/ioProcessor.js +10 -0
  81. package/dist/lib/types/providers.d.ts +8 -0
  82. package/dist/lib/types/stream.d.ts +36 -0
  83. package/dist/lib/utils/piiDetector.d.ts +24 -0
  84. package/dist/lib/utils/piiDetector.js +221 -0
  85. package/dist/lib/utils/pricing.js +144 -26
  86. package/dist/lib/utils/responseValidator.d.ts +21 -0
  87. package/dist/lib/utils/responseValidator.js +354 -0
  88. package/dist/lib/utils/tokenUtils.d.ts +11 -0
  89. package/dist/lib/utils/tokenUtils.js +33 -2
  90. package/dist/lib/utils/tripwireEvaluator.d.ts +73 -0
  91. package/dist/lib/utils/tripwireEvaluator.js +285 -0
  92. package/dist/neurolink.d.ts +129 -0
  93. package/dist/neurolink.js +276 -0
  94. package/dist/processors/config/index.d.ts +2 -2
  95. package/dist/processors/config/index.js +2 -2
  96. package/dist/processors/index.js +8 -0
  97. package/dist/providers/googleAiStudio.js +28 -7
  98. package/dist/providers/googleNativeGemini3.d.ts +18 -0
  99. package/dist/providers/googleNativeGemini3.js +69 -3
  100. package/dist/providers/googleVertex.js +33 -9
  101. package/dist/types/agentNetwork.d.ts +1184 -0
  102. package/dist/types/agentNetwork.js +7 -0
  103. package/dist/types/cli.d.ts +66 -0
  104. package/dist/types/common.d.ts +3 -0
  105. package/dist/types/generate.d.ts +53 -0
  106. package/dist/types/index.d.ts +2 -0
  107. package/dist/types/index.js +3 -0
  108. package/dist/types/ioProcessor.d.ts +119 -0
  109. package/dist/types/ioProcessor.js +9 -0
  110. package/dist/types/providers.d.ts +8 -0
  111. package/dist/types/stream.d.ts +36 -0
  112. package/dist/utils/piiDetector.d.ts +24 -0
  113. package/dist/utils/piiDetector.js +220 -0
  114. package/dist/utils/pricing.js +144 -26
  115. package/dist/utils/responseValidator.d.ts +21 -0
  116. package/dist/utils/responseValidator.js +353 -0
  117. package/dist/utils/tokenUtils.d.ts +11 -0
  118. package/dist/utils/tokenUtils.js +33 -2
  119. package/dist/utils/tripwireEvaluator.d.ts +73 -0
  120. package/dist/utils/tripwireEvaluator.js +284 -0
  121. package/package.json +1 -1
  122. /package/dist/lib/processors/config/{fileTypes.d.ts → fileExtensions.d.ts} +0 -0
  123. /package/dist/lib/processors/config/{mimeTypes.d.ts → mimeConstants.d.ts} +0 -0
  124. /package/dist/processors/config/{fileTypes.d.ts → fileExtensions.d.ts} +0 -0
  125. /package/dist/processors/config/{fileTypes.js → fileExtensions.js} +0 -0
  126. /package/dist/processors/config/{mimeTypes.d.ts → mimeConstants.d.ts} +0 -0
  127. /package/dist/processors/config/{mimeTypes.js → mimeConstants.js} +0 -0
@@ -24,7 +24,7 @@ import { convertZodToJsonSchema, inlineJsonSchema, ensureNestedSchemaTypes, } fr
24
24
  import { createNativeThinkingConfig } from "../utils/thinkingConfig.js";
25
25
  import { TimeoutError, raceWithAbort, withTimeout, } from "../utils/async/index.js";
26
26
  import { parseTimeout } from "../utils/timeout.js";
27
- import { appendStepText, buildAbortedTurnMessage, buildContextCapMessage, buildToolLoopCapMessage, buildTurnStalledMessage, buildTurnTimeoutMessage, buildWrapupNudgeText, createContextGuard, createTextChannel, createTurnClock, extractThoughtSignature, isAbortError, mapGeminiFinishReason, prependConversationMessages, resolveTurnStopReason, } from "./googleNativeGemini3.js";
27
+ import { appendStepText, buildAbortedTurnMessage, buildContextCapMessage, buildToolLoopCapMessage, buildTurnStalledMessage, buildTurnTimeoutMessage, buildWrapupNudgeText, createContextGuard, createTextChannel, createTurnClock, extractThoughtSignature, isAbortError, mapGeminiFinishReason, prependConversationMessages, resolveTurnStopReason, DedupExecuteMap, } from "./googleNativeGemini3.js";
28
28
  import { getContextWindowSize } from "../constants/contextWindows.js";
29
29
  import { ATTR, LANGFUSE_ATTR, spanJsonAttribute, tracers, withClientSpan, withClientStreamSpan, withSpan, } from "../telemetry/index.js";
30
30
  import { SpanKind, SpanStatusCode, context as otelContext, trace as otelTrace, } from "@opentelemetry/api";
@@ -1138,7 +1138,7 @@ export class GoogleVertexProvider extends BaseProvider {
1138
1138
  });
1139
1139
  // Convert Vercel AI SDK tools to @google/genai FunctionDeclarations
1140
1140
  let tools;
1141
- const executeMap = new Map();
1141
+ const executeMap = new DedupExecuteMap();
1142
1142
  if (options.tools &&
1143
1143
  Object.keys(options.tools).length > 0 &&
1144
1144
  !options.disableTools) {
@@ -1325,6 +1325,7 @@ export class GoogleVertexProvider extends BaseProvider {
1325
1325
  // promptTokenCount is typically in the final chunk, candidatesTokenCount accumulates
1326
1326
  let totalInputTokens = 0;
1327
1327
  let totalOutputTokens = 0;
1328
+ let totalCacheReadTokens = 0;
1328
1329
  // Track text parts as they arrive from the SDK so the returned async
1329
1330
  // iterable yields multiple chunks instead of a single buffered chunk.
1330
1331
  // The CLI's chunk-count smoke test asserts > 1 stream chunks for any
@@ -1440,6 +1441,10 @@ export class GoogleVertexProvider extends BaseProvider {
1440
1441
  totalInputTokens = usageMetadata.promptTokenCount;
1441
1442
  // Feed the context guard the REAL prompt size of this call.
1442
1443
  contextGuard.noteUsage(usageMetadata.promptTokenCount, usageMetadata.candidatesTokenCount ?? 0);
1444
+ // cachedContentTokenCount is OVERLAPPING (a subset already inside
1445
+ // promptTokenCount). Clamp to the prompt count so a later uncached
1446
+ // step resets it to 0 instead of leaving a stale cached value.
1447
+ totalCacheReadTokens = Math.min(usageMetadata.cachedContentTokenCount ?? 0, usageMetadata.promptTokenCount);
1443
1448
  }
1444
1449
  // Take the latest candidatesTokenCount (accumulates through chunks)
1445
1450
  if (usageMetadata.candidatesTokenCount !== undefined &&
@@ -1891,6 +1896,10 @@ export class GoogleVertexProvider extends BaseProvider {
1891
1896
  // Filter out final_result from tool calls as it's an internal pattern
1892
1897
  const externalToolCalls = allToolCalls.filter((tc) => tc.toolName !== "final_result");
1893
1898
  const externalToolExecutions = toolExecutions.filter((te) => te.name !== "final_result");
1899
+ // Gemini promptTokenCount is OVERLAPPING (already includes
1900
+ // cachedContentTokenCount). Subtract once so the cached portion is billed at
1901
+ // the cheaper cacheRead rate without double-counting; total is conserved.
1902
+ const adjustedInputTokens = Math.max(0, totalInputTokens - totalCacheReadTokens);
1894
1903
  const result = {
1895
1904
  stream: createTextStream(),
1896
1905
  provider: this.providerName,
@@ -1899,9 +1908,12 @@ export class GoogleVertexProvider extends BaseProvider {
1899
1908
  stopReason,
1900
1909
  rawFinishReason: lastFinishReason,
1901
1910
  usage: {
1902
- input: totalInputTokens,
1911
+ input: adjustedInputTokens,
1903
1912
  output: totalOutputTokens,
1904
- total: totalInputTokens + totalOutputTokens,
1913
+ total: adjustedInputTokens + totalCacheReadTokens + totalOutputTokens,
1914
+ ...(totalCacheReadTokens > 0 && {
1915
+ cacheReadTokens: totalCacheReadTokens,
1916
+ }),
1905
1917
  },
1906
1918
  toolCalls: externalToolCalls.map((tc) => ({
1907
1919
  toolName: tc.toolName,
@@ -2073,7 +2085,7 @@ export class GoogleVertexProvider extends BaseProvider {
2073
2085
  const combinedTools = !options.disableTools ? options.tools || {} : {};
2074
2086
  // Convert Vercel AI SDK tools to @google/genai FunctionDeclarations
2075
2087
  let tools;
2076
- const executeMap = new Map();
2088
+ const executeMap = new DedupExecuteMap();
2077
2089
  if (Object.keys(combinedTools).length > 0) {
2078
2090
  const functionDeclarations = [];
2079
2091
  for (const [name, tool] of Object.entries(combinedTools)) {
@@ -2254,6 +2266,7 @@ export class GoogleVertexProvider extends BaseProvider {
2254
2266
  // promptTokenCount is typically in the final chunk, candidatesTokenCount accumulates
2255
2267
  let totalInputTokens = 0;
2256
2268
  let totalOutputTokens = 0;
2269
+ let totalCacheReadTokens = 0;
2257
2270
  // Abort scaffolding (mirrors executeNativeAnthropicStream). The native
2258
2271
  // Gemini SDK cancels via config.abortSignal, so drive an internal
2259
2272
  // AbortController: the caller's signal and the turn clock's watchdogs
@@ -2359,6 +2372,10 @@ export class GoogleVertexProvider extends BaseProvider {
2359
2372
  totalInputTokens = usageMetadata.promptTokenCount;
2360
2373
  // Feed the context guard the REAL prompt size of this call.
2361
2374
  contextGuard.noteUsage(usageMetadata.promptTokenCount, usageMetadata.candidatesTokenCount ?? 0);
2375
+ // cachedContentTokenCount is OVERLAPPING (a subset already inside
2376
+ // promptTokenCount). Clamp to the prompt count so a later uncached
2377
+ // step resets it to 0 instead of leaving a stale cached value.
2378
+ totalCacheReadTokens = Math.min(usageMetadata.cachedContentTokenCount ?? 0, usageMetadata.promptTokenCount);
2362
2379
  }
2363
2380
  // Take the latest candidatesTokenCount (accumulates through chunks)
2364
2381
  if (usageMetadata.candidatesTokenCount !== undefined &&
@@ -2789,6 +2806,10 @@ export class GoogleVertexProvider extends BaseProvider {
2789
2806
  const externalToolCalls = allToolCalls.filter((tc) => tc.toolName !== "final_result");
2790
2807
  const externalToolExecutions = toolExecutions.filter((te) => te.name !== "final_result");
2791
2808
  // Build EnhancedGenerateResult
2809
+ // Gemini promptTokenCount is OVERLAPPING (already includes
2810
+ // cachedContentTokenCount). Subtract once so the cached portion is billed at
2811
+ // the cheaper cacheRead rate without double-counting; total is conserved.
2812
+ const adjustedInputTokens = Math.max(0, totalInputTokens - totalCacheReadTokens);
2792
2813
  const result = {
2793
2814
  content: finalText,
2794
2815
  provider: this.providerName,
@@ -2798,9 +2819,12 @@ export class GoogleVertexProvider extends BaseProvider {
2798
2819
  rawFinishReason: lastFinishReason,
2799
2820
  stepsUsed: step,
2800
2821
  usage: {
2801
- input: totalInputTokens,
2822
+ input: adjustedInputTokens,
2802
2823
  output: totalOutputTokens,
2803
- total: totalInputTokens + totalOutputTokens,
2824
+ total: adjustedInputTokens + totalCacheReadTokens + totalOutputTokens,
2825
+ ...(totalCacheReadTokens > 0 && {
2826
+ cacheReadTokens: totalCacheReadTokens,
2827
+ }),
2804
2828
  },
2805
2829
  responseTime,
2806
2830
  toolsUsed: externalToolCalls.map((tc) => tc.toolName),
@@ -3092,7 +3116,7 @@ export class GoogleVertexProvider extends BaseProvider {
3092
3116
  : userContentParts);
3093
3117
  // Convert tools to Anthropic format if present
3094
3118
  let tools;
3095
- const executeMap = new Map();
3119
+ const executeMap = new DedupExecuteMap();
3096
3120
  if (options.tools &&
3097
3121
  Object.keys(options.tools).length > 0 &&
3098
3122
  !options.disableTools) {
@@ -4401,7 +4425,7 @@ export class GoogleVertexProvider extends BaseProvider {
4401
4425
  : userContentParts);
4402
4426
  // Convert tools to Anthropic format if present
4403
4427
  let tools;
4404
- const executeMap = new Map();
4428
+ const executeMap = new DedupExecuteMap();
4405
4429
  const toolExecutions = [];
4406
4430
  // Defensive guard: Vertex generate() bypasses BaseProvider.generate(), so
4407
4431
  // disableTools must be checked here before native tool declarations are