summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/utils
AgeCommit message (Collapse)Author
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-09fix: Resolve infinite loopTaylor Mullen
- This change addresses and resolves an infinite loop. The patch ensures the loop condition is correctly handled, preventing its recurrence. - Added tests for markdownUtilities.test.ts Fixes: https://b.corp.google.com/issues/416795337 Signed-off-by: Gemini <My circuits hummed, and the loop was no more.>
2025-05-07Fix bugs from useGeminiStream refactor (#284)Tae Hyung Kim
2025-05-07Refactor: Enhance @-command, Autocomplete, and Input Stability (#279)Allen Hutchison
2025-05-06Fix rendering & indentation of bullets (numeric and *).Taylor Mullen
- Prior to this numeric bullets wouldn't have a period suffix and * bullets wouldn't be indented if they were nested. Fixes https://b.corp.google.com/issues/414266756
2025-05-06Revert "Support syntax highlighting for more languages (#246)" (#264)Jacob Richman
2025-05-04Support syntax highlighting for more languages (#246)Jacob Richman
2025-05-02Cleanup low value comments. (#248)Jacob Richman
2025-05-02Add autocomplete for slash commandsSeth Troisi
2025-04-30Added bang(!) commands as a shell passthroughSeth Troisi
2025-04-29Add @ command handling to useGeminiStream (#217)Allen Hutchison
* First integration of at commands into useGeminiStream.ts * feat: Integrate @ command for file/directory reading - Adds support for `@<path>` commands in the CLI UI to read file or directory contents using the `read_many_files` tool. - Refactors `useGeminiStream` hook to handle slash, passthrough, and @ commands before sending queries to the Gemini API. - Improves history item ID generation to prevent React duplicate key warnings. * fix: Handle additional text after @ command path - Modifies the `@` command processor to parse text following the file/directory path (e.g., `@README.md explain this`). - Includes both the fetched file content and the subsequent text in the query sent to the Gemini API. - Resolves the TODO item in `atCommandProcessor.ts`. * feat: Allow @ command anywhere in query and fix build - Update `atCommandProcessor` to correctly parse `@<path>` commands regardless of their position in the input string using regex. This enables queries like "Explain @README.md to me". - Fix build error in `useGeminiStream` by importing the missing `findSafeSplitPoint` function. * rename isPotentiallyAtCommand to isAtCommand * respond to review comments.
2025-04-29Refactor useGeminiStream to pull slash commands and passthrough comma… (#215)Allen Hutchison
* Refactor useGeminiStream to pull slash commands and passthrough commands into their own processors. * whitespace lint errors. * Add sugestions from code review.
2025-04-29First four independent files for @ commands. (#205)Allen Hutchison
2025-04-26Follow up fixes from flickering PR.Taylor Mullen
- The push for these changes didn't make it through.... Just doing a quick fix here which should have been in: https://github.com/google-gemini/gemini-code/pull/181
2025-04-26feat: Fix flickering in iTerm + scrolling + performance issues.Taylor Mullen
- Refactors history display using Ink's <Static> component to prevent flickering and improve performance by rendering completed items statically. - Introduces ConsolePatcher component to capture and display console.log, console.warn, and console.error output within the Ink UI, addressing native handling issues. - Introduce a new content splitting mechanism to work better for static items. Basically when content gets too long we will now split content into multiple blocks for Gemini messages to ensure that we can statically cache larger pieces of history. Fixes: - https://b.corp.google.com/issues/411450097 - https://b.corp.google.com/issues/412716309
2025-04-22Colorize code blocks.Taylor Mullen
- This changeset uses lowlight.js to parse the code in codeblocks to derive an AST, it then translates that into CSS themes that are widely known via highlight.js (things that GitHub use), finally I translate those css.color attributes into Ink colors and effectivel do <Text color={the color}>the text</Text>. - To do this I needed to build color mappings from css -> Ink - I introduced a new `Theme` type that will be used to represent many different color themes. It also enabled the color mappings to be seamless. - Added a theme manager that only has one theme for now (VS2015). The theme works very well with our colorization. - Some other bits was removal of borders around our codeblocks since they now have richer rendering. - Most complex bits of code in this PR is in the `CodeColorizer.tsx` Fixes https://b.corp.google.com/issues/412433479
2025-04-20Make model-generated code copyable (#70)Juliette Love
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-18Add apache2 SPDX headers to all source files (#48)Tyler
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-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-18Initial auto-fixing of linting errors.Taylor Mullen
- This is the result of runing `npm lint -- -fix`
2025-04-17Run `npm run format`Taylor Mullen
- Also updated README.md accordingly. Part of https://b.corp.google.com/issues/411384603
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__