@mmmbuto/gemini-cli-termux 0.24.0-termux → 0.24.2-termux
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/README.md +4 -59
- package/bundle/docs/patches/README.md +10 -27
- package/bundle/docs/termux-api/MERGE_STRATEGY.md +70 -39
- package/bundle/gemini.js +70 -58
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ pkg update && pkg upgrade -y
|
|
|
29
29
|
pkg install nodejs-lts -y
|
|
30
30
|
npm install -g @mmmbuto/gemini-cli-termux
|
|
31
31
|
|
|
32
|
-
gemini --version # expected: 0.24.
|
|
32
|
+
gemini --version # expected: 0.24.2-termux (npm latest)
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
Build from source:
|
|
@@ -105,13 +105,15 @@ See [docs/patches/README.md](./docs/patches/README.md) for complete solutions.
|
|
|
105
105
|
npm install -g @mmmbuto/gemini-cli-termux@latest
|
|
106
106
|
```
|
|
107
107
|
|
|
108
|
-
### Changelog (0.24.
|
|
108
|
+
### Changelog (0.24.2-termux)
|
|
109
109
|
|
|
110
|
+
- **Auto-update fix**: uses the fork package name to prevent upstream overwrite.
|
|
110
111
|
- **Memory Mode presets** in `/settings → Memory` (default / jit / jit+json).
|
|
111
112
|
- **JIT + JSON** combined memory support (ContextManager now loads JSON memory).
|
|
112
113
|
- **Memory settings reorganized** into a dedicated section; MCP import
|
|
113
114
|
categories hidden from UI.
|
|
114
115
|
- **Docs & tests refreshed** for 0.24.0-termux.
|
|
116
|
+
- **README cleanup**: legacy 0.22.x release sections removed.
|
|
115
117
|
|
|
116
118
|
## Tests
|
|
117
119
|
|
|
@@ -167,63 +169,6 @@ Location, Camera, Dialog, Share, and more.
|
|
|
167
169
|
|
|
168
170
|
See [docs/termux-api/](./docs/termux-api/) for complete documentation.
|
|
169
171
|
|
|
170
|
-
---
|
|
171
|
-
|
|
172
|
-
## v0.22.7-termux (testing) Highlights
|
|
173
|
-
|
|
174
|
-
- **Gemini 3 Flash preview** enabled (`gemini-3-flash-preview`) with help/docs
|
|
175
|
-
visibility.
|
|
176
|
-
|
|
177
|
-
- **Context Memory (default ON)**: strict, merge-safe JSON memory at
|
|
178
|
-
`~/.gemini/context_memory/{base.json,user.json,user.journal.jsonl}` with
|
|
179
|
-
per-source autoload, primary selector, and GEMINI.md bootstrap on first run.
|
|
180
|
-
- **Deterministic compaction**: journal append-only with incremental offsets,
|
|
181
|
-
closed JSON schemas, key-based upsert, TTL/ephemeral guardrails,
|
|
182
|
-
sensitivity=high excluded from autoload.
|
|
183
|
-
- **Base write toggle**: enable/disable writes to `base.json` from
|
|
184
|
-
`/save_memory target=base` (off by default, merge-safe).
|
|
185
|
-
- **TTS toggle**: new `/settings` switch to allow/block `termux-tts-speak`;
|
|
186
|
-
shell tool blocks TTS when disabled.
|
|
187
|
-
- **Termux-first shell**: non-interactive commands (`echo`, `pwd`, `ls`) work
|
|
188
|
-
without native PTY deps; optional natives removed for faster installs.
|
|
189
|
-
- **Termux-API tools**: discovery/call scripts under `scripts/termux-tools/`
|
|
190
|
-
expose Termux APIs as tools (battery, tts, camera, etc.).
|
|
191
|
-
|
|
192
|
-
See `docs/cli/context-memory.md` for the detailed memory layout and settings.
|
|
193
|
-
|
|
194
|
-
## v0.22.2-termux Improvements
|
|
195
|
-
|
|
196
|
-
This release includes significant improvements to the Termux experience:
|
|
197
|
-
|
|
198
|
-
### Installation
|
|
199
|
-
|
|
200
|
-
- **Clear postinstall message** - No more confusion about native module warnings
|
|
201
|
-
- **`make termux-install`** - One-command build from source
|
|
202
|
-
- **`termux-setup.sh`** - Helper script for first-time setup
|
|
203
|
-
|
|
204
|
-
### Developer Experience
|
|
205
|
-
|
|
206
|
-
- **Termux detection utility** - `isTermux()` and `detectTermuxEnvironment()`
|
|
207
|
-
- **Punycode warning suppression** - Cleaner output on Android
|
|
208
|
-
- **Merge-safe patches** - Easy to maintain after upstream sync
|
|
209
|
-
- **`check-termux-patches.sh`** - Verify patches after merge
|
|
210
|
-
|
|
211
|
-
### Documentation
|
|
212
|
-
|
|
213
|
-
- Complete Termux-API integration plan
|
|
214
|
-
- 60+ commands documented with parameters
|
|
215
|
-
- Merge strategy guide for maintainers
|
|
216
|
-
|
|
217
|
-
---
|
|
218
|
-
|
|
219
|
-
## Changelog (Termux)
|
|
220
|
-
|
|
221
|
-
- **0.22.1-termux**: Termux-API integration, improved installation UX, Termux
|
|
222
|
-
detection utility, merge automation scripts.
|
|
223
|
-
- **0.22.0-termux**: Sync with upstream (0.21.0-nightly); added hide banner
|
|
224
|
-
patch; restored ARM64 dependency.
|
|
225
|
-
- **0.21.4-termux**: (Previous)
|
|
226
|
-
|
|
227
172
|
## Upstream Tracking
|
|
228
173
|
|
|
229
174
|
- Upstream: https://github.com/google-gemini/gemini-cli
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
# Termux Patches (
|
|
1
|
+
# Termux Patches (Upstream Differences)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This document lists **all patches** that differentiate this Termux fork from
|
|
4
|
+
upstream `google-gemini/gemini-cli`. It is not tied to a specific release; keep
|
|
5
|
+
it updated whenever a new patch is added or removed.
|
|
4
6
|
|
|
5
7
|
## Patch List
|
|
6
8
|
|
|
@@ -17,32 +19,13 @@ Minimal changes to run `gemini-cli` on Android/Termux ARM64 without native deps.
|
|
|
17
19
|
6. **Punycode warning** – Suppresses deprecation warning on Android.
|
|
18
20
|
7. **Termux detection** – `packages/core/src/utils/termux-detect.ts` utility.
|
|
19
21
|
8. **Postinstall message** – Clear success message on Termux install.
|
|
20
|
-
9. **Context memory
|
|
21
|
-
|
|
22
|
-
tool (disabled by default; base writes still gated).
|
|
22
|
+
9. **Context memory + Memory Mode** – JSON memories (base/user/journal) plus
|
|
23
|
+
presets: `default`, `jit`, `jit+json`. Auto-load toggles, primary selector,
|
|
24
|
+
and MCP import tool (disabled by default; base writes still gated).
|
|
23
25
|
10. **Mobile-first settings** – Compact `/settings` rendering by default on
|
|
24
26
|
Termux; TTS toggle exposed (opt-in).
|
|
25
|
-
11. **Shell parser fix** –
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
## New in 0.22.7 (testing)
|
|
29
|
-
|
|
30
|
-
- **Gemini 3 Flash preview** exposed in model list/help.
|
|
31
|
-
- MCP import tool (`mcp_import_memory`) to pull remote MCP data into base/user
|
|
32
|
-
memories when enabled.
|
|
33
|
-
- Context memory split (base/user/journal) with merge-safe compaction and
|
|
34
|
-
high-sensitivity auto-load filtering.
|
|
35
|
-
- Mobile settings view default-on; TTS enable/disable switch.
|
|
36
|
-
- Bash parser initialization hardened for Termux runtime (fixes
|
|
37
|
-
`run_shell_command` crashes).
|
|
38
|
-
|
|
39
|
-
## New in 0.22.2
|
|
40
|
-
|
|
41
|
-
- Termux-API tool discovery support (`scripts/termux-tools/`)
|
|
42
|
-
- Improved installation experience (`scripts/postinstall.js`)
|
|
43
|
-
- Helper scripts for build from source (`scripts/termux-setup.sh`)
|
|
44
|
-
- Makefile targets: `termux-install`, `termux-clean`
|
|
45
|
-
- Merge verification script (`scripts/check-termux-patches.sh`)
|
|
27
|
+
11. **Shell parser fix** – Base64 polyfill in bundle banner to support
|
|
28
|
+
web-tree-sitter on Node 22/24 (fixes `run_shell_command`).
|
|
46
29
|
|
|
47
30
|
## Expected Warnings
|
|
48
31
|
|
|
@@ -59,4 +42,4 @@ All patches are designed to be merge-safe. See
|
|
|
59
42
|
[docs/termux-api/MERGE_STRATEGY.md](../termux-api/MERGE_STRATEGY.md) for details
|
|
60
43
|
on maintaining patches after upstream sync.
|
|
61
44
|
|
|
62
|
-
**
|
|
45
|
+
**Scope**: All active Termux releases (update as patches change).
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
# Merge Strategy - Upstream Sync
|
|
2
2
|
|
|
3
|
-
**Project**: gemini-cli-termux
|
|
3
|
+
**Project**: gemini-cli-termux
|
|
4
|
+
**Author**: DioNanos
|
|
5
|
+
**Last updated**: 2025-12-28
|
|
6
|
+
**Scope**: Version-agnostic strategy for maintaining all Termux patches
|
|
4
7
|
|
|
5
8
|
---
|
|
6
9
|
|
|
7
10
|
## Overview
|
|
8
11
|
|
|
9
|
-
Strategy for
|
|
10
|
-
|
|
12
|
+
Strategy for keeping Termux patches merge-safe and easy to re-apply after each
|
|
13
|
+
sync with upstream `google-gemini/gemini-cli`.
|
|
11
14
|
|
|
12
15
|
---
|
|
13
16
|
|
|
@@ -35,19 +38,21 @@ All Termux modifications must be:
|
|
|
35
38
|
```
|
|
36
39
|
gemini-cli-termux/
|
|
37
40
|
├── packages/core/src/
|
|
38
|
-
│ ├── utils/
|
|
39
|
-
│
|
|
40
|
-
│
|
|
41
|
-
│ └──
|
|
41
|
+
│ ├── utils/termux-detect.ts # NEW - no conflicts
|
|
42
|
+
│ ├── utils/contextMemory.ts # NEW - JSON memory + journal
|
|
43
|
+
│ ├── services/contextManager.ts # EDIT - JIT + JSON wiring
|
|
44
|
+
│ └── tools/shell.ts # EDIT - TTS guard
|
|
45
|
+
├── packages/cli/src/config/
|
|
46
|
+
│ ├── settingsSchema.ts # EDIT - Memory Mode settings
|
|
47
|
+
│ └── config.ts # EDIT - Memory Mode logic
|
|
42
48
|
├── scripts/
|
|
43
|
-
│ ├── postinstall.
|
|
44
|
-
│ ├── termux-setup.sh
|
|
45
|
-
│
|
|
46
|
-
│
|
|
47
|
-
|
|
48
|
-
├──
|
|
49
|
-
|
|
50
|
-
└── Makefile # EDIT - additional targets
|
|
49
|
+
│ ├── postinstall.cjs # NEW - no conflicts
|
|
50
|
+
│ ├── termux-setup.sh # NEW - no conflicts
|
|
51
|
+
│ ├── termux-tools/ # NEW - no conflicts
|
|
52
|
+
│ └── check-termux-patches.sh # NEW - verification script
|
|
53
|
+
├── esbuild.config.js # EDIT - banner (polyfills + Termux)
|
|
54
|
+
├── package.json # EDIT - postinstall + Termux config
|
|
55
|
+
└── README.md # EDIT - Termux docs
|
|
51
56
|
```
|
|
52
57
|
|
|
53
58
|
---
|
|
@@ -76,20 +81,27 @@ Likely conflict files:
|
|
|
76
81
|
- `package.json` - Resolve by keeping our scripts
|
|
77
82
|
- `esbuild.config.js` - Resolve by keeping our banner
|
|
78
83
|
- `packages/core/src/index.ts` - Resolve by keeping our exports
|
|
84
|
+
- `packages/cli/src/config/settingsSchema.ts` - Keep Memory Mode settings
|
|
85
|
+
- `packages/cli/src/config/config.ts` - Keep Memory Mode mapping logic
|
|
86
|
+
- `packages/core/src/services/contextManager.ts` - Keep JIT + JSON wiring
|
|
87
|
+
- `packages/core/src/utils/contextMemory.ts` - Keep JSON memory logic
|
|
88
|
+
- `packages/core/src/tools/shell.ts` - Keep TTS guard
|
|
79
89
|
|
|
80
90
|
### Step 4: Verify patches intact
|
|
81
91
|
|
|
82
92
|
```bash
|
|
83
93
|
# Check that our files still exist
|
|
84
94
|
ls -la packages/core/src/utils/termux-detect.ts
|
|
85
|
-
ls -la
|
|
95
|
+
ls -la packages/core/src/utils/contextMemory.ts
|
|
96
|
+
ls -la scripts/postinstall.cjs
|
|
86
97
|
ls -la scripts/termux-setup.sh
|
|
87
98
|
ls -la scripts/termux-tools/
|
|
88
99
|
|
|
89
100
|
# Check that modifications are present
|
|
90
|
-
grep "
|
|
101
|
+
grep "TERMUX PATCH" esbuild.config.js
|
|
91
102
|
grep "postinstall" package.json
|
|
92
103
|
grep "termux-detect" packages/core/src/index.ts
|
|
104
|
+
grep "memory.mode" packages/cli/src/config/settingsSchema.ts
|
|
93
105
|
```
|
|
94
106
|
|
|
95
107
|
### Step 5: Build test
|
|
@@ -122,7 +134,7 @@ git commit -m "merge: upstream vX.Y.Z + Termux patches"
|
|
|
122
134
|
{
|
|
123
135
|
"scripts": {
|
|
124
136
|
// ... upstream scripts ...
|
|
125
|
-
"postinstall": "node scripts/postinstall.
|
|
137
|
+
"postinstall": "node scripts/postinstall.cjs || true" // TERMUX PATCH
|
|
126
138
|
}
|
|
127
139
|
}
|
|
128
140
|
```
|
|
@@ -137,9 +149,15 @@ git commit -m "merge: upstream vX.Y.Z + Termux patches"
|
|
|
137
149
|
banner: {
|
|
138
150
|
js: `/* UPSTREAM BANNER */
|
|
139
151
|
// TERMUX PATCH START
|
|
152
|
+
// Base64 polyfill for web-tree-sitter (Node 22/24)
|
|
153
|
+
if (typeof Uint8Array.fromBase64 !== 'function') { /* ... */ }
|
|
154
|
+
if (typeof Uint8Array.prototype.toBase64 !== 'function') { /* ... */ }
|
|
155
|
+
// Clipboardy Termux detection
|
|
140
156
|
if (process.platform === 'android' && process.env.PREFIX && !process.env.TERMUX__PREFIX) {
|
|
141
157
|
process.env.TERMUX__PREFIX = process.env.PREFIX;
|
|
142
158
|
}
|
|
159
|
+
// Punycode deprecation warning suppression
|
|
160
|
+
if (process.platform === 'android') { /* ... */ }
|
|
143
161
|
// TERMUX PATCH END
|
|
144
162
|
`,
|
|
145
163
|
},
|
|
@@ -156,20 +174,21 @@ if (process.platform === 'android' && process.env.PREFIX && !process.env.TERMUX_
|
|
|
156
174
|
|
|
157
175
|
// TERMUX PATCH
|
|
158
176
|
export * from './utils/termux-detect.js';
|
|
159
|
-
|
|
177
|
+
```
|
|
160
178
|
|
|
161
|
-
### Context memory
|
|
179
|
+
### Context memory + Memory Mode
|
|
162
180
|
|
|
163
|
-
-
|
|
164
|
-
|
|
165
|
-
|
|
181
|
+
- `packages/core/src/utils/contextMemory.ts` implements JSON memories and
|
|
182
|
+
journal compaction.
|
|
183
|
+
- `packages/core/src/services/contextManager.ts` wires JIT + JSON.
|
|
184
|
+
- `packages/cli/src/config/settingsSchema.ts` + `config.ts` add Memory Mode
|
|
185
|
+
settings and mapping logic.
|
|
166
186
|
|
|
167
187
|
### Shell / TTS guard
|
|
168
188
|
|
|
169
189
|
- `packages/core/src/tools/shell.ts` contains a guard to block
|
|
170
190
|
`termux-tts-speak` when `notifications.ttsEnabled` is false. Re-apply after
|
|
171
191
|
merges if the shell tool changes.
|
|
172
|
-
```
|
|
173
192
|
|
|
174
193
|
---
|
|
175
194
|
|
|
@@ -192,10 +211,11 @@ ERRORS=0
|
|
|
192
211
|
# Check file existence
|
|
193
212
|
FILES=(
|
|
194
213
|
"packages/core/src/utils/termux-detect.ts"
|
|
195
|
-
"scripts/postinstall.
|
|
214
|
+
"scripts/postinstall.cjs"
|
|
196
215
|
"scripts/termux-setup.sh"
|
|
197
216
|
"scripts/termux-tools/discovery.sh"
|
|
198
217
|
"scripts/termux-tools/call.sh"
|
|
218
|
+
"scripts/check-termux-patches.sh"
|
|
199
219
|
)
|
|
200
220
|
|
|
201
221
|
for f in "${FILES[@]}"; do
|
|
@@ -208,8 +228,8 @@ for f in "${FILES[@]}"; do
|
|
|
208
228
|
done
|
|
209
229
|
|
|
210
230
|
# Check key contents
|
|
211
|
-
if grep -q "
|
|
212
|
-
echo "✓ esbuild.config.js has TERMUX
|
|
231
|
+
if grep -q "TERMUX PATCH" esbuild.config.js; then
|
|
232
|
+
echo "✓ esbuild.config.js has TERMUX patches"
|
|
213
233
|
else
|
|
214
234
|
echo "✗ esbuild.config.js MISSING TERMUX patch"
|
|
215
235
|
ERRORS=$((ERRORS + 1))
|
|
@@ -229,6 +249,13 @@ else
|
|
|
229
249
|
ERRORS=$((ERRORS + 1))
|
|
230
250
|
fi
|
|
231
251
|
|
|
252
|
+
if grep -q "termux-install" Makefile; then
|
|
253
|
+
echo "✓ Makefile has termux-install target"
|
|
254
|
+
else
|
|
255
|
+
echo "✗ Makefile MISSING termux-install target"
|
|
256
|
+
ERRORS=$((ERRORS + 1))
|
|
257
|
+
fi
|
|
258
|
+
|
|
232
259
|
echo ""
|
|
233
260
|
if [ $ERRORS -eq 0 ]; then
|
|
234
261
|
echo "=== All patches intact ==="
|
|
@@ -254,17 +281,20 @@ bash scripts/check-termux-patches.sh || echo "WARNING: Termux patches need atten
|
|
|
254
281
|
|
|
255
282
|
### Files to monitor
|
|
256
283
|
|
|
257
|
-
| Upstream File
|
|
258
|
-
|
|
|
259
|
-
| `
|
|
260
|
-
| `
|
|
261
|
-
| `packages/
|
|
262
|
-
| `packages/core/src/
|
|
263
|
-
| `packages/
|
|
284
|
+
| Upstream File | Impact | Action |
|
|
285
|
+
| ---------------------------------------------- | ------ | --------------------------- |
|
|
286
|
+
| `esbuild.config.js` | High | Verify banner patches |
|
|
287
|
+
| `package.json` | High | Verify postinstall + config |
|
|
288
|
+
| `packages/cli/src/config/settingsSchema.ts` | High | Memory Mode settings |
|
|
289
|
+
| `packages/core/src/services/contextManager.ts` | High | JIT + JSON wiring |
|
|
290
|
+
| `packages/core/src/utils/contextMemory.ts` | High | JSON memory logic |
|
|
291
|
+
| `packages/core/src/tools/shell.ts` | Medium | TTS guard |
|
|
292
|
+
| `packages/core/src/index.ts` | Medium | termux-detect export |
|
|
293
|
+
| `scripts/termux-tools/*` | Low | Termux-API tools |
|
|
264
294
|
|
|
265
295
|
### Changelog Tracking
|
|
266
296
|
|
|
267
|
-
Keep note of integrated upstream versions:
|
|
297
|
+
Keep note of integrated upstream versions (update as you merge):
|
|
268
298
|
|
|
269
299
|
```
|
|
270
300
|
docs/termux-api/UPSTREAM_TRACKING.md
|
|
@@ -273,10 +303,11 @@ docs/termux-api/UPSTREAM_TRACKING.md
|
|
|
273
303
|
```markdown
|
|
274
304
|
# Upstream Tracking
|
|
275
305
|
|
|
276
|
-
| Version | Date | Notes
|
|
277
|
-
| -------------- | ---------- |
|
|
278
|
-
| 0.21.0-nightly | 2025-12-12 | Initial fork base
|
|
279
|
-
| 0.22.0-nightly | 2025-12-17 | Synced, patches ok
|
|
306
|
+
| Version | Date | Notes |
|
|
307
|
+
| -------------- | ---------- | ------------------------------- |
|
|
308
|
+
| 0.21.0-nightly | 2025-12-12 | Initial fork base |
|
|
309
|
+
| 0.22.0-nightly | 2025-12-17 | Synced, patches ok |
|
|
310
|
+
| 0.24.0-nightly | 2025-12-27 | Synced, Memory Mode + shell fix |
|
|
280
311
|
```
|
|
281
312
|
|
|
282
313
|
---
|
package/bundle/gemini.js
CHANGED
|
@@ -106902,7 +106902,7 @@ import { fileURLToPath as fileURLToPath4 } from "node:url";
|
|
|
106902
106902
|
import path12 from "node:path";
|
|
106903
106903
|
async function getVersion() {
|
|
106904
106904
|
const pkgJson = await getPackageJson(__dirname3);
|
|
106905
|
-
return "0.24.
|
|
106905
|
+
return "0.24.2-termux";
|
|
106906
106906
|
}
|
|
106907
106907
|
var __filename, __dirname3;
|
|
106908
106908
|
var init_version2 = __esm({
|
|
@@ -157917,7 +157917,7 @@ var require_import_in_the_middle = __commonJS({
|
|
|
157917
157917
|
"node_modules/import-in-the-middle/index.js"(exports2, module2) {
|
|
157918
157918
|
var path129 = __require("path");
|
|
157919
157919
|
var parse14 = require_module_details_from_path();
|
|
157920
|
-
var { fileURLToPath:
|
|
157920
|
+
var { fileURLToPath: fileURLToPath23 } = __require("url");
|
|
157921
157921
|
var { MessageChannel: MessageChannel2 } = __require("worker_threads");
|
|
157922
157922
|
var {
|
|
157923
157923
|
importHooks,
|
|
@@ -157996,7 +157996,7 @@ var require_import_in_the_middle = __commonJS({
|
|
|
157996
157996
|
} else {
|
|
157997
157997
|
if (name4.startsWith("file://")) {
|
|
157998
157998
|
try {
|
|
157999
|
-
name4 =
|
|
157999
|
+
name4 = fileURLToPath23(name4);
|
|
158000
158000
|
} catch (e3) {
|
|
158001
158001
|
}
|
|
158002
158002
|
}
|
|
@@ -158011,7 +158011,7 @@ var require_import_in_the_middle = __commonJS({
|
|
|
158011
158011
|
if (moduleName2 === name4) {
|
|
158012
158012
|
if (baseDir) {
|
|
158013
158013
|
if (internals) {
|
|
158014
|
-
name4 = name4 + path129.sep + path129.relative(baseDir,
|
|
158014
|
+
name4 = name4 + path129.sep + path129.relative(baseDir, fileURLToPath23(filename));
|
|
158015
158015
|
} else {
|
|
158016
158016
|
if (!getExperimentalPatchInternals() && !baseDir.endsWith(specifiers.get(filename))) continue;
|
|
158017
158017
|
}
|
|
@@ -161811,8 +161811,8 @@ var GIT_COMMIT_INFO, CLI_VERSION;
|
|
|
161811
161811
|
var init_git_commit = __esm({
|
|
161812
161812
|
"packages/core/dist/src/generated/git-commit.js"() {
|
|
161813
161813
|
"use strict";
|
|
161814
|
-
GIT_COMMIT_INFO = "
|
|
161815
|
-
CLI_VERSION = "0.24.
|
|
161814
|
+
GIT_COMMIT_INFO = "e832d2820";
|
|
161815
|
+
CLI_VERSION = "0.24.1-termux";
|
|
161816
161816
|
}
|
|
161817
161817
|
});
|
|
161818
161818
|
|
|
@@ -314589,7 +314589,7 @@ var require_snapshot_recorder = __commonJS({
|
|
|
314589
314589
|
"node_modules/undici/lib/mock/snapshot-recorder.js"(exports2, module2) {
|
|
314590
314590
|
"use strict";
|
|
314591
314591
|
var { writeFile: writeFile11, readFile: readFile13, mkdir: mkdir11 } = __require("node:fs/promises");
|
|
314592
|
-
var { dirname:
|
|
314592
|
+
var { dirname: dirname29, resolve: resolve30 } = __require("node:path");
|
|
314593
314593
|
var { setTimeout: setTimeout4, clearTimeout: clearTimeout2 } = __require("node:timers");
|
|
314594
314594
|
var { InvalidArgumentError, UndiciError } = require_errors6();
|
|
314595
314595
|
var { hashId, isUrlExcludedFactory, normalizeHeaders: normalizeHeaders2, createHeaderFilters } = require_snapshot_utils();
|
|
@@ -314813,7 +314813,7 @@ var require_snapshot_recorder = __commonJS({
|
|
|
314813
314813
|
throw new InvalidArgumentError("Snapshot path is required");
|
|
314814
314814
|
}
|
|
314815
314815
|
const resolvedPath = resolve30(path129);
|
|
314816
|
-
await mkdir11(
|
|
314816
|
+
await mkdir11(dirname29(resolvedPath), { recursive: true });
|
|
314817
314817
|
const data = Array.from(this.#snapshots.entries()).map(([hash, snapshot]) => ({
|
|
314818
314818
|
hash,
|
|
314819
314819
|
snapshot
|
|
@@ -401773,11 +401773,11 @@ var require_util26 = __commonJS({
|
|
|
401773
401773
|
if (files.includes("node_modules") || files.includes("package.json") || files.includes("package.json5") || files.includes("package.yaml") || files.includes("pnpm-workspace.yaml")) {
|
|
401774
401774
|
return name5;
|
|
401775
401775
|
}
|
|
401776
|
-
const
|
|
401777
|
-
if (
|
|
401776
|
+
const dirname29 = path129.dirname(name5);
|
|
401777
|
+
if (dirname29 === name5) {
|
|
401778
401778
|
return original;
|
|
401779
401779
|
}
|
|
401780
|
-
return find(
|
|
401780
|
+
return find(dirname29, original);
|
|
401781
401781
|
} catch (error40) {
|
|
401782
401782
|
if (name5 === original) {
|
|
401783
401783
|
if (error40.code === "ENOENT") {
|
|
@@ -405572,18 +405572,18 @@ var require_build3 = __commonJS({
|
|
|
405572
405572
|
// node_modules/escalade/sync/index.js
|
|
405573
405573
|
var require_sync3 = __commonJS({
|
|
405574
405574
|
"node_modules/escalade/sync/index.js"(exports2, module2) {
|
|
405575
|
-
var { dirname:
|
|
405575
|
+
var { dirname: dirname29, resolve: resolve30 } = __require("path");
|
|
405576
405576
|
var { readdirSync: readdirSync5, statSync: statSync10 } = __require("fs");
|
|
405577
405577
|
module2.exports = function(start2, callback) {
|
|
405578
405578
|
let dir = resolve30(".", start2);
|
|
405579
405579
|
let tmp, stats = statSync10(dir);
|
|
405580
405580
|
if (!stats.isDirectory()) {
|
|
405581
|
-
dir =
|
|
405581
|
+
dir = dirname29(dir);
|
|
405582
405582
|
}
|
|
405583
405583
|
while (true) {
|
|
405584
405584
|
tmp = callback(dir, readdirSync5(dir));
|
|
405585
405585
|
if (tmp) return resolve30(dir, tmp);
|
|
405586
|
-
dir =
|
|
405586
|
+
dir = dirname29(tmp = dir);
|
|
405587
405587
|
if (tmp === dir) break;
|
|
405588
405588
|
}
|
|
405589
405589
|
};
|
|
@@ -405621,7 +405621,7 @@ var require_require_directory = __commonJS({
|
|
|
405621
405621
|
var fs113 = __require("fs");
|
|
405622
405622
|
var join45 = __require("path").join;
|
|
405623
405623
|
var resolve30 = __require("path").resolve;
|
|
405624
|
-
var
|
|
405624
|
+
var dirname29 = __require("path").dirname;
|
|
405625
405625
|
var defaultOptions4 = {
|
|
405626
405626
|
extensions: ["js", "json", "coffee"],
|
|
405627
405627
|
recurse: true,
|
|
@@ -405654,7 +405654,7 @@ var require_require_directory = __commonJS({
|
|
|
405654
405654
|
options2[prop] = defaultOptions4[prop];
|
|
405655
405655
|
}
|
|
405656
405656
|
}
|
|
405657
|
-
path129 = !path129 ?
|
|
405657
|
+
path129 = !path129 ? dirname29(m2.filename) : resolve30(dirname29(m2.filename), path129);
|
|
405658
405658
|
fs113.readdirSync(path129).forEach(function(filename) {
|
|
405659
405659
|
var joined = join45(path129, filename), files, key, obj;
|
|
405660
405660
|
if (fs113.statSync(joined).isDirectory() && options2.recurse) {
|
|
@@ -407476,9 +407476,9 @@ var require_command_exists = __commonJS({
|
|
|
407476
407476
|
cleanInput = function(s3) {
|
|
407477
407477
|
var isPathName = /[\\]/.test(s3);
|
|
407478
407478
|
if (isPathName) {
|
|
407479
|
-
var
|
|
407479
|
+
var dirname29 = '"' + path129.dirname(s3) + '"';
|
|
407480
407480
|
var basename22 = '"' + path129.basename(s3) + '"';
|
|
407481
|
-
return
|
|
407481
|
+
return dirname29 + ":" + basename22;
|
|
407482
407482
|
}
|
|
407483
407483
|
return '"' + s3 + '"';
|
|
407484
407484
|
};
|
|
@@ -440961,7 +440961,7 @@ var WarningMessage = ({ text }) => {
|
|
|
440961
440961
|
};
|
|
440962
440962
|
|
|
440963
440963
|
// packages/cli/src/generated/git-commit.ts
|
|
440964
|
-
var GIT_COMMIT_INFO2 = "
|
|
440964
|
+
var GIT_COMMIT_INFO2 = "468a27221";
|
|
440965
440965
|
|
|
440966
440966
|
// packages/cli/src/ui/components/AboutBox.tsx
|
|
440967
440967
|
var import_jsx_runtime33 = __toESM(require_jsx_runtime(), 1);
|
|
@@ -454157,12 +454157,24 @@ import * as fs73 from "node:fs";
|
|
|
454157
454157
|
import * as path88 from "node:path";
|
|
454158
454158
|
import * as childProcess3 from "node:child_process";
|
|
454159
454159
|
import process46 from "node:process";
|
|
454160
|
+
import { fileURLToPath as fileURLToPath16 } from "node:url";
|
|
454161
|
+
var __filename4 = fileURLToPath16(import.meta.url);
|
|
454162
|
+
var __dirname10 = path88.dirname(__filename4);
|
|
454160
454163
|
var isDevelopment = process46.env["NODE_ENV"] === "development";
|
|
454161
|
-
function
|
|
454164
|
+
async function getPackageName() {
|
|
454165
|
+
try {
|
|
454166
|
+
const packageJson2 = await getPackageJson(__dirname10);
|
|
454167
|
+
return packageJson2?.name || "@mmmbuto/gemini-cli-termux";
|
|
454168
|
+
} catch {
|
|
454169
|
+
return "@mmmbuto/gemini-cli-termux";
|
|
454170
|
+
}
|
|
454171
|
+
}
|
|
454172
|
+
async function getInstallationInfo(projectRoot, isAutoUpdateDisabled) {
|
|
454162
454173
|
const cliPath = process46.argv[1];
|
|
454163
454174
|
if (!cliPath) {
|
|
454164
454175
|
return { packageManager: "unknown" /* UNKNOWN */, isGlobal: false };
|
|
454165
454176
|
}
|
|
454177
|
+
const packageName = await getPackageName();
|
|
454166
454178
|
try {
|
|
454167
454179
|
const realPath = fs73.realpathSync(cliPath).replace(/\\/g, "/");
|
|
454168
454180
|
const normalizedProjectRoot = projectRoot?.replace(/\\/g, "/");
|
|
@@ -454203,7 +454215,7 @@ function getInstallationInfo(projectRoot, isAutoUpdateDisabled) {
|
|
|
454203
454215
|
}
|
|
454204
454216
|
}
|
|
454205
454217
|
if (realPath.includes("/.pnpm/global")) {
|
|
454206
|
-
const updateCommand3 =
|
|
454218
|
+
const updateCommand3 = `pnpm add -g ${packageName}@latest`;
|
|
454207
454219
|
return {
|
|
454208
454220
|
packageManager: "pnpm" /* PNPM */,
|
|
454209
454221
|
isGlobal: true,
|
|
@@ -454212,7 +454224,7 @@ function getInstallationInfo(projectRoot, isAutoUpdateDisabled) {
|
|
|
454212
454224
|
};
|
|
454213
454225
|
}
|
|
454214
454226
|
if (realPath.includes("/.yarn/global")) {
|
|
454215
|
-
const updateCommand3 =
|
|
454227
|
+
const updateCommand3 = `yarn global add ${packageName}@latest`;
|
|
454216
454228
|
return {
|
|
454217
454229
|
packageManager: "yarn" /* YARN */,
|
|
454218
454230
|
isGlobal: true,
|
|
@@ -454228,7 +454240,7 @@ function getInstallationInfo(projectRoot, isAutoUpdateDisabled) {
|
|
|
454228
454240
|
};
|
|
454229
454241
|
}
|
|
454230
454242
|
if (realPath.includes("/.bun/bin")) {
|
|
454231
|
-
const updateCommand3 =
|
|
454243
|
+
const updateCommand3 = `bun add -g ${packageName}@latest`;
|
|
454232
454244
|
return {
|
|
454233
454245
|
packageManager: "bun" /* BUN */,
|
|
454234
454246
|
isGlobal: true,
|
|
@@ -454251,7 +454263,7 @@ function getInstallationInfo(projectRoot, isAutoUpdateDisabled) {
|
|
|
454251
454263
|
updateMessage: "Locally installed. Please update via your project's package.json."
|
|
454252
454264
|
};
|
|
454253
454265
|
}
|
|
454254
|
-
const updateCommand2 =
|
|
454266
|
+
const updateCommand2 = `npm install -g ${packageName}@latest`;
|
|
454255
454267
|
return {
|
|
454256
454268
|
packageManager: "npm" /* NPM */,
|
|
454257
454269
|
isGlobal: true,
|
|
@@ -457146,7 +457158,7 @@ import path97 from "node:path";
|
|
|
457146
457158
|
|
|
457147
457159
|
// packages/cli/node_modules/tar/dist/esm/list.js
|
|
457148
457160
|
import fs78 from "node:fs";
|
|
457149
|
-
import { dirname as
|
|
457161
|
+
import { dirname as dirname23, parse as parse10 } from "path";
|
|
457150
457162
|
|
|
457151
457163
|
// packages/cli/node_modules/tar/dist/esm/options.js
|
|
457152
457164
|
var argmap = /* @__PURE__ */ new Map([
|
|
@@ -458752,7 +458764,7 @@ var filesFilter = (opt, files) => {
|
|
|
458752
458764
|
if (m2 !== void 0) {
|
|
458753
458765
|
ret = m2;
|
|
458754
458766
|
} else {
|
|
458755
|
-
ret = mapHas(
|
|
458767
|
+
ret = mapHas(dirname23(file2), root);
|
|
458756
458768
|
}
|
|
458757
458769
|
}
|
|
458758
458770
|
map3.set(file2, ret);
|
|
@@ -470365,10 +470377,10 @@ async function latestVersion(packageName, options2) {
|
|
|
470365
470377
|
// packages/cli/src/ui/utils/updateCheck.ts
|
|
470366
470378
|
var import_semver3 = __toESM(require_semver3(), 1);
|
|
470367
470379
|
init_dist7();
|
|
470368
|
-
import { fileURLToPath as
|
|
470380
|
+
import { fileURLToPath as fileURLToPath17 } from "node:url";
|
|
470369
470381
|
import path114 from "node:path";
|
|
470370
|
-
var
|
|
470371
|
-
var
|
|
470382
|
+
var __filename5 = fileURLToPath17(import.meta.url);
|
|
470383
|
+
var __dirname11 = path114.dirname(__filename5);
|
|
470372
470384
|
function getBestAvailableUpdate(nightly, stable) {
|
|
470373
470385
|
if (!nightly) return stable || null;
|
|
470374
470386
|
if (!stable) return nightly || null;
|
|
@@ -470385,7 +470397,7 @@ async function checkForUpdates(settings) {
|
|
|
470385
470397
|
if (process.env["DEV"] === "true") {
|
|
470386
470398
|
return null;
|
|
470387
470399
|
}
|
|
470388
|
-
const packageJson2 = await getPackageJson(
|
|
470400
|
+
const packageJson2 = await getPackageJson(__dirname11);
|
|
470389
470401
|
if (!packageJson2 || !packageJson2.name || !packageJson2.version) {
|
|
470390
470402
|
return null;
|
|
470391
470403
|
}
|
|
@@ -470442,7 +470454,7 @@ import { spawn as spawn10 } from "node:child_process";
|
|
|
470442
470454
|
var spawnWrapper = spawn10;
|
|
470443
470455
|
|
|
470444
470456
|
// packages/cli/src/utils/handleAutoUpdate.ts
|
|
470445
|
-
function handleAutoUpdate(info2, settings, projectRoot, spawnFn = spawnWrapper) {
|
|
470457
|
+
async function handleAutoUpdate(info2, settings, projectRoot, spawnFn = spawnWrapper) {
|
|
470446
470458
|
if (!info2) {
|
|
470447
470459
|
return;
|
|
470448
470460
|
}
|
|
@@ -470456,7 +470468,7 @@ Automatic update is not available in sandbox mode.`
|
|
|
470456
470468
|
if (settings.merged.general?.disableUpdateNag) {
|
|
470457
470469
|
return;
|
|
470458
470470
|
}
|
|
470459
|
-
const installationInfo = getInstallationInfo(
|
|
470471
|
+
const installationInfo = await getInstallationInfo(
|
|
470460
470472
|
projectRoot,
|
|
470461
470473
|
settings.merged.general?.disableAutoUpdate ?? false
|
|
470462
470474
|
);
|
|
@@ -474123,18 +474135,18 @@ function ui(opts) {
|
|
|
474123
474135
|
}
|
|
474124
474136
|
|
|
474125
474137
|
// node_modules/escalade/sync/index.mjs
|
|
474126
|
-
import { dirname as
|
|
474138
|
+
import { dirname as dirname24, resolve as resolve21 } from "path";
|
|
474127
474139
|
import { readdirSync as readdirSync4, statSync as statSync8 } from "fs";
|
|
474128
474140
|
function sync_default(start2, callback) {
|
|
474129
474141
|
let dir = resolve21(".", start2);
|
|
474130
474142
|
let tmp, stats = statSync8(dir);
|
|
474131
474143
|
if (!stats.isDirectory()) {
|
|
474132
|
-
dir =
|
|
474144
|
+
dir = dirname24(dir);
|
|
474133
474145
|
}
|
|
474134
474146
|
while (true) {
|
|
474135
474147
|
tmp = callback(dir, readdirSync4(dir));
|
|
474136
474148
|
if (tmp) return resolve21(dir, tmp);
|
|
474137
|
-
dir =
|
|
474149
|
+
dir = dirname24(tmp = dir);
|
|
474138
474150
|
if (tmp === dir) break;
|
|
474139
474151
|
}
|
|
474140
474152
|
}
|
|
@@ -474142,8 +474154,8 @@ function sync_default(start2, callback) {
|
|
|
474142
474154
|
// node_modules/yargs/lib/platform-shims/esm.mjs
|
|
474143
474155
|
import { inspect as inspect5 } from "util";
|
|
474144
474156
|
import { readFileSync as readFileSync18 } from "fs";
|
|
474145
|
-
import { fileURLToPath as
|
|
474146
|
-
import { basename as basename19, dirname as
|
|
474157
|
+
import { fileURLToPath as fileURLToPath18 } from "url";
|
|
474158
|
+
import { basename as basename19, dirname as dirname25, extname as extname6, relative as relative8, resolve as resolve23 } from "path";
|
|
474147
474159
|
|
|
474148
474160
|
// node_modules/y18n/build/lib/platform-shims/node.js
|
|
474149
474161
|
import { readFileSync as readFileSync17, statSync as statSync9, writeFile as writeFile9 } from "fs";
|
|
@@ -474335,13 +474347,13 @@ var y18n_default = y18n2;
|
|
|
474335
474347
|
// node_modules/yargs/lib/platform-shims/esm.mjs
|
|
474336
474348
|
var REQUIRE_ERROR = "require is not supported by ESM";
|
|
474337
474349
|
var REQUIRE_DIRECTORY_ERROR = "loading a directory of commands is not supported yet for ESM";
|
|
474338
|
-
var
|
|
474350
|
+
var __dirname12;
|
|
474339
474351
|
try {
|
|
474340
|
-
|
|
474352
|
+
__dirname12 = fileURLToPath18(import.meta.url);
|
|
474341
474353
|
} catch (e3) {
|
|
474342
|
-
|
|
474354
|
+
__dirname12 = process.cwd();
|
|
474343
474355
|
}
|
|
474344
|
-
var mainFilename =
|
|
474356
|
+
var mainFilename = __dirname12.substring(0, __dirname12.lastIndexOf("node_modules"));
|
|
474345
474357
|
var esm_default3 = {
|
|
474346
474358
|
assert: {
|
|
474347
474359
|
notStrictEqual,
|
|
@@ -474361,7 +474373,7 @@ var esm_default3 = {
|
|
|
474361
474373
|
Parser: lib_default,
|
|
474362
474374
|
path: {
|
|
474363
474375
|
basename: basename19,
|
|
474364
|
-
dirname:
|
|
474376
|
+
dirname: dirname25,
|
|
474365
474377
|
extname: extname6,
|
|
474366
474378
|
relative: relative8,
|
|
474367
474379
|
resolve: resolve23
|
|
@@ -474386,7 +474398,7 @@ var esm_default3 = {
|
|
|
474386
474398
|
return [...str].length;
|
|
474387
474399
|
},
|
|
474388
474400
|
y18n: y18n_default({
|
|
474389
|
-
directory: resolve23(
|
|
474401
|
+
directory: resolve23(__dirname12, "../../../locales"),
|
|
474390
474402
|
updateFiles: false
|
|
474391
474403
|
})
|
|
474392
474404
|
};
|
|
@@ -475046,10 +475058,10 @@ init_dist7();
|
|
|
475046
475058
|
init_read_package_up();
|
|
475047
475059
|
|
|
475048
475060
|
// packages/core/src/utils/version.ts
|
|
475049
|
-
import { fileURLToPath as
|
|
475061
|
+
import { fileURLToPath as fileURLToPath19 } from "node:url";
|
|
475050
475062
|
import path121 from "node:path";
|
|
475051
|
-
var
|
|
475052
|
-
var
|
|
475063
|
+
var __filename6 = fileURLToPath19(import.meta.url);
|
|
475064
|
+
var __dirname13 = path121.dirname(__filename6);
|
|
475053
475065
|
|
|
475054
475066
|
// packages/core/src/utils/debugLogger.ts
|
|
475055
475067
|
import * as fs105 from "node:fs";
|
|
@@ -478900,11 +478912,11 @@ var linkCommand = {
|
|
|
478900
478912
|
// packages/cli/src/commands/extensions/new.ts
|
|
478901
478913
|
init_dist7();
|
|
478902
478914
|
import { access as access4, cp, mkdir as mkdir10, readdir as readdir9, writeFile as writeFile10 } from "node:fs/promises";
|
|
478903
|
-
import { join as join43, dirname as
|
|
478904
|
-
import { fileURLToPath as
|
|
478905
|
-
var
|
|
478906
|
-
var
|
|
478907
|
-
var EXAMPLES_PATH = join43(
|
|
478915
|
+
import { join as join43, dirname as dirname28, basename as basename20 } from "node:path";
|
|
478916
|
+
import { fileURLToPath as fileURLToPath20 } from "node:url";
|
|
478917
|
+
var __filename7 = fileURLToPath20(import.meta.url);
|
|
478918
|
+
var __dirname14 = dirname28(__filename7);
|
|
478919
|
+
var EXAMPLES_PATH = join43(__dirname14, "examples");
|
|
478908
478920
|
async function pathExists2(path129) {
|
|
478909
478921
|
try {
|
|
478910
478922
|
await access4(path129);
|
|
@@ -479388,10 +479400,10 @@ var hooksCommand2 = {
|
|
|
479388
479400
|
init_dist7();
|
|
479389
479401
|
var import_command_exists = __toESM(require_command_exists2(), 1);
|
|
479390
479402
|
import * as os30 from "node:os";
|
|
479391
|
-
import { fileURLToPath as
|
|
479403
|
+
import { fileURLToPath as fileURLToPath21 } from "node:url";
|
|
479392
479404
|
import path124 from "node:path";
|
|
479393
|
-
var
|
|
479394
|
-
var
|
|
479405
|
+
var __filename8 = fileURLToPath21(import.meta.url);
|
|
479406
|
+
var __dirname15 = path124.dirname(__filename8);
|
|
479395
479407
|
var VALID_SANDBOX_COMMANDS = [
|
|
479396
479408
|
"docker",
|
|
479397
479409
|
"podman",
|
|
@@ -479443,7 +479455,7 @@ function getSandboxCommand(sandbox) {
|
|
|
479443
479455
|
async function loadSandboxConfig(settings, argv) {
|
|
479444
479456
|
const sandboxOption = argv.sandbox ?? settings.tools?.sandbox;
|
|
479445
479457
|
const command2 = getSandboxCommand(sandboxOption);
|
|
479446
|
-
const packageJson2 = await getPackageJson(
|
|
479458
|
+
const packageJson2 = await getPackageJson(__dirname15);
|
|
479447
479459
|
const image2 = process.env["GEMINI_SANDBOX_IMAGE"] ?? packageJson2?.config?.sandboxImageUri;
|
|
479448
479460
|
return command2 && image2 ? { command: command2, image: image2 } : void 0;
|
|
479449
479461
|
}
|
|
@@ -479690,7 +479702,7 @@ async function parseArguments2(settings) {
|
|
|
479690
479702
|
if (settings?.tools?.enableHooks) {
|
|
479691
479703
|
yargsInstance.command(hooksCommand2);
|
|
479692
479704
|
}
|
|
479693
|
-
yargsInstance.version(process58.env["CLI_VERSION"] || "0.24.
|
|
479705
|
+
yargsInstance.version(process58.env["CLI_VERSION"] || "0.24.2-termux").alias("v", "version").help().alias("h", "help").strict().demandCommand(0, 0).exitProcess(false);
|
|
479694
479706
|
yargsInstance.wrap(yargsInstance.terminalWidth());
|
|
479695
479707
|
let result;
|
|
479696
479708
|
try {
|
|
@@ -480066,7 +480078,7 @@ import { exec as exec4, execSync as execSync7, spawn as spawn11 } from "node:chi
|
|
|
480066
480078
|
import os33 from "node:os";
|
|
480067
480079
|
import path126 from "node:path";
|
|
480068
480080
|
import fs109 from "node:fs";
|
|
480069
|
-
import { fileURLToPath as
|
|
480081
|
+
import { fileURLToPath as fileURLToPath22 } from "node:url";
|
|
480070
480082
|
init_dist7();
|
|
480071
480083
|
import { promisify as promisify15 } from "node:util";
|
|
480072
480084
|
|
|
@@ -480242,7 +480254,7 @@ async function start_sandbox(config2, nodeArgs = [], cliConfig, cliArgs = []) {
|
|
|
480242
480254
|
);
|
|
480243
480255
|
}
|
|
480244
480256
|
const profile = process.env["SEATBELT_PROFILE"] ??= "permissive-open";
|
|
480245
|
-
let profileFile =
|
|
480257
|
+
let profileFile = fileURLToPath22(
|
|
480246
480258
|
new URL(`sandbox-macos-${profile}.sb`, import.meta.url)
|
|
480247
480259
|
);
|
|
480248
480260
|
if (!BUILTIN_SEATBELT_PROFILES.includes(profile)) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mmmbuto/gemini-cli-termux",
|
|
3
|
-
"version": "0.24.
|
|
3
|
+
"version": "0.24.2-termux",
|
|
4
4
|
"engines": {
|
|
5
5
|
"node": ">=20.0.0"
|
|
6
6
|
},
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"url": "https://github.com/DioNanos/gemini-cli-termux.git"
|
|
15
15
|
},
|
|
16
16
|
"config": {
|
|
17
|
-
"sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.24.
|
|
17
|
+
"sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.24.2-termux"
|
|
18
18
|
},
|
|
19
19
|
"scripts": {
|
|
20
20
|
"start": "crossenv NODE_ENV=development node scripts/start.js",
|