Commit Graph

81 Commits

Author SHA1 Message Date
Olcan
2b1ed088f2 make sandbox attachable, document in README (#80) 2025-04-21 09:17:17 -07:00
Olcan
7b9d29fb57 added sandbox section to readme (#79) 2025-04-21 08:31:36 -07:00
Taylor Mullen
c282e8b67e Fix Gemini Code's (GC) smarts.
- 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-21 11:07:09 -04:00
Brandon Keiji
5bc764805a feat: add custom eslint rule for cross-package imports (#77) 2025-04-21 08:02:11 -07:00
Olcan
3e39148cc8 seamless sandboxing (just set GEMINI_CODE_SANDBOX=true in .env) (#76) 2025-04-21 07:50:18 -07:00
Taylor Mullen
ad918926a6 Revert debug undo. 2025-04-20 22:28:39 -04:00
Taylor Mullen
60761ae2c4 Update README to reflect current state of the world.
- We now have CI/CD
- We have linting support (so added a section)
- Fixed `npm run debug` to allow debugging again.
2025-04-20 22:25:20 -04:00
Olcan
10de10040b fix passing of flags through start scripts (#73) 2025-04-20 19:19:42 -07:00
Taylor Mullen
764ff72f99 Fix read-file from exploding with path not found error.
- 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.
2025-04-20 22:13:55 -04:00
Olcan
80745fe1cc fix function calling for gemini 2.5 series (#65) 2025-04-20 19:05:27 -07:00
Tyler
77cca7b92e add linter for checking license headers (and eslint --fix target to match, and fix missing license headers while we're here) (#62) 2025-04-20 17:16:25 -07:00
Olcan
d384673d8b drop /dist suffix no longer needed (#71) 2025-04-20 14:55:36 -07:00
Olcan
cc5193e034 start and debug scripts (will enable seamless container use later), strict error handling in bash scripts (#63)
#61
2025-04-20 14:50:12 -07:00
Olcan
596620d68c use /sandbox/<proj_name> instead of /project as workdir in container (#64) 2025-04-20 14:49:02 -07:00
Juliette Love
ef6aec032c Make model-generated code copyable (#70) 2025-04-20 21:48:30 +01:00
Juliette Love
e150d7d6b0 Add terminal clear (#69) 2025-04-20 21:13:32 +01:00
Brandon Keiji
45570f22fb fix: remove 'dist' suffix from start_container.sh command (#67) 2025-04-20 13:07:54 -07:00
Juliette Love
59fe8cb42f Adds shell command allowlist (#68)
* Wire through passthrough commands

* Add default passthrough commands

* Clean up config passing to useGeminiStream
2025-04-20 21:06:22 +01:00
Brandon Keiji
700d59b8fb refactor: clean up build output (#53)
* refactor: clean up build output

* refactor: add index.ts to package roots
2025-04-20 12:33:39 -07:00
Juliette Love
7084cf0148 Simple debug mode for CLI side (#66)
* Adds debug mode config flag.

* Wire through debug lines

* Add debug mode logging example

* Run format

* Run format again
2025-04-20 20:20:40 +01:00
Olcan
cd8036f7bb Minimal container setup. Install docker (or podman), build container with scripts/build_container.sh, then start with scripts/start_container.sh. Exit with ^C for now. (#61) 2025-04-20 08:22:17 -07:00
Taylor Mullen
002cbd7868 Enable npm run debug from root. 2025-04-19 17:59:17 -04:00
Taylor Mullen
dbe94ad43c Give Gemini Code a face lift.
- 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
2025-04-19 17:10:06 -04:00
Evan Senter
236949431b Starting to modularize into separate cli / server packages. (#55)
* 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.
2025-04-19 19:45:42 +01:00
Evan Senter
862d1ae839 Adding some simple tests. (#54) 2025-04-19 18:07:24 +01:00
Allen Hutchison
0c5148a4ec Fix the double warning for iterm. (#51) 2025-04-19 07:02:12 -07:00
Allen Hutchison
561be68125 Quick fix gitignore (#49)
* Command line flags got broke. Now to run with flags run:
npm run start -- -m model-id -d data/dir

* Add *.tsbuildinfo to git ignore.
2025-04-19 07:01:54 -07:00
Evan Senter
aaa0541da5 Adding in a history buffer (#38)
Up and down arrows traverse the command history.
2025-04-19 14:31:59 +01:00
jlove29
9cf6b18a28 fix format 2025-04-19 11:08:50 +01:00
jlove29
eb11a36f65 Add direct execution of shell commands 2025-04-19 11:07:39 +01:00
Jaana Dogan
84ed1a51a6 Take the turn management out of GeminiClient (#42) 2025-04-18 23:11:33 -07:00
Jaana Dogan
232e72c8d0 Show error when GEMINI_API_KEY is not set (#52)
Also fix the bug where the API key is used accidentally as the model name.
2025-04-18 19:26:16 -07:00
Tyler
c26606d4a3 Add apache2 SPDX headers to all source files (#48) 2025-04-18 17:44:24 -07:00
Allen Hutchison
d276fee80c All the pipes (#47)
* Bump the character limit to web fetch.

* Piped Input Hook. First step in bringing in STDIN piping.

* Fix linting errors.

* Remove incorrect comment.
2025-04-18 17:12:14 -07:00
Allen Hutchison
14334c2eb3 Command line flags got broke. Now to run with flags run: (#46)
npm run start -- -m model-id -d data/dir
2025-04-18 16:41:51 -07:00
Olcan
fdf5a12a3d minor lint fix (#45) 2025-04-18 16:38:01 -07:00
Brandon Keiji
70576b0bd4 fix: point server 'main' to dist folder (#44) 2025-04-18 16:29:49 -07:00
Brandon Keiji
3db0e78311 fix: temporarily comment out .npmrc (#43) 2025-04-18 16:18:44 -07:00
Taylor Mullen
045bd60945 Fix remaining tslint errors (YAY).
- Also updated ci.yml to ensure that linting failures will break the build.

Fully fixes https://b.corp.google.com/issues/411384603
2025-04-18 19:14:36 -04:00
Brandon Keiji
43d1607735 fix: add --build flag to tsc commands (#40) 2025-04-18 16:14:20 -07:00
Taylor Mullen
a054fdde31 Run npm run format
- This has the entirety of the changes.

Part of https://b.corp.google.com/issues/411720532
2025-04-18 18:10:57 -04:00
Taylor Mullen
e99e2ecd8f Make CI fail if there are unformatted changes.
Fixes https://b.corp.google.com/issues/411720532
2025-04-18 18:10:57 -04:00
Brandon Keiji
dee6386ed1 fix: add clean command to individual packages (#36) 2025-04-18 14:57:20 -07:00
Taylor Mullen
cf114179c5 Manually fix hooks and utils linting errors (partial)
- 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-18 17:51:16 -04:00
Allen Hutchison
637863fde2 Iterm refactor (#33)
* Add a warning about the flickering in iTerm.

* Move the iterm warning out of App.tsx.
2025-04-18 14:39:05 -07:00
Brandon Keiji
d3cd31ba9b infra: add multipackage support (#34) 2025-04-18 14:37:02 -07:00
Allen Hutchison
184748cbf9 Add a warning about the flickering in iTerm. (#32) 2025-04-18 14:09:06 -07:00
Evan Senter
eede263ea1 Warn if npm run start is out of date. (#20)
* 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-18 21:55:02 +01:00
Allen Hutchison
dc954cf388 Web fetch tool (#31)
* Adding a web fetch tool.
2025-04-18 13:20:39 -07:00
Brandon Keiji
6a9c930820 feat: initial configs for npm publishing (#30)
* feat: initial configs for npm publishing

* fix: workspace reference

* fix: include LICENSE in npm run build
2025-04-18 12:46:42 -07:00