@juspay/neurolink 11.2.1 → 11.2.3

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 (43) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/browser/neurolink.min.js +392 -392
  3. package/dist/factories/providerRegistry.d.ts +16 -4
  4. package/dist/factories/providerRegistry.js +70 -48
  5. package/dist/lib/factories/providerRegistry.d.ts +16 -4
  6. package/dist/lib/factories/providerRegistry.js +70 -48
  7. package/dist/lib/providers/configuredOpenAICompat.js +10 -3
  8. package/dist/lib/providers/openaiChatCompletionsBase.js +26 -14
  9. package/dist/lib/providers/openaiCompatCatalog.js +9 -11
  10. package/dist/lib/types/providers.d.ts +15 -1
  11. package/dist/providers/configuredOpenAICompat.js +10 -3
  12. package/dist/providers/openaiChatCompletionsBase.js +26 -14
  13. package/dist/providers/openaiCompatCatalog.js +9 -11
  14. package/dist/types/providers.d.ts +15 -1
  15. package/package.json +3 -2
  16. package/dist/lib/providers/cloudflare.d.ts +0 -26
  17. package/dist/lib/providers/cloudflare.js +0 -83
  18. package/dist/lib/providers/fireworks.d.ts +0 -22
  19. package/dist/lib/providers/fireworks.js +0 -73
  20. package/dist/lib/providers/groq.d.ts +0 -24
  21. package/dist/lib/providers/groq.js +0 -83
  22. package/dist/lib/providers/mistral.d.ts +0 -25
  23. package/dist/lib/providers/mistral.js +0 -87
  24. package/dist/lib/providers/perplexity.d.ts +0 -24
  25. package/dist/lib/providers/perplexity.js +0 -69
  26. package/dist/lib/providers/togetherAi.d.ts +0 -23
  27. package/dist/lib/providers/togetherAi.js +0 -73
  28. package/dist/lib/providers/xai.d.ts +0 -22
  29. package/dist/lib/providers/xai.js +0 -77
  30. package/dist/providers/cloudflare.d.ts +0 -26
  31. package/dist/providers/cloudflare.js +0 -82
  32. package/dist/providers/fireworks.d.ts +0 -22
  33. package/dist/providers/fireworks.js +0 -72
  34. package/dist/providers/groq.d.ts +0 -24
  35. package/dist/providers/groq.js +0 -82
  36. package/dist/providers/mistral.d.ts +0 -25
  37. package/dist/providers/mistral.js +0 -86
  38. package/dist/providers/perplexity.d.ts +0 -24
  39. package/dist/providers/perplexity.js +0 -68
  40. package/dist/providers/togetherAi.d.ts +0 -23
  41. package/dist/providers/togetherAi.js +0 -72
  42. package/dist/providers/xai.d.ts +0 -22
  43. package/dist/providers/xai.js +0 -76
