@machina.ai/cell-cli-core 1.49.0-rc3 → 1.49.0-rc5
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/docs/CHANGES.md +5 -0
- package/dist/docs/cli/sandbox.md +13 -13
- package/dist/docs/core/subagents.md +1 -1
- package/dist/docs/examples/proxy-script.md +2 -2
- package/dist/docs/reference/configuration.md +4 -4
- package/dist/package.json +1 -1
- package/dist/src/config/config.test.js +6 -6
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/sandbox/windows/WindowsSandboxManager.js +1 -1
- package/dist/src/sandbox/windows/WindowsSandboxManager.js.map +1 -1
- package/dist/src/services/sandboxManager.integration.test.js +1 -1
- package/dist/src/services/sandboxManager.integration.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/docs/CHANGES.md
CHANGED
|
@@ -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
|
package/dist/docs/cli/sandbox.md
CHANGED
|
@@ -47,14 +47,14 @@ gemini -s -p "analyze the code structure"
|
|
|
47
47
|
**macOS/Linux**
|
|
48
48
|
|
|
49
49
|
```bash
|
|
50
|
-
export
|
|
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:
|
|
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
|
-
`
|
|
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
|
|
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 `
|
|
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
|
|
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
|
|
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. `
|
|
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
|
|
242
|
+
lxc launch ubuntu:24.04 cell-sandbox
|
|
243
243
|
|
|
244
244
|
# Enable LXC sandboxing
|
|
245
|
-
export
|
|
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
|
|
253
|
-
export
|
|
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
|
|
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
|
-
|
|
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
|
-
`
|
|
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 `
|
|
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
|
-
- **`
|
|
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 `
|
|
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 `
|
|
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
|
|
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
|
@@ -205,7 +205,7 @@ describe('Server Config (config.ts)', () => {
|
|
|
205
205
|
const MODEL = DEFAULT_GEMINI_MODEL;
|
|
206
206
|
const SANDBOX = createMockSandboxConfig({
|
|
207
207
|
command: 'docker',
|
|
208
|
-
image: '
|
|
208
|
+
image: 'cell-cli-sandbox',
|
|
209
209
|
});
|
|
210
210
|
const TARGET_DIR = '/path/to/target';
|
|
211
211
|
const DEBUG_MODE = false;
|
|
@@ -1617,7 +1617,7 @@ describe('GemmaModelRouterSettings', () => {
|
|
|
1617
1617
|
const MODEL = DEFAULT_GEMINI_MODEL;
|
|
1618
1618
|
const SANDBOX = createMockSandboxConfig({
|
|
1619
1619
|
command: 'docker',
|
|
1620
|
-
image: '
|
|
1620
|
+
image: 'cell-cli-sandbox',
|
|
1621
1621
|
});
|
|
1622
1622
|
const TARGET_DIR = '/path/to/target';
|
|
1623
1623
|
const DEBUG_MODE = false;
|
|
@@ -1920,7 +1920,7 @@ describe('BaseLlmClient Lifecycle', () => {
|
|
|
1920
1920
|
const MODEL = 'gemini-pro';
|
|
1921
1921
|
const SANDBOX = createMockSandboxConfig({
|
|
1922
1922
|
command: 'docker',
|
|
1923
|
-
image: '
|
|
1923
|
+
image: 'cell-cli-sandbox',
|
|
1924
1924
|
});
|
|
1925
1925
|
const TARGET_DIR = '/path/to/target';
|
|
1926
1926
|
const DEBUG_MODE = false;
|
|
@@ -1969,7 +1969,7 @@ describe('Generation Config Merging (HACK)', () => {
|
|
|
1969
1969
|
const MODEL = 'gemini-pro';
|
|
1970
1970
|
const SANDBOX = createMockSandboxConfig({
|
|
1971
1971
|
command: 'docker',
|
|
1972
|
-
image: '
|
|
1972
|
+
image: 'cell-cli-sandbox',
|
|
1973
1973
|
});
|
|
1974
1974
|
const TARGET_DIR = '/path/to/target';
|
|
1975
1975
|
const DEBUG_MODE = false;
|
|
@@ -2221,7 +2221,7 @@ describe('LocalLiteRtLmClient Lifecycle', () => {
|
|
|
2221
2221
|
const MODEL = 'gemini-pro';
|
|
2222
2222
|
const SANDBOX = createMockSandboxConfig({
|
|
2223
2223
|
command: 'docker',
|
|
2224
|
-
image: '
|
|
2224
|
+
image: 'cell-cli-sandbox',
|
|
2225
2225
|
});
|
|
2226
2226
|
const TARGET_DIR = '/path/to/target';
|
|
2227
2227
|
const DEBUG_MODE = false;
|
|
@@ -2490,7 +2490,7 @@ describe('Config Quota & Preview Model Access', () => {
|
|
|
2490
2490
|
allowedPaths: [],
|
|
2491
2491
|
networkAccess: false,
|
|
2492
2492
|
command: 'docker',
|
|
2493
|
-
image: '
|
|
2493
|
+
image: 'cell-cli-sandbox',
|
|
2494
2494
|
},
|
|
2495
2495
|
};
|
|
2496
2496
|
beforeEach(() => {
|