@google/gemini-cli 0.37.0-preview.0 → 0.37.0-preview.2
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/bundle/{chunk-LEK5YYAR.js → chunk-4GDVEGW6.js} +66 -29
- package/bundle/{chunk-TJ76C6AA.js → chunk-4HLDGHKQ.js} +5903 -11016
- package/bundle/{chunk-R5X4CMUM.js → chunk-5OOT636U.js} +30 -23
- package/bundle/{chunk-7UZ4Y32N.js → chunk-JS5WSGB2.js} +30 -23
- package/bundle/{chunk-ULC3DHVX.js → chunk-KVB2FEJR.js} +6 -6
- package/bundle/{chunk-A62NZYIK.js → chunk-Q7WBFJC3.js} +73 -61
- package/bundle/chunk-RKV6HN7Q.js +98376 -0
- package/bundle/{chunk-3TN4SOLW.js → chunk-T475D6CB.js} +72 -29
- package/bundle/{chunk-XX7JYMTE.js → chunk-TZN2SS4V.js} +6 -6
- package/bundle/chunk-WY42FI6I.js +356418 -0
- package/bundle/{core-5OME6LT4.js → core-YYXQJ7TH.js} +4 -2
- package/bundle/{devtoolsService-4FIYD6OW.js → devtoolsService-B6RHLEYB.js} +3 -3
- package/bundle/{devtoolsService-TVWW3DBW.js → devtoolsService-DHRIWISR.js} +3 -3
- package/bundle/{devtoolsService-IDLWLZFQ.js → devtoolsService-MSTYJNTU.js} +5 -4
- package/bundle/devtoolsService-NRFH67X5.js +871 -0
- package/bundle/{core-CUCGSGCA.js → dist-2HVISZHF.js} +4 -2
- package/bundle/{dist-YWCADMDD.js → dist-KYKNBAEA.js} +4 -2
- package/bundle/dist-WQ7AVR5S.js +1942 -0
- package/bundle/docs/cli/plan-mode.md +10 -3
- package/bundle/docs/cli/settings.md +33 -33
- package/bundle/docs/reference/configuration.md +2 -2
- package/bundle/docs/reference/policy-engine.md +20 -1
- package/bundle/gemini.js +7 -7
- package/bundle/{interactiveCli-4WFWOVAQ.js → interactiveCli-M5FR2TSQ.js} +4 -4
- package/bundle/{interactiveCli-4ZZ72DR3.js → interactiveCli-NNZT57UA.js} +264 -247
- package/bundle/interactiveCli-WM3LDBWK.js +50355 -0
- package/bundle/{interactiveCli-6SIGBRWS.js → interactiveCli-Z6APHR6N.js} +4 -4
- package/bundle/{memoryDiscovery-NS2EGHYH.js → memoryDiscovery-A265O6ML.js} +1 -1
- package/bundle/{memoryDiscovery-VL3OH25S.js → memoryDiscovery-H6J7KIH2.js} +1 -1
- package/bundle/node_modules/@google/gemini-cli-devtools/package.json +1 -1
- package/bundle/{oauth2-provider-HGHECKPY.js → oauth2-provider-3Z6BMHEW.js} +2 -2
- package/bundle/{oauth2-provider-YYRJ44X5.js → oauth2-provider-6573WD2M.js} +39 -73
- package/bundle/{oauth2-provider-TYBJKXSJ.js → oauth2-provider-DFCNEZQQ.js} +2 -2
- package/bundle/oauth2-provider-UMCNQ5DH.js +237 -0
- package/package.json +1 -1
|
@@ -180,9 +180,16 @@ As described in the
|
|
|
180
180
|
rule that does not explicitly specify `modes` is considered "always active" and
|
|
181
181
|
will apply to Plan Mode as well.
|
|
182
182
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
183
|
+
To maintain the integrity of Plan Mode as a safe research environment,
|
|
184
|
+
persistent tool approvals are context-aware. Approvals granted in modes like
|
|
185
|
+
Default or Auto-Edit do not apply to Plan Mode, ensuring that tools trusted for
|
|
186
|
+
implementation don't automatically execute while you're researching. However,
|
|
187
|
+
approvals granted while in Plan Mode are treated as intentional choices for
|
|
188
|
+
global trust and apply to all modes.
|
|
189
|
+
|
|
190
|
+
If you want to manually restrict a rule to other modes but _not_ to Plan Mode,
|
|
191
|
+
you must explicitly specify the target modes. For example, to allow `npm test`
|
|
192
|
+
in default and Auto-Edit modes but not in Plan Mode:
|
|
186
193
|
|
|
187
194
|
```toml
|
|
188
195
|
[[rule]]
|
|
@@ -47,39 +47,39 @@ they appear in the UI.
|
|
|
47
47
|
|
|
48
48
|
### UI
|
|
49
49
|
|
|
50
|
-
| UI Label | Setting | Description | Default
|
|
51
|
-
| ------------------------------------ | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
52
|
-
| Auto Theme Switching | `ui.autoThemeSwitching` | Automatically switch between default light and dark themes based on terminal background color. | `true`
|
|
53
|
-
| Terminal Background Polling Interval | `ui.terminalBackgroundPollingInterval` | Interval in seconds to poll the terminal background color. | `60`
|
|
54
|
-
| Hide Window Title | `ui.hideWindowTitle` | Hide the window title bar | `false`
|
|
55
|
-
| Inline Thinking | `ui.inlineThinkingMode` | Display model thinking inline: off or full. | `"off"`
|
|
56
|
-
| Show Thoughts in Title | `ui.showStatusInTitle` | Show Gemini CLI model thoughts in the terminal window title during the working phase | `false`
|
|
57
|
-
| Dynamic Window Title | `ui.dynamicWindowTitle` | Update the terminal window title with current status icons (Ready: ◇, Action Required: ✋, Working: ✦) | `true`
|
|
58
|
-
| Show Home Directory Warning | `ui.showHomeDirectoryWarning` | Show a warning when running Gemini CLI in the home directory. | `true`
|
|
59
|
-
| Show Compatibility Warnings | `ui.showCompatibilityWarnings` | Show warnings about terminal or OS compatibility issues. | `true`
|
|
60
|
-
| Hide Tips | `ui.hideTips` | Hide helpful tips in the UI | `false`
|
|
61
|
-
| Escape Pasted @ Symbols | `ui.escapePastedAtSymbols` | When enabled, @ symbols in pasted text are escaped to prevent unintended @path expansion. | `false`
|
|
62
|
-
| Show Shortcuts Hint | `ui.showShortcutsHint` | Show the "? for shortcuts" hint above the input. | `true`
|
|
63
|
-
| Compact Tool Output | `ui.compactToolOutput` | Display tool outputs (like directory listings and file reads) in a compact, structured format. | `false`
|
|
64
|
-
| Hide Banner | `ui.hideBanner` | Hide the application banner | `false`
|
|
65
|
-
| Hide Context Summary | `ui.hideContextSummary` | Hide the context summary (GEMINI.md, MCP servers) above the input. | `false`
|
|
66
|
-
| Hide CWD | `ui.footer.hideCWD` | Hide the current working directory in the footer. | `false`
|
|
67
|
-
| Hide Sandbox Status | `ui.footer.hideSandboxStatus` | Hide the sandbox status indicator in the footer. | `false`
|
|
68
|
-
| Hide Model Info | `ui.footer.hideModelInfo` | Hide the model name and context usage in the footer. | `false`
|
|
69
|
-
| Hide Context Window Percentage | `ui.footer.hideContextPercentage` | Hides the context window usage percentage. | `true`
|
|
70
|
-
| Hide Footer | `ui.hideFooter` | Hide the footer from the UI | `false`
|
|
71
|
-
| Show Memory Usage | `ui.showMemoryUsage` | Display memory usage information in the UI | `false`
|
|
72
|
-
| Show Line Numbers | `ui.showLineNumbers` | Show line numbers in the chat. | `true`
|
|
73
|
-
| Show Citations | `ui.showCitations` | Show citations for generated text in the chat. | `false`
|
|
74
|
-
| Show Model Info In Chat | `ui.showModelInfoInChat` | Show the model name in the chat for each model turn. | `false`
|
|
75
|
-
| Show User Identity | `ui.showUserIdentity` | Show the signed-in user's identity (e.g. email) in the UI. | `true`
|
|
76
|
-
| Use Alternate Screen Buffer | `ui.useAlternateBuffer` | Use an alternate screen buffer for the UI, preserving shell history. | `false`
|
|
77
|
-
| Use Background Color | `ui.useBackgroundColor` | Whether to use background colors in the UI. | `true`
|
|
78
|
-
| Incremental Rendering | `ui.incrementalRendering` | Enable incremental rendering for the UI. This option will reduce flickering but may cause rendering artifacts. Only supported when useAlternateBuffer is enabled. | `true`
|
|
79
|
-
| Show Spinner | `ui.showSpinner` | Show the spinner during operations. | `true`
|
|
80
|
-
| Loading Phrases | `ui.loadingPhrases` | What to show while the model is working: tips, witty comments,
|
|
81
|
-
| Error Verbosity | `ui.errorVerbosity` | Controls whether recoverable errors are hidden (low) or fully shown (full). | `"low"`
|
|
82
|
-
| Screen Reader Mode | `ui.accessibility.screenReader` | Render output in plain-text to be more screen reader accessible | `false`
|
|
50
|
+
| UI Label | Setting | Description | Default |
|
|
51
|
+
| ------------------------------------ | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
|
|
52
|
+
| Auto Theme Switching | `ui.autoThemeSwitching` | Automatically switch between default light and dark themes based on terminal background color. | `true` |
|
|
53
|
+
| Terminal Background Polling Interval | `ui.terminalBackgroundPollingInterval` | Interval in seconds to poll the terminal background color. | `60` |
|
|
54
|
+
| Hide Window Title | `ui.hideWindowTitle` | Hide the window title bar | `false` |
|
|
55
|
+
| Inline Thinking | `ui.inlineThinkingMode` | Display model thinking inline: off or full. | `"off"` |
|
|
56
|
+
| Show Thoughts in Title | `ui.showStatusInTitle` | Show Gemini CLI model thoughts in the terminal window title during the working phase | `false` |
|
|
57
|
+
| Dynamic Window Title | `ui.dynamicWindowTitle` | Update the terminal window title with current status icons (Ready: ◇, Action Required: ✋, Working: ✦) | `true` |
|
|
58
|
+
| Show Home Directory Warning | `ui.showHomeDirectoryWarning` | Show a warning when running Gemini CLI in the home directory. | `true` |
|
|
59
|
+
| Show Compatibility Warnings | `ui.showCompatibilityWarnings` | Show warnings about terminal or OS compatibility issues. | `true` |
|
|
60
|
+
| Hide Tips | `ui.hideTips` | Hide helpful tips in the UI | `false` |
|
|
61
|
+
| Escape Pasted @ Symbols | `ui.escapePastedAtSymbols` | When enabled, @ symbols in pasted text are escaped to prevent unintended @path expansion. | `false` |
|
|
62
|
+
| Show Shortcuts Hint | `ui.showShortcutsHint` | Show the "? for shortcuts" hint above the input. | `true` |
|
|
63
|
+
| Compact Tool Output | `ui.compactToolOutput` | Display tool outputs (like directory listings and file reads) in a compact, structured format. | `false` |
|
|
64
|
+
| Hide Banner | `ui.hideBanner` | Hide the application banner | `false` |
|
|
65
|
+
| Hide Context Summary | `ui.hideContextSummary` | Hide the context summary (GEMINI.md, MCP servers) above the input. | `false` |
|
|
66
|
+
| Hide CWD | `ui.footer.hideCWD` | Hide the current working directory in the footer. | `false` |
|
|
67
|
+
| Hide Sandbox Status | `ui.footer.hideSandboxStatus` | Hide the sandbox status indicator in the footer. | `false` |
|
|
68
|
+
| Hide Model Info | `ui.footer.hideModelInfo` | Hide the model name and context usage in the footer. | `false` |
|
|
69
|
+
| Hide Context Window Percentage | `ui.footer.hideContextPercentage` | Hides the context window usage percentage. | `true` |
|
|
70
|
+
| Hide Footer | `ui.hideFooter` | Hide the footer from the UI | `false` |
|
|
71
|
+
| Show Memory Usage | `ui.showMemoryUsage` | Display memory usage information in the UI | `false` |
|
|
72
|
+
| Show Line Numbers | `ui.showLineNumbers` | Show line numbers in the chat. | `true` |
|
|
73
|
+
| Show Citations | `ui.showCitations` | Show citations for generated text in the chat. | `false` |
|
|
74
|
+
| Show Model Info In Chat | `ui.showModelInfoInChat` | Show the model name in the chat for each model turn. | `false` |
|
|
75
|
+
| Show User Identity | `ui.showUserIdentity` | Show the signed-in user's identity (e.g. email) in the UI. | `true` |
|
|
76
|
+
| Use Alternate Screen Buffer | `ui.useAlternateBuffer` | Use an alternate screen buffer for the UI, preserving shell history. | `false` |
|
|
77
|
+
| Use Background Color | `ui.useBackgroundColor` | Whether to use background colors in the UI. | `true` |
|
|
78
|
+
| Incremental Rendering | `ui.incrementalRendering` | Enable incremental rendering for the UI. This option will reduce flickering but may cause rendering artifacts. Only supported when useAlternateBuffer is enabled. | `true` |
|
|
79
|
+
| Show Spinner | `ui.showSpinner` | Show the spinner during operations. | `true` |
|
|
80
|
+
| Loading Phrases | `ui.loadingPhrases` | What to show while the model is working: tips, witty comments, all, or off. | `"off"` |
|
|
81
|
+
| Error Verbosity | `ui.errorVerbosity` | Controls whether recoverable errors are hidden (low) or fully shown (full). | `"low"` |
|
|
82
|
+
| Screen Reader Mode | `ui.accessibility.screenReader` | Render output in plain-text to be more screen reader accessible | `false` |
|
|
83
83
|
|
|
84
84
|
### IDE
|
|
85
85
|
|
|
@@ -354,8 +354,8 @@ their corresponding top-level category object in your `settings.json` file.
|
|
|
354
354
|
|
|
355
355
|
- **`ui.loadingPhrases`** (enum):
|
|
356
356
|
- **Description:** What to show while the model is working: tips, witty
|
|
357
|
-
comments,
|
|
358
|
-
- **Default:** `"
|
|
357
|
+
comments, all, or off.
|
|
358
|
+
- **Default:** `"off"`
|
|
359
359
|
- **Values:** `"tips"`, `"witty"`, `"all"`, `"off"`
|
|
360
360
|
|
|
361
361
|
- **`ui.errorVerbosity`** (enum):
|
|
@@ -171,6 +171,24 @@ modes specified, it is always active.
|
|
|
171
171
|
[Customizing Plan Mode Policies](../cli/plan-mode.md#customizing-policies).
|
|
172
172
|
- `yolo`: A mode where all tools are auto-approved (use with extreme caution).
|
|
173
173
|
|
|
174
|
+
To maintain the integrity of Plan Mode as a safe research environment,
|
|
175
|
+
persistent tool approvals are context-aware. When you select **"Allow for all
|
|
176
|
+
future sessions"**, the policy engine explicitly includes the current mode and
|
|
177
|
+
all more permissive modes in the hierarchy (`plan` < `default` < `autoEdit` <
|
|
178
|
+
`yolo`).
|
|
179
|
+
|
|
180
|
+
- **Approvals in `plan` mode**: These represent an intentional choice to trust a
|
|
181
|
+
tool globally. The resulting rule explicitly includes all modes (`plan`,
|
|
182
|
+
`default`, `autoEdit`, and `yolo`).
|
|
183
|
+
- **Approvals in other modes**: These only apply to the current mode and those
|
|
184
|
+
more permissive. For example:
|
|
185
|
+
- An approval granted in **`default`** mode applies to `default`, `autoEdit`,
|
|
186
|
+
and `yolo`.
|
|
187
|
+
- An approval granted in **`autoEdit`** mode applies to `autoEdit` and `yolo`.
|
|
188
|
+
- An approval granted in **`yolo`** mode applies only to `yolo`. This ensures
|
|
189
|
+
that trust flows correctly to more permissive environments while maintaining
|
|
190
|
+
the safety of more restricted modes like `plan`.
|
|
191
|
+
|
|
174
192
|
## Rule matching
|
|
175
193
|
|
|
176
194
|
When a tool call is made, the engine checks it against all active rules,
|
|
@@ -304,7 +322,8 @@ priority = 10
|
|
|
304
322
|
denyMessage = "Deletion is permanent"
|
|
305
323
|
|
|
306
324
|
# (Optional) An array of approval modes where this rule is active.
|
|
307
|
-
|
|
325
|
+
# If omitted or empty, the rule applies to all modes.
|
|
326
|
+
modes = ["default", "autoEdit", "yolo"]
|
|
308
327
|
|
|
309
328
|
# (Optional) A boolean to restrict the rule to interactive (true) or
|
|
310
329
|
# non-interactive (false) environments.
|
package/bundle/gemini.js
CHANGED
|
@@ -66,7 +66,7 @@ import {
|
|
|
66
66
|
updateAllUpdatableExtensions,
|
|
67
67
|
updateExtension,
|
|
68
68
|
validateAuthMethod
|
|
69
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-KVB2FEJR.js";
|
|
70
70
|
import {
|
|
71
71
|
AuthType,
|
|
72
72
|
ChatRecordingService,
|
|
@@ -155,7 +155,7 @@ import {
|
|
|
155
155
|
updatePolicy,
|
|
156
156
|
writeToStderr,
|
|
157
157
|
writeToStdout
|
|
158
|
-
} from "./chunk-
|
|
158
|
+
} from "./chunk-WY42FI6I.js";
|
|
159
159
|
import {
|
|
160
160
|
ASK_USER_TOOL_NAME,
|
|
161
161
|
ApprovalMode,
|
|
@@ -201,7 +201,7 @@ import {
|
|
|
201
201
|
loadServerHierarchicalMemory,
|
|
202
202
|
resolveToRealPath,
|
|
203
203
|
setGeminiMdFilename
|
|
204
|
-
} from "./chunk-
|
|
204
|
+
} from "./chunk-JS5WSGB2.js";
|
|
205
205
|
import "./chunk-664ZODQF.js";
|
|
206
206
|
import {
|
|
207
207
|
appEvents
|
|
@@ -7251,7 +7251,7 @@ async function loadSandboxConfig(settings, argv) {
|
|
|
7251
7251
|
}
|
|
7252
7252
|
const command2 = getSandboxCommand(sandboxValue);
|
|
7253
7253
|
const packageJson = await getPackageJson(__dirname3);
|
|
7254
|
-
const image = process.env["GEMINI_SANDBOX_IMAGE"] ?? "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.37.0-preview.
|
|
7254
|
+
const image = process.env["GEMINI_SANDBOX_IMAGE"] ?? "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.37.0-preview.2" ?? customImage ?? packageJson?.config?.sandboxImageUri;
|
|
7255
7255
|
const isNative = command2 === "windows-native" || command2 === "sandbox-exec" || command2 === "lxc";
|
|
7256
7256
|
return command2 && (image || isNative) ? { enabled: true, allowedPaths, networkAccess, command: command2, image } : void 0;
|
|
7257
7257
|
}
|
|
@@ -9539,7 +9539,7 @@ async function runNonInteractive({
|
|
|
9539
9539
|
}
|
|
9540
9540
|
});
|
|
9541
9541
|
if (process.env["GEMINI_CLI_ACTIVITY_LOG_TARGET"]) {
|
|
9542
|
-
const { setupInitialActivityLogger } = await import("./devtoolsService-
|
|
9542
|
+
const { setupInitialActivityLogger } = await import("./devtoolsService-NRFH67X5.js");
|
|
9543
9543
|
await setupInitialActivityLogger(config);
|
|
9544
9544
|
}
|
|
9545
9545
|
const { stdout: workingStdout } = createWorkingStdio();
|
|
@@ -14263,7 +14263,7 @@ ${reason.stack}` : ""}`;
|
|
|
14263
14263
|
});
|
|
14264
14264
|
}
|
|
14265
14265
|
async function startInteractiveUI(config, settings, startupWarnings, workspaceRoot = process.cwd(), resumedSessionData, initializationResult) {
|
|
14266
|
-
const { startInteractiveUI: doStartUI } = await import("./interactiveCli-
|
|
14266
|
+
const { startInteractiveUI: doStartUI } = await import("./interactiveCli-NNZT57UA.js");
|
|
14267
14267
|
await doStartUI(
|
|
14268
14268
|
config,
|
|
14269
14269
|
settings,
|
|
@@ -14460,7 +14460,7 @@ ${finalArgs[promptIndex + 1]}`;
|
|
|
14460
14460
|
await config.storage.initialize();
|
|
14461
14461
|
adminControlsListner.setConfig(config);
|
|
14462
14462
|
if (config.isInteractive() && settings.merged.general.devtools) {
|
|
14463
|
-
const { setupInitialActivityLogger } = await import("./devtoolsService-
|
|
14463
|
+
const { setupInitialActivityLogger } = await import("./devtoolsService-NRFH67X5.js");
|
|
14464
14464
|
await setupInitialActivityLogger(config);
|
|
14465
14465
|
}
|
|
14466
14466
|
registerTelemetryConfig(config);
|
|
@@ -186,7 +186,7 @@ import {
|
|
|
186
186
|
widestLineFromStyledChars,
|
|
187
187
|
wordBreakStyledChars,
|
|
188
188
|
wrapStyledChars
|
|
189
|
-
} from "./chunk-
|
|
189
|
+
} from "./chunk-Q7WBFJC3.js";
|
|
190
190
|
import {
|
|
191
191
|
ApiKeyUpdatedEvent,
|
|
192
192
|
AsyncFzf,
|
|
@@ -306,7 +306,7 @@ import {
|
|
|
306
306
|
validatePlanContent,
|
|
307
307
|
validatePlanPath,
|
|
308
308
|
writeToStdout
|
|
309
|
-
} from "./chunk-
|
|
309
|
+
} from "./chunk-4HLDGHKQ.js";
|
|
310
310
|
import {
|
|
311
311
|
ACTIVATE_SKILL_TOOL_NAME,
|
|
312
312
|
ApprovalMode,
|
|
@@ -371,7 +371,7 @@ import {
|
|
|
371
371
|
safeJsonToMarkdown,
|
|
372
372
|
shortenPath,
|
|
373
373
|
tildeifyPath
|
|
374
|
-
} from "./chunk-
|
|
374
|
+
} from "./chunk-JS5WSGB2.js";
|
|
375
375
|
import "./chunk-664ZODQF.js";
|
|
376
376
|
import {
|
|
377
377
|
appEvents
|
|
@@ -49406,7 +49406,7 @@ ${queuedText}` : queuedText;
|
|
|
49406
49406
|
if (keyMatchers["app.showErrorDetails" /* SHOW_ERROR_DETAILS */](key)) {
|
|
49407
49407
|
if (settings.merged.general.devtools) {
|
|
49408
49408
|
void (async () => {
|
|
49409
|
-
const { toggleDevToolsPanel } = await import("./devtoolsService-
|
|
49409
|
+
const { toggleDevToolsPanel } = await import("./devtoolsService-DHRIWISR.js");
|
|
49410
49410
|
await toggleDevToolsPanel(
|
|
49411
49411
|
config,
|
|
49412
49412
|
showErrorDetails,
|