Commit Graph

121 Commits

Author SHA1 Message Date
Olcan 4cb7386ec6
allow command -v to fail (#212) 2025-04-29 10:21:09 -07:00
Olcan 28518aee0a
use exec instead of spawn for command -v to go through shell and let it interpret command as a shell built-in instead of looking for a command binary on system (note setting shell:true for spawn could also work) (#211) 2025-04-29 09:02:08 -07:00
Olcan 825cecc089
SANDBOX_SET_UID_GID option for systems where this is necessary (should be only rootful docker on linux w/o userns-remap configured) (#210)
* SANDBOX_SET_UID_GID option for systems where this is necessary (should be only rootful docker on linux w/o userns-remap configured)

* Merge remote-tracking branch 'origin/main' into sandbox_uid_gid
2025-04-29 08:43:24 -07:00
Allen Hutchison e0de69f384
First four independent files for @ commands. (#205) 2025-04-29 08:29:09 -07:00
Brandon Keiji 051ab58c50
refactor: cleanup references to sandbox prototype (#208) 2025-04-29 02:11:07 +00:00
Olcan 0d849bf58e
enable servers in sandbox to listen on localhost (127.0.0.1) instead of 0.0.0.0, ensuring servers can be container/host-agnostic (#207)
* enable servers in sandbox to listen on localhost (127.0.0.1) instead of 0.0.0.0, ensuring servers can be container/host-agnostic

* Merge remote-tracking branch 'origin/main' into sandbox_localhost_works
2025-04-28 18:40:24 -07:00
Brandon Keiji 3073c67861
fix: set .npmrc in HOME dir before publishing (#206) 2025-04-28 18:16:42 -07:00
Olcan cd1ddcb4f1
SANDBOX_PORTS env var (#204) 2025-04-28 15:44:17 -07:00
Olcan 57ceadb7d8
switch to shell tool, deprecating terminal (#203)
* switch to shell tool, deprecating terminal

* Merge remote-tracking branch 'origin/main' into deprecate_terminal
2025-04-28 15:05:36 -07:00
Brandon Keiji 30b04295d2
fix: remove --dry-run from cli prepublish script (#202) 2025-04-28 13:29:21 -07:00
Brandon Keiji 7ad6556623
feat: publish docker image alongside npm package (#197) 2025-04-28 13:25:19 -07:00
Olcan 304d1f2712
env flags SANDBOX_{MOUNTS,ENV}, improved debugging through sandbox that should now work in all scenarios (#201)
* env flags SANDBOX_{MOUNTS,ENV}, improved debugging through sandbox that should now work in all scenarios

* Merge remote-tracking branch 'origin/main' into sandbox_flags_improved_debugging
2025-04-28 12:44:34 -07:00
Seth Troisi dfa46df474
Refactor hardcoded slash commands (#179) 2025-04-28 12:38:07 -07:00
Brandon Keiji ebc0df6cbe
fix: point 'npm run start' to index.js (#199) 2025-04-28 10:44:07 -07:00
Olcan 491f8b28b4
ability to (re-)build sandbox outside GC repo root, useful for dev iterations (#196) 2025-04-28 09:07:37 -07:00
Olcan 491a9da80b
rename dev image with -dev suffix (#195) 2025-04-28 08:52:18 -07:00
Taylor Mullen a9dc2772dd feat(cli): Improve new file diff rendering with syntax highlighting
- Enhance the  component to provide better readability for newly created files.
- Instead of displaying a standard line-by-line diff for new files, extract the added content and render it with syntax highlighting based on the file extension.
- Refactor the existing diff rendering logic into a separate  function.
- Add a helper function  to map common file extensions to language names for syntax highlighting.

Fixes: https://b.corp.google.com/issues/414279447
Signed-off-by: Gemini, your friendly neighborhood code agent.
2025-04-27 23:25:08 -07:00
Taylor Mullen c09292efd1 Cleanup outdated packages in server/cli.
- Found that pre-backend front end split we had a number of packages that we hadn't revisisted. Went through and cleaned them up (i.e. cli needing genai).
2025-04-27 13:41:21 -07:00
Taylor Mullen 00840f75a1 Allow tool groups + following content to be updateable.
- I found that when there are fast transactions that update our tool group history at times promoting a tool group into the static container can result in bleeding. As a temporary fix for this (not a react Guru) I'm increasing the # of items to be 2 as updateable if a tool group is close to the end.
2025-04-27 13:27:06 -07:00
Olcan 7828e813a8
hop into sandbox (#186) 2025-04-26 21:27:36 -07:00
Taylor Mullen 688b2d0da7 Follow up fixes from flickering PR.
- 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-26 19:32:56 -07:00
Taylor Mullen 5be89befef feat: Fix flickering in iTerm + scrolling + performance issues.
- 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-26 16:08:05 -07:00
Brandon Keiji d051c0fd0f
feat: prototype publish sandbox script with npm package (#182) 2025-04-25 17:30:50 -07:00
Seth Troisi a5ba681f8d Add /exit and /quit commands 2025-04-25 14:29:00 -07:00
Seth Troisi ed12a2e133 Pulled manual commands to seperate function 2025-04-25 14:29:00 -07:00
Olcan 34f100d6ff
drop todo about qualified writes, turns out others don't do it either so nbd (#177) 2025-04-25 14:16:24 -07:00
Olcan 7087c0508e
more consistent confirmations, TODO to improve write confirmations, drop "description" from execution confirmation, add confirmation to new (still dummy) shell tool (#176) 2025-04-25 14:05:58 -07:00
Brandon Keiji 1a64268bb0
fix: remove extra initError (#173) 2025-04-25 13:15:05 -07:00
Olcan b65442a88c
more compact cli version in footer (#168) 2025-04-25 15:34:26 +00:00
Olcan 08463e6114
enable json imports (#165)
* enable json imports

* Merge remote-tracking branch 'origin/main' into enable_json_imports
2025-04-24 18:30:19 -07:00
Olcan cbba8007b2
shell bones (#160)
* shell bones

* Merge remote-tracking branch 'origin/main' into shell_bones

* add line break

* another line break

* drop the log to avoid breaking terminals

* rename tool to be consistent with terminal

* fix build
2025-04-24 18:03:33 -07:00
Allen Hutchison 8cf3e1611e
Adding a full_context command line argument. (#158)
* Adding a full_context command line argument.

* Update packages/cli/src/config/config.ts

Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>

* lint fix.

---------

Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-04-24 16:08:29 -07:00
Jacob Richman 4dc98b3c7e
Switch Ansi theme to use regular colors to improve readability. (#154) 2025-04-24 14:19:35 -07:00
Brandon Keiji d394a9f39f
feat: add flag to customize package version during pre-release staging (#155) 2025-04-24 13:02:49 -07:00
Jacob Richman 19ed2ed630
Add an ansi theme. (#152)
Add the gradient used by the ascii art logo to theme.
2025-04-24 11:56:23 -07:00
Jacob Richman 5790a5d7cf
Add a theme preview and update the theme when highlight changes. (#151) 2025-04-24 11:36:34 -07:00
Olcan d8c0587346
better sandbox check (#150) 2025-04-24 10:32:30 -07:00
Olcan aed42a726a
remove target_dir flag (#149) 2025-04-24 10:21:10 -07:00
Olcan 30bdef9bf5
in sandboxed run scripts, allow .env to be an in any ancestor directory, same as in findEnvFile; also prep for sanboxing with global command (#147) 2025-04-24 08:58:47 -07:00
jacob314 cf89c030d0 Make ui/colors refelect the current theme. 2025-04-23 18:08:22 -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
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
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
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