@machina.ai/cell-cli-core 1.49.0-rc4 → 1.49.0-rc6

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.
@@ -39,6 +39,11 @@ requirements:
39
39
  - **Glue Code**: The existing codebase has been modified to integrate and
40
40
  utilize the new packages described above.
41
41
  - **Re-branding**: Minor changes have been made to reflect a different branding.
42
+ - **Sandbox and Isolation**: Rebranded the native sandbox environment from
43
+ `gemini-cli-sandbox` to `cell-cli-sandbox`. Updated the Docker orchestration
44
+ files and the custom `scripts/build_sandbox.js` to bundle local `@machina.ai`
45
+ packages, ensuring fully isolated sandboxed execution runs with our own
46
+ customized CLI and core.
42
47
  - **Package Aliasing**: To minimize intrusive changes to the original source
43
48
  code, package aliases are used in `package.json`. This allows the original
44
49
  import paths to remain the same while pointing to the new, custom packages
@@ -47,14 +47,14 @@ gemini -s -p "analyze the code structure"
47
47
  **macOS/Linux**
48
48
 
49
49
  ```bash
50
- export GEMINI_SANDBOX=true
50
+ export CELL_SANDBOX=true
51
51
  gemini -p "run the test suite"
52
52
  ```
53
53
 
54
54
  **Windows (PowerShell)**
55
55
 
56
56
  ```powershell
57
- $env:GEMINI_SANDBOX="true"
57
+ $env:CELL_SANDBOX="true"
58
58
  gemini -p "run the test suite"
59
59
  ```
60
60
 
@@ -74,7 +74,7 @@ Enable sandboxing using one of the following methods (in order of precedence):
74
74
 
75
75
  1. **Command flag**: `-s` or `--sandbox`
76
76
  2. **Environment variable**:
77
- `GEMINI_SANDBOX=true|docker|podman|sandbox-exec|runsc|lxc`
77
+ `CELL_SANDBOX=true|docker|podman|sandbox-exec|runsc|lxc`
78
78
  3. **Settings file**: `"sandbox": true` in the `tools` object of your
79
79
  `settings.json` file (for example, `{"tools": {"sandbox": true}}`).
80
80
 
@@ -124,7 +124,7 @@ Docker as the provider:
124
124
 
125
125
  ```bash
126
126
  # Using the environment variable (Recommended)
127
- export GEMINI_SANDBOX=docker
127
+ export CELL_SANDBOX=docker
128
128
  gemini -p "build the project"
129
129
 
130
130
  # Or configure it permanently in your settings.json
@@ -142,7 +142,7 @@ Podman image as your sandbox, provided it has standard shell utilities (like
142
142
 
143
143
  To configure a custom image that is hosted on a registry (or built locally),
144
144
  update your `settings.json` to use an object for the sandbox configuration, or
145
- set the `GEMINI_SANDBOX_IMAGE` environment variable.
145
+ set the `CELL_SANDBOX_IMAGE` environment variable.
146
146
 
147
147
  _Example: Configuring via `settings.json`_
148
148
 
@@ -160,7 +160,7 @@ _Example: Configuring via `settings.json`_
160
160
  _Example: Configuring via environment variable_
161
161
 
162
162
  ```bash
163
- export GEMINI_SANDBOX_IMAGE="us-central1-docker.pkg.dev/my-project/my-repo/my-custom-sandbox:latest"
163
+ export CELL_SANDBOX_IMAGE="us-central1-docker.pkg.dev/my-project/my-repo/my-custom-sandbox:latest"
164
164
  ```
165
165
 
166
166
  **Option B: Building a local custom image automatically**
@@ -174,7 +174,7 @@ and Cell CLI will build the image automatically.
174
174
  3. Run your command with the `BUILD_SANDBOX` environment variable set:
175
175
 
176
176
  ```bash
