@dgxo/mashadevcli 1.1.0
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/LICENSE +202 -0
- package/README.md +393 -0
- package/bundle/builtin/skill-creator/SKILL.md +382 -0
- package/bundle/builtin/skill-creator/scripts/init_skill.cjs +239 -0
- package/bundle/builtin/skill-creator/scripts/package_skill.cjs +131 -0
- package/bundle/builtin/skill-creator/scripts/validate_skill.cjs +131 -0
- package/bundle/docs/CONTRIBUTING.md +1 -0
- package/bundle/docs/admin/enterprise-controls.md +115 -0
- package/bundle/docs/assets/connected_devtools.png +0 -0
- package/bundle/docs/assets/gemini-screenshot.png +0 -0
- package/bundle/docs/assets/monitoring-dashboard-logs.png +0 -0
- package/bundle/docs/assets/monitoring-dashboard-metrics.png +0 -0
- package/bundle/docs/assets/monitoring-dashboard-overview.png +0 -0
- package/bundle/docs/assets/release_patch.png +0 -0
- package/bundle/docs/assets/theme-ansi-light.png +0 -0
- package/bundle/docs/assets/theme-ansi.png +0 -0
- package/bundle/docs/assets/theme-atom-one.png +0 -0
- package/bundle/docs/assets/theme-ayu-light.png +0 -0
- package/bundle/docs/assets/theme-ayu.png +0 -0
- package/bundle/docs/assets/theme-custom.png +0 -0
- package/bundle/docs/assets/theme-default-light.png +0 -0
- package/bundle/docs/assets/theme-default.png +0 -0
- package/bundle/docs/assets/theme-dracula.png +0 -0
- package/bundle/docs/assets/theme-github-light.png +0 -0
- package/bundle/docs/assets/theme-github.png +0 -0
- package/bundle/docs/assets/theme-google-light.png +0 -0
- package/bundle/docs/assets/theme-xcode-light.png +0 -0
- package/bundle/docs/changelogs/index.md +867 -0
- package/bundle/docs/changelogs/latest.md +208 -0
- package/bundle/docs/changelogs/preview.md +187 -0
- package/bundle/docs/cli/checkpointing.md +93 -0
- package/bundle/docs/cli/cli-reference.md +115 -0
- package/bundle/docs/cli/creating-skills.md +80 -0
- package/bundle/docs/cli/custom-commands.md +327 -0
- package/bundle/docs/cli/enterprise.md +604 -0
- package/bundle/docs/cli/gemini-ignore.md +71 -0
- package/bundle/docs/cli/gemini-md.md +116 -0
- package/bundle/docs/cli/generation-settings.md +210 -0
- package/bundle/docs/cli/headless.md +50 -0
- package/bundle/docs/cli/model-routing.md +42 -0
- package/bundle/docs/cli/model.md +53 -0
- package/bundle/docs/cli/plan-mode.md +375 -0
- package/bundle/docs/cli/rewind.md +51 -0
- package/bundle/docs/cli/sandbox.md +257 -0
- package/bundle/docs/cli/session-management.md +184 -0
- package/bundle/docs/cli/settings.md +165 -0
- package/bundle/docs/cli/skills.md +134 -0
- package/bundle/docs/cli/system-prompt.md +125 -0
- package/bundle/docs/cli/telemetry.md +922 -0
- package/bundle/docs/cli/themes.md +269 -0
- package/bundle/docs/cli/token-caching.md +20 -0
- package/bundle/docs/cli/trusted-folders.md +126 -0
- package/bundle/docs/cli/tutorials/automation.md +283 -0
- package/bundle/docs/cli/tutorials/file-management.md +142 -0
- package/bundle/docs/cli/tutorials/mcp-setup.md +113 -0
- package/bundle/docs/cli/tutorials/memory-management.md +126 -0
- package/bundle/docs/cli/tutorials/session-management.md +105 -0
- package/bundle/docs/cli/tutorials/shell-commands.md +107 -0
- package/bundle/docs/cli/tutorials/skills-getting-started.md +110 -0
- package/bundle/docs/cli/tutorials/task-planning.md +93 -0
- package/bundle/docs/cli/tutorials/web-tools.md +78 -0
- package/bundle/docs/core/index.md +107 -0
- package/bundle/docs/core/remote-agents.md +84 -0
- package/bundle/docs/core/subagents.md +307 -0
- package/bundle/docs/examples/proxy-script.md +83 -0
- package/bundle/docs/extensions/best-practices.md +188 -0
- package/bundle/docs/extensions/index.md +61 -0
- package/bundle/docs/extensions/reference.md +333 -0
- package/bundle/docs/extensions/releasing.md +154 -0
- package/bundle/docs/extensions/writing-extensions.md +308 -0
- package/bundle/docs/get-started/authentication.md +402 -0
- package/bundle/docs/get-started/examples.md +139 -0
- package/bundle/docs/get-started/gemini-3.md +115 -0
- package/bundle/docs/get-started/index.md +82 -0
- package/bundle/docs/get-started/installation.md +174 -0
- package/bundle/docs/hooks/best-practices.md +709 -0
- package/bundle/docs/hooks/index.md +164 -0
- package/bundle/docs/hooks/reference.md +330 -0
- package/bundle/docs/hooks/writing-hooks.md +474 -0
- package/bundle/docs/ide-integration/ide-companion-spec.md +267 -0
- package/bundle/docs/ide-integration/index.md +224 -0
- package/bundle/docs/index.md +141 -0
- package/bundle/docs/integration-tests.md +211 -0
- package/bundle/docs/issue-and-pr-automation.md +172 -0
- package/bundle/docs/local-development.md +134 -0
- package/bundle/docs/mermaid/context.mmd +103 -0
- package/bundle/docs/mermaid/render-path.mmd +64 -0
- package/bundle/docs/npm.md +62 -0
- package/bundle/docs/redirects.json +20 -0
- package/bundle/docs/reference/commands.md +526 -0
- package/bundle/docs/reference/configuration.md +1786 -0
- package/bundle/docs/reference/keyboard-shortcuts.md +164 -0
- package/bundle/docs/reference/memport.md +246 -0
- package/bundle/docs/reference/policy-engine.md +364 -0
- package/bundle/docs/reference/tools.md +106 -0
- package/bundle/docs/release-confidence.md +164 -0
- package/bundle/docs/releases.md +540 -0
- package/bundle/docs/resources/faq.md +175 -0
- package/bundle/docs/resources/quota-and-pricing.md +165 -0
- package/bundle/docs/resources/tos-privacy.md +102 -0
- package/bundle/docs/resources/troubleshooting.md +176 -0
- package/bundle/docs/resources/uninstall.md +56 -0
- package/bundle/docs/sidebar.json +233 -0
- package/bundle/docs/tools/activate-skill.md +43 -0
- package/bundle/docs/tools/ask-user.md +95 -0
- package/bundle/docs/tools/file-system.md +129 -0
- package/bundle/docs/tools/internal-docs.md +46 -0
- package/bundle/docs/tools/mcp-server.md +1150 -0
- package/bundle/docs/tools/memory.md +35 -0
- package/bundle/docs/tools/planning.md +58 -0
- package/bundle/docs/tools/shell.md +216 -0
- package/bundle/docs/tools/todos.md +35 -0
- package/bundle/docs/tools/web-fetch.md +35 -0
- package/bundle/docs/tools/web-search.md +32 -0
- package/bundle/docs/update/update-guide.md +111 -0
- package/bundle/masha.js +563471 -0
- package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/client/main.js +89 -0
- package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/src/_client-assets.d.ts +7 -0
- package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/src/_client-assets.js +9 -0
- package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/src/_client-assets.js.map +1 -0
- package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/src/index.d.ts +48 -0
- package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/src/index.js +299 -0
- package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/src/index.js.map +1 -0
- package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/src/types.d.ts +36 -0
- package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/src/types.js +7 -0
- package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/src/types.js.map +1 -0
- package/bundle/node_modules/@dgxo/mashadevcli-devtools/package.json +32 -0
- package/bundle/policies/conseca.toml +6 -0
- package/bundle/policies/discovered.toml +8 -0
- package/bundle/policies/plan.toml +109 -0
- package/bundle/policies/read-only.toml +53 -0
- package/bundle/policies/write.toml +80 -0
- package/bundle/policies/yolo.toml +54 -0
- package/bundle/sandbox-macos-permissive-open.sb +27 -0
- package/bundle/sandbox-macos-permissive-proxied.sb +37 -0
- package/bundle/sandbox-macos-restrictive-open.sb +96 -0
- package/bundle/sandbox-macos-restrictive-proxied.sb +98 -0
- package/bundle/sandbox-macos-strict-open.sb +131 -0
- package/bundle/sandbox-macos-strict-proxied.sb +133 -0
- package/package.json +169 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Memory tool (`save_memory`)
|
|
2
|
+
|
|
3
|
+
The `save_memory` tool allows the Gemini agent to persist specific facts, user
|
|
4
|
+
preferences, and project details across sessions.
|
|
5
|
+
|
|
6
|
+
## Technical reference
|
|
7
|
+
|
|
8
|
+
This tool appends information to the `## Gemini Added Memories` section of your
|
|
9
|
+
global `GEMINI.md` file (typically located at `~/.gemini/GEMINI.md`).
|
|
10
|
+
|
|
11
|
+
### Arguments
|
|
12
|
+
|
|
13
|
+
- `fact` (string, required): A clear, self-contained statement in natural
|
|
14
|
+
language.
|
|
15
|
+
|
|
16
|
+
## Technical behavior
|
|
17
|
+
|
|
18
|
+
- **Storage:** Appends to the global context file in the user's home directory.
|
|
19
|
+
- **Loading:** The stored facts are automatically included in the hierarchical
|
|
20
|
+
context system for all future sessions.
|
|
21
|
+
- **Format:** Saves data as a bulleted list item within a dedicated Markdown
|
|
22
|
+
section.
|
|
23
|
+
|
|
24
|
+
## Use cases
|
|
25
|
+
|
|
26
|
+
- Persisting user preferences (for example, "I prefer functional programming").
|
|
27
|
+
- Saving project-wide architectural decisions.
|
|
28
|
+
- Storing frequently used aliases or system configurations.
|
|
29
|
+
|
|
30
|
+
## Next steps
|
|
31
|
+
|
|
32
|
+
- Follow the [Memory management guide](../cli/tutorials/memory-management.md)
|
|
33
|
+
for practical examples.
|
|
34
|
+
- Learn how the [Project context (GEMINI.md)](../cli/gemini-md.md) system loads
|
|
35
|
+
this information.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Gemini CLI planning tools
|
|
2
|
+
|
|
3
|
+
Planning tools let Gemini CLI switch into a safe, read-only "Plan Mode" for
|
|
4
|
+
researching and planning complex changes, and to signal the finalization of a
|
|
5
|
+
plan to the user.
|
|
6
|
+
|
|
7
|
+
## 1. `enter_plan_mode` (EnterPlanMode)
|
|
8
|
+
|
|
9
|
+
`enter_plan_mode` switches the CLI to Plan Mode. This tool is typically called
|
|
10
|
+
by the agent when you ask it to "start a plan" using natural language. In this
|
|
11
|
+
mode, the agent is restricted to read-only tools to allow for safe exploration
|
|
12
|
+
and planning.
|
|
13
|
+
|
|
14
|
+
> **Note:** This tool is not available when the CLI is in YOLO mode.
|
|
15
|
+
|
|
16
|
+
- **Tool name:** `enter_plan_mode`
|
|
17
|
+
- **Display name:** Enter Plan Mode
|
|
18
|
+
- **File:** `enter-plan-mode.ts`
|
|
19
|
+
- **Parameters:**
|
|
20
|
+
- `reason` (string, optional): A short reason explaining why the agent is
|
|
21
|
+
entering plan mode (for example, "Starting a complex feature
|
|
22
|
+
implementation").
|
|
23
|
+
- **Behavior:**
|
|
24
|
+
- Switches the CLI's approval mode to `PLAN`.
|
|
25
|
+
- Notifies the user that the agent has entered Plan Mode.
|
|
26
|
+
- **Output (`llmContent`):** A message indicating the switch, for example,
|
|
27
|
+
`Switching to Plan mode.`
|
|
28
|
+
- **Confirmation:** Yes. The user is prompted to confirm entering Plan Mode.
|
|
29
|
+
|
|
30
|
+
## 2. `exit_plan_mode` (ExitPlanMode)
|
|
31
|
+
|
|
32
|
+
`exit_plan_mode` signals that the planning phase is complete. It presents the
|
|
33
|
+
finalized plan to the user and requests approval to start the implementation.
|
|
34
|
+
|
|
35
|
+
- **Tool name:** `exit_plan_mode`
|
|
36
|
+
- **Display name:** Exit Plan Mode
|
|
37
|
+
- **File:** `exit-plan-mode.ts`
|
|
38
|
+
- **Parameters:**
|
|
39
|
+
- `plan_path` (string, required): The path to the finalized Markdown plan
|
|
40
|
+
file. This file MUST be located within the project's temporary plans
|
|
41
|
+
directory (for example, `~/.gemini/tmp/<project>/plans/`).
|
|
42
|
+
- **Behavior:**
|
|
43
|
+
- Validates that the `plan_path` is within the allowed directory and that the
|
|
44
|
+
file exists and has content.
|
|
45
|
+
- Presents the plan to the user for review.
|
|
46
|
+
- If the user approves the plan:
|
|
47
|
+
- Switches the CLI's approval mode to the user's chosen approval mode (
|
|
48
|
+
`DEFAULT` or `AUTO_EDIT`).
|
|
49
|
+
- Marks the plan as approved for implementation.
|
|
50
|
+
- If the user rejects the plan:
|
|
51
|
+
- Stays in Plan Mode.
|
|
52
|
+
- Returns user feedback to the model to refine the plan.
|
|
53
|
+
- **Output (`llmContent`):**
|
|
54
|
+
- On approval: A message indicating the plan was approved and the new approval
|
|
55
|
+
mode.
|
|
56
|
+
- On rejection: A message containing the user's feedback.
|
|
57
|
+
- **Confirmation:** Yes. Shows the finalized plan and asks for user approval to
|
|
58
|
+
proceed with implementation.
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
# Shell tool (`run_shell_command`)
|
|
2
|
+
|
|
3
|
+
The `run_shell_command` tool allows the Gemini model to execute commands
|
|
4
|
+
directly on your system's shell. It is the primary mechanism for the agent to
|
|
5
|
+
interact with your environment beyond simple file edits.
|
|
6
|
+
|
|
7
|
+
## Technical reference
|
|
8
|
+
|
|
9
|
+
On Windows, commands execute with `powershell.exe -NoProfile -Command`. On other
|
|
10
|
+
platforms, they execute with `bash -c`.
|
|
11
|
+
|
|
12
|
+
### Arguments
|
|
13
|
+
|
|
14
|
+
- `command` (string, required): The exact shell command to execute.
|
|
15
|
+
- `description` (string, optional): A brief description shown to the user for
|
|
16
|
+
confirmation.
|
|
17
|
+
- `dir_path` (string, optional): The absolute path or relative path from
|
|
18
|
+
workspace root where the command runs.
|
|
19
|
+
- `is_background` (boolean, optional): Whether to move the process to the
|
|
20
|
+
background immediately after starting.
|
|
21
|
+
|
|
22
|
+
### Return values
|
|
23
|
+
|
|
24
|
+
The tool returns a JSON object containing:
|
|
25
|
+
|
|
26
|
+
- `Command`: The executed string.
|
|
27
|
+
- `Directory`: The execution path.
|
|
28
|
+
- `Stdout` / `Stderr`: The output streams.
|
|
29
|
+
- `Exit Code`: The process return code.
|
|
30
|
+
- `Background PIDs`: PIDs of any started background processes.
|
|
31
|
+
|
|
32
|
+
## Configuration
|
|
33
|
+
|
|
34
|
+
You can configure the behavior of the `run_shell_command` tool by modifying your
|
|
35
|
+
`settings.json` file or by using the `/settings` command in the Gemini CLI.
|
|
36
|
+
|
|
37
|
+
### Enabling interactive commands
|
|
38
|
+
|
|
39
|
+
To enable interactive commands, you need to set the
|
|
40
|
+
`tools.shell.enableInteractiveShell` setting to `true`. This will use `node-pty`
|
|
41
|
+
for shell command execution, which allows for interactive sessions. If
|
|
42
|
+
`node-pty` is not available, it will fall back to the `child_process`
|
|
43
|
+
implementation, which does not support interactive commands.
|
|
44
|
+
|
|
45
|
+
**Example `settings.json`:**
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"tools": {
|
|
50
|
+
"shell": {
|
|
51
|
+
"enableInteractiveShell": true
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Showing color in output
|
|
58
|
+
|
|
59
|
+
To show color in the shell output, you need to set the `tools.shell.showColor`
|
|
60
|
+
setting to `true`. **Note: This setting only applies when
|
|
61
|
+
`tools.shell.enableInteractiveShell` is enabled.**
|
|
62
|
+
|
|
63
|
+
**Example `settings.json`:**
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"tools": {
|
|
68
|
+
"shell": {
|
|
69
|
+
"showColor": true
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Setting the pager
|
|
76
|
+
|
|
77
|
+
You can set a custom pager for the shell output by setting the
|
|
78
|
+
`tools.shell.pager` setting. The default pager is `cat`. **Note: This setting
|
|
79
|
+
only applies when `tools.shell.enableInteractiveShell` is enabled.**
|
|
80
|
+
|
|
81
|
+
**Example `settings.json`:**
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
{
|
|
85
|
+
"tools": {
|
|
86
|
+
"shell": {
|
|
87
|
+
"pager": "less"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Interactive commands
|
|
94
|
+
|
|
95
|
+
The `run_shell_command` tool now supports interactive commands by integrating a
|
|
96
|
+
pseudo-terminal (pty). This allows you to run commands that require real-time
|
|
97
|
+
user input, such as text editors (`vim`, `nano`), terminal-based UIs (`htop`),
|
|
98
|
+
and interactive version control operations (`git rebase -i`).
|
|
99
|
+
|
|
100
|
+
When an interactive command is running, you can send input to it from the Gemini
|
|
101
|
+
CLI. To focus on the interactive shell, press `Tab`. The terminal output,
|
|
102
|
+
including complex TUIs, will be rendered correctly.
|
|
103
|
+
|
|
104
|
+
## Important notes
|
|
105
|
+
|
|
106
|
+
- **Security:** Be cautious when executing commands, especially those
|
|
107
|
+
constructed from user input, to prevent security vulnerabilities.
|
|
108
|
+
- **Error handling:** Check the `Stderr`, `Error`, and `Exit Code` fields to
|
|
109
|
+
determine if a command executed successfully.
|
|
110
|
+
- **Background processes:** When a command is run in the background with `&`,
|
|
111
|
+
the tool will return immediately and the process will continue to run in the
|
|
112
|
+
background. The `Background PIDs` field will contain the process ID of the
|
|
113
|
+
background process.
|
|
114
|
+
|
|
115
|
+
## Environment variables
|
|
116
|
+
|
|
117
|
+
When `run_shell_command` executes a command, it sets the `GEMINI_CLI=1`
|
|
118
|
+
environment variable in the subprocess's environment. This allows scripts or
|
|
119
|
+
tools to detect if they are being run from within the Gemini CLI.
|
|
120
|
+
|
|
121
|
+
## Command restrictions
|
|
122
|
+
|
|
123
|
+
You can restrict the commands that can be executed by the `run_shell_command`
|
|
124
|
+
tool by using the `tools.core` and `tools.exclude` settings in your
|
|
125
|
+
configuration file.
|
|
126
|
+
|
|
127
|
+
- `tools.core`: To restrict `run_shell_command` to a specific set of commands,
|
|
128
|
+
add entries to the `core` list under the `tools` category in the format
|
|
129
|
+
`run_shell_command(<command>)`. For example,
|
|
130
|
+
`"tools": {"core": ["run_shell_command(git)"]}` will only allow `git`
|
|
131
|
+
commands. Including the generic `run_shell_command` acts as a wildcard,
|
|
132
|
+
allowing any command not explicitly blocked.
|
|
133
|
+
- `tools.exclude` [DEPRECATED]: To block specific commands, use the
|
|
134
|
+
[Policy Engine](../reference/policy-engine.md). Historically, this setting
|
|
135
|
+
allowed adding entries to the `exclude` list under the `tools` category in the
|
|
136
|
+
format `run_shell_command(<command>)`. For example,
|
|
137
|
+
`"tools": {"exclude": ["run_shell_command(rm)"]}` will block `rm` commands.
|
|
138
|
+
|
|
139
|
+
The validation logic is designed to be secure and flexible:
|
|
140
|
+
|
|
141
|
+
1. **Command chaining disabled**: The tool automatically splits commands
|
|
142
|
+
chained with `&&`, `||`, or `;` and validates each part separately. If any
|
|
143
|
+
part of the chain is disallowed, the entire command is blocked.
|
|
144
|
+
2. **Prefix matching**: The tool uses prefix matching. For example, if you
|
|
145
|
+
allow `git`, you can run `git status` or `git log`.
|
|
146
|
+
3. **Blocklist precedence**: The `tools.exclude` list is always checked first.
|
|
147
|
+
If a command matches a blocked prefix, it will be denied, even if it also
|
|
148
|
+
matches an allowed prefix in `tools.core`.
|
|
149
|
+
|
|
150
|
+
### Command restriction examples
|
|
151
|
+
|
|
152
|
+
**Allow only specific command prefixes**
|
|
153
|
+
|
|
154
|
+
To allow only `git` and `npm` commands, and block all others:
|
|
155
|
+
|
|
156
|
+
```json
|
|
157
|
+
{
|
|
158
|
+
"tools": {
|
|
159
|
+
"core": ["run_shell_command(git)", "run_shell_command(npm)"]
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
- `git status`: Allowed
|
|
165
|
+
- `npm install`: Allowed
|
|
166
|
+
- `ls -l`: Blocked
|
|
167
|
+
|
|
168
|
+
**Block specific command prefixes**
|
|
169
|
+
|
|
170
|
+
To block `rm` and allow all other commands:
|
|
171
|
+
|
|
172
|
+
```json
|
|
173
|
+
{
|
|
174
|
+
"tools": {
|
|
175
|
+
"core": ["run_shell_command"],
|
|
176
|
+
"exclude": ["run_shell_command(rm)"]
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
- `rm -rf /`: Blocked
|
|
182
|
+
- `git status`: Allowed
|
|
183
|
+
- `npm install`: Allowed
|
|
184
|
+
|
|
185
|
+
**Blocklist takes precedence**
|
|
186
|
+
|
|
187
|
+
If a command prefix is in both `tools.core` and `tools.exclude`, it will be
|
|
188
|
+
blocked.
|
|
189
|
+
|
|
190
|
+
- **`tools.shell.enableInteractiveShell`**: (boolean) Uses `node-pty` for
|
|
191
|
+
real-time interaction.
|
|
192
|
+
- **`tools.shell.showColor`**: (boolean) Preserves ANSI colors in output.
|
|
193
|
+
- **`tools.shell.inactivityTimeout`**: (number) Seconds to wait for output
|
|
194
|
+
before killing the process.
|
|
195
|
+
|
|
196
|
+
### Command restrictions
|
|
197
|
+
|
|
198
|
+
You can limit which commands the agent is allowed to request using these
|
|
199
|
+
settings:
|
|
200
|
+
|
|
201
|
+
- **`tools.core`**: An allowlist of command prefixes (for example,
|
|
202
|
+
`["git", "npm test"]`).
|
|
203
|
+
- **`tools.exclude`**: A blocklist of command prefixes.
|
|
204
|
+
|
|
205
|
+
## Use cases
|
|
206
|
+
|
|
207
|
+
- Running build scripts and test suites.
|
|
208
|
+
- Initializing or managing version control systems.
|
|
209
|
+
- Installing project dependencies.
|
|
210
|
+
- Starting development servers or background watchers.
|
|
211
|
+
|
|
212
|
+
## Next steps
|
|
213
|
+
|
|
214
|
+
- Follow the [Shell commands tutorial](../cli/tutorials/shell-commands.md) for
|
|
215
|
+
practical examples.
|
|
216
|
+
- Learn about [Sandboxing](../cli/sandbox.md) to isolate command execution.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Todo tool (`write_todos`)
|
|
2
|
+
|
|
3
|
+
The `write_todos` tool allows the Gemini agent to maintain an internal list of
|
|
4
|
+
subtasks for multi-step requests.
|
|
5
|
+
|
|
6
|
+
## Technical reference
|
|
7
|
+
|
|
8
|
+
The agent uses this tool to manage its execution plan and provide progress
|
|
9
|
+
updates to the CLI interface.
|
|
10
|
+
|
|
11
|
+
### Arguments
|
|
12
|
+
|
|
13
|
+
- `todos` (array of objects, required): The complete list of tasks. Each object
|
|
14
|
+
includes:
|
|
15
|
+
- `description` (string): Technical description of the task.
|
|
16
|
+
- `status` (enum): `pending`, `in_progress`, `completed`, or `cancelled`.
|
|
17
|
+
|
|
18
|
+
## Technical behavior
|
|
19
|
+
|
|
20
|
+
- **Interface:** Updates the progress indicator above the CLI input prompt.
|
|
21
|
+
- **Exclusivity:** Only one task can be marked `in_progress` at any time.
|
|
22
|
+
- **Persistence:** Todo state is scoped to the current session.
|
|
23
|
+
- **Interaction:** Users can toggle the full list view using **Ctrl+T**.
|
|
24
|
+
|
|
25
|
+
## Use cases
|
|
26
|
+
|
|
27
|
+
- Breaking down a complex feature implementation into manageable steps.
|
|
28
|
+
- Coordinating multi-file refactoring tasks.
|
|
29
|
+
- Providing visibility into the agent's current focus during long-running tasks.
|
|
30
|
+
|
|
31
|
+
## Next steps
|
|
32
|
+
|
|
33
|
+
- Follow the [Task planning tutorial](../cli/tutorials/task-planning.md) for
|
|
34
|
+
usage details.
|
|
35
|
+
- Learn about [Session management](../cli/session-management.md) for context.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Web fetch tool (`web_fetch`)
|
|
2
|
+
|
|
3
|
+
The `web_fetch` tool allows the Gemini agent to retrieve and process content
|
|
4
|
+
from specific URLs provided in your prompt.
|
|
5
|
+
|
|
6
|
+
## Technical reference
|
|
7
|
+
|
|
8
|
+
The agent uses this tool when you include URLs in your prompt and request
|
|
9
|
+
specific operations like summarization or extraction.
|
|
10
|
+
|
|
11
|
+
### Arguments
|
|
12
|
+
|
|
13
|
+
- `prompt` (string, required): A request containing up to 20 valid URLs
|
|
14
|
+
(starting with `http://` or `https://`) and instructions on how to process
|
|
15
|
+
them.
|
|
16
|
+
|
|
17
|
+
## Technical behavior
|
|
18
|
+
|
|
19
|
+
- **Confirmation:** Triggers a confirmation dialog showing the converted URLs.
|
|
20
|
+
- **Processing:** Uses the Gemini API's `urlContext` for retrieval.
|
|
21
|
+
- **Fallback:** If API access fails, the tool attempts to fetch raw content
|
|
22
|
+
directly from your local machine.
|
|
23
|
+
- **Formatting:** Returns a synthesized response with source attribution.
|
|
24
|
+
|
|
25
|
+
## Use cases
|
|
26
|
+
|
|
27
|
+
- Summarizing technical articles or blog posts.
|
|
28
|
+
- Comparing data between two or more web pages.
|
|
29
|
+
- Extracting specific information from a documentation site.
|
|
30
|
+
|
|
31
|
+
## Next steps
|
|
32
|
+
|
|
33
|
+
- Follow the [Web tools guide](../cli/tutorials/web-tools.md) for practical
|
|
34
|
+
usage examples.
|
|
35
|
+
- See the [Web search tool reference](./web-search.md) for general queries.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Web search tool (`google_web_search`)
|
|
2
|
+
|
|
3
|
+
The `google_web_search` tool allows the Gemini agent to retrieve up-to-date
|
|
4
|
+
information, news, and facts from the internet via Google Search.
|
|
5
|
+
|
|
6
|
+
## Technical reference
|
|
7
|
+
|
|
8
|
+
The agent uses this tool when your request requires knowledge of current events
|
|
9
|
+
or specific online documentation not available in its internal training data.
|
|
10
|
+
|
|
11
|
+
### Arguments
|
|
12
|
+
|
|
13
|
+
- `query` (string, required): The search query to be executed.
|
|
14
|
+
|
|
15
|
+
## Technical behavior
|
|
16
|
+
|
|
17
|
+
- **Grounding:** Returns a generated summary based on search results.
|
|
18
|
+
- **Citations:** Includes source URIs and titles for factual grounding.
|
|
19
|
+
- **Processing:** The Gemini API processes the search results before returning a
|
|
20
|
+
synthesized response to the agent.
|
|
21
|
+
|
|
22
|
+
## Use cases
|
|
23
|
+
|
|
24
|
+
- Researching the latest version of a software library or API.
|
|
25
|
+
- Finding solutions to recent software bugs or security vulnerabilities.
|
|
26
|
+
- Retrieving news or documentation updated after the model's knowledge cutoff.
|
|
27
|
+
|
|
28
|
+
## Next steps
|
|
29
|
+
|
|
30
|
+
- Follow the [Web tools guide](../cli/tutorials/web-tools.md) for practical
|
|
31
|
+
usage examples.
|
|
32
|
+
- Explore the [Web fetch tool reference](./web-fetch.md) for direct URL access.
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Panduan Update Mashadev Fork
|
|
2
|
+
|
|
3
|
+
## Kenapa Ini Perlu Diperhatiin?
|
|
4
|
+
|
|
5
|
+
Mashadev adalah **fork** dari `DGameGT/mashadev-cli`. Artinya kode kita
|
|
6
|
+
hidup di dua tempat:
|
|
7
|
+
|
|
8
|
+
- **Upstream** — repo asli Google yang terus dapat fitur baru
|
|
9
|
+
- **Fork kita** — repo Mashadev dengan branding & customisasi sendiri
|
|
10
|
+
|
|
11
|
+
Masalahnya: kalau upstream update file yang sama dengan yang kita rename
|
|
12
|
+
(seperti `AppHeader.tsx`), git akan **conflict** — dia bingung mau pakai versi
|
|
13
|
+
mana. Kalau salah handle, rename hilang.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Kenapa Pakai Branch Terpisah?
|
|
18
|
+
|
|
19
|
+
Semua customisasi Mashadev (rename, branding, fitur custom) harus hidup di
|
|
20
|
+
**branch tersendiri**, bukan di `main`.
|
|
21
|
+
|
|
22
|
+
Alasannya:
|
|
23
|
+
|
|
24
|
+
- `main` kita = cerminan upstream → gampang di-update
|
|
25
|
+
- `masha-dev` = tempat semua custom kita tinggal
|
|
26
|
+
- Kalau upstream update, kita tinggal rebase `masha-dev` di atas `main` yang
|
|
27
|
+
sudah fresh
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
upstream/main → fork/main → fork/masha-dev
|
|
31
|
+
(semua rename di sini)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Setup Sekali (First Time)
|
|
37
|
+
|
|
38
|
+
```powershell
|
|
39
|
+
# 1. Tambahkan upstream sebagai remote
|
|
40
|
+
git remote add upstream https://github.com/DGameGT/mashadev-cli.git
|
|
41
|
+
|
|
42
|
+
# 2. Buat branch khusus untuk semua customisasi Mashadev
|
|
43
|
+
git checkout -b masha-dev
|
|
44
|
+
|
|
45
|
+
# 3. Commit semua perubahan custom di sini
|
|
46
|
+
git add .
|
|
47
|
+
git commit -m "feat: mashadev branding & customizations"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Cara Update (Setiap Ada Fitur Baru dari Upstream)
|
|
53
|
+
|
|
54
|
+
```powershell
|
|
55
|
+
# 1. Pindah ke main dulu
|
|
56
|
+
git checkout main
|
|
57
|
+
|
|
58
|
+
# 2. Pull update terbaru dari Google
|
|
59
|
+
git pull upstream main
|
|
60
|
+
|
|
61
|
+
# 3. Push ke fork GitHub kita
|
|
62
|
+
git push origin main
|
|
63
|
+
|
|
64
|
+
# 4. Balik ke branch masha-dev
|
|
65
|
+
git checkout masha-dev
|
|
66
|
+
|
|
67
|
+
# 5. Rebase di atas main yang sudah update
|
|
68
|
+
git rebase main
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Kalau Ada Conflict Saat Rebase
|
|
72
|
+
|
|
73
|
+
Git akan berhenti dan menunjukkan file yang conflict. Buka file tersebut, cari
|
|
74
|
+
tanda `<<<<<<`, `======`, `>>>>>>` — itu adalah bagian yang perlu kamu pilih
|
|
75
|
+
atau gabungkan.
|
|
76
|
+
|
|
77
|
+
```powershell
|
|
78
|
+
# Setelah resolve conflict di file tersebut:
|
|
79
|
+
git add <nama-file>
|
|
80
|
+
git rebase --continue
|
|
81
|
+
|
|
82
|
+
# Kalau mau batalkan rebase:
|
|
83
|
+
git rebase --abort
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## File yang Perlu Diperhatiin (Rawan Conflict)
|
|
89
|
+
|
|
90
|
+
| File | Perubahan Mashadev |
|
|
91
|
+
| ----------------- | -------------------------------- |
|
|
92
|
+
| `AppHeader.tsx` | "Gemini CLI" → "Masha Dev CLI" |
|
|
93
|
+
| `MainContent.tsx` | Swap ke `Header.tsx` (ASCII art) |
|
|
94
|
+
| `updateCheck.ts` | Auto-update dimatikan |
|
|
95
|
+
| `AsciiArt.ts` | Logo custom |
|
|
96
|
+
|
|
97
|
+
Kalau upstream update file-file ini → **siap-siap resolve conflict**.
|
|
98
|
+
Kalau upstream update file lain (tools baru, model baru, dll) → **langsung masuk
|
|
99
|
+
mulus**.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Tips
|
|
104
|
+
|
|
105
|
+
Kalau perubahan Mashadev makin banyak, pertimbangkan bikin script
|
|
106
|
+
`apply-mashadev-branding.sh` yang otomatis re-apply semua rename setelah update.
|
|
107
|
+
Lebih predictable dari resolve conflict manual.
|
|
108
|
+
|
|
109
|
+
Auto-update CLI (`updateCheck.ts`) sudah dimatikan, jadi tidak akan ada update
|
|
110
|
+
otomatis yang menimpa binary `mashadev`. Tapi update dari upstream tetap harus
|
|
111
|
+
dilakukan **manual** via git seperti panduan ini.
|