@juspay/neurolink 8.0.1 → 8.2.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.
- package/CHANGELOG.md +12 -0
- package/dist/cli/commands/setup-gcp.d.ts +1 -1
- package/dist/cli/commands/setup-gcp.js +6 -6
- package/dist/constants/enums.d.ts +1 -0
- package/dist/constants/enums.js +2 -0
- package/dist/lib/constants/enums.d.ts +1 -0
- package/dist/lib/constants/enums.js +2 -0
- package/dist/lib/providers/googleVertex.js +14 -5
- package/dist/providers/googleVertex.js +14 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [8.2.0](https://github.com/juspay/neurolink/compare/v8.1.0...v8.2.0) (2025-11-25)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
- **(vertex):** add global endpoint support for Gemini 3 Pro Preview ([5de2cbe](https://github.com/juspay/neurolink/commit/5de2cbe3f37ef3355f5d506c03ae4417f430724c))
|
|
6
|
+
|
|
7
|
+
## [8.1.0](https://github.com/juspay/neurolink/compare/v8.0.1...v8.1.0) (2025-11-20)
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
- **(vertex):** add gemini-3-pro-preview model support ([896dc73](https://github.com/juspay/neurolink/commit/896dc73f017cf2c5c3a1cdbfa1806027e6acad4a))
|
|
12
|
+
|
|
1
13
|
## [8.0.1](https://github.com/juspay/neurolink/compare/v8.0.0...v8.0.1) (2025-11-20)
|
|
2
14
|
|
|
3
15
|
### Bug Fixes
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* - Method 3: Individual Vars (GOOGLE_AUTH_CLIENT_EMAIL + GOOGLE_AUTH_PRIVATE_KEY)
|
|
9
9
|
*
|
|
10
10
|
* All methods require GOOGLE_VERTEX_PROJECT
|
|
11
|
-
* Optional: GOOGLE_VERTEX_LOCATION (defaults to 'us-
|
|
11
|
+
* Optional: GOOGLE_VERTEX_LOCATION (defaults to 'us-central1')
|
|
12
12
|
*/
|
|
13
13
|
interface GCPSetupArgv {
|
|
14
14
|
check?: boolean;
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* - Method 3: Individual Vars (GOOGLE_AUTH_CLIENT_EMAIL + GOOGLE_AUTH_PRIVATE_KEY)
|
|
9
9
|
*
|
|
10
10
|
* All methods require GOOGLE_VERTEX_PROJECT
|
|
11
|
-
* Optional: GOOGLE_VERTEX_LOCATION (defaults to 'us-
|
|
11
|
+
* Optional: GOOGLE_VERTEX_LOCATION (defaults to 'us-central1')
|
|
12
12
|
*/
|
|
13
13
|
import fs from "fs";
|
|
14
14
|
import path from "path";
|
|
@@ -52,7 +52,7 @@ export async function handleGCPSetup(argv) {
|
|
|
52
52
|
logger.always(` Location: ${process.env.GOOGLE_VERTEX_LOCATION}`);
|
|
53
53
|
}
|
|
54
54
|
else {
|
|
55
|
-
logger.always(` Location: us-
|
|
55
|
+
logger.always(` Location: us-central1 (default)`);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
return;
|
|
@@ -70,7 +70,7 @@ export async function handleGCPSetup(argv) {
|
|
|
70
70
|
logger.always(` Location: ${process.env.GOOGLE_VERTEX_LOCATION}`);
|
|
71
71
|
}
|
|
72
72
|
else {
|
|
73
|
-
logger.always(` Location: us-
|
|
73
|
+
logger.always(` Location: us-central1 (default)`);
|
|
74
74
|
}
|
|
75
75
|
const { reconfigure } = await inquirer.prompt([
|
|
76
76
|
{
|
|
@@ -100,7 +100,7 @@ export async function handleGCPSetup(argv) {
|
|
|
100
100
|
// Step 8: Success message
|
|
101
101
|
logger.always(chalk.green(`✅ Google Vertex setup complete with ${AUTH_METHOD_NAMES[selectedMethod]}`));
|
|
102
102
|
logger.always(` Project: ${config.project}`);
|
|
103
|
-
logger.always(` Location: ${config.location || "us-
|
|
103
|
+
logger.always(` Location: ${config.location || "us-central1"}`);
|
|
104
104
|
}
|
|
105
105
|
catch (error) {
|
|
106
106
|
logger.error(chalk.red("❌ GCP setup failed:"));
|
|
@@ -411,8 +411,8 @@ async function promptForMissingValues(method, status) {
|
|
|
411
411
|
{
|
|
412
412
|
type: "input",
|
|
413
413
|
name: "location",
|
|
414
|
-
message: "Enter your Google Vertex AI location:",
|
|
415
|
-
default: "us-
|
|
414
|
+
message: "Enter your Google Vertex AI location (or 'global' for global endpoint):",
|
|
415
|
+
default: "us-central1",
|
|
416
416
|
validate: (input) => {
|
|
417
417
|
if (!input.trim()) {
|
|
418
418
|
return "Location is required";
|
|
@@ -48,6 +48,7 @@ export declare enum VertexModels {
|
|
|
48
48
|
CLAUDE_3_SONNET = "claude-3-sonnet-20240229",
|
|
49
49
|
CLAUDE_3_OPUS = "claude-3-opus-20240229",
|
|
50
50
|
CLAUDE_3_HAIKU = "claude-3-haiku-20240307",
|
|
51
|
+
GEMINI_3_PRO_PREVIEW = "gemini-3-pro-preview",
|
|
51
52
|
GEMINI_2_5_PRO = "gemini-2.5-pro",
|
|
52
53
|
GEMINI_2_5_FLASH = "gemini-2.5-flash",
|
|
53
54
|
GEMINI_2_5_FLASH_LITE = "gemini-2.5-flash-lite",
|
package/dist/constants/enums.js
CHANGED
|
@@ -58,6 +58,8 @@ export var VertexModels;
|
|
|
58
58
|
VertexModels["CLAUDE_3_SONNET"] = "claude-3-sonnet-20240229";
|
|
59
59
|
VertexModels["CLAUDE_3_OPUS"] = "claude-3-opus-20240229";
|
|
60
60
|
VertexModels["CLAUDE_3_HAIKU"] = "claude-3-haiku-20240307";
|
|
61
|
+
// Gemini 3 Series (Preview)
|
|
62
|
+
VertexModels["GEMINI_3_PRO_PREVIEW"] = "gemini-3-pro-preview";
|
|
61
63
|
// Gemini 2.5 Series (Latest - 2025)
|
|
62
64
|
VertexModels["GEMINI_2_5_PRO"] = "gemini-2.5-pro";
|
|
63
65
|
VertexModels["GEMINI_2_5_FLASH"] = "gemini-2.5-flash";
|
|
@@ -48,6 +48,7 @@ export declare enum VertexModels {
|
|
|
48
48
|
CLAUDE_3_SONNET = "claude-3-sonnet-20240229",
|
|
49
49
|
CLAUDE_3_OPUS = "claude-3-opus-20240229",
|
|
50
50
|
CLAUDE_3_HAIKU = "claude-3-haiku-20240307",
|
|
51
|
+
GEMINI_3_PRO_PREVIEW = "gemini-3-pro-preview",
|
|
51
52
|
GEMINI_2_5_PRO = "gemini-2.5-pro",
|
|
52
53
|
GEMINI_2_5_FLASH = "gemini-2.5-flash",
|
|
53
54
|
GEMINI_2_5_FLASH_LITE = "gemini-2.5-flash-lite",
|
|
@@ -58,6 +58,8 @@ export var VertexModels;
|
|
|
58
58
|
VertexModels["CLAUDE_3_SONNET"] = "claude-3-sonnet-20240229";
|
|
59
59
|
VertexModels["CLAUDE_3_OPUS"] = "claude-3-opus-20240229";
|
|
60
60
|
VertexModels["CLAUDE_3_HAIKU"] = "claude-3-haiku-20240307";
|
|
61
|
+
// Gemini 3 Series (Preview)
|
|
62
|
+
VertexModels["GEMINI_3_PRO_PREVIEW"] = "gemini-3-pro-preview";
|
|
61
63
|
// Gemini 2.5 Series (Latest - 2025)
|
|
62
64
|
VertexModels["GEMINI_2_5_PRO"] = "gemini-2.5-pro";
|
|
63
65
|
VertexModels["GEMINI_2_5_FLASH"] = "gemini-2.5-flash";
|
|
@@ -49,11 +49,19 @@ const hasGoogleCredentials = () => {
|
|
|
49
49
|
};
|
|
50
50
|
// Enhanced Vertex settings creation with authentication fallback and proxy support
|
|
51
51
|
const createVertexSettings = async (region) => {
|
|
52
|
+
const location = region || getVertexLocation();
|
|
53
|
+
const project = getVertexProjectId();
|
|
52
54
|
const baseSettings = {
|
|
53
|
-
project
|
|
54
|
-
location
|
|
55
|
+
project,
|
|
56
|
+
location,
|
|
55
57
|
fetch: createProxyFetch(),
|
|
56
58
|
};
|
|
59
|
+
// Special handling for global endpoint
|
|
60
|
+
// Google's global endpoint uses aiplatform.googleapis.com (no region prefix)
|
|
61
|
+
// instead of {region}-aiplatform.googleapis.com
|
|
62
|
+
if (location === "global") {
|
|
63
|
+
baseSettings.baseURL = `https://aiplatform.googleapis.com/v1/projects/${project}/locations/global/publishers/google`;
|
|
64
|
+
}
|
|
57
65
|
// 🎯 OPTION 2: Create credentials file from environment variables at runtime
|
|
58
66
|
// This solves the problem where GOOGLE_APPLICATION_CREDENTIALS exists in ZSHRC locally
|
|
59
67
|
// but the file doesn't exist on production servers
|
|
@@ -1136,10 +1144,10 @@ export class GoogleVertexProvider extends BaseProvider {
|
|
|
1136
1144
|
process.env.GOOGLE_VERTEX_LOCATION ||
|
|
1137
1145
|
"us-central1";
|
|
1138
1146
|
result.region = region;
|
|
1139
|
-
// Validate region format
|
|
1140
|
-
const regionPattern = /^[a-z]+-[a-z]+\d
|
|
1147
|
+
// Validate region format (regional format like us-central1 or global endpoint)
|
|
1148
|
+
const regionPattern = /^([a-z]+-[a-z]+\d+|global)$/;
|
|
1141
1149
|
if (!regionPattern.test(region)) {
|
|
1142
|
-
result.issues.push(`Invalid region format: ${region}`);
|
|
1150
|
+
result.issues.push(`Invalid region format: ${region} (expected format: 'us-central1' or 'global')`);
|
|
1143
1151
|
result.isValid = false;
|
|
1144
1152
|
}
|
|
1145
1153
|
return result;
|
|
@@ -1398,6 +1406,7 @@ export class GoogleVertexProvider extends BaseProvider {
|
|
|
1398
1406
|
getModelSuggestions(requestedModel) {
|
|
1399
1407
|
const availableModels = {
|
|
1400
1408
|
google: [
|
|
1409
|
+
"gemini-3-pro-preview",
|
|
1401
1410
|
"gemini-2.5-pro",
|
|
1402
1411
|
"gemini-2.5-flash",
|
|
1403
1412
|
"gemini-2.5-flash-lite",
|
|
@@ -49,11 +49,19 @@ const hasGoogleCredentials = () => {
|
|
|
49
49
|
};
|
|
50
50
|
// Enhanced Vertex settings creation with authentication fallback and proxy support
|
|
51
51
|
const createVertexSettings = async (region) => {
|
|
52
|
+
const location = region || getVertexLocation();
|
|
53
|
+
const project = getVertexProjectId();
|
|
52
54
|
const baseSettings = {
|
|
53
|
-
project
|
|
54
|
-
location
|
|
55
|
+
project,
|
|
56
|
+
location,
|
|
55
57
|
fetch: createProxyFetch(),
|
|
56
58
|
};
|
|
59
|
+
// Special handling for global endpoint
|
|
60
|
+
// Google's global endpoint uses aiplatform.googleapis.com (no region prefix)
|
|
61
|
+
// instead of {region}-aiplatform.googleapis.com
|
|
62
|
+
if (location === "global") {
|
|
63
|
+
baseSettings.baseURL = `https://aiplatform.googleapis.com/v1/projects/${project}/locations/global/publishers/google`;
|
|
64
|
+
}
|
|
57
65
|
// 🎯 OPTION 2: Create credentials file from environment variables at runtime
|
|
58
66
|
// This solves the problem where GOOGLE_APPLICATION_CREDENTIALS exists in ZSHRC locally
|
|
59
67
|
// but the file doesn't exist on production servers
|
|
@@ -1136,10 +1144,10 @@ export class GoogleVertexProvider extends BaseProvider {
|
|
|
1136
1144
|
process.env.GOOGLE_VERTEX_LOCATION ||
|
|
1137
1145
|
"us-central1";
|
|
1138
1146
|
result.region = region;
|
|
1139
|
-
// Validate region format
|
|
1140
|
-
const regionPattern = /^[a-z]+-[a-z]+\d
|
|
1147
|
+
// Validate region format (regional format like us-central1 or global endpoint)
|
|
1148
|
+
const regionPattern = /^([a-z]+-[a-z]+\d+|global)$/;
|
|
1141
1149
|
if (!regionPattern.test(region)) {
|
|
1142
|
-
result.issues.push(`Invalid region format: ${region}`);
|
|
1150
|
+
result.issues.push(`Invalid region format: ${region} (expected format: 'us-central1' or 'global')`);
|
|
1143
1151
|
result.isValid = false;
|
|
1144
1152
|
}
|
|
1145
1153
|
return result;
|
|
@@ -1398,6 +1406,7 @@ export class GoogleVertexProvider extends BaseProvider {
|
|
|
1398
1406
|
getModelSuggestions(requestedModel) {
|
|
1399
1407
|
const availableModels = {
|
|
1400
1408
|
google: [
|
|
1409
|
+
"gemini-3-pro-preview",
|
|
1401
1410
|
"gemini-2.5-pro",
|
|
1402
1411
|
"gemini-2.5-flash",
|
|
1403
1412
|
"gemini-2.5-flash-lite",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@juspay/neurolink",
|
|
3
|
-
"version": "8.0
|
|
3
|
+
"version": "8.2.0",
|
|
4
4
|
"description": "Universal AI Development Platform with working MCP integration, multi-provider support, and professional CLI. Built-in tools operational, 58+ external MCP servers discoverable. Connect to filesystem, GitHub, database operations, and more. Build, test, and deploy AI applications with 9 major providers: OpenAI, Anthropic, Google AI, AWS Bedrock, Azure, Hugging Face, Ollama, and Mistral AI.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Juspay Technologies",
|