177
- BUILD_SANDBOX=1 GEMINI_SANDBOX=docker gemini -p "run my custom build"
177
+ BUILD_SANDBOX=1 CELL_SANDBOX=docker gemini -p "run my custom build"
178
178
  ```
179
179
 
180
180
  ### 3. Windows Native Sandbox (Windows only)
@@ -210,7 +210,7 @@ strong security barrier between AI operations and the host OS.
210
210
 
211
211
  When you set `sandbox: "runsc"`, Cell CLI runs `docker run --runtime=runsc ...`
212
212
  to execute containers with gVisor isolation. runsc is not auto-detected; you
213
- must specify it explicitly (e.g. `GEMINI_SANDBOX=runsc` or `sandbox: "runsc"`).
213
+ must specify it explicitly (e.g. `CELL_SANDBOX=runsc` or `sandbox: "runsc"`).
214
214
 
215
215
  To set up runsc:
216
216
 
@@ -239,18 +239,18 @@ such as Snapcraft and Rockcraft.
239
239
  lxd init --auto
240
240
 
241
241
  # Create and start an Ubuntu container
242
- lxc launch ubuntu:24.04 gemini-sandbox
242
+ lxc launch ubuntu:24.04 cell-sandbox
243
243
 
244
244
  # Enable LXC sandboxing
245
- export GEMINI_SANDBOX=lxc
245
+ export CELL_SANDBOX=lxc
246
246
  gemini -p "build the project"
247
247
  ```
248
248
 
249
249
  **Custom container name**:
250
250
 
251
251
  ```bash
252
- export GEMINI_SANDBOX=lxc
253
- export GEMINI_SANDBOX_IMAGE=my-snapcraft-container
252
+ export CELL_SANDBOX=lxc
253
+ export CELL_SANDBOX_IMAGE=my-snapcraft-container
254
254
  gemini -p "build the snap"
255
255
  ```
256
256
 
@@ -352,7 +352,7 @@ docker run -it \
352
352
  -v /var/run/docker.sock:/var/run/docker.sock \
353
353
  -v /absolute/path/on/host/project:/absolute/path/on/host/project \
354
354
  -w /absolute/path/on/host/project \
355
- -e GEMINI_SANDBOX=docker \
355
+ -e CELL_SANDBOX=docker \
356
356
  ghcr.io/google/gemini-cli:latest
357
357
  ```
358
358
 
@@ -308,7 +308,7 @@ To use the browser agent in a Docker sandbox:
308
308
  3. Launch the CLI with port forwarding:
309
309
 
310
310
  ```bash
311
- GEMINI_SANDBOX=docker SANDBOX_PORTS=9222 gemini
311
+ CELL_SANDBOX=docker SANDBOX_PORTS=9222 gemini
312
312
  ```
313
313
 
314
314
  ## Creating custom subagents
@@ -1,7 +1,7 @@
1
1
  # Example proxy script
2
2
 
3
3
  The following is an example of a proxy script that can be used with the
4
- `GEMINI_SANDBOX_PROXY_COMMAND` environment variable. This script only allows
4
+ `CELL_SANDBOX_PROXY_COMMAND` environment variable. This script only allows
5
5
  `HTTPS` connections to `example.com:443` and declines all other requests.
6
6
 
7
7
  ```javascript
@@ -14,7 +14,7 @@ The following is an example of a proxy script that can be used with the
14
14
  */
15
15
 
16
16
  // Example proxy server that listens on :::8877 and only allows HTTPS connections to example.com.
17
- // Set `GEMINI_SANDBOX_PROXY_COMMAND=scripts/example-proxy.js` to run proxy alongside sandbox
17
+ // Set `CELL_SANDBOX_PROXY_COMMAND=scripts/example-proxy.js` to run proxy alongside sandbox
18
18
  // Test via `curl https://example.com` inside sandbox (in shell mode or via shell tool)
19
19
 
20
20
  import http from 'node:http';
@@ -2791,7 +2791,7 @@ the `advanced.excludedEnvVars` setting in your `settings.json` file.
2791
2791
  - Required for using Vertex AI in non-express mode.
2792
2792
  - Example: `export GOOGLE_CLOUD_LOCATION="YOUR_PROJECT_LOCATION"` (Windows
2793
2793
  PowerShell: `$env:GOOGLE_CLOUD_LOCATION="YOUR_PROJECT_LOCATION"`).
2794
- - **`GEMINI_SANDBOX`**:
2794
+ - **`CELL_SANDBOX`**:
2795
2795
  - Alternative to the `sandbox` setting in `settings.json`.
2796
2796
  - Accepts `true`, `false`, `docker`, `podman`, or a custom command string.
2797
2797
  - **`CELL_SYSTEM_MD`**:
@@ -3090,17 +3090,17 @@ modifications) within a sandboxed environment to protect your system.
3090
3090
  Sandboxing is disabled by default, but you can enable it in a few ways:
