@google/gemini-cli-core 0.27.0-preview.3 → 0.28.0-nightly.20260130.d43d772e6
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/changelogs/index.md +17 -0
- package/dist/docs/changelogs/latest.md +314 -346
- package/dist/docs/changelogs/preview.md +412 -307
- package/dist/docs/cli/cli-reference.md +101 -0
- package/dist/docs/cli/commands.md +135 -83
- package/dist/docs/cli/creating-skills.md +80 -0
- package/dist/docs/cli/keyboard-shortcuts.md +12 -11
- package/dist/docs/cli/rewind.md +51 -0
- package/dist/docs/cli/settings.md +1 -0
- package/dist/docs/cli/skills.md +5 -77
- package/dist/docs/core/policy-engine.md +8 -3
- package/dist/docs/core/subagents.md +34 -29
- package/dist/docs/get-started/configuration.md +8 -5
- package/dist/docs/sidebar.json +14 -2
- package/dist/docs/tools/mcp-server.md +13 -2
- package/dist/google-gemini-cli-core-0.28.0-nightly.20260128.adc8e11bb.tgz +0 -0
- package/dist/src/code_assist/admin/admin_controls.test.js +17 -17
- package/dist/src/code_assist/admin/admin_controls.test.js.map +1 -1
- package/dist/src/code_assist/types.d.ts +8 -5
- package/dist/src/code_assist/types.js +3 -1
- package/dist/src/code_assist/types.js.map +1 -1
- package/dist/src/config/config.d.ts +52 -0
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +25 -1
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/core/contentGenerator.js +2 -0
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +112 -0
- package/dist/src/core/contentGenerator.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/generated/git-commit.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.d.ts +6 -0
- package/dist/src/hooks/hookEventHandler.js +30 -7
- package/dist/src/hooks/hookEventHandler.js.map +1 -1
- package/dist/src/hooks/hookEventHandler.test.js +43 -0
- package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
- package/dist/src/ide/detect-ide.d.ts +4 -0
- package/dist/src/ide/detect-ide.js +4 -0
- package/dist/src/ide/detect-ide.js.map +1 -1
- package/dist/src/ide/detect-ide.test.js +14 -0
- package/dist/src/ide/detect-ide.test.js.map +1 -1
- package/dist/src/ide/ide-installer.js +74 -3
- package/dist/src/ide/ide-installer.js.map +1 -1
- package/dist/src/ide/ide-installer.test.js +29 -0
- package/dist/src/ide/ide-installer.test.js.map +1 -1
- package/dist/src/policy/policies/agent.toml +0 -4
- package/dist/src/policy/toml-loader.js +2 -0
- package/dist/src/policy/toml-loader.js.map +1 -1
- package/dist/src/policy/toml-loader.test.js +14 -0
- package/dist/src/policy/toml-loader.test.js.map +1 -1
- package/dist/src/policy/types.d.ts +5 -0
- package/dist/src/scheduler/policy.d.ts +2 -2
- package/dist/src/scheduler/policy.js +8 -3
- package/dist/src/scheduler/policy.js.map +1 -1
- package/dist/src/scheduler/policy.test.js +6 -6
- package/dist/src/scheduler/policy.test.js.map +1 -1
- package/dist/src/scheduler/scheduler.js +3 -2
- package/dist/src/scheduler/scheduler.js.map +1 -1
- package/dist/src/scheduler/scheduler.test.js +58 -8
- package/dist/src/scheduler/scheduler.test.js.map +1 -1
- package/dist/src/scheduler/tool-executor.js +10 -6
- package/dist/src/scheduler/tool-executor.js.map +1 -1
- package/dist/src/services/chatCompressionService.test.js +4 -2
- package/dist/src/services/chatCompressionService.test.js.map +1 -1
- package/dist/src/services/chatRecordingService.d.ts +7 -0
- package/dist/src/services/chatRecordingService.js +17 -0
- package/dist/src/services/chatRecordingService.js.map +1 -1
- package/dist/src/services/chatRecordingService.test.js +56 -0
- package/dist/src/services/chatRecordingService.test.js.map +1 -1
- package/dist/src/services/environmentSanitization.js +3 -0
- package/dist/src/services/environmentSanitization.js.map +1 -1
- package/dist/src/services/environmentSanitization.test.js +3 -0
- package/dist/src/services/environmentSanitization.test.js.map +1 -1
- package/dist/src/services/gitService.d.ts +1 -0
- package/dist/src/services/gitService.js +13 -4
- package/dist/src/services/gitService.js.map +1 -1
- package/dist/src/services/gitService.test.js +11 -0
- package/dist/src/services/gitService.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +11 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
- package/dist/src/tools/mcp-client.js +20 -3
- package/dist/src/tools/mcp-client.js.map +1 -1
- package/dist/src/tools/mcp-client.test.js +65 -2
- package/dist/src/tools/mcp-client.test.js.map +1 -1
- package/dist/src/utils/fileUtils.d.ts +1 -0
- package/dist/src/utils/fileUtils.js +11 -6
- package/dist/src/utils/fileUtils.js.map +1 -1
- package/dist/src/utils/fileUtils.test.js +35 -6
- package/dist/src/utils/fileUtils.test.js.map +1 -1
- package/dist/src/utils/terminal.d.ts +4 -0
- package/dist/src/utils/terminal.js +12 -0
- package/dist/src/utils/terminal.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/google-gemini-cli-core-0.27.0-preview.2.tgz +0 -0
package/dist/docs/cli/skills.md
CHANGED
|
@@ -89,83 +89,6 @@ gemini skills enable my-expertise
|
|
|
89
89
|
gemini skills disable my-expertise --scope workspace
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
-
## Creating a Skill
|
|
93
|
-
|
|
94
|
-
A skill is a directory containing a `SKILL.md` file at its root. This file uses
|
|
95
|
-
YAML frontmatter for metadata and Markdown for instructions.
|
|
96
|
-
|
|
97
|
-
### Folder Structure
|
|
98
|
-
|
|
99
|
-
Skills are self-contained directories. At a minimum, a skill requires a
|
|
100
|
-
`SKILL.md` file, but can include other resources:
|
|
101
|
-
|
|
102
|
-
```text
|
|
103
|
-
my-skill/
|
|
104
|
-
├── SKILL.md (Required) Instructions and metadata
|
|
105
|
-
├── scripts/ (Optional) Executable scripts/tools
|
|
106
|
-
├── references/ (Optional) Static documentation and examples
|
|
107
|
-
└── assets/ (Optional) Templates and binary resources
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### Basic Structure (SKILL.md)
|
|
111
|
-
|
|
112
|
-
```markdown
|
|
113
|
-
---
|
|
114
|
-
name: <unique-name>
|
|
115
|
-
description: <what the skill does and when Gemini should use it>
|
|
116
|
-
---
|
|
117
|
-
|
|
118
|
-
<your instructions for how the agent should behave / use the skill>
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
- **`name`**: A unique identifier (lowercase, alphanumeric, and dashes).
|
|
122
|
-
- **`description`**: The most critical field. Gemini uses this to decide when
|
|
123
|
-
the skill is relevant. Be specific about the expertise provided.
|
|
124
|
-
- **Body**: Everything below the second `---` is injected as expert procedural
|
|
125
|
-
guidance for the model.
|
|
126
|
-
|
|
127
|
-
### Example: Team Code Reviewer
|
|
128
|
-
|
|
129
|
-
Create `~/.gemini/skills/code-reviewer/SKILL.md`:
|
|
130
|
-
|
|
131
|
-
```markdown
|
|
132
|
-
---
|
|
133
|
-
name: code-reviewer
|
|
134
|
-
description:
|
|
135
|
-
Expertise in reviewing code for style, security, and performance. Use when the
|
|
136
|
-
user asks for "feedback," a "review," or to "check" their changes.
|
|
137
|
-
---
|
|
138
|
-
|
|
139
|
-
# Code Reviewer
|
|
140
|
-
|
|
141
|
-
You are an expert code reviewer. When reviewing code, follow this workflow:
|
|
142
|
-
|
|
143
|
-
1. **Analyze**: Review the staged changes or specific files provided. Ensure
|
|
144
|
-
that the changes are scoped properly and represent minimal changes required
|
|
145
|
-
to address the issue.
|
|
146
|
-
2. **Style**: Ensure code follows the workspace's conventions and idiomatic
|
|
147
|
-
patterns as described in the `GEMINI.md` file.
|
|
148
|
-
3. **Security**: Flag any potential security vulnerabilities.
|
|
149
|
-
4. **Tests**: Verify that new logic has corresponding test coverage and that
|
|
150
|
-
the test coverage adequately validates the changes.
|
|
151
|
-
|
|
152
|
-
Provide your feedback as a concise bulleted list of "Strengths" and
|
|
153
|
-
"Opportunities."
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
### Resource Conventions
|
|
157
|
-
|
|
158
|
-
While you can structure your skill directory however you like, the Agent Skills
|
|
159
|
-
standard encourages these conventions:
|
|
160
|
-
|
|
161
|
-
- **`scripts/`**: Executable scripts (bash, python, node) the agent can run.
|
|
162
|
-
- **`references/`**: Static documentation, schemas, or example data for the
|
|
163
|
-
agent to consult.
|
|
164
|
-
- **`assets/`**: Code templates, boilerplate, or binary resources.
|
|
165
|
-
|
|
166
|
-
When a skill is activated, Gemini CLI provides the model with a tree view of the
|
|
167
|
-
entire skill directory, allowing it to discover and utilize these assets.
|
|
168
|
-
|
|
169
92
|
## How it Works (Security & Privacy)
|
|
170
93
|
|
|
171
94
|
1. **Discovery**: At the start of a session, Gemini CLI scans the discovery
|
|
@@ -182,3 +105,8 @@ entire skill directory, allowing it to discover and utilize these assets.
|
|
|
182
105
|
it permission to read any bundled assets.
|
|
183
106
|
5. **Execution**: The model proceeds with the specialized expertise active. It
|
|
184
107
|
is instructed to prioritize the skill's procedural guidance within reason.
|
|
108
|
+
|
|
109
|
+
## Creating your own skills
|
|
110
|
+
|
|
111
|
+
To create your own skills, see the
|
|
112
|
+
[Create Agent Skills](./guides/creating-skills.md) guide.
|
|
@@ -210,6 +210,10 @@ decision = "ask_user"
|
|
|
210
210
|
# The priority of the rule, from 0 to 999.
|
|
211
211
|
priority = 10
|
|
212
212
|
|
|
213
|
+
# (Optional) A custom message to display when a tool call is denied by this rule.
|
|
214
|
+
# This message is returned to the model and user, useful for explaining *why* it was denied.
|
|
215
|
+
deny_message = "Deletion is permanent"
|
|
216
|
+
|
|
213
217
|
# (Optional) An array of approval modes where this rule is active.
|
|
214
218
|
modes = ["autoEdit"]
|
|
215
219
|
```
|
|
@@ -282,6 +286,7 @@ only the `mcpName`.
|
|
|
282
286
|
mcpName = "untrusted-server"
|
|
283
287
|
decision = "deny"
|
|
284
288
|
priority = 500
|
|
289
|
+
deny_message = "This server is not trusted by the admin."
|
|
285
290
|
```
|
|
286
291
|
|
|
287
292
|
## Default policies
|
|
@@ -290,9 +295,9 @@ The Gemini CLI ships with a set of default policies to provide a safe
|
|
|
290
295
|
out-of-the-box experience.
|
|
291
296
|
|
|
292
297
|
- **Read-only tools** (like `read_file`, `glob`) are generally **allowed**.
|
|
293
|
-
- **Agent delegation**
|
|
294
|
-
|
|
295
|
-
|
|
298
|
+
- **Agent delegation** defaults to **`ask_user`** to ensure remote agents can
|
|
299
|
+
prompt for confirmation, but local sub-agent actions are executed silently and
|
|
300
|
+
checked individually.
|
|
296
301
|
- **Write tools** (like `write_file`, `run_shell_command`) default to
|
|
297
302
|
**`ask_user`**.
|
|
298
303
|
- In **`yolo`** mode, a high-priority rule allows all tools.
|
|
@@ -24,30 +24,29 @@ the main agent's context or toolset.
|
|
|
24
24
|
|
|
25
25
|
## What are sub-agents?
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
Sub-agents are "specialists" that the main Gemini agent can hire for a specific
|
|
28
|
+
job.
|
|
29
29
|
|
|
30
30
|
- **Focused context:** Each sub-agent has its own system prompt and persona.
|
|
31
31
|
- **Specialized tools:** Sub-agents can have a restricted or specialized set of
|
|
32
32
|
tools.
|
|
33
33
|
- **Independent context window:** Interactions with a sub-agent happen in a
|
|
34
|
-
separate context loop
|
|
35
|
-
tokens in your main conversation history.
|
|
34
|
+
separate context loop, which saves tokens in your main conversation history.
|
|
36
35
|
|
|
37
|
-
Sub-agents are exposed to the main agent as a tool of the same name
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
Sub-agents are exposed to the main agent as a tool of the same name. When the
|
|
37
|
+
main agent calls the tool, it delegates the task to the sub-agent. Once the
|
|
38
|
+
sub-agent completes its task, it reports back to the main agent with its
|
|
39
|
+
findings.
|
|
41
40
|
|
|
42
41
|
## Built-in sub-agents
|
|
43
42
|
|
|
44
|
-
Gemini CLI comes with
|
|
43
|
+
Gemini CLI comes with the following built-in sub-agents:
|
|
45
44
|
|
|
46
45
|
### Codebase Investigator
|
|
47
46
|
|
|
48
47
|
- **Name:** `codebase_investigator`
|
|
49
|
-
- **Purpose:**
|
|
50
|
-
|
|
48
|
+
- **Purpose:** Analyze the codebase, reverse engineer, and understand complex
|
|
49
|
+
dependencies.
|
|
51
50
|
- **When to use:** "How does the authentication system work?", "Map out the
|
|
52
51
|
dependencies of the `AgentRegistry` class."
|
|
53
52
|
- **Configuration:** Enabled by default. You can configure it in
|
|
@@ -67,20 +66,25 @@ Gemini CLI comes with powerful built-in sub-agents.
|
|
|
67
66
|
### CLI Help Agent
|
|
68
67
|
|
|
69
68
|
- **Name:** `cli_help`
|
|
70
|
-
- **Purpose:**
|
|
69
|
+
- **Purpose:** Get expert knowledge about Gemini CLI itself, its commands,
|
|
71
70
|
configuration, and documentation.
|
|
72
71
|
- **When to use:** "How do I configure a proxy?", "What does the `/rewind`
|
|
73
72
|
command do?"
|
|
74
73
|
- **Configuration:** Enabled by default.
|
|
75
74
|
|
|
76
|
-
|
|
75
|
+
### Generalist Agent
|
|
77
76
|
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
- **Name:** `generalist_agent`
|
|
78
|
+
- **Purpose:** Route tasks to the appropriate specialized sub-agent.
|
|
79
|
+
- **When to use:** Implicitly used by the main agent for routing. Not directly
|
|
80
|
+
invoked by the user.
|
|
81
|
+
- **Configuration:** Enabled by default. No specific configuration options.
|
|
80
82
|
|
|
81
|
-
|
|
83
|
+
## Creating custom sub-agents
|
|
82
84
|
|
|
83
|
-
|
|
85
|
+
You can create your own sub-agents to automate specific workflows or enforce
|
|
86
|
+
specific personas. To use custom sub-agents, you must enable them in your
|
|
87
|
+
`settings.json`:
|
|
84
88
|
|
|
85
89
|
```json
|
|
86
90
|
{
|
|
@@ -123,10 +127,10 @@ vulnerabilities.
|
|
|
123
127
|
|
|
124
128
|
Focus on:
|
|
125
129
|
|
|
126
|
-
1.
|
|
127
|
-
2.
|
|
128
|
-
3.
|
|
129
|
-
4.
|
|
130
|
+
1. SQL Injection
|
|
131
|
+
2. XSS (Cross-Site Scripting)
|
|
132
|
+
3. Hardcoded credentials
|
|
133
|
+
4. Unsafe file operations
|
|
130
134
|
|
|
131
135
|
When you find a vulnerability, explain it clearly and suggest a fix. Do not fix
|
|
132
136
|
it yourself; just report it.
|
|
@@ -147,17 +151,16 @@ it yourself; just report it.
|
|
|
147
151
|
|
|
148
152
|
### Optimizing your sub-agent
|
|
149
153
|
|
|
150
|
-
The main agent system prompt
|
|
151
|
-
|
|
152
|
-
agent
|
|
153
|
-
|
|
154
|
-
clearly indicate:
|
|
154
|
+
The main agent's system prompt encourages it to use an expert sub-agent when one
|
|
155
|
+
is available. It decides whether an agent is a relevant expert based on the
|
|
156
|
+
agent's description. You can improve the reliability with which an agent is used
|
|
157
|
+
by updating the description to more clearly indicate:
|
|
155
158
|
|
|
156
159
|
- Its area of expertise.
|
|
157
160
|
- When it should be used.
|
|
158
161
|
- Some example scenarios.
|
|
159
162
|
|
|
160
|
-
For example
|
|
163
|
+
For example, the following sub-agent description should be called fairly
|
|
161
164
|
consistently for Git operations.
|
|
162
165
|
|
|
163
166
|
> Git expert agent which should be used for all local and remote git operations.
|
|
@@ -171,11 +174,13 @@ If you need to further tune your sub-agent, you can do so by selecting the model
|
|
|
171
174
|
to optimize for with `/model` and then asking the model why it does not think
|
|
172
175
|
that your sub-agent was called with a specific prompt and the given description.
|
|
173
176
|
|
|
174
|
-
## Remote subagents (Agent2Agent)
|
|
177
|
+
## Remote subagents (Agent2Agent) (experimental)
|
|
175
178
|
|
|
176
|
-
Gemini CLI can also delegate tasks to remote
|
|
179
|
+
Gemini CLI can also delegate tasks to remote sub-agents using the Agent-to-Agent
|
|
177
180
|
(A2A) protocol.
|
|
178
181
|
|
|
182
|
+
> **Note: Remote subagents are currently an experimental feature.**
|
|
183
|
+
|
|
179
184
|
See the [Remote Subagents documentation](/docs/core/remote-agents) for detailed
|
|
180
185
|
configuration and usage instructions.
|
|
181
186
|
|
|
@@ -244,6 +244,10 @@ their corresponding top-level category object in your `settings.json` file.
|
|
|
244
244
|
- **Description:** Show the model name in the chat for each model turn.
|
|
245
245
|
- **Default:** `false`
|
|
246
246
|
|
|
247
|
+
- **`ui.showUserIdentity`** (boolean):
|
|
248
|
+
- **Description:** Show the logged-in user's identity (e.g. email) in the UI.
|
|
249
|
+
- **Default:** `true`
|
|
250
|
+
|
|
247
251
|
- **`ui.useAlternateBuffer`** (boolean):
|
|
248
252
|
- **Description:** Use an alternate screen buffer for the UI, preserving shell
|
|
249
253
|
history.
|
|
@@ -869,11 +873,6 @@ their corresponding top-level category object in your `settings.json` file.
|
|
|
869
873
|
- **Default:** `false`
|
|
870
874
|
- **Requires restart:** Yes
|
|
871
875
|
|
|
872
|
-
- **`experimental.skills`** (boolean):
|
|
873
|
-
- **Description:** [Deprecated] Enable Agent Skills (experimental).
|
|
874
|
-
- **Default:** `false`
|
|
875
|
-
- **Requires restart:** Yes
|
|
876
|
-
|
|
877
876
|
- **`experimental.useOSC52Paste`** (boolean):
|
|
878
877
|
- **Description:** Use OSC 52 sequence for pasting instead of clipboardy
|
|
879
878
|
(useful for remote sessions).
|
|
@@ -1186,6 +1185,10 @@ the `advanced.excludedEnvVars` setting in your `settings.json` file.
|
|
|
1186
1185
|
- **Description:** The path to your Google Application Credentials JSON file.
|
|
1187
1186
|
- **Example:**
|
|
1188
1187
|
`export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/credentials.json"`
|
|
1188
|
+
- **`GOOGLE_GENAI_API_VERSION`**:
|
|
1189
|
+
- Specifies the API version to use for Gemini API requests.
|
|
1190
|
+
- When set, overrides the default API version used by the SDK.
|
|
1191
|
+
- Example: `export GOOGLE_GENAI_API_VERSION="v1"`
|
|
1189
1192
|
- **`OTLP_GOOGLE_CLOUD_PROJECT`**:
|
|
1190
1193
|
- Your Google Cloud Project ID for Telemetry in Google Cloud
|
|
1191
1194
|
- Example: `export OTLP_GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"`.
|
package/dist/docs/sidebar.json
CHANGED
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
{ "label": "Installation", "slug": "docs/get-started/installation" },
|
|
8
8
|
{ "label": "Authentication", "slug": "docs/get-started/authentication" },
|
|
9
9
|
{ "label": "Examples", "slug": "docs/get-started/examples" },
|
|
10
|
-
{ "label": "Gemini 3 (preview)", "slug": "docs/get-started/gemini-3" }
|
|
10
|
+
{ "label": "Gemini 3 (preview)", "slug": "docs/get-started/gemini-3" },
|
|
11
|
+
{ "label": "CLI Reference", "slug": "docs/cli/cli-reference" }
|
|
11
12
|
]
|
|
12
13
|
},
|
|
13
14
|
{
|
|
@@ -78,6 +79,10 @@
|
|
|
78
79
|
"label": "Ecosystem and extensibility",
|
|
79
80
|
"items": [
|
|
80
81
|
{ "label": "Agent skills", "slug": "docs/cli/skills" },
|
|
82
|
+
{
|
|
83
|
+
"label": "Creating Agent skills",
|
|
84
|
+
"slug": "docs/cli/creating-skills"
|
|
85
|
+
},
|
|
81
86
|
{
|
|
82
87
|
"label": "Sub-agents (experimental)",
|
|
83
88
|
"slug": "docs/core/subagents"
|
|
@@ -118,7 +123,14 @@
|
|
|
118
123
|
"items": [
|
|
119
124
|
{ "label": "FAQ", "slug": "docs/faq" },
|
|
120
125
|
{ "label": "Quota and pricing", "slug": "docs/quota-and-pricing" },
|
|
121
|
-
{
|
|
126
|
+
{
|
|
127
|
+
"label": "Releases",
|
|
128
|
+
"items": [
|
|
129
|
+
{ "label": "Release notes", "slug": "docs/changelogs/" },
|
|
130
|
+
{ "label": "Stable release", "slug": "docs/changelogs/latest" },
|
|
131
|
+
{ "label": "Preview release", "slug": "docs/changelogs/preview" }
|
|
132
|
+
]
|
|
133
|
+
},
|
|
122
134
|
{ "label": "Terms and privacy", "slug": "docs/tos-privacy" },
|
|
123
135
|
{ "label": "Troubleshooting", "slug": "docs/troubleshooting" },
|
|
124
136
|
{ "label": "Uninstall", "slug": "docs/cli/uninstall" }
|
|
@@ -739,10 +739,21 @@ The MCP integration tracks several states:
|
|
|
739
739
|
cautiously and only for servers you completely control
|
|
740
740
|
- **Access tokens:** Be security-aware when configuring environment variables
|
|
741
741
|
containing API keys or tokens
|
|
742
|
+
- **Environment variable redaction:** By default, the Gemini CLI redacts
|
|
743
|
+
sensitive environment variables (such as `GEMINI_API_KEY`, `GOOGLE_API_KEY`,
|
|
744
|
+
and variables matching patterns like `*TOKEN*`, `*SECRET*`, `*PASSWORD*`) when
|
|
745
|
+
spawning MCP servers using the `stdio` transport. This prevents unintended
|
|
746
|
+
exposure of your credentials to third-party servers.
|
|
747
|
+
- **Explicit environment variables:** If you need to pass a specific environment
|
|
748
|
+
variable to an MCP server, you should define it explicitly in the `env`
|
|
749
|
+
property of the server configuration in `settings.json`.
|
|
742
750
|
- **Sandbox compatibility:** When using sandboxing, ensure MCP servers are
|
|
743
|
-
available within the sandbox environment
|
|
751
|
+
available within the sandbox environment.
|
|
744
752
|
- **Private data:** Using broadly scoped personal access tokens can lead to
|
|
745
|
-
information leakage between repositories
|
|
753
|
+
information leakage between repositories.
|
|
754
|
+
- **Untrusted servers:** Be extremely cautious when adding MCP servers from
|
|
755
|
+
untrusted or third-party sources. Malicious servers could attempt to
|
|
756
|
+
exfiltrate data or perform unauthorized actions through the tools they expose.
|
|
746
757
|
|
|
747
758
|
### Performance and resource management
|
|
748
759
|
|
|
@@ -24,7 +24,7 @@ describe('Admin Controls', () => {
|
|
|
24
24
|
describe('sanitizeAdminSettings', () => {
|
|
25
25
|
it('should strip unknown fields', () => {
|
|
26
26
|
const input = {
|
|
27
|
-
|
|
27
|
+
strictModeDisabled: false,
|
|
28
28
|
extraField: 'should be removed',
|
|
29
29
|
mcpSetting: {
|
|
30
30
|
mcpEnabled: false,
|
|
@@ -33,7 +33,7 @@ describe('Admin Controls', () => {
|
|
|
33
33
|
};
|
|
34
34
|
const result = sanitizeAdminSettings(input);
|
|
35
35
|
expect(result).toEqual({
|
|
36
|
-
|
|
36
|
+
strictModeDisabled: false,
|
|
37
37
|
mcpSetting: {
|
|
38
38
|
mcpEnabled: false,
|
|
39
39
|
},
|
|
@@ -67,13 +67,13 @@ describe('Admin Controls', () => {
|
|
|
67
67
|
expect(mockServer.fetchAdminControls).not.toHaveBeenCalled();
|
|
68
68
|
});
|
|
69
69
|
it('should use cachedSettings and start polling if provided', async () => {
|
|
70
|
-
const cachedSettings = {
|
|
70
|
+
const cachedSettings = { strictModeDisabled: false };
|
|
71
71
|
const result = await fetchAdminControls(mockServer, cachedSettings, true, mockOnSettingsChanged);
|
|
72
72
|
expect(result).toEqual(cachedSettings);
|
|
73
73
|
expect(mockServer.fetchAdminControls).not.toHaveBeenCalled();
|
|
74
74
|
// Should still start polling
|
|
75
75
|
mockServer.fetchAdminControls.mockResolvedValue({
|
|
76
|
-
|
|
76
|
+
strictModeDisabled: true,
|
|
77
77
|
});
|
|
78
78
|
await vi.advanceTimersByTimeAsync(5 * 60 * 1000);
|
|
79
79
|
expect(mockServer.fetchAdminControls).toHaveBeenCalledTimes(1);
|
|
@@ -84,7 +84,7 @@ describe('Admin Controls', () => {
|
|
|
84
84
|
expect(mockServer.fetchAdminControls).not.toHaveBeenCalled();
|
|
85
85
|
});
|
|
86
86
|
it('should fetch from server if no cachedSettings provided', async () => {
|
|
87
|
-
const serverResponse = {
|
|
87
|
+
const serverResponse = { strictModeDisabled: false };
|
|
88
88
|
mockServer.fetchAdminControls.mockResolvedValue(serverResponse);
|
|
89
89
|
const result = await fetchAdminControls(mockServer, undefined, true, mockOnSettingsChanged);
|
|
90
90
|
expect(result).toEqual(serverResponse);
|
|
@@ -96,7 +96,7 @@ describe('Admin Controls', () => {
|
|
|
96
96
|
expect(result).toEqual({});
|
|
97
97
|
// Polling should have been started and should retry
|
|
98
98
|
mockServer.fetchAdminControls.mockResolvedValue({
|
|
99
|
-
|
|
99
|
+
strictModeDisabled: false,
|
|
100
100
|
});
|
|
101
101
|
await vi.advanceTimersByTimeAsync(5 * 60 * 1000);
|
|
102
102
|
expect(mockServer.fetchAdminControls).toHaveBeenCalledTimes(2); // Initial + poll
|
|
@@ -113,11 +113,11 @@ describe('Admin Controls', () => {
|
|
|
113
113
|
});
|
|
114
114
|
it('should sanitize server response', async () => {
|
|
115
115
|
mockServer.fetchAdminControls.mockResolvedValue({
|
|
116
|
-
|
|
116
|
+
strictModeDisabled: false,
|
|
117
117
|
unknownField: 'bad',
|
|
118
118
|
});
|
|
119
119
|
const result = await fetchAdminControls(mockServer, undefined, true, mockOnSettingsChanged);
|
|
120
|
-
expect(result).toEqual({
|
|
120
|
+
expect(result).toEqual({ strictModeDisabled: false });
|
|
121
121
|
expect(result['unknownField']).toBeUndefined();
|
|
122
122
|
});
|
|
123
123
|
it('should reset polling interval if called again', async () => {
|
|
@@ -142,28 +142,28 @@ describe('Admin Controls', () => {
|
|
|
142
142
|
it('should poll and emit changes', async () => {
|
|
143
143
|
// Initial fetch
|
|
144
144
|
mockServer.fetchAdminControls.mockResolvedValue({
|
|
145
|
-
|
|
145
|
+
strictModeDisabled: true,
|
|
146
146
|
});
|
|
147
147
|
await fetchAdminControls(mockServer, undefined, true, mockOnSettingsChanged);
|
|
148
148
|
// Update for next poll
|
|
149
149
|
mockServer.fetchAdminControls.mockResolvedValue({
|
|
150
|
-
|
|
150
|
+
strictModeDisabled: false,
|
|
151
151
|
});
|
|
152
152
|
// Fast forward
|
|
153
153
|
await vi.advanceTimersByTimeAsync(5 * 60 * 1000);
|
|
154
154
|
expect(mockOnSettingsChanged).toHaveBeenCalledWith({
|
|
155
|
-
|
|
155
|
+
strictModeDisabled: false,
|
|
156
156
|
});
|
|
157
157
|
});
|
|
158
158
|
it('should NOT emit if settings are deeply equal but not the same instance', async () => {
|
|
159
|
-
const settings = {
|
|
159
|
+
const settings = { strictModeDisabled: false };
|
|
160
160
|
mockServer.fetchAdminControls.mockResolvedValue(settings);
|
|
161
161
|
await fetchAdminControls(mockServer, undefined, true, mockOnSettingsChanged);
|
|
162
162
|
expect(mockServer.fetchAdminControls).toHaveBeenCalledTimes(1);
|
|
163
163
|
mockOnSettingsChanged.mockClear();
|
|
164
164
|
// Next poll returns a different object with the same values
|
|
165
165
|
mockServer.fetchAdminControls.mockResolvedValue({
|
|
166
|
-
|
|
166
|
+
strictModeDisabled: false,
|
|
167
167
|
});
|
|
168
168
|
await vi.advanceTimersByTimeAsync(5 * 60 * 1000);
|
|
169
169
|
expect(mockOnSettingsChanged).not.toHaveBeenCalled();
|
|
@@ -172,7 +172,7 @@ describe('Admin Controls', () => {
|
|
|
172
172
|
it('should continue polling after a fetch error', async () => {
|
|
173
173
|
// Initial fetch is successful
|
|
174
174
|
mockServer.fetchAdminControls.mockResolvedValue({
|
|
175
|
-
|
|
175
|
+
strictModeDisabled: true,
|
|
176
176
|
});
|
|
177
177
|
await fetchAdminControls(mockServer, undefined, true, mockOnSettingsChanged);
|
|
178
178
|
expect(mockServer.fetchAdminControls).toHaveBeenCalledTimes(1);
|
|
@@ -183,18 +183,18 @@ describe('Admin Controls', () => {
|
|
|
183
183
|
expect(mockOnSettingsChanged).not.toHaveBeenCalled(); // No changes on error
|
|
184
184
|
// Subsequent poll succeeds with new data
|
|
185
185
|
mockServer.fetchAdminControls.mockResolvedValue({
|
|
186
|
-
|
|
186
|
+
strictModeDisabled: false,
|
|
187
187
|
});
|
|
188
188
|
await vi.advanceTimersByTimeAsync(5 * 60 * 1000);
|
|
189
189
|
expect(mockServer.fetchAdminControls).toHaveBeenCalledTimes(3);
|
|
190
190
|
expect(mockOnSettingsChanged).toHaveBeenCalledWith({
|
|
191
|
-
|
|
191
|
+
strictModeDisabled: false,
|
|
192
192
|
});
|
|
193
193
|
});
|
|
194
194
|
it('should STOP polling if server returns 403', async () => {
|
|
195
195
|
// Initial fetch is successful
|
|
196
196
|
mockServer.fetchAdminControls.mockResolvedValue({
|
|
197
|
-
|
|
197
|
+
strictModeDisabled: true,
|
|
198
198
|
});
|
|
199
199
|
await fetchAdminControls(mockServer, undefined, true, mockOnSettingsChanged);
|
|
200
200
|
expect(mockServer.fetchAdminControls).toHaveBeenCalledTimes(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin_controls.test.js","sourceRoot":"","sources":["../../../../src/code_assist/admin/admin_controls.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,QAAQ,EACR,EAAE,EACF,MAAM,EACN,EAAE,EACF,UAAU,EACV,SAAS,GAEV,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAG7B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAI,UAA4B,CAAC;IACjC,IAAI,qBAA2B,CAAC;IAEhC,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,EAAE,CAAC,aAAa,EAAE,CAAC;QAEnB,UAAU,GAAG;YACX,SAAS,EAAE,cAAc;YACzB,kBAAkB,EAAE,EAAE,CAAC,EAAE,EAAE;SACG,CAAC;QAEjC,qBAAqB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,wBAAwB,EAAE,CAAC;QAC3B,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,KAAK,GAAG;gBACZ,
|
|
1
|
+
{"version":3,"file":"admin_controls.test.js","sourceRoot":"","sources":["../../../../src/code_assist/admin/admin_controls.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -245,6 +245,7 @@ export interface FetchAdminControlsRequest {
|
|
|
245
245
|
export type FetchAdminControlsResponse = z.infer<typeof FetchAdminControlsResponseSchema>;
|
|
246
246
|
export declare const FetchAdminControlsResponseSchema: z.ZodObject<{
|
|
247
247
|
secureModeEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
248
|
+
strictModeDisabled: z.ZodOptional<z.ZodBoolean>;
|
|
248
249
|
mcpSetting: z.ZodOptional<z.ZodObject<{
|
|
249
250
|
mcpEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
250
251
|
overrideMcpConfigJson: z.ZodOptional<z.ZodString>;
|
|
@@ -263,20 +264,21 @@ export declare const FetchAdminControlsResponseSchema: z.ZodObject<{
|
|
|
263
264
|
}, {
|
|
264
265
|
extensionsEnabled?: boolean | undefined;
|
|
265
266
|
}>>;
|
|
266
|
-
|
|
267
|
+
unmanagedCapabilitiesEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
267
268
|
}, "strip", z.ZodTypeAny, {
|
|
268
269
|
extensionsSetting?: {
|
|
269
270
|
extensionsEnabled?: boolean | undefined;
|
|
270
271
|
} | undefined;
|
|
271
|
-
|
|
272
|
+
unmanagedCapabilitiesEnabled?: boolean | undefined;
|
|
272
273
|
}, {
|
|
273
274
|
extensionsSetting?: {
|
|
274
275
|
extensionsEnabled?: boolean | undefined;
|
|
275
276
|
} | undefined;
|
|
276
|
-
|
|
277
|
+
unmanagedCapabilitiesEnabled?: boolean | undefined;
|
|
277
278
|
}>>;
|
|
278
279
|
}, "strip", z.ZodTypeAny, {
|
|
279
280
|
secureModeEnabled?: boolean | undefined;
|
|
281
|
+
strictModeDisabled?: boolean | undefined;
|
|
280
282
|
mcpSetting?: {
|
|
281
283
|
mcpEnabled?: boolean | undefined;
|
|
282
284
|
overrideMcpConfigJson?: string | undefined;
|
|
@@ -285,10 +287,11 @@ export declare const FetchAdminControlsResponseSchema: z.ZodObject<{
|
|
|
285
287
|
extensionsSetting?: {
|
|
286
288
|
extensionsEnabled?: boolean | undefined;
|
|
287
289
|
} | undefined;
|
|
288
|
-
|
|
290
|
+
unmanagedCapabilitiesEnabled?: boolean | undefined;
|
|
289
291
|
} | undefined;
|
|
290
292
|
}, {
|
|
291
293
|
secureModeEnabled?: boolean | undefined;
|
|
294
|
+
strictModeDisabled?: boolean | undefined;
|
|
292
295
|
mcpSetting?: {
|
|
293
296
|
mcpEnabled?: boolean | undefined;
|
|
294
297
|
overrideMcpConfigJson?: string | undefined;
|
|
@@ -297,7 +300,7 @@ export declare const FetchAdminControlsResponseSchema: z.ZodObject<{
|
|
|
297
300
|
extensionsSetting?: {
|
|
298
301
|
extensionsEnabled?: boolean | undefined;
|
|
299
302
|
} | undefined;
|
|
300
|
-
|
|
303
|
+
unmanagedCapabilitiesEnabled?: boolean | undefined;
|
|
301
304
|
} | undefined;
|
|
302
305
|
}>;
|
|
303
306
|
export {};
|
|
@@ -78,14 +78,16 @@ const ExtensionsSettingSchema = z.object({
|
|
|
78
78
|
});
|
|
79
79
|
const CliFeatureSettingSchema = z.object({
|
|
80
80
|
extensionsSetting: ExtensionsSettingSchema.optional(),
|
|
81
|
-
|
|
81
|
+
unmanagedCapabilitiesEnabled: z.boolean().optional(),
|
|
82
82
|
});
|
|
83
83
|
const McpSettingSchema = z.object({
|
|
84
84
|
mcpEnabled: z.boolean().optional(),
|
|
85
85
|
overrideMcpConfigJson: z.string().optional(),
|
|
86
86
|
});
|
|
87
87
|
export const FetchAdminControlsResponseSchema = z.object({
|
|
88
|
+
// TODO: deprecate once backend stops sending this field
|
|
88
89
|
secureModeEnabled: z.boolean().optional(),
|
|
90
|
+
strictModeDisabled: z.boolean().optional(),
|
|
89
91
|
mcpSetting: McpSettingSchema.optional(),
|
|
90
92
|
cliFeatureSetting: CliFeatureSettingSchema.optional(),
|
|
91
93
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/code_assist/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqFxB;;;GAGG;AACH,MAAM,CAAN,IAAY,wBAYX;AAZD,WAAY,wBAAwB;IAClC,uBAAuB;IACvB,uDAA2B,CAAA;IAC3B,qEAAyC,CAAA;IACzC,iEAAqC,CAAA;IACrC,6DAAiC,CAAA;IACjC,qEAAyC,CAAA;IACzC,+CAAmB,CAAA;IACnB,iEAAqC,CAAA;IACrC,yEAA6C,CAAA;IAC7C,uEAA2C,CAAA;IAC3C,qBAAqB;AACvB,CAAC,EAZW,wBAAwB,KAAxB,wBAAwB,QAYnC;AACD;;;;GAIG;AACH,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,gCAAkB,CAAA;IAClB,oCAAsB,CAAA;IACtB,wCAA0B,CAAA;AAC5B,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AA0CD;;;;GAIG;AACH,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,4CAAmB,CAAA;IACnB,0CAAiB,CAAA;IACjB,4CAAmB,CAAA;IACnB,wCAAe,CAAA;AACjB,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC;AA2ED,MAAM,CAAN,IAAY,kCAWX;AAXD,WAAY,kCAAkC;IAC5C,iGAAW,CAAA;IACX,mGAAY,CAAA;IACZ,uGAAc,CAAA;IACd,2FAAQ,CAAA;IACR,+FAAU,CAAA;IACV,qHAAqB,CAAA;IACrB,uGAAc,CAAA;IACd,yGAAe,CAAA;IACf,2FAAQ,CAAA;IACR,2GAAgB,CAAA;AAClB,CAAC,EAXW,kCAAkC,KAAlC,kCAAkC,QAW7C;AAED,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,yFAA6B,CAAA;IAC7B,mFAA0B,CAAA;IAC1B,6FAA+B,CAAA;IAC/B,qFAA2B,CAAA;IAC3B,6EAAuB,CAAA;AACzB,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB;AAED,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,yGAAiC,CAAA;IACjC,qDAAO,CAAA;IACP,6DAAW,CAAA;IACX,yDAAS,CAAA;AACX,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;AAkCD,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,iBAAiB,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IACrD,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/code_assist/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqFxB;;;GAGG;AACH,MAAM,CAAN,IAAY,wBAYX;AAZD,WAAY,wBAAwB;IAClC,uBAAuB;IACvB,uDAA2B,CAAA;IAC3B,qEAAyC,CAAA;IACzC,iEAAqC,CAAA;IACrC,6DAAiC,CAAA;IACjC,qEAAyC,CAAA;IACzC,+CAAmB,CAAA;IACnB,iEAAqC,CAAA;IACrC,yEAA6C,CAAA;IAC7C,uEAA2C,CAAA;IAC3C,qBAAqB;AACvB,CAAC,EAZW,wBAAwB,KAAxB,wBAAwB,QAYnC;AACD;;;;GAIG;AACH,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,gCAAkB,CAAA;IAClB,oCAAsB,CAAA;IACtB,wCAA0B,CAAA;AAC5B,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AA0CD;;;;GAIG;AACH,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,4CAAmB,CAAA;IACnB,0CAAiB,CAAA;IACjB,4CAAmB,CAAA;IACnB,wCAAe,CAAA;AACjB,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC;AA2ED,MAAM,CAAN,IAAY,kCAWX;AAXD,WAAY,kCAAkC;IAC5C,iGAAW,CAAA;IACX,mGAAY,CAAA;IACZ,uGAAc,CAAA;IACd,2FAAQ,CAAA;IACR,+FAAU,CAAA;IACV,qHAAqB,CAAA;IACrB,uGAAc,CAAA;IACd,yGAAe,CAAA;IACf,2FAAQ,CAAA;IACR,2GAAgB,CAAA;AAClB,CAAC,EAXW,kCAAkC,KAAlC,kCAAkC,QAW7C;AAED,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,yFAA6B,CAAA;IAC7B,mFAA0B,CAAA;IAC1B,6FAA+B,CAAA;IAC/B,qFAA2B,CAAA;IAC3B,6EAAuB,CAAA;AACzB,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB;AAED,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,yGAAiC,CAAA;IACjC,qDAAO,CAAA;IACP,6DAAW,CAAA;IACX,yDAAS,CAAA;AACX,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;AAkCD,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,iBAAiB,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IACrD,4BAA4B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACrD,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,wDAAwD;IACxD,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACzC,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC1C,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACvC,iBAAiB,EAAE,uBAAuB,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC"}
|