@@ -1,68 +0,0 @@
1
- import { PerplexityModels } from "../constants/enums.js";
2
- import { AuthenticationError } from "../types/index.js";
3
- import { logger } from "../utils/logger.js";
4
- import { redactUrlCredentials } from "../utils/logSanitize.js";
5
- import { classifyProviderError, DEFAULT_ERROR_RULES, } from "../utils/errorClassifier.js";
6
- import { createPerplexityConfig, getProviderModel, validateApiKey, } from "../utils/providerConfig.js";
7
- import { OpenAIChatCompletionsProvider } from "./openaiChatCompletionsBase.js";
8
- const PERPLEXITY_DEFAULT_BASE_URL = "https://api.perplexity.ai";
9
- const getPerplexityApiKey = () => validateApiKey(createPerplexityConfig());
10
- const getDefaultPerplexityModel = () => getProviderModel("PERPLEXITY_MODEL", PerplexityModels.SONAR);
11
- /**
12
- * Perplexity Provider — direct HTTP, no AI SDK.
13
- *
14
- * Sonar models with built-in web grounding. OpenAI-compatible chat
15
- * completions at api.perplexity.ai. Best for queries that need fresh
16
- * web context (search-augmented answers). Citation data, if the API returns
17
- * any, is not extracted or exposed by this provider.
18
- *
19
- * All request/stream/tool-loop orchestration lives in
20
- * `OpenAIChatCompletionsProvider`; this class only declares configuration
21
- * and provider-specific error mapping.
22
- *
23
- * @see https://docs.perplexity.ai/api-reference/chat-completions
24
- */
25
- export class PerplexityProvider extends OpenAIChatCompletionsProvider {
26
- constructor(modelName, sdk, _region, credentials) {
27
- const overrideApiKey = credentials?.apiKey?.trim();
28
- const apiKey = overrideApiKey && overrideApiKey.length > 0
29
- ? overrideApiKey
30
- : getPerplexityApiKey();
31
- const baseURL = credentials?.baseURL?.trim() ||
32
- process.env.PERPLEXITY_BASE_URL?.trim() ||
33
- PERPLEXITY_DEFAULT_BASE_URL;
34
- super("perplexity", modelName, sdk, { baseURL, apiKey });
35
- logger.debug("Perplexity Provider initialized", {
36
- modelName: this.modelName,
37
- providerName: this.providerName,
38
- baseURL: redactUrlCredentials(this.config.baseURL),
39
- });
40
- }
41
- getProviderName() {
42
- return "perplexity";
43
- }
44
- getDefaultModel() {
45
- return getDefaultPerplexityModel();
46
- }
47
- getFallbackModels() {
48
- return [
49
- PerplexityModels.SONAR,
50
- PerplexityModels.SONAR_PRO,
51
- PerplexityModels.SONAR_REASONING,
52
- PerplexityModels.SONAR_REASONING_PRO,
53
- PerplexityModels.SONAR_DEEP_RESEARCH,
54
- ];
55
- }
56
- formatProviderError(error) {
57
- const rules = [
58
- {
59
- match: (ctx) => ctx.statusCode === 401 ||
60
- /Invalid API key|Authentication/i.test(ctx.message),
61
- errorClass: AuthenticationError,
62
- message: "Invalid Perplexity API key. Get one at https://www.perplexity.ai/settings/api",
63
- },
64
- ...DEFAULT_ERROR_RULES,
65
- ];
66
- return classifyProviderError(error, rules, "perplexity", this.modelName);
67
- }
68
- }
@@ -1,23 +0,0 @@
1
- import type { AIProviderName } from "../constants/enums.js";
2
- import type { NeurolinkCredentials } from "../types/index.js";
3
- import { OpenAIChatCompletionsProvider } from "./openaiChatCompletionsBase.js";
4
- /**
5
- * Together AI Provider — direct HTTP, no AI SDK.
6
- *
7
- * Hosted open-model gateway at api.together.xyz/v1 (OpenAI-compatible).
8
- * Llama / Mistral / Qwen / DeepSeek / Gemma / WizardLM available
9
- * server-less; pass any catalog id via `--model`.
10
- * All request/stream/tool-loop orchestration lives in
11
- * `OpenAIChatCompletionsProvider`; this class only declares configuration
12
- * and provider-specific error mapping.
13
- *
14
- * @see https://docs.together.ai/docs/openai-api-compatibility
15
- */
16
- export declare class TogetherAIProvider extends OpenAIChatCompletionsProvider {
17
- constructor(modelName?: string, sdk?: unknown, _region?: string, credentials?: NeurolinkCredentials["together"]);
18
- protected getProviderName(): AIProviderName;
19
- protected getDefaultModel(): string;
20
- protected getFallbackModelName(): string;
21
- protected getFallbackModels(): string[];
22
- protected formatProviderError(error: unknown): Error;
23
- }
@@ -1,72 +0,0 @@
1
- import { TogetherAIModels } from "../constants/enums.js";
2
- import { AuthenticationError } from "../types/index.js";
3
- import { logger } from "../utils/logger.js";
4
- import { redactUrlCredentials } from "../utils/logSanitize.js";
5
- import { classifyProviderError, DEFAULT_ERROR_RULES, } from "../utils/errorClassifier.js";
6
- import { createTogetherAIConfig, getProviderModel, validateApiKey, } from "../utils/providerConfig.js";
7
- import { OpenAIChatCompletionsProvider } from "./openaiChatCompletionsBase.js";
8
- const TOGETHER_DEFAULT_BASE_URL = "https://api.together.xyz/v1";
9
- const getTogetherApiKey = () => validateApiKey(createTogetherAIConfig());
10
- const getDefaultTogetherModel = () => getProviderModel("TOGETHER_MODEL", TogetherAIModels.LLAMA_3_3_70B_INSTRUCT_TURBO);
11
- /**
12
- * Together AI Provider — direct HTTP, no AI SDK.
13
- *
14
- * Hosted open-model gateway at api.together.xyz/v1 (OpenAI-compatible).
15
- * Llama / Mistral / Qwen / DeepSeek / Gemma / WizardLM available
16
- * server-less; pass any catalog id via `--model`.
17
- * All request/stream/tool-loop orchestration lives in
18
- * `OpenAIChatCompletionsProvider`; this class only declares configuration
19
- * and provider-specific error mapping.
20
- *
21
- * @see https://docs.together.ai/docs/openai-api-compatibility
22
- */
23
- export class TogetherAIProvider extends OpenAIChatCompletionsProvider {
24
- constructor(modelName, sdk, _region, credentials) {
25
- const overrideApiKey = credentials?.apiKey?.trim();
26
- const apiKey = overrideApiKey && overrideApiKey.length > 0
27
- ? overrideApiKey
28
- : getTogetherApiKey();
29
- const baseURL = credentials?.baseURL?.trim() ||
30
- process.env.TOGETHER_BASE_URL?.trim() ||
31
- TOGETHER_DEFAULT_BASE_URL;
32
- super("together-ai", modelName, sdk, { baseURL, apiKey });
33
- logger.debug("Together AI Provider initialized", {
34
- modelName: this.modelName,
35
- providerName: this.providerName,
36
- baseURL: redactUrlCredentials(this.config.baseURL),
37
- });
38
- }
39
- getProviderName() {
40
- return "together-ai";
41
- }
42
- getDefaultModel() {
43
- return getDefaultTogetherModel();
44
- }
45
- getFallbackModelName() {
46
- return TogetherAIModels.LLAMA_3_1_8B_INSTRUCT_TURBO;
47
- }
48
- getFallbackModels() {
49
- return [
50
- TogetherAIModels.LLAMA_3_3_70B_INSTRUCT_TURBO,
51
- TogetherAIModels.LLAMA_3_1_405B_INSTRUCT_TURBO,
52
- TogetherAIModels.LLAMA_3_1_70B_INSTRUCT_TURBO,
53
- TogetherAIModels.LLAMA_3_1_8B_INSTRUCT_TURBO,
54
- TogetherAIModels.MIXTRAL_8X22B_INSTRUCT,
55
- TogetherAIModels.QWEN_2_5_72B_INSTRUCT_TURBO,
56
- TogetherAIModels.DEEPSEEK_R1,
57
- TogetherAIModels.DEEPSEEK_V3,
58
- ];
59
- }
60
- formatProviderError(error) {
61
- const rules = [
62
- {
63
- match: (ctx) => ctx.statusCode === 401 ||
64
- /Invalid API key|Authentication/i.test(ctx.message),
65
- errorClass: AuthenticationError,
66
- message: "Invalid Together AI API key. Get one at https://api.together.xyz/settings/api-keys",
67
- },
68
- ...DEFAULT_ERROR_RULES,
69
- ];
70
- return classifyProviderError(error, rules, "together-ai", this.modelName);
71
- }
72
- }
@@ -1,22 +0,0 @@
1
- import type { AIProviderName } from "../constants/enums.js";
2
- import type { NeurolinkCredentials } from "../types/index.js";
3
- import { OpenAIChatCompletionsProvider } from "./openaiChatCompletionsBase.js";
4
- /**
5
- * xAI Grok Provider — direct HTTP, no AI SDK.
6
- *
7
- * OpenAI-compatible chat completions at api.x.ai/v1 (Grok family:
8
- * grok-3, grok-3-mini, grok-2-latest, grok-2-vision-latest, grok-beta).
9
- * All request/stream/tool-loop orchestration lives in
10
- * `OpenAIChatCompletionsProvider`; this class only declares configuration
11
- * and provider-specific error mapping.
12
- *
13
- * @see https://docs.x.ai/api
14
- */
15
- export declare class XaiProvider extends OpenAIChatCompletionsProvider {
16
- constructor(modelName?: string, sdk?: unknown, _region?: string, credentials?: NeurolinkCredentials["xai"]);
17
- protected getProviderName(): AIProviderName;
18
- protected getDefaultModel(): string;
19
- protected getFallbackModelName(): string;
20
- protected getFallbackModels(): string[];
21
- protected formatProviderError(error: unknown): Error;
22
- }
@@ -1,76 +0,0 @@
1
- import { XaiModels } from "../constants/enums.js";
2
- import { AuthenticationError, ProviderError } from "../types/index.js";
3
- import { logger } from "../utils/logger.js";
4
- import { redactUrlCredentials } from "../utils/logSanitize.js";
5
- import { classifyProviderError, DEFAULT_ERROR_RULES, } from "../utils/errorClassifier.js";
6
- import { createXaiConfig, getProviderModel, validateApiKey, } from "../utils/providerConfig.js";
7
- import { OpenAIChatCompletionsProvider } from "./openaiChatCompletionsBase.js";
8
- const XAI_DEFAULT_BASE_URL = "https://api.x.ai/v1";
9
- const getXaiApiKey = () => validateApiKey(createXaiConfig());
10
- const getDefaultXaiModel = () => getProviderModel("XAI_MODEL", XaiModels.GROK_3);
11
- /**
12
- * xAI Grok Provider — direct HTTP, no AI SDK.
13
- *
14
- * OpenAI-compatible chat completions at api.x.ai/v1 (Grok family:
15
- * grok-3, grok-3-mini, grok-2-latest, grok-2-vision-latest, grok-beta).
16
- * All request/stream/tool-loop orchestration lives in
17
- * `OpenAIChatCompletionsProvider`; this class only declares configuration
18
- * and provider-specific error mapping.
19
- *
20
- * @see https://docs.x.ai/api
21
- */
22
- export class XaiProvider extends OpenAIChatCompletionsProvider {
23
- constructor(modelName, sdk, _region, credentials) {
24
- // Trim the override before applying precedence. A blank/whitespace
25
- // `credentials.apiKey` must NOT bypass the env key — that would build a
26
- // client with an unusable bearer token and fail at request time.
27
- const overrideApiKey = credentials?.apiKey?.trim();
28
- const apiKey = overrideApiKey && overrideApiKey.length > 0
29
- ? overrideApiKey
30
- : getXaiApiKey();
31
- const baseURL = credentials?.baseURL?.trim() ||
32
- process.env.XAI_BASE_URL?.trim() ||
33
- XAI_DEFAULT_BASE_URL;
34
- super("xai", modelName, sdk, { baseURL, apiKey });
35
- logger.debug("xAI Provider initialized", {
36
- modelName: this.modelName,
37
- providerName: this.providerName,
38
- baseURL: redactUrlCredentials(this.config.baseURL),
39
- });
40
- }
41
- getProviderName() {
42
- return "xai";
43
- }
44
- getDefaultModel() {
45
- return getDefaultXaiModel();
46
- }
47
- getFallbackModelName() {
48
- return XaiModels.GROK_3_MINI;
49
- }
50
- getFallbackModels() {
51
- return [
52
- XaiModels.GROK_3,
53
- XaiModels.GROK_3_MINI,
54
- XaiModels.GROK_2_LATEST,
55
- XaiModels.GROK_2_VISION_LATEST,
56
- XaiModels.GROK_BETA,
57
- ];
58
- }
59
- formatProviderError(error) {
60
- const rules = [
61
- {
62
- match: (ctx) => ctx.statusCode === 401 ||
63
- /Invalid API key|Authentication|invalid_api_key/i.test(ctx.message),
64
- errorClass: AuthenticationError,
65
- message: "Invalid xAI API key. Please check your XAI_API_KEY environment variable. Get one at https://console.x.ai/",
66
- },
67
- {
68
- match: (ctx) => /insufficient_quota|quota exceeded/i.test(ctx.message),
69
- errorClass: ProviderError,
70
- message: "xAI account has insufficient quota. Top up at https://console.x.ai/",
71
- },
72
- ...DEFAULT_ERROR_RULES,
73
- ];
74
- return classifyProviderError(error, rules, "xai", this.modelName);
75
- }
76
- }