@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.
Files changed (140) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +393 -0
  3. package/bundle/builtin/skill-creator/SKILL.md +382 -0
  4. package/bundle/builtin/skill-creator/scripts/init_skill.cjs +239 -0
  5. package/bundle/builtin/skill-creator/scripts/package_skill.cjs +131 -0
  6. package/bundle/builtin/skill-creator/scripts/validate_skill.cjs +131 -0
  7. package/bundle/docs/CONTRIBUTING.md +1 -0
  8. package/bundle/docs/admin/enterprise-controls.md +115 -0
  9. package/bundle/docs/assets/connected_devtools.png +0 -0
  10. package/bundle/docs/assets/gemini-screenshot.png +0 -0
  11. package/bundle/docs/assets/monitoring-dashboard-logs.png +0 -0
  12. package/bundle/docs/assets/monitoring-dashboard-metrics.png +0 -0
  13. package/bundle/docs/assets/monitoring-dashboard-overview.png +0 -0
  14. package/bundle/docs/assets/release_patch.png +0 -0
  15. package/bundle/docs/assets/theme-ansi-light.png +0 -0
  16. package/bundle/docs/assets/theme-ansi.png +0 -0
  17. package/bundle/docs/assets/theme-atom-one.png +0 -0
  18. package/bundle/docs/assets/theme-ayu-light.png +0 -0
  19. package/bundle/docs/assets/theme-ayu.png +0 -0
  20. package/bundle/docs/assets/theme-custom.png +0 -0
  21. package/bundle/docs/assets/theme-default-light.png +0 -0
  22. package/bundle/docs/assets/theme-default.png +0 -0
  23. package/bundle/docs/assets/theme-dracula.png +0 -0
  24. package/bundle/docs/assets/theme-github-light.png +0 -0
  25. package/bundle/docs/assets/theme-github.png +0 -0
  26. package/bundle/docs/assets/theme-google-light.png +0 -0
  27. package/bundle/docs/assets/theme-xcode-light.png +0 -0
  28. package/bundle/docs/changelogs/index.md +867 -0
  29. package/bundle/docs/changelogs/latest.md +208 -0
  30. package/bundle/docs/changelogs/preview.md +187 -0
  31. package/bundle/docs/cli/checkpointing.md +93 -0
  32. package/bundle/docs/cli/cli-reference.md +115 -0
  33. package/bundle/docs/cli/creating-skills.md +80 -0
  34. package/bundle/docs/cli/custom-commands.md +327 -0
  35. package/bundle/docs/cli/enterprise.md +604 -0
  36. package/bundle/docs/cli/gemini-ignore.md +71 -0
  37. package/bundle/docs/cli/gemini-md.md +116 -0
  38. package/bundle/docs/cli/generation-settings.md +210 -0
  39. package/bundle/docs/cli/headless.md +50 -0
  40. package/bundle/docs/cli/model-routing.md +42 -0
  41. package/bundle/docs/cli/model.md +53 -0
  42. package/bundle/docs/cli/plan-mode.md +375 -0
  43. package/bundle/docs/cli/rewind.md +51 -0
  44. package/bundle/docs/cli/sandbox.md +257 -0
  45. package/bundle/docs/cli/session-management.md +184 -0
  46. package/bundle/docs/cli/settings.md +165 -0
  47. package/bundle/docs/cli/skills.md +134 -0
  48. package/bundle/docs/cli/system-prompt.md +125 -0
  49. package/bundle/docs/cli/telemetry.md +922 -0
  50. package/bundle/docs/cli/themes.md +269 -0
  51. package/bundle/docs/cli/token-caching.md +20 -0
  52. package/bundle/docs/cli/trusted-folders.md +126 -0
  53. package/bundle/docs/cli/tutorials/automation.md +283 -0
  54. package/bundle/docs/cli/tutorials/file-management.md +142 -0
  55. package/bundle/docs/cli/tutorials/mcp-setup.md +113 -0
  56. package/bundle/docs/cli/tutorials/memory-management.md +126 -0
  57. package/bundle/docs/cli/tutorials/session-management.md +105 -0
  58. package/bundle/docs/cli/tutorials/shell-commands.md +107 -0
  59. package/bundle/docs/cli/tutorials/skills-getting-started.md +110 -0
  60. package/bundle/docs/cli/tutorials/task-planning.md +93 -0
  61. package/bundle/docs/cli/tutorials/web-tools.md +78 -0
  62. package/bundle/docs/core/index.md +107 -0
  63. package/bundle/docs/core/remote-agents.md +84 -0
  64. package/bundle/docs/core/subagents.md +307 -0
  65. package/bundle/docs/examples/proxy-script.md +83 -0
  66. package/bundle/docs/extensions/best-practices.md +188 -0
  67. package/bundle/docs/extensions/index.md +61 -0
  68. package/bundle/docs/extensions/reference.md +333 -0
  69. package/bundle/docs/extensions/releasing.md +154 -0
  70. package/bundle/docs/extensions/writing-extensions.md +308 -0
  71. package/bundle/docs/get-started/authentication.md +402 -0
  72. package/bundle/docs/get-started/examples.md +139 -0
  73. package/bundle/docs/get-started/gemini-3.md +115 -0
  74. package/bundle/docs/get-started/index.md +82 -0
  75. package/bundle/docs/get-started/installation.md +174 -0
  76. package/bundle/docs/hooks/best-practices.md +709 -0
  77. package/bundle/docs/hooks/index.md +164 -0
  78. package/bundle/docs/hooks/reference.md +330 -0
  79. package/bundle/docs/hooks/writing-hooks.md +474 -0
  80. package/bundle/docs/ide-integration/ide-companion-spec.md +267 -0
  81. package/bundle/docs/ide-integration/index.md +224 -0
  82. package/bundle/docs/index.md +141 -0
  83. package/bundle/docs/integration-tests.md +211 -0
  84. package/bundle/docs/issue-and-pr-automation.md +172 -0
  85. package/bundle/docs/local-development.md +134 -0
  86. package/bundle/docs/mermaid/context.mmd +103 -0
  87. package/bundle/docs/mermaid/render-path.mmd +64 -0
  88. package/bundle/docs/npm.md +62 -0
  89. package/bundle/docs/redirects.json +20 -0
  90. package/bundle/docs/reference/commands.md +526 -0
  91. package/bundle/docs/reference/configuration.md +1786 -0
  92. package/bundle/docs/reference/keyboard-shortcuts.md +164 -0
  93. package/bundle/docs/reference/memport.md +246 -0
  94. package/bundle/docs/reference/policy-engine.md +364 -0
  95. package/bundle/docs/reference/tools.md +106 -0
  96. package/bundle/docs/release-confidence.md +164 -0
  97. package/bundle/docs/releases.md +540 -0
  98. package/bundle/docs/resources/faq.md +175 -0
  99. package/bundle/docs/resources/quota-and-pricing.md +165 -0
  100. package/bundle/docs/resources/tos-privacy.md +102 -0
  101. package/bundle/docs/resources/troubleshooting.md +176 -0
  102. package/bundle/docs/resources/uninstall.md +56 -0
  103. package/bundle/docs/sidebar.json +233 -0
  104. package/bundle/docs/tools/activate-skill.md +43 -0
  105. package/bundle/docs/tools/ask-user.md +95 -0
  106. package/bundle/docs/tools/file-system.md +129 -0
  107. package/bundle/docs/tools/internal-docs.md +46 -0
  108. package/bundle/docs/tools/mcp-server.md +1150 -0
  109. package/bundle/docs/tools/memory.md +35 -0
  110. package/bundle/docs/tools/planning.md +58 -0
  111. package/bundle/docs/tools/shell.md +216 -0
  112. package/bundle/docs/tools/todos.md +35 -0
  113. package/bundle/docs/tools/web-fetch.md +35 -0
  114. package/bundle/docs/tools/web-search.md +32 -0
  115. package/bundle/docs/update/update-guide.md +111 -0
  116. package/bundle/masha.js +563471 -0
  117. package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/client/main.js +89 -0
  118. package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/src/_client-assets.d.ts +7 -0
  119. package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/src/_client-assets.js +9 -0
  120. package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/src/_client-assets.js.map +1 -0
  121. package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/src/index.d.ts +48 -0
  122. package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/src/index.js +299 -0
  123. package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/src/index.js.map +1 -0
  124. package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/src/types.d.ts +36 -0
  125. package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/src/types.js +7 -0
  126. package/bundle/node_modules/@dgxo/mashadevcli-devtools/dist/src/types.js.map +1 -0
  127. package/bundle/node_modules/@dgxo/mashadevcli-devtools/package.json +32 -0
  128. package/bundle/policies/conseca.toml +6 -0
  129. package/bundle/policies/discovered.toml +8 -0
  130. package/bundle/policies/plan.toml +109 -0
  131. package/bundle/policies/read-only.toml +53 -0
  132. package/bundle/policies/write.toml +80 -0
  133. package/bundle/policies/yolo.toml +54 -0
  134. package/bundle/sandbox-macos-permissive-open.sb +27 -0
  135. package/bundle/sandbox-macos-permissive-proxied.sb +37 -0
  136. package/bundle/sandbox-macos-restrictive-open.sb +96 -0
  137. package/bundle/sandbox-macos-restrictive-proxied.sb +98 -0
  138. package/bundle/sandbox-macos-strict-open.sb +131 -0
  139. package/bundle/sandbox-macos-strict-proxied.sb +133 -0
  140. 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.