@juspay/neurolink 13.4.9 → 13.5.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 (35) hide show
  1. package/CHANGELOG.md +3 -3
  2. package/README.md +14 -4
  3. package/dist/browser/neurolink.min.js +419 -419
  4. package/dist/cli/commands/decide.js +25 -5
  5. package/dist/factories/providerDescriptors.d.ts +4 -3
  6. package/dist/factories/providerDescriptors.js +6 -4
  7. package/dist/hitl/hitlManager.d.ts +1 -0
  8. package/dist/hitl/hitlManager.js +2 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/neurolink.d.ts +4 -2
  12. package/dist/neurolink.js +36 -10
  13. package/dist/providers/catalog/provider-catalog.schema.json +64 -3
  14. package/dist/providers/catalog/schema.js +81 -1
  15. package/dist/providers/catalog/xor.json +30 -10
  16. package/dist/providers/configuredDecision.d.ts +8 -1
  17. package/dist/providers/configuredDecision.js +22 -0
  18. package/dist/providers/decide/dialects/openaiDecisions.js +8 -0
  19. package/dist/providers/decide/dialects/systemOne.js +28 -2
  20. package/dist/providers/decide/guards.d.ts +6 -0
  21. package/dist/providers/decide/guards.js +22 -0
  22. package/dist/providers/systemOneDecision.d.ts +30 -7
  23. package/dist/providers/systemOneDecision.js +71 -14
  24. package/dist/types/cli.d.ts +2 -0
  25. package/dist/types/decision.d.ts +117 -10
  26. package/dist/types/providerCatalog.d.ts +12 -1
  27. package/dist/types/providers.d.ts +2 -0
  28. package/dist/utils/decisionAnswers.d.ts +7 -1
  29. package/dist/utils/decisionAnswers.js +43 -2
  30. package/dist/utils/decisionLimits.d.ts +13 -1
  31. package/dist/utils/decisionLimits.js +52 -1
  32. package/dist/utils/decisionMedia.d.ts +4 -2
  33. package/dist/utils/decisionMedia.js +216 -14
  34. package/docs-site/static/search-index.json +24 -21
  35. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,8 +1,8 @@
1
- ## [13.4.9](https://github.com/juspay/neurolink/compare/v13.4.8...v13.4.9) (2026-10-19)
1
+ ## [13.5.0](https://github.com/juspay/neurolink/compare/v13.4.10...v13.5.0) (2026-10-19)
2
2
 
3
- ### Bug Fixes
3
+ ### Features
4
4
 
5
- - **(search-index):** strip tilde fences, keep underscores inside words, and correct decide docs ([1fed45b](https://github.com/juspay/neurolink/commit/1fed45b2e08e2ade5a49219fbb08403f5e09d4ad)), closes [#2005](https://github.com/juspay/neurolink/issues/2005) [#2037](https://github.com/juspay/neurolink/issues/2037)
5
+ - **(xor):** value questions, audio and measured limits ([8abae3d](https://github.com/juspay/neurolink/commit/8abae3d69de5708fc7bd0f2213d83d531ebd84e1))
6
6
 
7
7
  ## [11.2.3](https://github.com/juspay/neurolink/compare/v11.2.2...v11.2.3) (2026-08-19)
8
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
@@ -491,7 +492,11 @@ NeuroLink includes a **HITL (Human-in-the-Loop) system** that pauses a tool call
491
492
  | **Audit Logging** | `auditLogging: true` writes each request and decision, with the full tool arguments, to the NeuroLink logger; it is a log, not a compliance control | Debugging and your own review records |
492
493
 
493
494
  ```typescript
494
- import { NeuroLink, type ConfirmationRequestEvent } from "@juspay/neurolink";
495
+ import {
496
+ NeuroLink,
497
+ type ConfirmationRequestEvent,
498
+ type ConfirmationResponseEvent,
499
+ } from "@juspay/neurolink";
495
500
 
496
501
  const neurolink = new NeuroLink({
497
502
  hitl: {
@@ -505,6 +510,7 @@ const neurolink = new NeuroLink({
505
510
  // Approval is event-based: NeuroLink emits a request, your app answers it
506
511
  const emitter = neurolink.getEventEmitter();
507
512
  emitter.on("hitl:confirmation-request", async (event) => {
513
+ const receivedAt = Date.now();
508
514
  // The emitter types listener arguments as unknown, so narrow the event
509
515
  const { payload } = event as ConfirmationRequestEvent;
510
516
  const { confirmationId, toolName, arguments: args } = payload;
@@ -517,8 +523,12 @@ emitter.on("hitl:confirmation-request", async (event) => {
517
523
  confirmationId,
518
524
  approved,
519
525
  reason: approved ? undefined : "Rejected by reviewer",
526
+ metadata: {
527
+ timestamp: new Date().toISOString(),
528
+ responseTime: Date.now() - receivedAt, // ms since the request arrived
529
+ },
520
530
  },
521
- });
531
+ } satisfies ConfirmationResponseEvent);
522
532
  });
523
533
 
524
534
  // A tool call to a matching tool pauses until your handler answers