| Age | Commit message (Collapse) | Author |
|
- 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
|
|
- 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.
|
|
and fix missing license headers while we're here) (#62)
|
|
|
|
|
|
* Wire through passthrough commands
* Add default passthrough commands
* Clean up config passing to useGeminiStream
|
|
* Adds debug mode config flag.
* Wire through debug lines
* Add debug mode logging example
* Run format
* Run format again
|
|
scripts/build_container.sh, then start with scripts/start_container.sh. Exit with ^C for now. (#61)
|
|
- 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
|
|
* 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.
|
|
|
|
|
|
Up and down arrows traverse the command history.
|
|
|
|
|
|
|
|
Also fix the bug where the API key is used accidentally as the model name.
|
|
|
|
* Bump the character limit to web fetch.
* Piped Input Hook. First step in bringing in STDIN piping.
* Fix linting errors.
* Remove incorrect comment.
|
|
|
|
- Also updated ci.yml to ensure that linting failures will break the build.
Fully fixes https://b.corp.google.com/issues/411384603
|
|
|
|
- This has the entirety of the changes.
Part of https://b.corp.google.com/issues/411720532
|
|
|
|
- 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
|
|
* Add a warning about the flickering in iTerm.
* Move the iterm warning out of App.tsx.
|
|
|
|
|
|
* 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.
|
|
* Adding a web fetch tool.
|
|
- 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
|
|
We don't have a use case for them yet.
|
|
* Introduce a config module to manage configuration
* Remove public modifier
|
|
Methods should be verbs. Fixes #4.
|
|
- 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
|
|
|
|
development changes that haven't been captured in the recent build of the Gemini CLI."
This reverts commit 1bfc62dcc2c10e962d4a67009027b7187e690d03.
|
|
This reverts commit 3829ac635307a77a1af0141c2db7f4135c74fcf6.
|
|
always at the end."
This reverts commit 97db77997fd6369031d2f1cf750051999fb0b5b5.
|
|
|
|
end.
|
|
|
|
development changes that haven't been captured in the recent build of the Gemini CLI.
|
|
- This is the result of runing `npm lint -- -fix`
|
|
|
|
- Also updated README.md accordingly.
Part of https://b.corp.google.com/issues/411384603
|
|
- Without this we'd get a TS1261 about the name "tool" only differeing from "Tool" (the class) by case.
|
|
|
|
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
|
|
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.
|