Commit Graph

139 Commits

Author SHA1 Message Date
Seth Troisi
bf6e809abf Pass GEMINI_API_KEY env variable to sandbox 2025-04-23 18:22:58 -07:00
Brandon Keiji
31045e6086 fix: revert pointing npm start to .bin (#144) 2025-04-24 01:21:07 +00:00
Brandon Keiji
c24dc0ec77 feat: add react dev tools (#143) 2025-04-23 18:16:15 -07:00
jacob314
cf89c030d0 Make ui/colors refelect the current theme. 2025-04-23 18:08:22 -07:00
Seth Troisi
105c20146c Add generic container run command for npm start 2025-04-23 18:07:29 -07:00
Seth Troisi
09fabe3021 Remove --workspace npm run debug command in README 2025-04-23 17:57:01 -07:00
Allen Hutchison
cf92ffab34 Add concatenation tool (#130)
* Adding a tool inspired by files-to-prompt that will recursivly read through all the files in a directory (guarded by targetDir) and concatenate those files for the model. Ignores common build artifacts and non-text files.

* Migraded glob logic to fast-glob. Buffed the tool description to give more guidance to the model. Incorporated reveiw feedback.

* lint and error checking.
2025-04-23 17:25:47 -07:00
Seth Troisi
d771dcbdb9 Support GEMINI_CODE_SANDBOX=0/false as no SANDBOXing 2025-04-23 16:33:19 -07:00
Taylor Mullen
095163bbed Refactor: Remove GEMINI.md memory and refactor system prompt
- 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-23 15:57:40 -07:00
Brandon Keiji
94c04955c8 fix: use process.env.CLI_VERSION to avoid conflicts with NODE_ENV (#139) 2025-04-23 15:49:18 -07:00
Seth Troisi
72d0b73598 Add docker equivilant for --authfile 2025-04-23 15:46:51 -07:00
Brandon Keiji
4c951ea435 feat: set dogfood artifact registry as the default publishing endpoint (#135) 2025-04-23 15:11:10 -07:00
Brandon Keiji
7f3798e180 feat: add CLI version number to footer (#134) 2025-04-23 15:00:40 -07:00
Chris Perry
60bee4b137 Updating the system prompt to allow for more complex app creation 2025-04-23 14:39:12 -07:00
Seth Troisi
acc655d35f Default TMPDIR to /tmp/ for sandbox (#133) 2025-04-23 14:36:15 -07:00
Olcan
f90dcf663e remove dead code (#131) 2025-04-23 13:33:07 -07:00
Taylor Mullen
4c2a5045a0 Add theming support.
- Added a number of common themes to our support matrix:
 - AtomOneDark
 - Dracula
 - VS
 - GitHub
 - GoogleCode
 - XCode
 - ... Admittedly these all were randomly picked, we could probably curate these better...
- Added a new `ThemeDialog` UI that can be accessed via `/theme`. It shows your currentlyt available themes and allows you to change them freely. It does **not**:
 - Save the theme between sessions
 - Allow you to hit escape
 - Show a preview prior to selection.
- These themes are from reacts highlight js library.

Fixes https://b.corp.google.com/issues/412797985
2025-04-22 22:08:13 -07:00
Taylor Mullen
e163e02499 Colorize code blocks.
- 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-22 18:57:27 -07:00
Taylor Mullen
ffe368afed Refactor tool confirmation radio buttons to own component.
- I plan to utilize these radio buttons for theme selection in the future. Refactoring them into their own component.

Part of https://b.corp.google.com/issues/412797985
2025-04-22 18:33:36 -07:00
Allen Hutchison
9bc9c6e6c5 Question flag (#125) 2025-04-22 18:32:03 -07:00
Brandon Keiji
ef7dcdb49e feat: add alias to the cli bin directive (#126) 2025-04-23 01:04:34 +00:00
Jaana Dogan
05c568126f Add a tip about creating an alias during development (#122)
Identical to #118, it's lost while we were recovering the main branch.
2025-04-22 16:17:37 -07:00
Allen Hutchison
8cfd915960 Fix the case where passthrough tools weren't using the correct CWD from -d 2025-04-22 15:19:40 -07:00
Olcan
93458727e8 use full url for base image (found by seth troisi to save 5s from docker build time) (#124) 2025-04-22 14:41:25 -07:00
Olcan
a792c4a159 fix .env check (#123) 2025-04-22 14:31:02 -07:00
Olcan
5e34d9e276 Refactor_sandbox_command (#121) 2025-04-22 13:51:50 -07:00
Jaana Dogan
60fc979332 fix hanging tools
https://github.com/google-gemini/gemini-code/pull/117/
2025-04-22 13:40:36 -07:00
Jaana Dogan
8e0fb9ee2f Initiate the GeminiClient with a config
Also address the open readability improvement comments from #104.
2025-04-22 11:20:19 -07:00
Taylor Mullen
3db2a796ec Fix Tool -> Text -> Confirmation bu that results in disordered history
- We weren't reseting the tool group inbetween content which meant we'd start a new group on the first tool call, and if regular textual content followed it'd effectively close that group; however, we weren't updating our state to really close that group. Meaning, any subsequent tool calls or confirmations would get grouped with the original grouping.
  - When we see textual content from Gemini we now reset the tool call group.

Fixes https://b.corp.google.com/issues/412605330
2025-04-22 10:33:36 -04:00
Taylor Mullen
5c5c470671 Update confirmation dialog UI
- This chaneset aligns our confirmation dialog with: https://screenshot.googleplex.com/9yZCX636LzpMrgc
- Primary changes include having custom indicators for confirmation options that align with our coloring / scheme

Fixes https://b.corp.google.com/issues/412607128
2025-04-22 10:33:06 -04:00
Taylor Mullen
80b04dc505 Update UI of tool messages
- Bring tool messages in line with original envisioned UI of: https://screenshot.googleplex.com/9yZCX636LzpMrgc
  - In particular this represents more descriptive names. FWIW we already had this tech we just weren't passing around information correctly (`displayName` vs. `name`)
 - Add gray to our list of color pallete's and removed Background (unused)
 - Re-enabled representing canceled messages
 - Migrated back towards a cleaner tool message design of status symbols & border colors vs. overly verbose text.
 - Removed border from confirmation diffs.
Fixes https://b.corp.google.com/issues/412598909
2025-04-22 08:05:30 -04:00
Olcan
1ed9743ad4 quiet sandbox build (#111) 2025-04-21 23:26:53 -07:00
Olcan
a7fba66832 env var to set default model, display model on lower right (#110) 2025-04-21 23:25:10 -07:00
Brandon Keiji
79710375e3 fix: point npmrc to dogfood artifact registry (#108) 2025-04-21 23:11:51 -07:00
Brandon Keiji
98fa8d2b51 fix: support node globals in scripts (#109) 2025-04-22 06:10:25 +00:00
Benjamin Bastian
1eeadcd85c Update sandbox script to not require term variables (#105)
If `nounset` is active, it'll require that TERM and COLORTERM is set in the
environment. It's not necessary that these variables are set and it should be
passed to the sandbox. This change just causes the TERM and COLORTERM to be set
to an empty string if they are unset.
2025-04-21 22:59:49 -07:00
Olcan
f9c4014e28 fix source mapping when debugging in sandbox (#107) 2025-04-21 19:04:00 -07:00
Allen Hutchison
1a167b2ea5 Piped input (#104)
* New method for handling stdin. Bypass Ink, and output to stdout. Makes the CLI work like a typical Unix application when called with piped input.

* Fixing a few post-merge errors.

* Format code.

* Clean up lint and format errors.
2025-04-21 17:41:44 -07:00
Jaana Dogan
cacf0cc0ef Simplify GeminiClient (#101)
Doing some more clean-up:
* Remove confusing continue/break
* Handle empty result
* Rename the file just client.js
2025-04-21 17:15:20 -07:00
Jaana Dogan
dd81be1b9b Add build status to README (#99) 2025-04-21 15:47:53 -07:00
Jaana Dogan
843d7c1fe3 Fix the broken build (#98) 2025-04-21 15:44:20 -07:00
Olcan
1340c7a792 fix sandbox build broken at #94 (#97) 2025-04-21 14:55:17 -07:00
Olcan
319f211211 improved (full color) sandbox, mount /tmp to display build warnings, display sandbox name in footer (#96) 2025-04-21 14:43:43 -07:00
Seth Troisi
7663ccf0bd Fix Docker Build permission issue (#95)
During docker build `npm install` running as node was exiting with 243 (EACCES) from trying to install the tgz files because `npm pack` created the files with 400 permissions on my system.
2025-04-21 14:35:03 -07:00
Brandon Keiji
3f048bce0f fix: remove circular dependency in background terminal analyzer (#94) 2025-04-21 14:27:11 -07:00
Brandon Keiji
dec9726083 fix: use relative imports within the same package (#93) 2025-04-21 14:09:14 -07:00
Olcan
09973956ae sandbox.sh utility to easily log into or execute commands in a sandbox, set hostname and SANDBOX env var to container name (#92) 2025-04-21 13:52:51 -07:00
Jaana Dogan
ddaa21c750 Remove dead methods from ToolRegistry (#91)
* getToolSchemas is deprecated.
* listAvailableTools is now getAllTools.
2025-04-21 13:29:36 -07:00
Jaana Dogan
d4614619b4 Remove dead comments (#90) 2025-04-21 13:06:46 -07:00
Jaana Dogan
baf39042c8 Remove duplicate CLI tools module, remove the global tool registry (#89) 2025-04-21 12:59:31 -07:00