vertex-ai-proxy 1.0.1 → 1.0.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.
- package/dist/setup.d.ts +3 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +104 -0
- package/dist/setup.js.map +1 -0
- package/package.json +3 -2
package/dist/setup.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":""}
|
package/dist/setup.js
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { execSync } from 'child_process';
|
|
3
|
+
import { writeFileSync, existsSync, mkdirSync } from 'fs';
|
|
4
|
+
import { homedir } from 'os';
|
|
5
|
+
import { join } from 'path';
|
|
6
|
+
const args = process.argv.slice(2);
|
|
7
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
8
|
+
console.log(`
|
|
9
|
+
Vertex AI Proxy Setup - Install as systemd service
|
|
10
|
+
|
|
11
|
+
Usage: vertex-ai-proxy-setup [options]
|
|
12
|
+
|
|
13
|
+
Options:
|
|
14
|
+
--project=<id> Google Cloud project ID (required)
|
|
15
|
+
--port=<port> Server port (default: 8001)
|
|
16
|
+
--regions=<list> Claude regions (default: us-east5,us-east1,europe-west1)
|
|
17
|
+
--uninstall Remove the service
|
|
18
|
+
-h, --help Show help
|
|
19
|
+
|
|
20
|
+
Examples:
|
|
21
|
+
vertex-ai-proxy-setup --project=my-project
|
|
22
|
+
vertex-ai-proxy-setup --project=my-project --port=8080
|
|
23
|
+
vertex-ai-proxy-setup --uninstall
|
|
24
|
+
`);
|
|
25
|
+
process.exit(0);
|
|
26
|
+
}
|
|
27
|
+
const user = process.env.USER || execSync('whoami').toString().trim();
|
|
28
|
+
const home = homedir();
|
|
29
|
+
const systemdDir = join(home, '.config/systemd/user');
|
|
30
|
+
const servicePath = join(systemdDir, 'vertex-ai-proxy.service');
|
|
31
|
+
if (args.includes('--uninstall')) {
|
|
32
|
+
try {
|
|
33
|
+
execSync('systemctl --user stop vertex-ai-proxy 2>/dev/null || true', { stdio: 'inherit' });
|
|
34
|
+
execSync('systemctl --user disable vertex-ai-proxy 2>/dev/null || true', { stdio: 'inherit' });
|
|
35
|
+
execSync(`rm -f ${servicePath}`, { stdio: 'inherit' });
|
|
36
|
+
execSync('systemctl --user daemon-reload', { stdio: 'inherit' });
|
|
37
|
+
console.log('✅ Service uninstalled');
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
console.error('Uninstall failed:', e);
|
|
41
|
+
}
|
|
42
|
+
process.exit(0);
|
|
43
|
+
}
|
|
44
|
+
const projectId = args.find(a => a.startsWith('--project='))?.split('=')[1]
|
|
45
|
+
|| process.env.PROJECT_ID
|
|
46
|
+
|| process.env.GOOGLE_CLOUD_PROJECT;
|
|
47
|
+
if (!projectId) {
|
|
48
|
+
console.error('Error: --project=<id> or PROJECT_ID required');
|
|
49
|
+
console.error('Run: vertex-ai-proxy-setup --project=your-gcp-project');
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
const port = args.find(a => a.startsWith('--port='))?.split('=')[1] || '8001';
|
|
53
|
+
const regions = args.find(a => a.startsWith('--regions='))?.split('=')[1] || 'us-east5,us-east1,europe-west1';
|
|
54
|
+
let nodePath, vapPath;
|
|
55
|
+
try {
|
|
56
|
+
nodePath = execSync('which node').toString().trim();
|
|
57
|
+
vapPath = execSync('which vertex-ai-proxy').toString().trim();
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
console.error('Error: vertex-ai-proxy not found in PATH');
|
|
61
|
+
console.error('Install with: npm install -g vertex-ai-proxy');
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
const serviceContent = `[Unit]
|
|
65
|
+
Description=Vertex AI Proxy - OpenAI-compatible API for Claude/Gemini
|
|
66
|
+
After=network.target
|
|
67
|
+
|
|
68
|
+
[Service]
|
|
69
|
+
Type=simple
|
|
70
|
+
Environment=PROJECT_ID=${projectId}
|
|
71
|
+
Environment=PORT=${port}
|
|
72
|
+
Environment=CLAUDE_REGIONS=${regions}
|
|
73
|
+
Environment=ENABLE_METRICS=true
|
|
74
|
+
Environment=ENABLE_REQUEST_LOGGING=false
|
|
75
|
+
ExecStart=${nodePath} ${vapPath}
|
|
76
|
+
Restart=on-failure
|
|
77
|
+
RestartSec=5
|
|
78
|
+
|
|
79
|
+
[Install]
|
|
80
|
+
WantedBy=default.target
|
|
81
|
+
`;
|
|
82
|
+
if (!existsSync(systemdDir)) {
|
|
83
|
+
mkdirSync(systemdDir, { recursive: true });
|
|
84
|
+
}
|
|
85
|
+
writeFileSync(servicePath, serviceContent);
|
|
86
|
+
console.log(`Created: ${servicePath}`);
|
|
87
|
+
try {
|
|
88
|
+
execSync('systemctl --user daemon-reload', { stdio: 'inherit' });
|
|
89
|
+
execSync('systemctl --user enable vertex-ai-proxy', { stdio: 'inherit' });
|
|
90
|
+
execSync('systemctl --user start vertex-ai-proxy', { stdio: 'inherit' });
|
|
91
|
+
console.log('\n✅ Vertex AI Proxy installed and started!');
|
|
92
|
+
console.log(` Port: ${port}`);
|
|
93
|
+
console.log(` Project: ${projectId}`);
|
|
94
|
+
console.log(` Regions: ${regions}`);
|
|
95
|
+
console.log('\nCommands:');
|
|
96
|
+
console.log(' systemctl --user status vertex-ai-proxy');
|
|
97
|
+
console.log(' systemctl --user restart vertex-ai-proxy');
|
|
98
|
+
console.log(' journalctl --user -u vertex-ai-proxy -f');
|
|
99
|
+
}
|
|
100
|
+
catch (e) {
|
|
101
|
+
console.error('Failed to start service:', e.message);
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vertex-ai-proxy",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "OpenAI-compatible proxy for Google Vertex AI (Claude + Gemini) with automatic failover, retries, and prompt caching",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"bin": {
|
|
8
8
|
"vertex-ai-proxy": "dist/cli.js",
|
|
9
|
-
"vap": "dist/cli.js"
|
|
9
|
+
"vap": "dist/cli.js",
|
|
10
|
+
"vertex-ai-proxy-setup": "dist/setup.js"
|
|
10
11
|
},
|
|
11
12
|
"scripts": {
|
|
12
13
|
"build": "tsc",
|