free-antigravity-cli 1.0.3 → 1.0.5

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,33 @@
1
+ name: Test Suite
2
+
3
+ on:
4
+ push:
5
+ branches: [ master, main ]
6
+ pull_request:
7
+ branches: [ master, main ]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ${{ matrix.os }}
12
+ strategy:
13
+ matrix:
14
+ os: [ubuntu-latest, macos-latest, windows-latest]
15
+ node-version: [18.x, 20.x]
16
+
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+
20
+ - name: Use Node.js ${{ matrix.node-version }}
21
+ uses: actions/setup-node@v4
22
+ with:
23
+ node-version: ${{ matrix.node-version }}
24
+ cache: 'npm'
25
+
26
+ - name: Install dependencies
27
+ run: npm install
28
+
29
+ - name: Run tests
30
+ run: npm test
31
+
32
+ - name: Run build
33
+ run: npm run build
package/README.md CHANGED
@@ -1,8 +1,31 @@
1
1
  # Free Antigravity CLI
2
2
 
3
- **Open Source Community Edition** - Wraps the official [Antigravity CLI](https://antigravity.google/cli) (`agy`) with custom AI model support.
3
+ [![npm version](https://img.shields.io/npm/v/free-antigravity-cli.svg?style=flat-edge)](https://www.npmjs.com/package/free-antigravity-cli)
4
+ [![license](https://img.shields.io/github/license/vahapogut/free-antigravity-cli.svg?style=flat-edge)](LICENSE)
5
+ [![GitHub stars](https://img.shields.io/github/stars/vahapogut/free-antigravity-cli.svg?style=flat-edge)](https://github.com/vahapogut/free-antigravity-cli/stargazers)
4
6
 
5
- Use **OpenAI, Anthropic, Ollama, OpenRouter, Google AI Studio, and any OpenAI-compatible provider** alongside Gemini models -- all through the native `agy` CLI experience.
7
+ **Open Source Community Edition** Wraps the official [Antigravity CLI](https://antigravity.google/cli) (`agy`) with custom AI model support.
8
+
9
+ Use **OpenAI, Anthropic, Ollama, OpenRouter, Google AI Studio, and any OpenAI-compatible provider** alongside Gemini models — all through the native `agy` CLI experience.
10
+
11
+ ---
12
+
13
+ ## Quick Links
14
+
15
+ * [How It Works](#how-it-works)
16
+ * [Quick Start](#quick-start)
17
+ * [Prerequisites](#prerequisites)
18
+ * [Commands](#commands)
19
+ * [Supported Providers](#supported-providers)
20
+ * [Installation](#installation)
21
+ * [Configuration](#configuration)
22
+ * [Technical Details](#technical-details)
23
+ * [Testing](#testing)
24
+ * [Comparison](#comparison)
25
+ * [Contributing](#contributing)
26
+ * [License](#license)
27
+
28
+ ---
6
29
 
7
30
  ## How It Works
8
31
 
@@ -17,6 +40,8 @@ antigravity
17
40
 
18
41
  The CLI is a thin wrapper: it starts a local HTTP proxy that intercepts `fetchAvailableModels` API calls, injects your custom model definitions, then hands off to the official `agy` CLI. You get the full native Antigravity CLI experience plus custom models.
19
42
 
43
+ ---
44
+
20
45
  ## Quick Start
21
46
 
22
47
  ```bash
@@ -33,10 +58,21 @@ antigravity models add
33
58
  antigravity
34
59
  ```
35
60
 
61
+ ---
62
+
36
63
  ## Prerequisites
37
64
 
38
- - **Node.js** >= 18
39
- - **Official Antigravity CLI** (`agy`) installed at `%LOCALAPPDATA%\agy\bin\agy.exe`
65
+ * **Node.js** >= 18
66
+ * **Official Antigravity CLI** (`agy`) installed at one of the default locations:
67
+ * **Windows**: `%LOCALAPPDATA%\agy\bin\agy.exe`
68
+ * **macOS**: `~/Library/Application Support/agy/bin/agy` or `~/.local/share/agy/bin/agy`
69
+ * **Linux**: `~/.local/share/agy/bin/agy`
70
+ * **Custom Binary Path**: If you installed `agy` in a custom location, you can set the path using the `AGY_BIN` environment variable:
71
+ ```bash
72
+ export AGY_BIN="/path/to/custom/agy"
73
+ ```
74
+
75
+ ---
40
76
 
41
77
  ## Commands
42
78
 
@@ -52,18 +88,25 @@ antigravity version Show version
52
88
  antigravity help Show this help
53
89
  ```
54
90
 
91
+ ### Options
92
+ * **`--verbose` / `--debug`**: Can be passed to any command to enable proxy request/response logging for troubleshooting.
93
+
55
94
  Any arguments not listed above are passed directly to `agy` CLI.
56
95
 
96
+ ---
97
+
57
98
  ## Supported Providers
58
99
 
59
100
  | Provider | CLI Value | Auth |
60
101
  |---|---|---|
61
- | OpenAI | `openai` | API Key (`sk-...`) |
62
- | Anthropic | `anthropic` | API Key (`sk-ant-...`) |
63
- | Google AI Studio | `google` | API Key (`AIza...`) |
64
- | Ollama (Local) | `ollama` | None |
65
- | OpenRouter | `openrouter` | API Key |
66
- | Custom (OpenAI-compatible) | `custom` | API Key |
102
+ | **OpenAI** | `openai` | API Key (`sk-...`) |
103
+ | **Anthropic** | `anthropic` | API Key (`sk-ant-...`) |
104
+ | **Google AI Studio** | `google` | API Key (`AIza...`) |
105
+ | **Ollama (Local)** | `ollama` | None |
106
+ | **OpenRouter** | `openrouter` | API Key |
107
+ | **Custom (OpenAI-compatible)** | `custom` | API Key |
108
+
109
+ ---
67
110
 
68
111
  ## Installation
69
112
 
@@ -85,6 +128,8 @@ npm link
85
128
  antigravity
86
129
  ```
87
130
 
131
+ ---
132
+
88
133
  ## Configuration
89
134
 
90
135
  Models are stored in `~/.free-antigravity/models.json`:
@@ -128,11 +173,13 @@ antigravity models import
128
173
 
129
174
  > **NOTE:** API keys from the desktop app are encrypted with Electron's `safeStorage` and cannot be decrypted by the CLI. After importing, re-enter your API keys via `antigravity models add`.
130
175
 
176
+ ---
177
+
131
178
  ## Technical Details
132
179
 
133
180
  ### Binary Patching
134
181
 
135
- On first run, the CLI automatically patches `agy.exe` to replace the hardcoded Google API URL:
182
+ On first run, the CLI automatically patches `agy` to replace the hardcoded Google API URL:
136
183
 
137
184
  ```
138
185
  https://daily-cloudcode-pa.googleapis.com
@@ -141,11 +188,14 @@ https://daily-cloudcode-pa.googleapis.com
141
188
 
142
189
  This forces `agy` to route its `fetchAvailableModels` calls through the local proxy, where custom model definitions are injected.
143
190
 
144
- The original binary is backed up at `agy.exe.bak`.
191
+ The original binary is backed up at `agy.exe.bak` (or `agy.bak` on macOS/Linux).
192
+
193
+ #### macOS Code Signing and Quarantine
194
+ On macOS, patching the binary invalidates its code signature. The CLI automatically runs ad-hoc self-signing via `codesign` and clears macOS quarantine flags via `xattr` to ensure the patched binary runs without OS security alerts.
145
195
 
146
196
  ### Proxy Server
147
197
 
148
- The proxy runs on `http://127.0.0.1:50999` (falls back to dynamic port if busy) and:
198
+ The proxy runs on `http://127.0.0.1:50999` and:
149
199
 
150
200
  1. **Intercepts `fetchAvailableModels`**: Merges custom model definitions into the response
151
201
  2. **Intercepts `generateContent`/`streamGenerateContent`**: Routes custom model requests to external APIs
@@ -156,34 +206,53 @@ The proxy runs on `http://127.0.0.1:50999` (falls back to dynamic port if busy)
156
206
 
157
207
  | Provider | Request Translation | Response Translation | Streaming |
158
208
  |---|---|---|---|
159
- | OpenAI | Gemini → Chat Completions | Chat Completions → Gemini | SSE delta → Gemini chunks |
160
- | Anthropic | Gemini → Messages API | Messages → Gemini | SSE events → Gemini chunks |
161
- | Ollama | Gemini → OpenAI-compatible | OpenAI → Gemini | Same as OpenAI |
162
- | Google AI Studio | Passthrough (native Gemini) | Passthrough | SSE chunks |
163
- | OpenRouter | Same as OpenAI | Same as OpenAI | Same as OpenAI |
164
- | Custom | Same as OpenAI | Same as OpenAI | Same as OpenAI |
209
+ | **OpenAI** | Gemini → Chat Completions | Chat Completions → Gemini | SSE delta → Gemini chunks |
210
+ | **Anthropic** | Gemini → Messages API | Messages → Gemini | SSE events → Gemini chunks |
211
+ | **Ollama** | Gemini → OpenAI-compatible | OpenAI → Gemini | Same as OpenAI |
212
+ | **Google AI Studio** | Passthrough (native Gemini) | Passthrough | SSE chunks |
213
+ | **OpenRouter** | Same as OpenAI | Same as OpenAI | Same as OpenAI |
214
+ | **Custom** | Same as OpenAI | Same as OpenAI | Same as OpenAI |
215
+
216
+ ---
217
+
218
+ ## Testing
219
+
220
+ A comprehensive unit and integration test suite is provided using Jest to verify translation mechanics and proxy interception.
221
+
222
+ ```bash
223
+ # Run tests
224
+ npm test
225
+ ```
226
+
227
+ ---
165
228
 
166
229
  ## Comparison
167
230
 
168
231
  | Feature | Free Antigravity CLI | Google agy CLI |
169
232
  |---|---|---|
170
- | Open Source | Yes (Apache 2.0) | No |
171
- | Custom Models | Yes | No |
172
- | OpenAI / Anthropic / Ollama | Yes | No |
173
- | Gemini | Yes | Yes |
174
- | All agy Features | Yes (wraps agy) | Yes |
175
- | Size | ~90 KB | 151 MB |
176
- | npm Install | Yes | No |
177
- | Auto-updates | Via npm | Built-in |
233
+ | **Open Source** | Yes (Apache 2.0) | No |
234
+ | **Custom Models** | Yes | No |
235
+ | **OpenAI / Anthropic / Ollama** | Yes | No |
236
+ | **Gemini** | Yes | Yes |
237
+ | **All agy Features** | Yes (wraps agy) | Yes |
238
+ | **Size** | ~90 KB | 151 MB |
239
+ | **npm Install** | Yes | No |
240
+ | **Auto-updates** | Via npm | Built-in |
241
+
242
+ ---
178
243
 
179
244
  ## Contributing
180
245
 
181
246
  Pull requests welcome at [github.com/vahapogut/free-antigravity-cli](https://github.com/vahapogut/free-antigravity-cli).
182
247
 
248
+ ---
249
+
183
250
  ## License
184
251
 
185
252
  Apache License 2.0 - see [LICENSE](LICENSE).
186
253
 
254
+ ---
255
+
187
256
  ## Author
188
257
 
189
- **Vahap Ogut** - [GitHub](https://github.com/vahapogut)
258
+ **Developed By [Abdulvahap Ogut](https://www.linkedin.com/in/abdulvahap-ogut-343992398/)**
package/dist/cli.js CHANGED
@@ -44,15 +44,48 @@ const fs = __importStar(require("fs"));
44
44
  const os = __importStar(require("os"));
45
45
  const config_1 = require("./config");
46
46
  const proxy_1 = require("./proxy");
47
+ const crypto_1 = require("./crypto");
48
+ function searchInPath() {
49
+ try {
50
+ const cmd = os.platform() === 'win32' ? 'where agy' : 'which agy';
51
+ const out = (0, child_process_1.execSync)(cmd, { stdio: 'pipe' }).toString().trim().split('\r\n')[0].split('\n')[0];
52
+ if (out && fs.existsSync(out))
53
+ return out;
54
+ }
55
+ catch { /* ignore */ }
56
+ return null;
57
+ }
47
58
  function getAgyBin() {
59
+ // 1. User Override
60
+ if (process.env.AGY_BIN && fs.existsSync(process.env.AGY_BIN)) {
61
+ return process.env.AGY_BIN;
62
+ }
63
+ // 2. PATH Search
64
+ const pathBin = searchInPath();
65
+ if (pathBin)
66
+ return pathBin;
67
+ // 3. OS-specific defaults
68
+ const isWin = os.platform() === 'win32';
69
+ const binName = isWin ? 'agy.exe' : 'agy';
48
70
  const locations = [
49
- path.join(os.homedir(), 'AppData', 'Local', 'agy', 'bin', 'agy.exe'),
71
+ // Windows default
72
+ path.join(os.homedir(), 'AppData', 'Local', 'agy', 'bin', binName),
73
+ // macOS default Application Support
74
+ path.join(os.homedir(), 'Library', 'Application Support', 'agy', 'bin', binName),
75
+ // macOS/Linux local share
76
+ path.join(os.homedir(), '.local', 'share', 'agy', 'bin', binName),
77
+ // macOS/Linux local bin fallback
78
+ path.join(os.homedir(), '.local', 'bin', binName),
50
79
  ];
51
80
  for (const loc of locations) {
52
81
  if (fs.existsSync(loc))
53
82
  return loc;
54
83
  }
55
- return path.join(os.homedir(), 'AppData', 'Local', 'agy', 'bin', 'agy.exe');
84
+ // 4. Default fallback based on platform
85
+ if (isWin) {
86
+ return path.join(os.homedir(), 'AppData', 'Local', 'agy', 'bin', 'agy.exe');
87
+ }
88
+ return path.join(os.homedir(), '.local', 'share', 'agy', 'bin', 'agy');
56
89
  }
57
90
  async function ensureProxy() {
58
91
  try {
@@ -62,6 +95,17 @@ async function ensureProxy() {
62
95
  return (0, proxy_1.getProxyPort)() || 50999;
63
96
  }
64
97
  }
98
+ function getVersion() {
99
+ try {
100
+ const pkgPath = path.join(__dirname, '..', 'package.json');
101
+ if (fs.existsSync(pkgPath)) {
102
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
103
+ return pkg.version || '1.0.4';
104
+ }
105
+ }
106
+ catch { /* ignore */ }
107
+ return '1.0.4';
108
+ }
65
109
  function ensureAgyPatched(binPath) {
66
110
  if (!fs.existsSync(binPath))
67
111
  return;
@@ -74,9 +118,25 @@ function ensureAgyPatched(binPath) {
74
118
  const idx = buf.indexOf(original);
75
119
  if (idx === -1)
76
120
  return;
121
+ try {
122
+ (0, crypto_1.backupFile)(binPath);
123
+ }
124
+ catch { /* ignore backup failure */ }
77
125
  replacement.copy(buf, idx);
78
126
  fs.writeFileSync(binPath, buf);
79
127
  console.log('[ok] agy binary patched for custom model support.');
128
+ // macOS platform specific adjustments
129
+ if (os.platform() === 'darwin') {
130
+ try {
131
+ console.log('Re-signing patched binary and removing macOS quarantine flags...');
132
+ (0, child_process_1.execSync)(`codesign --force --sign - "${binPath}"`, { stdio: 'ignore' });
133
+ (0, child_process_1.execSync)(`xattr -d com.apple.quarantine "${binPath}"`, { stdio: 'ignore' });
134
+ console.log('[ok] macOS binary prepared successfully.');
135
+ }
136
+ catch (err) {
137
+ console.warn('[warning] Failed to re-sign or remove quarantine flags from agy. It may fail to execute.');
138
+ }
139
+ }
80
140
  }
81
141
  catch { /* ignore */ }
82
142
  }
@@ -84,8 +144,11 @@ async function startAndDelegate(agyArgs) {
84
144
  // agy starts interactive mode by default when no flags are given
85
145
  const agyBin = getAgyBin();
86
146
  if (!fs.existsSync(agyBin)) {
87
- console.error(`\nagy CLI not found at: ${agyBin}`);
88
- console.error('Install: curl -fsSL https://antigravity.google/cli/install.cmd | cmd');
147
+ console.error(`\n[Error] agy CLI not found!`);
148
+ console.error(`Search location checked: ${agyBin}`);
149
+ console.error('\nPlease install the official Antigravity CLI first.');
150
+ console.error('If installed in a custom location, set the AGY_BIN environment variable:');
151
+ console.error(' export AGY_BIN=/path/to/agy\n');
89
152
  process.exit(1);
90
153
  }
91
154
  ensureAgyPatched(agyBin);
@@ -97,7 +160,13 @@ async function startAndDelegate(agyArgs) {
97
160
  process.on('SIGINT', async () => { child.kill(); await (0, proxy_1.stopProxy)(); process.exit(0); });
98
161
  }
99
162
  async function main() {
100
- const args = process.argv.slice(2);
163
+ let args = process.argv.slice(2);
164
+ // Parse and strip verbose/debug flags
165
+ const isDebug = args.includes('--verbose') || args.includes('--debug') || process.env.ANTIGRAVITY_DEBUG === 'true';
166
+ if (isDebug) {
167
+ process.env.ANTIGRAVITY_DEBUG = 'true';
168
+ }
169
+ args = args.filter(a => a !== '--verbose' && a !== '--debug');
101
170
  const cmd = args[0];
102
171
  // --- Model management ---
103
172
  if (cmd === 'models') {
@@ -189,11 +258,11 @@ async function main() {
189
258
  return;
190
259
  }
191
260
  if (cmd === 'version' || cmd === '--version' || cmd === '-V' || cmd === '-v') {
192
- console.log('Free Antigravity CLI v1.0.0 (Community Edition)');
261
+ console.log(`Free Antigravity CLI v${getVersion()} (Community Edition)`);
193
262
  return;
194
263
  }
195
264
  if (cmd === 'help' || cmd === '--help' || cmd === '-h') {
196
- console.log(`Free Antigravity CLI v1.0.0 - Community Edition
265
+ console.log(`Free Antigravity CLI v${getVersion()} - Community Edition
197
266
  Wraps the official agy CLI with custom model support.
198
267
 
199
268
  Commands:
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,KAAK,KAAK,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAE3D,eAAO,MAAM,GAAG;UACO,KAAK;UACJ,KAAK;WACH,KAAK;WACL,KAAK;CAC9B,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,KAAK,KAAK,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAI3D,eAAO,MAAM,GAAG;UAGR,KAAK;UAIL,KAAK;WAIL,KAAK;WAGL,KAAK;CACZ,CAAC"}
package/dist/logger.js CHANGED
@@ -1,10 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.log = void 0;
4
+ const isDebug = () => process.env.ANTIGRAVITY_DEBUG === 'true';
4
5
  exports.log = {
5
- info: console.log,
6
- warn: console.warn,
7
- error: console.error,
8
- debug: console.debug,
6
+ info: ((message, ...args) => {
7
+ if (isDebug())
8
+ console.log(`[INFO] ${message}`, ...args);
9
+ }),
10
+ warn: ((message, ...args) => {
11
+ // Warnings are kept visible but styled
12
+ console.warn(`[WARN] ${message}`, ...args);
13
+ }),
14
+ error: ((message, ...args) => {
15
+ // Errors are always critical and visible
16
+ console.error(`[ERROR] ${message}`, ...args);
17
+ }),
18
+ debug: ((message, ...args) => {
19
+ if (isDebug())
20
+ console.debug(`[DEBUG] ${message}`, ...args);
21
+ }),
9
22
  };
10
23
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;AAEa,QAAA,GAAG,GAAG;IACjB,IAAI,EAAE,OAAO,CAAC,GAAY;IAC1B,IAAI,EAAE,OAAO,CAAC,IAAa;IAC3B,KAAK,EAAE,OAAO,CAAC,KAAc;IAC7B,KAAK,EAAE,OAAO,CAAC,KAAc;CAC9B,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;AAEA,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM,CAAC;AAElD,QAAA,GAAG,GAAG;IACjB,IAAI,EAAE,CAAC,CAAC,OAAe,EAAE,GAAG,IAAe,EAAE,EAAE;QAC7C,IAAI,OAAO,EAAE;YAAE,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC,CAAU;IACX,IAAI,EAAE,CAAC,CAAC,OAAe,EAAE,GAAG,IAAe,EAAE,EAAE;QAC7C,uCAAuC;QACvC,OAAO,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAU;IACX,KAAK,EAAE,CAAC,CAAC,OAAe,EAAE,GAAG,IAAe,EAAE,EAAE;QAC9C,yCAAyC;QACzC,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAU;IACX,KAAK,EAAE,CAAC,CAAC,OAAe,EAAE,GAAG,IAAe,EAAE,EAAE;QAC9C,IAAI,OAAO,EAAE;YAAE,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9D,CAAC,CAAU;CACZ,CAAC"}
package/dist/proxy.d.ts CHANGED
@@ -16,7 +16,7 @@ export declare function generateModelPlaceholderId(model: CustomModel): string;
16
16
  export declare function getCustomModelsPath(): string;
17
17
  export declare function toSlug(model: CustomModel): string;
18
18
  export declare function loadCustomModels(): CustomModel[];
19
- export declare function startProxy(): Promise<number>;
19
+ export declare function startProxy(port?: number): Promise<number>;
20
20
  export declare function stopProxy(): Promise<void>;
21
21
  export declare function getProxyPort(): number;
22
22
  //# sourceMappingURL=proxy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA6BD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CASrE;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CASjD;AAID,wBAAgB,gBAAgB,IAAI,WAAW,EAAE,CAyDhD;AAkZD,wBAAgB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAmB5C;AAED,wBAAgB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAKzC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAAsB"}
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA6BD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CASrE;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CASjD;AAID,wBAAgB,gBAAgB,IAAI,WAAW,EAAE,CAyDhD;AAkZD,wBAAgB,UAAU,CAAC,IAAI,SAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBxD;AAED,wBAAgB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAKzC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAAsB"}
package/dist/proxy.js CHANGED
@@ -539,22 +539,20 @@ function handleRequest(req, res) {
539
539
  });
540
540
  }
541
541
  // --- Server Start/Stop ---
542
- function startProxy() {
542
+ function startProxy(port = 50999) {
543
543
  return new Promise((resolve, reject) => {
544
544
  server = http.createServer(handleRequest);
545
- server.listen(50999, '127.0.0.1', () => {
545
+ server.listen(port, '127.0.0.1', () => {
546
546
  proxyPort = server.address().port;
547
547
  logger_1.log.info(`[Proxy] Listening on http://127.0.0.1:${proxyPort}`);
548
548
  resolve(proxyPort);
549
549
  });
550
550
  server.on('error', (err) => {
551
551
  if (err.code === 'EADDRINUSE') {
552
- logger_1.log.warn('[Proxy] Port 50999 in use, trying dynamic...');
553
- server.listen(0, '127.0.0.1', () => {
554
- proxyPort = server.address().port;
555
- logger_1.log.info(`[Proxy] Listening on http://127.0.0.1:${proxyPort}`);
556
- resolve(proxyPort);
557
- });
552
+ logger_1.log.error(`[Proxy] Port ${port} is already in use by another application.`);
553
+ console.error(`\n[Error] Port ${port} is already in use.`);
554
+ console.error(`Please close the process occupying port ${port} and try again.\n`);
555
+ process.exit(1);
558
556
  }
559
557
  else {
560
558
  reject(err);
package/dist/proxy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
package/jest.config.js ADDED
@@ -0,0 +1,6 @@
1
+ module.exports = {
2
+ preset: 'ts-jest',
3
+ testEnvironment: 'node',
4
+ testMatch: ['**/tests/**/*.test.ts'],
5
+ verbose: true,
6
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "free-antigravity-cli",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "Open-source community CLI for Antigravity - supports custom AI models (OpenAI, Anthropic, Ollama, OpenRouter, Google AI Studio) alongside Gemini",
5
5
  "homepage": "https://github.com/vahapogut/free-antigravity-cli",
6
6
  "author": {
@@ -17,7 +17,8 @@
17
17
  "build": "npx tsc",
18
18
  "dev": "npx ts-node src/cli.ts",
19
19
  "start": "node dist/cli.js",
20
- "prepublishOnly": "npm run build"
20
+ "prepublishOnly": "npm run build",
21
+ "test": "jest"
21
22
  },
22
23
  "keywords": [
23
24
  "antigravity",
@@ -40,7 +41,12 @@
40
41
  },
41
42
  "devDependencies": {
42
43
  "@types/inquirer": "^8.2.10",
44
+ "@types/jest": "^30.0.0",
43
45
  "@types/node": "^20.14.0",
46
+ "@types/supertest": "^7.2.0",
47
+ "jest": "^30.4.2",
48
+ "supertest": "^7.2.2",
49
+ "ts-jest": "^29.4.11",
44
50
  "typescript": "^5.5.0"
45
51
  }
46
52
  }
package/src/cli.ts CHANGED
@@ -3,21 +3,56 @@
3
3
  * Free Antigravity CLI - Community Edition
4
4
  * Wraps the official agy CLI with custom model support via a local proxy.
5
5
  */
6
- import { spawn } from 'child_process';
6
+ import { spawn, execSync } from 'child_process';
7
7
  import * as path from 'path';
8
8
  import * as fs from 'fs';
9
9
  import * as os from 'os';
10
10
  import { addModel, removeModel, listModels, ensureConfigDir, CustomModelEntry } from './config';
11
11
  import { startProxy, getProxyPort, stopProxy } from './proxy';
12
+ import { backupFile } from './crypto';
13
+
14
+ function searchInPath(): string | null {
15
+ try {
16
+ const cmd = os.platform() === 'win32' ? 'where agy' : 'which agy';
17
+ const out = execSync(cmd, { stdio: 'pipe' }).toString().trim().split('\r\n')[0].split('\n')[0];
18
+ if (out && fs.existsSync(out)) return out;
19
+ } catch { /* ignore */ }
20
+ return null;
21
+ }
12
22
 
13
23
  function getAgyBin(): string {
24
+ // 1. User Override
25
+ if (process.env.AGY_BIN && fs.existsSync(process.env.AGY_BIN)) {
26
+ return process.env.AGY_BIN;
27
+ }
28
+
29
+ // 2. PATH Search
30
+ const pathBin = searchInPath();
31
+ if (pathBin) return pathBin;
32
+
33
+ // 3. OS-specific defaults
34
+ const isWin = os.platform() === 'win32';
35
+ const binName = isWin ? 'agy.exe' : 'agy';
14
36
  const locations = [
15
- path.join(os.homedir(), 'AppData', 'Local', 'agy', 'bin', 'agy.exe'),
37
+ // Windows default
38
+ path.join(os.homedir(), 'AppData', 'Local', 'agy', 'bin', binName),
39
+ // macOS default Application Support
40
+ path.join(os.homedir(), 'Library', 'Application Support', 'agy', 'bin', binName),
41
+ // macOS/Linux local share
42
+ path.join(os.homedir(), '.local', 'share', 'agy', 'bin', binName),
43
+ // macOS/Linux local bin fallback
44
+ path.join(os.homedir(), '.local', 'bin', binName),
16
45
  ];
46
+
17
47
  for (const loc of locations) {
18
48
  if (fs.existsSync(loc)) return loc;
19
49
  }
20
- return path.join(os.homedir(), 'AppData', 'Local', 'agy', 'bin', 'agy.exe');
50
+
51
+ // 4. Default fallback based on platform
52
+ if (isWin) {
53
+ return path.join(os.homedir(), 'AppData', 'Local', 'agy', 'bin', 'agy.exe');
54
+ }
55
+ return path.join(os.homedir(), '.local', 'share', 'agy', 'bin', 'agy');
21
56
  }
22
57
 
23
58
  async function ensureProxy(): Promise<number> {
@@ -25,6 +60,17 @@ async function ensureProxy(): Promise<number> {
25
60
  catch { return getProxyPort() || 50999; }
26
61
  }
27
62
 
63
+ function getVersion(): string {
64
+ try {
65
+ const pkgPath = path.join(__dirname, '..', 'package.json');
66
+ if (fs.existsSync(pkgPath)) {
67
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
68
+ return pkg.version || '1.0.4';
69
+ }
70
+ } catch { /* ignore */ }
71
+ return '1.0.4';
72
+ }
73
+
28
74
  function ensureAgyPatched(binPath: string): void {
29
75
  if (!fs.existsSync(binPath)) return;
30
76
  try {
@@ -34,9 +80,24 @@ function ensureAgyPatched(binPath: string): void {
34
80
  if (buf.includes(replacement)) return;
35
81
  const idx = buf.indexOf(original);
36
82
  if (idx === -1) return;
83
+ try {
84
+ backupFile(binPath);
85
+ } catch { /* ignore backup failure */ }
37
86
  replacement.copy(buf, idx);
38
87
  fs.writeFileSync(binPath, buf);
39
88
  console.log('[ok] agy binary patched for custom model support.');
89
+
90
+ // macOS platform specific adjustments
91
+ if (os.platform() === 'darwin') {
92
+ try {
93
+ console.log('Re-signing patched binary and removing macOS quarantine flags...');
94
+ execSync(`codesign --force --sign - "${binPath}"`, { stdio: 'ignore' });
95
+ execSync(`xattr -d com.apple.quarantine "${binPath}"`, { stdio: 'ignore' });
96
+ console.log('[ok] macOS binary prepared successfully.');
97
+ } catch (err) {
98
+ console.warn('[warning] Failed to re-sign or remove quarantine flags from agy. It may fail to execute.');
99
+ }
100
+ }
40
101
  } catch { /* ignore */ }
41
102
  }
42
103
 
@@ -45,8 +106,11 @@ async function startAndDelegate(agyArgs: string[]): Promise<void> {
45
106
  const agyBin = getAgyBin();
46
107
 
47
108
  if (!fs.existsSync(agyBin)) {
48
- console.error(`\nagy CLI not found at: ${agyBin}`);
49
- console.error('Install: curl -fsSL https://antigravity.google/cli/install.cmd | cmd');
109
+ console.error(`\n[Error] agy CLI not found!`);
110
+ console.error(`Search location checked: ${agyBin}`);
111
+ console.error('\nPlease install the official Antigravity CLI first.');
112
+ console.error('If installed in a custom location, set the AGY_BIN environment variable:');
113
+ console.error(' export AGY_BIN=/path/to/agy\n');
50
114
  process.exit(1);
51
115
  }
52
116
 
@@ -61,7 +125,15 @@ async function startAndDelegate(agyArgs: string[]): Promise<void> {
61
125
  }
62
126
 
63
127
  async function main(): Promise<void> {
64
- const args = process.argv.slice(2);
128
+ let args = process.argv.slice(2);
129
+
130
+ // Parse and strip verbose/debug flags
131
+ const isDebug = args.includes('--verbose') || args.includes('--debug') || process.env.ANTIGRAVITY_DEBUG === 'true';
132
+ if (isDebug) {
133
+ process.env.ANTIGRAVITY_DEBUG = 'true';
134
+ }
135
+ args = args.filter(a => a !== '--verbose' && a !== '--debug');
136
+
65
137
  const cmd = args[0];
66
138
 
67
139
  // --- Model management ---
@@ -141,12 +213,12 @@ async function main(): Promise<void> {
141
213
  }
142
214
 
143
215
  if (cmd === 'version' || cmd === '--version' || cmd === '-V' || cmd === '-v') {
144
- console.log('Free Antigravity CLI v1.0.0 (Community Edition)');
216
+ console.log(`Free Antigravity CLI v${getVersion()} (Community Edition)`);
145
217
  return;
146
218
  }
147
219
 
148
220
  if (cmd === 'help' || cmd === '--help' || cmd === '-h') {
149
- console.log(`Free Antigravity CLI v1.0.0 - Community Edition
221
+ console.log(`Free Antigravity CLI v${getVersion()} - Community Edition
150
222
  Wraps the official agy CLI with custom model support.
151
223
 
152
224
  Commands:
package/src/logger.ts CHANGED
@@ -1,8 +1,20 @@
1
1
  type LogFn = (message: string, ...args: unknown[]) => void;
2
2
 
3
+ const isDebug = () => process.env.ANTIGRAVITY_DEBUG === 'true';
4
+
3
5
  export const log = {
4
- info: console.log as LogFn,
5
- warn: console.warn as LogFn,
6
- error: console.error as LogFn,
7
- debug: console.debug as LogFn,
6
+ info: ((message: string, ...args: unknown[]) => {
7
+ if (isDebug()) console.log(`[INFO] ${message}`, ...args);
8
+ }) as LogFn,
9
+ warn: ((message: string, ...args: unknown[]) => {
10
+ // Warnings are kept visible but styled
11
+ console.warn(`[WARN] ${message}`, ...args);
12
+ }) as LogFn,
13
+ error: ((message: string, ...args: unknown[]) => {
14
+ // Errors are always critical and visible
15
+ console.error(`[ERROR] ${message}`, ...args);
16
+ }) as LogFn,
17
+ debug: ((message: string, ...args: unknown[]) => {
18
+ if (isDebug()) console.debug(`[DEBUG] ${message}`, ...args);
19
+ }) as LogFn,
8
20
  };
package/src/proxy.ts CHANGED
@@ -542,22 +542,20 @@ function handleRequest(req: http.IncomingMessage, res: http.ServerResponse): voi
542
542
 
543
543
  // --- Server Start/Stop ---
544
544
 
545
- export function startProxy(): Promise<number> {
545
+ export function startProxy(port = 50999): Promise<number> {
546
546
  return new Promise((resolve, reject) => {
547
547
  server = http.createServer(handleRequest);
548
- server.listen(50999, '127.0.0.1', () => {
548
+ server.listen(port, '127.0.0.1', () => {
549
549
  proxyPort = (server!.address() as import('net').AddressInfo).port;
550
550
  log.info(`[Proxy] Listening on http://127.0.0.1:${proxyPort}`);
551
551
  resolve(proxyPort);
552
552
  });
553
553
  server.on('error', (err: NodeJS.ErrnoException) => {
554
554
  if (err.code === 'EADDRINUSE') {
555
- log.warn('[Proxy] Port 50999 in use, trying dynamic...');
556
- server!.listen(0, '127.0.0.1', () => {
557
- proxyPort = (server!.address() as import('net').AddressInfo).port;
558
- log.info(`[Proxy] Listening on http://127.0.0.1:${proxyPort}`);
559
- resolve(proxyPort);
560
- });
555
+ log.error(`[Proxy] Port ${port} is already in use by another application.`);
556
+ console.error(`\n[Error] Port ${port} is already in use.`);
557
+ console.error(`Please close the process occupying port ${port} and try again.\n`);
558
+ process.exit(1);
561
559
  } else { reject(err); }
562
560
  });
563
561
  });
@@ -0,0 +1,98 @@
1
+ import * as path from 'path';
2
+ import * as os from 'os';
3
+ import supertest from 'supertest';
4
+
5
+ // Mock FS before importing proxy
6
+ jest.mock('fs', () => {
7
+ const originalFs = jest.requireActual('fs');
8
+ return {
9
+ ...originalFs,
10
+ existsSync: jest.fn((p) => {
11
+ if (typeof p === 'string' && p.endsWith('models.json')) return true;
12
+ return originalFs.existsSync(p);
13
+ }),
14
+ readFileSync: jest.fn((p, encoding) => {
15
+ if (typeof p === 'string' && p.endsWith('models.json')) {
16
+ return JSON.stringify({
17
+ models: [
18
+ {
19
+ name: 'models/custom-test-model',
20
+ displayName: 'Custom Test Model',
21
+ provider: 'openai',
22
+ apiKey: 'test-key',
23
+ apiUrl: 'https://api.openai.com/v1/chat/completions',
24
+ externalModelName: 'gpt-4o'
25
+ }
26
+ ]
27
+ });
28
+ }
29
+ return originalFs.readFileSync(p, encoding);
30
+ })
31
+ };
32
+ });
33
+
34
+ // Mock HTTPS before importing proxy
35
+ jest.mock('https', () => {
36
+ const originalHttps = jest.requireActual('https');
37
+ return {
38
+ ...originalHttps,
39
+ request: jest.fn((url: any, options: any, callback?: any) => {
40
+ const mockResponse = {
41
+ statusCode: 200,
42
+ headers: { 'content-type': 'application/json' },
43
+ on: (event: string, handler: any) => {
44
+ if (event === 'data') {
45
+ setImmediate(() => handler(Buffer.from(JSON.stringify({ models: [] }))));
46
+ }
47
+ if (event === 'end') {
48
+ setImmediate(() => handler());
49
+ }
50
+ }
51
+ };
52
+ if (callback) {
53
+ setImmediate(() => callback(mockResponse));
54
+ }
55
+ return {
56
+ on: () => {},
57
+ write: () => {},
58
+ end: () => {},
59
+ setTimeout: () => {},
60
+ destroy: () => {}
61
+ };
62
+ })
63
+ };
64
+ });
65
+
66
+ import { startProxy, stopProxy } from '../src/proxy';
67
+ import { stopCleanupInterval } from '../src/proxy/shared';
68
+
69
+ describe('Proxy Server Integration', () => {
70
+ let request: any;
71
+
72
+ beforeAll(async () => {
73
+ // Start proxy
74
+ const port = await startProxy(0);
75
+ request = supertest(`http://127.0.0.1:${port}`);
76
+ });
77
+
78
+ afterAll(async () => {
79
+ await stopProxy();
80
+ stopCleanupInterval();
81
+ });
82
+
83
+ test('Health check endpoint returns status ok', async () => {
84
+ const res = await request.get('/health');
85
+ expect(res.status).toBe(200);
86
+ expect(res.body.status).toBe('ok');
87
+ });
88
+
89
+ test('Intercepts fetchAvailableModels and injects custom models', async () => {
90
+ const res = await request.post('/v1internal:fetchAvailableModels');
91
+ expect(res.status).toBe(200);
92
+
93
+ // Expect the custom model to be merged in the output
94
+ const models = res.body.models || [];
95
+ const customExists = models.some((m: any) => m.displayName === 'Custom Test Model');
96
+ expect(customExists).toBe(true);
97
+ });
98
+ });
@@ -0,0 +1,85 @@
1
+ import * as path from 'path';
2
+ import { mapGeminiToOpenAI, mapOpenAIToGemini } from '../src/proxy/translators/openai';
3
+ import { mapGeminiToAnthropic, mapAnthropicToGemini } from '../src/proxy/translators/anthropic';
4
+ import { translateToolCallToNative, normalizeToolArgs } from '../src/proxy/translators/utils';
5
+ import { stopCleanupInterval } from '../src/proxy/shared';
6
+
7
+ describe('OpenAI Translator', () => {
8
+ test('mapGeminiToOpenAI converts simple chat request', () => {
9
+ const geminiBody = {
10
+ contents: [
11
+ { role: 'user', parts: [{ text: 'Hello' }] }
12
+ ]
13
+ };
14
+ const result = mapGeminiToOpenAI(geminiBody, 'gpt-4o');
15
+ expect(result.model).toBe('gpt-4o');
16
+ expect(result.messages).toHaveLength(1);
17
+ expect(result.messages[0]).toEqual({ role: 'user', content: 'Hello' });
18
+ });
19
+
20
+ test('mapOpenAIToGemini converts simple chat response', () => {
21
+ const openaiRes = {
22
+ choices: [
23
+ {
24
+ message: { content: 'Hi there!' },
25
+ finish_reason: 'stop'
26
+ }
27
+ ],
28
+ usage: { prompt_tokens: 5, completion_tokens: 5, total_tokens: 10 }
29
+ };
30
+ const result = mapOpenAIToGemini(openaiRes, 'gpt-4o');
31
+ expect(result.candidates).toHaveLength(1);
32
+ expect(result.candidates[0].content.parts[0].text).toBe('Hi there!');
33
+ expect(result.candidates[0].finishReason).toBe('STOP');
34
+ expect(result.usageMetadata?.totalTokenCount).toBe(10);
35
+ });
36
+ });
37
+
38
+ describe('Anthropic Translator', () => {
39
+ test('mapGeminiToAnthropic converts simple chat request', () => {
40
+ const geminiBody = {
41
+ contents: [
42
+ { role: 'user', parts: [{ text: 'Hello Claude' }] }
43
+ ],
44
+ generationConfig: { maxOutputTokens: 100 }
45
+ };
46
+ const result = mapGeminiToAnthropic(geminiBody, 'claude-3-5-sonnet');
47
+ expect(result.model).toBe('claude-3-5-sonnet');
48
+ expect(result.messages[0].role).toBe('user');
49
+ expect(result.messages[0].content).toBe('Hello Claude');
50
+ expect(result.max_tokens).toBe(100);
51
+ });
52
+
53
+ test('mapAnthropicToGemini converts simple chat response', () => {
54
+ const anthRes = {
55
+ content: [{ type: 'text', text: 'Hello human!' } as any],
56
+ stop_reason: 'end_turn',
57
+ usage: { input_tokens: 10, output_tokens: 10 }
58
+ };
59
+ const result = mapAnthropicToGemini(anthRes, 'claude-3-5-sonnet');
60
+ expect(result.candidates[0].content.parts[0].text).toBe('Hello human!');
61
+ expect(result.candidates[0].finishReason).toBe('STOP');
62
+ });
63
+ });
64
+
65
+ describe('Tool & Args Utilities', () => {
66
+ test('normalizeToolArgs maps snake_case parameters to PascalCase', () => {
67
+ const rawArgs = { absolute_path: '/some/file.txt' };
68
+ const normalized = normalizeToolArgs('view_file', rawArgs);
69
+ expect(normalized).toEqual({ AbsolutePath: '/some/file.txt' });
70
+ });
71
+
72
+ test('translateToolCallToNative maps bash commands to native tools', () => {
73
+ const resultCat = translateToolCallToNative('run_command', { CommandLine: 'cat memo.txt', Cwd: '/home' });
74
+ expect(resultCat.name).toBe('view_file');
75
+ expect(resultCat.args).toEqual({ AbsolutePath: path.resolve('/home', 'memo.txt') });
76
+
77
+ const resultLs = translateToolCallToNative('run_command', { CommandLine: 'ls subdir', Cwd: '/home' });
78
+ expect(resultLs.name).toBe('list_dir');
79
+ expect(resultLs.args).toEqual({ DirectoryPath: path.resolve('/home', 'subdir') });
80
+ });
81
+
82
+ afterAll(() => {
83
+ stopCleanupInterval();
84
+ });
85
+ });