summaryrefslogtreecommitdiff
path: root/packages/cli/src/utils
AgeCommit message (Collapse)Author
2025-05-29allow writing to user cache directory on macos (fixes use of lyria mcp ↵Olcan
server [to generate songs] under seatbelt) (#600)
2025-05-23update email to gemini-cli-dev (#510)Olcan
2025-05-23allow write to ~/.gitconfig in seatbelt profiles (#509)Olcan
2025-05-20fix HOME in sandbox on cloudtops (linux) (#454)Olcan
2025-05-17rename env vars GEMINI_CODE_{MODEL,SANDBOX,SANDBOX_IMAGE} (#411)Olcan
2025-05-15move sandbox-related messages to stderr (#363)Olcan
2025-05-13fix: pass startup warnings to app as prop (#342)Brandon Keiji
2025-05-13fix(sandbox): default to current user profile for debian/ubuntu env (#337)Brandon Keiji
2025-05-13refactor: shorten 'gemini' binary name (#329)Brandon Keiji
2025-05-11Remove terminal tool and dependencies.Taylor Mullen
- We now solely use the shell tool. This deletes all content around the legacy terminal tool so we can focus on improving the new Shell tool. - Remove instances from sandboxing, tests, utilities etc.
2025-05-09sandbox/seatbelt-aware system prompt, support for custom seatbelt profiles ↵Olcan
under project settings (#304)
2025-05-09fix MCP under seatbelt, improve error handling (#301)Olcan
2025-05-09fix debugging with seatbelt, including in strict profile (#300)Olcan
2025-05-08fix(sandbox): set --inspect-brk in production sandbox when env DEBUG is ↵Brandon Keiji
truthy (#295)
2025-05-08allow SEATBELT_PROFILE=none to disable seatbelt on macos (#296)Olcan
2025-05-08refined sandbox/seatbelt log message, pass NODE_OPTIONS along to sandboxed ↵Olcan
node (#292)
2025-05-08minor comment fix (#290)Olcan
2025-05-08adjust seatbelt to allow write into specific dirs under user home (#289)Olcan
2025-05-07rename SANDBOX_EXEC_PROFILE as SEATBELT_PROFILE, and fix another accidental ↵Olcan
rephrasing (#285)
2025-05-07use seatbelt on macos, with two profiles: minimal (default) which only ↵Olcan
restricts writes, and strict, which is deny-by-default and only allows specific operations (#283)
2025-05-07fix(sandbox): consolidate dev and prod sandbox (#273)Brandon Keiji
2025-05-03make sandbox venv support more robust, allowing arbitrary venv path, and ↵Olcan
ignoring venv outside workdir (instead of erroring out) (#254)
2025-05-03enable recreating a python virtual env (.venv folder) inside sandbox (#253)Olcan
2025-05-02custom sandboxing via sandbox.Dockerfile and sandbox.bashrc in project ↵Olcan
settings (#249)
2025-05-02pass PATH and PYTHONPATH into sandbox, let sandbox scripts recognize user ↵Olcan
settings for sandbox (#247)
2025-05-02sandbox setting and argument (#243)Olcan
2025-05-01mount user settings in sandbox (#239)Olcan
2025-05-01remove start_sandbox.sh script (#238)Olcan
2025-04-30refactor: make parseImageName more readable (#228)Brandon Keiji
2025-04-30refactor(sandbox): make cli path agnostic of docker container build rules (#226)Brandon Keiji
2025-04-29refactor: move sandbox js code to its own module (#225)Brandon Keiji
2025-04-21Piped input (#104)Allen Hutchison
* New method for handling stdin. Bypass Ink, and output to stdout. Makes the CLI work like a typical Unix application when called with piped input. * Fixing a few post-merge errors. * Format code. * Clean up lint and format errors.
2025-04-21Fix Gemini Code's (GC) smarts.Taylor Mullen
- The tl;dr; is that GC couldn't see what the user was saying when tool call events happened in response. The rason why this was happening was because we were instantly invoking tools that the model told us to invoke and then instantly re-requesting. This resulted in the bug because the genai APIs can't update the chat history before a full response has been completed (doesn't know how to update if it's incomplete). - To address the above issue I had to do quite the large refactor. The gist is that now turns truly drive everything on the server (vs. a server client split). This ensured that when we got tool invocations we could control when/how re-requesting would happen and then also ensure that history was updated. This change also meant that the server would act as an event publisher to enable the client to react to events rather than try and weave in complex logic between the events. - A BIG change that this changeset incudes is the removal of all of the CLI tools in favor of the server tools. - Removed some dead code as part of this - **NOTE: Confirmations are still broken (they were broken prior to this); however, I've set them up to be able to work in the future, I'll dot hat in a follow up to be less breaking to others.** Fixes https://b.corp.google.com/issues/412320087
2025-04-19Starting to modularize into separate cli / server packages. (#55)Evan Senter
* Starting to move a lot of code into packages/server * More of the massive refactor, builds and runs, some issues though. * Fixing outstanding issue with double messages. * Fixing a minor UI issue. * Fixing the build post-merge. * Running formatting. * Addressing comments.
2025-04-18Add apache2 SPDX headers to all source files (#48)Tyler
2025-04-18Run `npm run format`Taylor Mullen
- This has the entirety of the changes. Part of https://b.corp.google.com/issues/411720532
2025-04-18Manually fix hooks and utils linting errors (partial)Taylor Mullen
- More changes are to come, this is truly a partial change in order to not disrupt as many people as possible. Part of https://b.corp.google.com/issues/411384603
2025-04-18Introduce a config module to manage configuration (#22)Jaana Dogan
* Introduce a config module to manage configuration * Remove public modifier
2025-04-18Fix linting errors in a number of core and tool files (partial)Taylor Mullen
- As part of this work I also started building out errors.ts which will be a cumulation of error helpers to better handle the challenging `catch (error: unknown)` requirement. - More changes are to come, this is truly a partial change in order to not disrupt as many people as possible. Part of https://b.corp.google.com/issues/411384603
2025-04-18Initial auto-fixing of linting errors.Taylor Mullen
- This is the result of runing `npm lint -- -fix`
2025-04-18Adding a new parameter for model, and updating the default to 2.5 Flash. (#18)Evan Senter
2025-04-17Run `npm run format`Taylor Mullen
- Also updated README.md accordingly. Part of https://b.corp.google.com/issues/411384603
2025-04-17Improve readability issuesJaana Dogan
This is only the first change of many changes. * Remove redundant autogenerated comments * Use the recommended file name style * Use camelCase for variable names * Don't introduce submodules for relevant types * Don't introduce constants like modules, these are implementation details * Remove empty files
2025-04-17Initial commit of Gemini Code CLITaylor Mullen
This commit introduces the initial codebase for the Gemini Code CLI, a command-line interface designed to facilitate interaction with the Gemini API for software engineering tasks. The code was migrated from a previous git repository as a single squashed commit. Core Features & Components: * **Gemini Integration:** Leverages the `@google/genai` SDK to interact with the Gemini models, supporting chat history, streaming responses, and function calling (tools). * **Terminal UI:** Built with Ink (React for CLIs) providing an interactive chat interface within the terminal, including input prompts, message display, loading indicators, and tool interaction elements. * **Tooling Framework:** Implements a robust tool system allowing Gemini to interact with the local environment. Includes tools for: * File system listing (`ls`) * File reading (`read-file`) * Content searching (`grep`) * File globbing (`glob`) * File editing (`edit`) * File writing (`write-file`) * Executing bash commands (`terminal`) * **State Management:** Handles the streaming state of Gemini responses and manages the conversation history. * **Configuration:** Parses command-line arguments (`yargs`) and loads environment variables (`dotenv`) for setup. * **Project Structure:** Organized into `core`, `ui`, `tools`, `config`, and `utils` directories using TypeScript. Includes basic build (`tsc`) and start scripts. This initial version establishes the foundation for a powerful CLI tool enabling developers to use Gemini for coding assistance directly in their terminal environment. --- Created by yours truly: __Gemini Code__