summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui
AgeCommit message (Collapse)Author
2025-04-20Fix read-file from exploding with path not found error.Taylor Mullen
- There were a few hiccups here. Somehow 2.5-flash wasn't actually abiding by our tool schema. Instead it was inferring `path`. To semi-combat this I've renamed `file_path` -> `path`. - We weren't elevating errors that were created via schema validation. Instead both the `glob` and `read-file.ts` now surface this. - In error scenarios (like failing schema) we were improperly surfacing these as success cases because we were overriding tool status.
2025-04-20add linter for checking license headers (and eslint --fix target to match, ↵Tyler
and fix missing license headers while we're here) (#62)
2025-04-20Make model-generated code copyable (#70)Juliette Love
2025-04-20Add terminal clear (#69)Juliette Love
2025-04-20Adds shell command allowlist (#68)Juliette Love
* Wire through passthrough commands * Add default passthrough commands * Clean up config passing to useGeminiStream
2025-04-20Simple debug mode for CLI side (#66)Juliette Love
* Adds debug mode config flag. * Wire through debug lines * Add debug mode logging example * Run format * Run format again
2025-04-19Give Gemini Code a face lift.Taylor Mullen
- This utilizes `ink-gradient` to render GEMINI CODE in amazing colors. - Added a shared color configuration for UX (should this be in config?). It's very possible that we shouldn't be talking about the specific colors and instead be mentioning "foreground"/"background"/inlineCode etc. type colors. - Updated existing color usages to utilize `Colors.*` Fixes https://b.corp.google.com/issues/411385593
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-19Fix the double warning for iterm. (#51)Allen Hutchison
2025-04-19Adding in a history buffer (#38)Evan Senter
Up and down arrows traverse the command history.
2025-04-19fix formatjlove29
2025-04-19Add direct execution of shell commandsjlove29
2025-04-18Add apache2 SPDX headers to all source files (#48)Tyler
2025-04-18All the pipes (#47)Allen Hutchison
* Bump the character limit to web fetch. * Piped Input Hook. First step in bringing in STDIN piping. * Fix linting errors. * Remove incorrect comment.
2025-04-18Fix remaining tslint errors (YAY).Taylor Mullen
- Also updated ci.yml to ensure that linting failures will break the build. Fully fixes https://b.corp.google.com/issues/411384603
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-18Iterm refactor (#33)Allen Hutchison
* Add a warning about the flickering in iTerm. * Move the iterm warning out of App.tsx.
2025-04-18Add a warning about the flickering in iTerm. (#32)Allen Hutchison
2025-04-18Warn if `npm run start` is out of date. (#20)Evan Senter
* Adding some wiring to allow the Ink app to warn if there are local development changes that haven't been captured in the recent build of the Gemini CLI. * Adding a new useAppEffects.ts file that wores some useEffect handlers in. * Updating package-lock.json to resolve `npm ci` issues. * Updating package-lock.json and package.json to resolve `npm ci` issues.
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-18Revert "Adding some wiring to allow the Ink app to warn if there are local ↵Evan Senter
development changes that haven't been captured in the recent build of the Gemini CLI." This reverts commit 1bfc62dcc2c10e962d4a67009027b7187e690d03.
2025-04-18Revert "Adding support for up / down arrows in the command history."Evan Senter
This reverts commit 3829ac635307a77a1af0141c2db7f4135c74fcf6.
2025-04-18Revert "Including a test harness for it, and making sure the cursor is ↵Evan Senter
always at the end." This reverts commit 97db77997fd6369031d2f1cf750051999fb0b5b5.
2025-04-18Including a test harness for it, and making sure the cursor is always at the ↵Evan Senter
end.
2025-04-18Adding support for up / down arrows in the command history.Evan Senter
2025-04-18Adding some wiring to allow the Ink app to warn if there are local ↵Evan Senter
development changes that haven't been captured in the recent build of the Gemini CLI.
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-17Fix build break (tool -> tools).Taylor Mullen
- Without this we'd get a TS1261 about the name "tool" only differeing from "Tool" (the class) by case.
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__