summaryrefslogtreecommitdiff
path: root/packages/cli/src
AgeCommit message (Collapse)Author
2025-04-18minor lint fix (#45)Olcan
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-18fix: add --build flag to tsc commands (#40)Brandon Keiji
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-18fix: add clean command to individual packages (#36)Brandon Keiji
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-18infra: add multipackage support (#34)Brandon Keiji
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-18Web fetch tool (#31)Allen Hutchison
* Adding a web fetch tool.
2025-04-18Finish manually fixing linter errors for tools dir (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-18Remove extra args from config (#27)Jaana Dogan
We don't have a use case for them yet.
2025-04-18Introduce a config module to manage configuration (#22)Jaana Dogan
* Introduce a config module to manage configuration * Remove public modifier
2025-04-18Rename invalidParams to validateToolParams (#12)Jaana Dogan
Methods should be verbs. Fixes #4.
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-18Style improvements to ls tool (#14)Jaana Dogan
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-18Refactor: Update API key missing message with link (#23)Brandon Keiji
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-17Revert camelCasing for schemasTaylor Mullen
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-17fix: Suppress crash from unhandled 429 stream error via global handlerAllen Hutchison
Introduces a process.on('unhandledRejection') handler in src/gemini.ts as a workaround for an issue where 429 ClientErrors originating from the @google/genai library's sendMessageStream during iteration can cause an unhandled rejection, even when caught within local try/catch blocks in the application code (e.g., in processGeminiStream). The handler specifically identifies this known 429 ClientError based on its type and message content. If matched, it logs a warning indicating the known issue is being suppressed and prevents process.exit(1). Any other genuinely unhandled promise rejections will still be logged as critical errors and will terminate the application, maintaining default behavior for unexpected issues. This workaround mitigates a suspected library-internal problem related to error propagation during asynchronous stream iteration.
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__