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.
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=setup.d.ts.map
@@ -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.1",
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",