@juspay/neurolink 12.7.0 → 12.7.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.
package/CHANGELOG.md CHANGED
@@ -1,12 +1,8 @@
1
- ## [12.7.0](https://github.com/juspay/neurolink/compare/v12.6.1...v12.7.0) (2026-08-29)
2
-
3
- ### Features
4
-
5
- - **(tts):** stream OpenAI audio natively ([dca67fa](https://github.com/juspay/neurolink/commit/dca67fa452ac571d308a3e15da5a100803b27010))
1
+ ## [12.7.1](https://github.com/juspay/neurolink/compare/v12.7.0...v12.7.1) (2026-08-29)
6
2
 
7
3
  ### Bug Fixes
8
4
 
9
- - **(proxy):** correct how the MSIE User-Agent was attributed, and guard the roster ([4e909f9](https://github.com/juspay/neurolink/commit/4e909f912aef943bbddc92150b821aeef9d7a20e))
5
+ - **(proxy):** repair the comment [#1601](https://github.com/juspay/neurolink/issues/1601) landed malformed, and the claim it left standing ([2f41549](https://github.com/juspay/neurolink/commit/2f4154969b208700953e90dd1cd3a91c22aff9d5))
10
6
 
11
7
  ## [11.2.3](https://github.com/juspay/neurolink/compare/v11.2.2...v11.2.3) (2026-08-19)
12
8
 
@@ -33,7 +33,7 @@ export declare function isProviderAvailable(providerName: string): boolean;
33
33
  */
34
34
  export declare function getBestAvailableProvider(preferCheap?: boolean): ProviderModelConfig | null;
35
35
  /**
36
- Record actual provider performance for optimization
36
+ * Record actual provider performance for optimization
37
37
  */
38
38
  export declare function recordProviderPerformanceFromMetrics(providerName: string, metrics: {
39
39
  responseTime: number;
@@ -111,7 +111,7 @@ export function getBestAvailableProvider(preferCheap = true) {
111
111
  return sortedProviders[0];
112
112
  }
113
113
  /**
114
- Record actual provider performance for optimization
114
+ * Record actual provider performance for optimization
115
115
  */
116
116
  export function recordProviderPerformanceFromMetrics(providerName, metrics) {
117
117
  const existing = providerMetrics.get(providerName) || {
@@ -17,34 +17,37 @@
17
17
  * collapsing into one bucket with every other unknown.
18
18
  */
19
19
  /**
20
- * Deliberately NOT mapped, with the measurement that ruled each one out.
20
+ * Deliberately NOT mapped, and why each was ruled out.
21
21
  *
22
- * Copilot CLI is the one client here that cannot be identified from its
23
- * User-Agent, and both of the strings it sends are actively unsafe to key on:
22
+ * These two strings are unrelated to each other. They are grouped only because
23
+ * both were candidates for a Copilot mapping at some point, and neither can
24
+ * carry one.
24
25
  *
25
- * - `OpenAI/JS 5.20.1` — the stock OpenAI JS SDK UA, sent by every caller of
26
- * that SDK. Mapping it to Copilot would file unrelated OpenAI-SDK traffic
27
- * under Copilot's name, which is worse than leaving it unattributed.
28
- - `Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)` not a
29
- * CLI's User-Agent at all. This is what `curl` sends on a machine whose
30
- * `~/.curlrc` sets `user-agent`, so every curl-driven caller on such a host
31
- * shares it: scripts, agents, health probes. It accounted for the largest
32
- * single block of `unknown` rows in the log this table was measured against,
33
- * which is exactly what made it tempting.
26
+ * - `OpenAI/JS 5.20.1` — Copilot CLI's actual User-Agent, and the problem is
27
+ * that it is not Copilot's alone: it is the stock OpenAI JS SDK string, sent
28
+ * by every caller of that SDK. Mapping it would file unrelated OpenAI-SDK
29
+ * traffic under Copilot's name, which is worse than leaving it unattributed.
30
+ * Copilot also sends `x-initiator` and `x-interaction-type`, but neither is
31
+ * exclusive to it either, so it stays `unknown` and remains traceable
32
+ * through the stored raw header.
34
33
  *
35
- * Recorded because the first pass got this wrong in a way worth naming. The
36
- * string was seen arriving at two capture servers during Copilot CLI and
37
- * Gemini CLI runs and was written up as "sent by both CLIs". It was neither:
38
- * it was the aliveness `curl` fired at each capture server moments before
39
- * the CLI, picking up that host's curlrc. The paths gave it away on review —
40
- * the Gemini-side hit was a bare `GET /v1beta/models`, which is the probe's
41
- * URL and not one the CLI requests. A shared string across two unrelated
42
- * clients should have read as "shared dependency or shared tooling", not as
43
- * a property of either client.
34
+ * - `Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)` not a
35
+ * CLI's User-Agent at all, and in particular NOT Copilot's. It is what
36
+ * `curl` sends on a machine whose `~/.curlrc` sets `user-agent`, so every
37
+ * curl-driven caller on such a host shares it: scripts, agents, health
38
+ * probes. It accounted for the largest single block of `unknown` rows in the
39
+ * log this table was measured against, which is exactly what made it
40
+ * tempting.
44
41
  *
45
- * Copilot does send `x-initiator` and `x-interaction-type`, but neither is
46
- * exclusive to it either. Attributing it needs a signal nobody has found yet,
47
- * so it stays `unknown` and remains traceable through the stored raw header.
42
+ * Recorded because the first pass got this wrong in a way worth naming. The
43
+ * string was seen arriving at two capture servers during a Copilot CLI run
44
+ * and a Gemini CLI run, and was written up as "sent by both CLIs". It was
45
+ * sent by neither: it was the aliveness `curl` fired at each capture server
46
+ * moments before the CLI was pointed at it, picking up that host's curlrc.
47
+ * The request paths gave it away on review — the Gemini-side hit was a bare
48
+ * `GET /v1beta/models`, which is the probe's URL and not one the CLI
49
+ * requests. An identical unusual string arriving from two unrelated clients
50
+ * is evidence of shared tooling, never a property of either client.
48
51
  */
49
52
  /**
50
53
  * The client names this table can produce.
@@ -41,34 +41,37 @@ const CLIENT_PREFIXES = [
41
41
  ["codex_exec/", "codex"],
42
42
  ];
43
43
  /**
44
- * Deliberately NOT mapped, with the measurement that ruled each one out.
44
+ * Deliberately NOT mapped, and why each was ruled out.
45
45
  *
46
- * Copilot CLI is the one client here that cannot be identified from its
47
- * User-Agent, and both of the strings it sends are actively unsafe to key on:
46
+ * These two strings are unrelated to each other. They are grouped only because
47
+ * both were candidates for a Copilot mapping at some point, and neither can
48
+ * carry one.
48
49
  *
49
- * - `OpenAI/JS 5.20.1` — the stock OpenAI JS SDK UA, sent by every caller of
50
- * that SDK. Mapping it to Copilot would file unrelated OpenAI-SDK traffic
51
- * under Copilot's name, which is worse than leaving it unattributed.
52
- - `Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)` not a
53
- * CLI's User-Agent at all. This is what `curl` sends on a machine whose
54
- * `~/.curlrc` sets `user-agent`, so every curl-driven caller on such a host
55
- * shares it: scripts, agents, health probes. It accounted for the largest
56
- * single block of `unknown` rows in the log this table was measured against,
57
- * which is exactly what made it tempting.
50
+ * - `OpenAI/JS 5.20.1` — Copilot CLI's actual User-Agent, and the problem is
51
+ * that it is not Copilot's alone: it is the stock OpenAI JS SDK string, sent
52
+ * by every caller of that SDK. Mapping it would file unrelated OpenAI-SDK
53
+ * traffic under Copilot's name, which is worse than leaving it unattributed.
54
+ * Copilot also sends `x-initiator` and `x-interaction-type`, but neither is
55
+ * exclusive to it either, so it stays `unknown` and remains traceable
56
+ * through the stored raw header.
58
57
  *
59
- * Recorded because the first pass got this wrong in a way worth naming. The
60
- * string was seen arriving at two capture servers during Copilot CLI and
61
- * Gemini CLI runs and was written up as "sent by both CLIs". It was neither:
62
- * it was the aliveness `curl` fired at each capture server moments before
63
- * the CLI, picking up that host's curlrc. The paths gave it away on review —
64
- * the Gemini-side hit was a bare `GET /v1beta/models`, which is the probe's
65
- * URL and not one the CLI requests. A shared string across two unrelated
66
- * clients should have read as "shared dependency or shared tooling", not as
67
- * a property of either client.
58
+ * - `Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)` not a
59
+ * CLI's User-Agent at all, and in particular NOT Copilot's. It is what
60
+ * `curl` sends on a machine whose `~/.curlrc` sets `user-agent`, so every
61
+ * curl-driven caller on such a host shares it: scripts, agents, health
62
+ * probes. It accounted for the largest single block of `unknown` rows in the
63
+ * log this table was measured against, which is exactly what made it
64
+ * tempting.
68
65
  *
69
- * Copilot does send `x-initiator` and `x-interaction-type`, but neither is
70
- * exclusive to it either. Attributing it needs a signal nobody has found yet,
71
- * so it stays `unknown` and remains traceable through the stored raw header.
66
+ * Recorded because the first pass got this wrong in a way worth naming. The
67
+ * string was seen arriving at two capture servers during a Copilot CLI run
68
+ * and a Gemini CLI run, and was written up as "sent by both CLIs". It was
69
+ * sent by neither: it was the aliveness `curl` fired at each capture server
70
+ * moments before the CLI was pointed at it, picking up that host's curlrc.
71
+ * The request paths gave it away on review — the Gemini-side hit was a bare
72
+ * `GET /v1beta/models`, which is the probe's URL and not one the CLI
73
+ * requests. An identical unusual string arriving from two unrelated clients
74
+ * is evidence of shared tooling, never a property of either client.
72
75
  */
73
76
  /**
74
77
  * The client names this table can produce.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@juspay/neurolink",
3
- "version": "12.7.0",
3
+ "version": "12.7.1",
4
4
  "packageManager": "pnpm@10.15.1",
5
5
  "description": "TypeScript AI SDK with 24+ LLM providers behind one consistent API. MCP-native (connect any MCP server), voice TTS/STT/realtime, RAG, agents, memory, context compaction. OpenAI · Anthropic · Gemini · Bedrock · Azure · Ollama · DeepSeek · NVIDIA NIM and more.",
6
6
  "author": {