summaryrefslogtreecommitdiff
path: root/packages/server/src/core
AgeCommit message (Collapse)Author
2025-05-19indicate system prompt override on bottom right; require GEMINI_SYSTEM_MD to ↵Olcan
make it more explicit; allow custom paths for read/write (#427)
2025-05-19trim system prompt (#426)Olcan
2025-05-17ability to write system prompt to file (#414)Olcan
2025-05-17ability to override core system prompt (via .gemini/system.md) and specify ↵Olcan
core tools via coreTools setting (e.g. coreTools:["ls", "GrepTool", ...]) ; added tests, but did not update docs for now (#413)
2025-05-16feat: Implement CLI and model memory management (#371)Allen Hutchison
Co-authored-by: N. Taylor Mullen <[email protected]>
2025-05-16feat: Add support for Vertex AI and Vertex express mode (#380)sasha-gitg
2025-05-14refactor: break submitQuery into smaller functions (#350)Brandon Keiji
2025-05-14This commit introduces the hierarchical memory feature, allowing GEMI… (#327)Allen Hutchison
2025-05-13mention `git diff --staged` for partial commits (#336)Olcan
2025-05-13use git diff HEAD instead of git diff && git diff --staged (#333)Olcan
2025-05-12Encourage utilization of `git diff --staged` for commit message writing.Taylor Mullen
- This enables GC to base commit message changes on actual file content.
2025-05-12feat: Enhance `replace` tool reliability with multi-stage edit correctionTaylor Mullen
This commit significantly improves the `replace` tool's robustness by introducing a multi-stage correction mechanism. This directly addresses challenges with LLM-generated tool inputs, particularly the over-escaping of strings sometimes observed with Gemini models, and other minor discrepancies that previously led to failed edits. The correction process is as follows: 1. **Targeted Unescaping:** The system first applies a specialized unescaping function to the `old_string` and `new_string` to counteract common LLM-induced escaping patterns. 2. **LLM-Powered Discrepancy Resolution:** If a unique match for the `old_string` is still not found, the system leverages a Gemini model (`gemini-2.5-flash-preview-04-17`) to: * Identify the most probable intended `old_string` in the file by intelligently correcting minor formatting or escaping differences. * Adjust the `new_string` to correspond with any corrections made to the `old_string`, maintaining the original edit's intent. This enhancement makes the `replace` tool more resilient and effective, leading to a higher success rate for automated code modifications. The `expected_replacements` parameter has been removed as the tool now focuses on finding a single, unique, and correctable match. The tool's description and error reporting have been updated to reflect these new capabilities. Fixes https://b.corp.google.com/issues/416933027
2025-05-12ensure no 'undefined' in system prompt (#322)Olcan
2025-05-12system prompt for working with git (#321)Olcan
2025-05-12When an error occurs stop processing.Taylor Mullen
2025-05-11feat: Add User-Agent to API requestsTaylor Mullen
This change introduces a User-Agent header to all API requests made by the Gemini CLI. The User-Agent string includes the CLI version, Node.js version, operating system, and architecture. This will help in tracking usage and identifying potential issues. Fixes https://b.corp.google.com/issues/416353675 Signed-off-by: Gemini
2025-05-11feat: Integrate centralized error reporting for API interactionsTaylor Mullen
Implements robust error handling for Gemini API calls, integrating with the centralized error reporting system. - API errors are now caught and reported to dedicated log files, providing detailed diagnostics without cluttering the user interface. - A concise error message is surfaced to the user in the UI, indicating an API issue. - Ensures any pending UI updates are processed before an API error is displayed. This change improves our ability to diagnose API-related problems by capturing rich error context centrally, while maintaining a clean user experience. Signed-off-by: Gemini <[email protected]>
2025-05-10Log server information on error.Taylor Mullen
- The goal of this is to enable us to better diagnose server issues when they occur. - Added tests because why not.
2025-05-10Don't prematurely end convo w/ Gemini.Taylor Mullen
- There seems to be a root model bug where the model will preemptively bail on conversations without trying harder. Typically the stops are VERY obvious and bug-looking where you need to prmopt the model to "continue". - This PR attempts to fix the above by running a 2.0-flash request (don't need somethign more powerful) at the end of every full interaction to see who should speak (user or model). - Add tests for nextSpeakerChecker Fixes https://b.corp.google.com/issues/416826051
2025-05-10Enable tools to cancel active execution.Taylor Mullen
- Plumbed abort signals through to tools - Updated the shell tool to properly cancel active requests by killing the entire child process tree of the underlying shell process and then report that the shell itself was canceled. Fixes https://b.corp.google.com/issues/416829935
2025-05-09Make cancel not explode.Taylor Mullen
- We were console.erroring, throwing and early aborting. Instead we now treat cancels like a normal user message and show an indicator in the UI Fixes https://b.corp.google.com/issues/416515841
2025-05-09sandbox/seatbelt-aware system prompt, support for custom seatbelt profiles ↵Olcan
under project settings (#304)
2025-05-07Continue to work through 429/500s.Taylor Mullen
- The root of this issue was actually a genai SDK bug that was fixed here: https://critique.corp.google.com/cl/753255997 - Upgrade to latest genai SDK for latest bug fixes (including the above) - Removed specific 429 handling for uncaught rejections. Fixes https://b.corp.google.com/issues/413760164
2025-05-06fix: use flat config for react eslint plugin (#265)Brandon Keiji
2025-05-05Add vibe coding instructions for 0->game.Taylor Mullen
- Prior to this GC would attempt to utilize React components as game assets (instead of using canvas) + would fail to deal with placeholder assets effectively. Part of https://b.corp.google.com/issues/413718497
2025-05-02Cleanup low value comments. (#248)Jacob Richman
2025-05-02Use parameter properties where possible. (#242)Jacob Richman
2025-04-28switch to shell tool, deprecating terminal (#203)Olcan
* switch to shell tool, deprecating terminal * Merge remote-tracking branch 'origin/main' into deprecate_terminal
2025-04-27Refactor: Update core system prompt with new application workflow and ↵Taylor Mullen
improved structure - Refine agent persona from 'assistant' to 'agent'. - Restructure prompt into distinct 'Software Engineering Tasks' and 'New Application' workflows. - Add detailed steps and tool usage guidance for creating new applications. - Improve clarity and formatting of prompt instructions. Part of https://b.corp.google.com/issues/413718497 Signed-off-by: Gemini, your friendly neighborhood code agent.
2025-04-26Prevent console.warn's for tool calls.Taylor Mullen
- Added helper for extracting text content from responses without warning. See fixed issue for more detail: https://b.corp.google.com/issues/414005146
2025-04-24Adding a full_context command line argument. (#158)Allen Hutchison
* Adding a full_context command line argument. * Update packages/cli/src/config/config.ts Co-authored-by: N. Taylor Mullen <[email protected]> * lint fix. --------- Co-authored-by: N. Taylor Mullen <[email protected]>
2025-04-24general rules should apply to whole project (#159)Olcan
* general rules should apply to whole project * Merge remote-tracking branch 'origin/main' into fix_eslint * lint fixes under server package
2025-04-23Refactor: Remove GEMINI.md memory and refactor system promptTaylor Mullen
- Updates CONTRIBUTING.md and Tips.tsx to remove references to GEMINI.md and the /init command, and renumbers tips. - Fixes a typo in Tips.tsx ("information.s" -> "information."). - Refactors the core system prompt in prompts.ts from a constant string to a function . - Updates client.ts to call the function. - Updates tool name references within the system prompt to use template literals for dynamic naming. Fixes bug: https://buganizer.corp.google.com/issues/413061073 --- Generated by yours truly __Gemini Code__
2025-04-23Updating the system prompt to allow for more complex app creationChris Perry
2025-04-22fix hanging toolsJaana Dogan
https://github.com/google-gemini/gemini-code/pull/117/
2025-04-22Initiate the GeminiClient with a configJaana Dogan
Also address the open readability improvement comments from #104.
2025-04-21Simplify GeminiClient (#101)Jaana Dogan
Doing some more clean-up: * Remove confusing continue/break * Handle empty result * Rename the file just client.js
2025-04-21Remove redundant else branches (#86)Jaana Dogan
Else branches are an anti pattern especially if you can easily return from the previous branch. Over time, else branches cause deep nesting and make code unreadable and unmaintainable. Remove elses where possible.
2025-04-21Fix confirmations.Taylor Mullen
- This fixes what it means to get confirmations in GC. Prior to this they had just been accidentally unwired as part of all of the refactorings to turns + to server/core. - The key piece of this is that we wrap the onConfirm in the gemini stream hook in order to resubmit function responses. This isn't 100% ideal but gets the job done for now. - Fixed history not updating properly with confirmations. Fixes https://b.corp.google.com/issues/412323656
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-20fix function calling for gemini 2.5 series (#65)Olcan
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-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.