3091
3091
 
3092
3092
  - Using `--sandbox` or `-s` flag.
3093
- - Setting `GEMINI_SANDBOX` environment variable.
3093
+ - Setting `CELL_SANDBOX` environment variable.
3094
3094
  - Sandbox is enabled when using `--yolo` or `--approval-mode=yolo` by default.
3095
3095
 
3096
- By default, it uses a pre-built `gemini-cli-sandbox` Docker image.
3096
+ By default, it uses a pre-built `cell-cli-sandbox` Docker image.
3097
3097
 
3098
3098
  For project-specific sandboxing needs, you can create a custom Dockerfile at
3099
3099
  `.cell-cli/sandbox.Dockerfile` in your project's root directory. This Dockerfile
3100
3100
  can be based on the base sandbox image:
3101
3101
 
3102
3102
  ```dockerfile
3103
- FROM gemini-cli-sandbox
3103
+ FROM cell-cli-sandbox
3104
3104
 
3105
3105
  # Add your custom dependencies or configurations here.
3106
3106
  # Note: The base image runs as the non-root 'node' user.
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@machina.ai/cell-cli-core",
3
- "version": "1.49.0-rc4",
3
+ "version": "1.49.0-rc6",
4
4
  "description": "Cell CLI Core",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,7 +30,7 @@ import { RipgrepFallbackEvent } from '../telemetry/types.js';
30
30
  import { ToolRegistry } from '../tools/tool-registry.js';
31
31
  import { ACTIVATE_SKILL_TOOL_NAME } from '../tools/tool-names.js';
32
32
  import { DEFAULT_MODEL_CONFIGS } from './defaultModelConfigs.js';
33
- import { DEFAULT_GEMINI_MODEL, PREVIEW_GEMINI_3_1_MODEL, DEFAULT_GEMINI_MODEL_AUTO, PREVIEW_GEMINI_MODEL_AUTO, PREVIEW_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_MODEL, } from './models.js';
33
+ import { DEFAULT_GEMINI_MODEL, PREVIEW_GEMINI_3_1_MODEL, DEFAULT_GEMINI_MODEL_AUTO, PREVIEW_GEMINI_MODEL_AUTO, PREVIEW_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_MODEL, setFlashModels, } from './models.js';
34
34
  import { Storage } from './storage.js';
35
35
  import { runWithScopedAutoMemoryExtractionWriteAccess, runWithScopedMemoryInboxAccess, } from './scoped-config.js';
36
36
  vi.mock('fs', async (importOriginal) => {
@@ -200,12 +200,13 @@ vi.mock('../code_assist/codeAssist.js');
200
200
  vi.mock('../code_assist/experiments/experiments.js');
201
201
  afterEach(() => {
202
202
  vi.clearAllMocks();
203
+ setFlashModels('gemini-3-flash-preview', 'gemini-2.5-flash');
203
204
  });
204
205
  describe('Server Config (config.ts)', () => {
205
206
  const MODEL = DEFAULT_GEMINI_MODEL;
206
207
  const SANDBOX = createMockSandboxConfig({
207
208
  command: 'docker',
208
- image: 'gemini-cli-sandbox',
209
+ image: 'cell-cli-sandbox',
209
210
  });
210
211
  const TARGET_DIR = '/path/to/target';
211
212
  const DEBUG_MODE = false;
@@ -775,7 +776,7 @@ describe('Server Config (config.ts)', () => {
775
776
  await config.refreshAuth(AuthType.LOGIN_WITH_GOOGLE);
776
777
  await config.getExperimentsAsync();
777
778
  await vi.waitFor(() => {
778
- expect(config.getModel()).toBe(PREVIEW_GEMINI_FLASH_MODEL);
779
+ expect(config.getModel()).toBe('gemini-3-flash-preview');
779
780
  });
780
781
  });
781
782
  it('should NOT switch to flash model if user has Pro access and model is auto', async () => {
@@ -1617,7 +1618,7 @@ describe('GemmaModelRouterSettings', () => {
1617
1618
  const MODEL = DEFAULT_GEMINI_MODEL;
1618
1619
  const SANDBOX = createMockSandboxConfig({
1619
1620
  command: 'docker',
1620
- image: 'gemini-cli-sandbox',
1621
+ image: 'cell-cli-sandbox',
1621
1622
  });
1622
1623
  const TARGET_DIR = '/path/to/target';
1623
1624
  const DEBUG_MODE = false;
@@ -1920,7 +1921,7 @@ describe('BaseLlmClient Lifecycle', () => {
1920
1921
  const MODEL = 'gemini-pro';
1921
1922
  const SANDBOX = createMockSandboxConfig({
1922
1923
  command: 'docker',
1923
- image: 'gemini-cli-sandbox',
1924
+ image: 'cell-cli-sandbox',
1924
1925
  });
1925
1926
  const TARGET_DIR = '/path/to/target';
1926
1927
  const DEBUG_MODE = false;
@@ -1969,7 +1970,7 @@ describe('Generation Config Merging (HACK)', () => {
1969
1970
  const MODEL = 'gemini-pro';
1970
1971
  const SANDBOX = createMockSandboxConfig({
1971
1972
  command: 'docker',
1972
- image: 'gemini-cli-sandbox',
1973
+ image: 'cell-cli-sandbox',
1973
1974
  });
1974
1975
  const TARGET_DIR = '/path/to/target';
1975
1976
  const DEBUG_MODE = false;
@@ -2221,7 +2222,7 @@ describe('LocalLiteRtLmClient Lifecycle', () => {
2221
2222
  const MODEL = 'gemini-pro';
2222
2223
  const SANDBOX = createMockSandboxConfig({
2223
2224
  command: 'docker',
2224
- image: 'gemini-cli-sandbox',
2225
+ image: 'cell-cli-sandbox',
2225
2226
  });
2226
2227
  const TARGET_DIR = '/path/to/target';
2227
2228
  const DEBUG_MODE = false;
@@ -2490,7 +2491,7 @@ describe('Config Quota & Preview Model Access', () => {
2490
2491
  allowedPaths: [],
2491
2492
  networkAccess: false,
2492
2493
  command: 'docker',
2493
- image: 'gemini-cli-sandbox',
2494
+ image: 'cell-cli-sandbox',
2494
2495
  },
2495
2496
  };
2496
2497
  beforeEach(() => {
@@ -3413,7 +3414,7 @@ describe('hasGemini35FlashGAAccess model setting', () => {
3413
3414
  expect(DEFAULT_GEMINI_FLASH_MODEL).toBe('gemini-3.5-flash');
3414
3415
  expect(PREVIEW_GEMINI_FLASH_MODEL).toBe('gemini-3-flash-preview');
3415
3416
  });
3416
- it('should set DEFAULT_GEMINI_FLASH_MODEL to gemini-3.5-flash and PREVIEW_GEMINI_FLASH_MODEL to gemini-3-flash-preview if hasGemini35FlashGAAccess returns true and authType is LOGIN_WITH_GOOGLE', () => {
3417
+ it('should set DEFAULT_GEMINI_FLASH_MODEL to gemini-3-flash and PREVIEW_GEMINI_FLASH_MODEL to gemini-3-flash if hasGemini35FlashGAAccess returns true and authType is LOGIN_WITH_GOOGLE', () => {
3417
3418
  const config = new Config(baseParams);
3418
3419
  config['contentGeneratorConfig'] = { authType: AuthType.LOGIN_WITH_GOOGLE };
3419
3420
  // Set experiment to return true for GEMINI_3_5_FLASH_GA_LAUNCHED
@@ -3428,8 +3429,8 @@ describe('hasGemini35FlashGAAccess model setting', () => {
3428
3429
  // Call the method
3429
3430
  const result = config.hasGemini35FlashGAAccess();
3430
3431
  expect(result).toBe(true);
3431
- expect(DEFAULT_GEMINI_FLASH_MODEL).toBe('gemini-3.5-flash');
3432
- expect(PREVIEW_GEMINI_FLASH_MODEL).toBe('gemini-3-flash-preview');
3432
+ expect(DEFAULT_GEMINI_FLASH_MODEL).toBe('gemini-3-flash');
3433
+ expect(PREVIEW_GEMINI_FLASH_MODEL).toBe('gemini-3-flash');
3433
3434
  });
3434
3435
  it('should set DEFAULT_GEMINI_FLASH_MODEL to gemini-3.5-flash and PREVIEW_GEMINI_FLASH_MODEL to gemini-3-flash-preview if hasGemini35FlashGAAccess returns true and authType is KEYCLOAK', () => {
3435
3436
  const config = new Config(baseParams);