Commit graph

273 commits

Author SHA1 Message Date
cornmander
1baa74ebbf
Update build command to set GEMINI_SANDBOX var. (#7159)
Bypassing flaky test.
2025-08-26 20:11:39 -04:00
Adam Weidman
bfef867ba7
Add a2a-server package to gemini-cli (#6597) 2025-08-26 20:49:25 +00:00
Jacob Richman
df79433bec
Downgrade version of ripgrep to the version from 7 months ago without a node 22 dependency (#7132) 2025-08-26 18:58:19 +00:00
yoshi-taka
0324dc2eb2
chore: unused deps (#7109)
Co-authored-by: cornmander <shikhman@google.com>
2025-08-26 15:20:56 +00:00
yoshi-taka
28912589d0
unused deps (#4732) 2025-08-25 22:17:48 +00:00
christine betts
0bd496bd51
[extensions] Add extension management install command (#6703) 2025-08-25 17:02:10 +00:00
Pascal Birchler
49cce8a15d
chore(test): install and configure vitest eslint plugin (#3228)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-08-25 14:21:47 +00:00
fuyou
ef46d64ae5
Fix(grep): memory overflow in grep search and enhance test coverage (#5911)
Co-authored-by: Jacob Richman <jacob314@gmail.com>
2025-08-22 06:10:45 +00:00
Gal Zahavi
f1575f6d8d
feat(core): refactor shell execution to use node-pty (#6491)
Co-authored-by: Jacob Richman <jacob314@gmail.com>
2025-08-19 23:03:51 +00:00
Gal Zahavi
1a2906a8ad
Revert #6088 (#6328) 2025-08-15 17:27:33 +00:00
Gal Zahavi
980091cbc2
feat(core): refactor shell execution to use node-pty (#6088) 2025-08-14 20:40:12 +00:00
matt korwel
3e004048cf
chore(release): v0.1.21 (#6207)
Co-authored-by: gemini-cli-robot <gemini-cli-robot@google.com>
2025-08-14 06:14:25 +00:00
Tommaso Sciortino
9d023be1d1
Upgrade integration tests to use Vitest (#6021) 2025-08-12 22:57:27 +00:00
Richie Foreman
f34012034c
chore(vscode): Add Build & Launch CLI option to vscode project (#6027) 2025-08-12 18:53:11 +00:00
Shreya Keshive
4ecfb478b0
chore(release): v0.1.19 (#6069)
Co-authored-by: gemini-cli-robot <gemini-cli-robot@google.com>
2025-08-12 18:37:49 +00:00
Richie Foreman
7cc6b8c270
chore(usage telemetry): Freshen up Clearcut logging (#6013)
Co-authored-by: christine betts <chrstn@uw.edu>
Co-authored-by: Jacob Richman <jacob314@gmail.com>
Co-authored-by: matt korwel <matt.korwel@gmail.com>
2025-08-12 18:31:59 +00:00
Jacob Richman
804c181ac4
chore(integration-tests): refactor to typescript (#5645) 2025-08-12 16:19:09 +00:00
cornmander
110e00178b
Add --experimental-cli to speed up prettier formatting. (#5999)
Co-authored-by: Seth Troisi <sethtroisi@google.com>
Co-authored-by: matt korwel <matt.korwel@gmail.com>
2025-08-11 19:09:12 +00:00
N. Taylor Mullen
c184ec3224
chore(release): v0.1.18 (#5864) 2025-08-08 17:26:43 -07:00
Gal Zahavi
86eaa03f8a
feat(telemetry): Prevent memory leak in ClearcutLogger (#5734) 2025-08-08 01:53:39 +00:00
Lee James
1fb680bacc
bug(tests): fix test errors (#5678)
Co-authored-by: matt korwel <matt.korwel@gmail.com>
2025-08-06 19:26:46 +00:00
N. Taylor Mullen
c7a1de4983
chore(release): v0.1.17 (#5561) 2025-08-04 21:37:32 -07:00
N. Taylor Mullen
70478b92a9
chore(release): v0.1.16 (#5478) 2025-08-03 13:38:03 -07:00
Niladri Das
9a6422f331
fix: CLAUDE.md compatibility for GEMINI.md '@' file import behavior (#2978)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Allen Hutchison <adh@google.com>
2025-07-31 16:36:50 +00:00
N. Taylor Mullen
fd434626c5
chore(release): v0.1.15 (#5163) 2025-07-29 22:03:54 -07:00
christine betts
e05173d9cc
Move vscode extension build into its own command (#4799) 2025-07-24 18:40:50 +00:00
Abhi
9daead63dd
(feat): Initial Version of Custom Commands (#4572) 2025-07-22 04:34:55 +00:00
N. Taylor Mullen
fe00686c58
chore(release): v0.1.13 (#4515) 2025-07-19 13:40:55 -07:00
N. Taylor Mullen
8d9dc44b71
Revert "Update to yargs v18 (#3759)" (#4252) 2025-07-15 12:36:54 -07:00
Pascal Birchler
2862ae7344
Update to yargs v18 (#3759) 2025-07-15 06:09:12 +00:00
N. Taylor Mullen
b018e2d3ad
Fix docker release yaml to use correct commands. (#4025) 2025-07-12 23:46:49 -07:00
N. Taylor Mullen
8cf7f530e1
chore(release): v0.1.12 (#4023) 2025-07-12 23:09:54 -07:00
N. Taylor Mullen
6ebe97c704
chore(release): v0.1.11 (#3939) 2025-07-12 00:33:17 +00:00
matt korwel
75a128e7ee
chore(release): v0.1.10 (#3749)
Co-authored-by: Gaurav <39389231+gsquared94@users.noreply.github.com>
Co-authored-by: Aryan Sawant <156219699+aryanjsawant@users.noreply.github.com>
Co-authored-by: neo.alienson <neo@01man.com>
2025-07-10 16:55:22 +00:00
N. Taylor Mullen
d094026b3b
fix(deps): revert yargs bump and fix npx regression (#3610) 2025-07-08 23:44:56 -07:00
dependabot[bot]
b12149be7c
chore(deps): bump mime-types and @types/mime-types (#3582)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-09 05:44:40 +00:00
dependabot[bot]
f6cd65190f
chore(deps): bump yargs from 17.7.2 to 18.0.0 (#3590)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-09 05:40:56 +00:00
matt korwel
a4097ae6f9
Release and Packaging: Clean up (#3489) 2025-07-07 23:36:51 +00:00
matt korwel
20825e4114
Release misc (#3418) 2025-07-07 03:16:42 +00:00
BigUncle
b564d4a088
fix(core): Sanitize tool parameters to fix 400 API errors (#3300) 2025-07-05 21:58:51 +00:00
matt korwel
a7256f630c
Relase: Clean up and condensing (#3321) 2025-07-05 20:58:59 +00:00
matt korwel
47dc16d243
feat: Update minimum Node.js version to 20 (#3277) 2025-07-05 14:55:15 +00:00
matt korwel
e90e0015ea
Signing tags (#3254) 2025-07-04 22:04:05 +00:00
matt korwel
9ff3592e01
Mk nightly relase tag formatting (#3206) 2025-07-04 16:30:29 +00:00
matt korwel
d43ea268b0
Releasing: Utilizing Github Actions and Tagging for release. (#2852)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-07-04 03:57:01 +00:00
Brandon Keiji
34935d6558
chore: bump version to 0.1.9 (#2906) 2025-07-01 23:30:04 +00:00
Brandon Keiji
e8d5dec380
chore: bump to 0.1.8 (#2308) 2025-06-28 00:08:16 +00:00
Xi Chen
d35e7d3eb1
Fix a circular dependency (#2246)
Co-authored-by: Scott Densmore <scottdensmore@mac.com>
2025-06-27 20:59:47 +00:00
Brandon Keiji
8d1d40cc7a
chore: bump to 0.1.6 (#2285) 2025-06-27 20:57:07 +00:00
Brandon Keiji
bf873a1d85
feat: add prepublishOnly checks (#2052) 2025-06-26 23:49:43 +00:00
Brandon Keiji
d9892ada7f
fix: add repository field to package.jsons (#2032) 2025-06-26 22:36:34 +00:00
Jennifer Davis
4d4b95a41d
fix: add engines check to ensure older Node.js versions don't fail at… (#1752) 2025-06-26 04:09:40 +00:00
Brandon Keiji
01ff27709d
chore: bump to 0.1.5 (#1731) 2025-06-26 02:48:16 +00:00
Brandon Keiji
a8763abfb7
feat: add release trigger configuration (#1697) 2025-06-26 01:54:58 +00:00
matt korwel
6991ba1387
Version 0 1 1 (#1426) 2025-06-25 13:47:27 +00:00
Brandon Keiji
f6c36f75e3
fix: prepublish changes to package names (#1420) 2025-06-25 12:41:11 +00:00
matt korwel
9a093e4b51
CI: Linting Fix (#1413)
Co-authored-by: Scott Densmore <scottdensmore@mac.com>
2025-06-25 04:18:51 +00:00
Jerop Kipruto
58572a6eaa
Use concurrently to run start script with GCP telemetry (#1329)
## TLDR

Introduces the `concurrently` package to simplify the dev startup process with GCP telemetry enabled.

## Dive Deeper

Previously, developers had to run the telemetry script and the main application start script in separate terminals. This change updates the `start:gcp` script to use `concurrently`, allowing both processes to be launched and managed with a single command. This improves the developer experience and reduces the chance of forgetting to start one of the required processes. 

## Reviewer Test Plan
Set the required environment variable:

```shell
export OTLP_GOOGLE_CLOUD_PROJECT=<your-project-id>
```

Run the following command:

```shell
npm run start:gcp
```

#750 

cc @teeler
2025-06-23 22:01:22 +00:00
N. Taylor Mullen
3c656cfbc6
feat: Only show ctrl-s when idle (#1299) 2025-06-22 15:57:53 +00:00
matt korwel
04518b52c0
Auth First Run (#1207)
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-06-19 16:52:22 -07:00
Brandon Keiji
10a83a6395
refactor: remove docker tagging step from sandbox publishing (#1223) 2025-06-19 12:19:39 -07:00
matt korwel
df938d6ee8
Preflight and integration npx (#1096) 2025-06-16 15:27:29 +00:00
Jerop Kipruto
7f06ad40c5
Add a command for starting Gemini CLI with GCP telemetry (#1079)
This command enables starting the application with GCP telemetry:

```shell
npm run start:gcp
```
2025-06-15 21:28:29 -04:00
Jerop Kipruto
53753f0455
Add telemetry command and refactor telemetry settings (#1060)
#750 

### Telemetry Settings
Refactors telemetry configuration to use a nested `telemetry` object in `settings.json`, for example:

```json
{
  "telemetry": {
    "enabled": true,
    "target": "gcp"
    "log-prompts": "true"
  },
  "sandbox": false
}
```

The above includes
- Centralized telemetry settings under a `telemetry` object in `settings.json`.
- CLI flags for the `gemini` command to override all telemetry sub-settings:
    - `--telemetry` / `--no-telemetry`
    - `--telemetry-target <local|gcp>`
    - `--telemetry-otlp-endpoint <URL>`
    - `--telemetry-log-prompts` / `--no-telemetry-log-prompts`
- Updates `packages/cli/src/config/config.ts` and `packages/core/src/config/config.ts` to read from the new settings structure and respect the new CLI flags.
- Modifies `scripts/handle-telemetry.js`, `scripts/local_telemetry.js`, and `scripts/telemetry_utils.js` to align with the new settings structure.
- Updates `docs/core/telemetry.md` to reflect the new settings structure, CLI flags, and order of precedence.
- Renames `logUserPromptsEnabled` to `logPrompts` for brevity.

### `npm run telemetry`

Add a new `npm run telemetry` command that uses `scripts/telemetry.js`, automates the entire process of setting up a local and GCP telemetry pipelines, including configuring the necessary settings in the `.gemini/settings.json` workspace file and installing required binaries (e.g. `otelcol-contrib`).

---
```shell
$ npm run telemetry -- --target=gcp

> gemini-cli@0.1.0 telemetry
> node scripts/telemetry.js --target=gcp

⚙️  Using command-line target: gcp
🚀 Running telemetry script for target: gcp.
 Starting Local Telemetry Exporter for Google Cloud 
⚙️  Enabled telemetry in workspace settings.
🔧 Set telemetry OTLP endpoint to http://localhost:4317.
🎯 Set telemetry target to gcp.
 Workspace settings updated.
 Using Google Cloud Project ID: foo-bar

🔑 Please ensure you are authenticated with Google Cloud:
  - Run `gcloud auth application-default login` OR ensure `GOOGLE_APPLICATION_CREDENTIALS` environment variable points to a valid service account key.
  - The account needs "Cloud Trace Agent", "Monitoring Metric Writer", and "Logs Writer" roles.
 otelcol-contrib already exists at /Users/jerop/github/gemini-cli/.gemini/otel/bin/otelcol-contrib
🧹 Cleaning up old processes and logs...
 Deleted old GCP collector log.
📄 Wrote OTEL collector config to /Users/jerop/github/gemini-cli/.gemini/otel/collector-gcp.yaml
🚀 Starting OTEL collector for GCP... Logs: /Users/jerop/github/gemini-cli/.gemini/otel/collector-gcp.log
 Waiting for OTEL collector to start (PID: 17013)...
 OTEL collector started successfully on port 4317.

 Local OTEL collector for GCP is running.

🚀 To send telemetry, run the Gemini CLI in a separate terminal window.

📄 Collector logs are being written to: /Users/jerop/github/gemini-cli/.gemini/otel/collector-gcp.log

📊 View your telemetry data in Google Cloud Console:
   - Logs: https://console.cloud.google.com/logs/query;query=logName%3D%22projects%2Ffoo-bar%2Flogs%2Fgemini_cli%22?project=foo-bar
   - Metrics: https://console.cloud.google.com/monitoring/metrics-explorer?project=foo-bar
   - Traces: https://console.cloud.google.com/traces/list?project=foo-bar

Press Ctrl+C to exit.
^C
👋 Shutting down...
⚙️  Disabled telemetry in workspace settings.
🔧 Cleared telemetry OTLP endpoint.
🎯 Cleared telemetry target.
 Workspace settings updated.
🛑 Stopping otelcol-contrib (PID: 17013)...
 otelcol-contrib stopped.
```
2025-06-15 00:47:32 -04:00
dependabot[bot]
9072a4e5ee
chore(deps-dev): bump esbuild from 0.23.1 to 0.25.0 (#872)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-12 06:21:50 +00:00
matt korwel
3b943c1582
Windows: Refactor Shell Scripts to Node.js for Cross-Platform Compatibility (#784) 2025-06-09 12:19:42 -07:00
matt korwel
37edbd8c18
Rollforward AST changes to unblock Sandboxing (#863) 2025-06-08 19:07:25 -07:00
Olcan
7e73f57556
use -s flag (to skip npm install + build) for build_sandbox.sh when running via npm run build:all (#858) 2025-06-08 16:36:52 -07:00
matt korwel
584286cfd9
fix(deps): externalize tree-sitter (#840)
Submitting without approval to fix broken deployment on main. But also, we should lock this down.
2025-06-08 02:05:55 -07:00
matt korwel
f1a4e5d4d3
Creating Node AST Tool. (#756) 2025-06-07 12:07:58 -07:00
Eddie Santos
422c763a55
Add support for .geminiignore file (#757) 2025-06-05 10:15:27 -07:00
anj-s
78b2a28fb6
Checks for diff changes before displaying the code snippet (#751) 2025-06-05 06:48:03 -07:00
Allen Hutchison
53bf778497
feat: allow custom filename for context files (#654)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-05-31 12:49:28 -07:00
Scott Densmore
98699a0ab5
Refactor: Align build scripts with core package rename (#641) 2025-05-30 20:16:35 -07:00
Tommaso Sciortino
21fba832d1
Rename server->core (#638) 2025-05-30 18:25:47 -07:00
Brandon Keiji
cf82b6e127
fix(sandbox): prepare package.json before building sandbox image (#626) 2025-05-30 19:57:46 +00:00
Brandon Keiji
31a7affb74
feat(sandbox): use package config to dictate sandbox image name (#624) 2025-05-30 19:28:46 +00:00
Olcan
094b9dc474
use npx json instead of jq (#617) 2025-05-30 01:12:36 -07:00
Brandon Keiji
2582c20e2a
fix: publish @gemini-code/server (#605) 2025-05-29 23:55:34 +00:00
Seth Troisi
2db5d83023 fix name in package.json 2025-05-29 15:56:05 -07:00
Brandon Keiji
dc94a03f39
feat: publish root Dockerfile to our image registry (#599) 2025-05-29 14:01:44 -07:00
Brandon Keiji
fd6f6b02ea
feat: add git branch name to footer (#589) 2025-05-28 16:30:05 -07:00
DeWitt Clinton
27a773d5b2
Display git commit info in the /about section. (#567)
This change detects the most recent git commit short hash and writes it to the `GIT_COMMIT_INFO` constant in `packages/cli/src/generated/git-commit.sh`, optionally appending the string "(local modifications)" if additional local changes after that commit are detected.

If set, this string is displayed in the `/about` dialog as well as passed into the `/bug` template.

Example:

```
> /about

╭───────────────────────────────────────────────────────────────────────────╮
│                                                                           │
│ About Gemini CLI                                                          │
│                                                                           │
│ CLI Version               development                                     │
│ Git Commit                43370ab (local modifications)                   │
│ Model                     gemini-2.5-pro-preview-05-06                    │
│ Sandbox                   sandbox-exec (minimal)                          │
│ OS                        darwin v23.11.0                                 │
│                                                                           │
╰───────────────────────────────────────────────────────────────────────────╯
```

Additionally, this change updates `.gitignore` to ignore the generated files, `scripts/clean.sh` to remove them, and adds a `npm run generate` stage for this and any other generators we need to write.
2025-05-28 00:04:26 -07:00
Allen Hutchison
4e3c539f5e
feat: Publish test coverage summaries to PRs (#513) 2025-05-27 12:45:28 -07:00
Taylor Mullen
b3f52e215a feat: Replace SQLite with JSON logging for macOS sandbox compatibility
- Removes the sqlite3 dependency and refactors the logging mechanism to use a JSON file (logs.json) instead of a database.
- This change is a temporary workaround to address issues with macOS sandboxing that were caused by the SQLite native module.
- Storing all logs in a single JSON file may introduce scalability concerns in the future.

Fixes https://github.com/google-gemini/gemini-cli/issues/522
2025-05-26 16:13:37 -07:00
Taylor Mullen
4a6833ef49 feat: Enable npx execution on tagged versions
- Modify root package.json to allow publishing
- Update "files" to include only essential bundled assets

This change makes it possible to use npx with tagged versions of the
gemini-cli package (e.g., npx https://github.com/google-gemini/gemini-cli@early-access).
It removes "private: true" and refines the "files" array to ensure
that only the necessary bundled assets are included when the package is
fetched by npx, optimizing download size and ensuring correct execution.
2025-05-23 15:55:29 -07:00
Taylor Mullen
8590efd229 feat: Enable npx execution directly from GitHub URL
This commit modifies the packaging setup to allow the CLI to be
executed directly from its GitHub URL using `npx`, for example:
`npx https://github.com/google-gemini/gemini-cli` (once merged to main).
This is achieved without requiring the bundle to be checked into
the repository.

Key changes and motivations:

- Modify `scripts.prepare` to run `npm run bundle`:
  Ensures the CLI bundle is generated automatically when `npx`
  installs the package from a git URL. This replaces previous
  approaches (e.g., using `prepack`) which were not consistently
  triggered in the `npx` environment.

- Update `scripts.bundle` to use a direct path for `esbuild`
  and externalize `sqlite3`:
  Using `node_modules/.bin/esbuild` provides a more reliable way
  to invoke the bundler. Externalizing `sqlite3` is crucial for
  correctly handling its native addon, preventing runtime errors.

- Add `bin`, `files`, and root `sqlite3` dependency:
  - The `bin` field defines the `gemini` command.
  - The `files` array ensures the generated `bundle/` directory is
    recognized by npm.
  - `sqlite3` is added as a root dependency to ensure it's
    installed by `npx` when `gemini-code` is fetched, allowing the
    externalized module to be resolved.

These changes collectively ensure that the necessary build artifacts
are created on-the-fly during `npx` installation, providing a
seamless execution experience directly from the GitHub repository URL.
2025-05-23 13:55:06 -07:00
Brandon Keiji
01971741e0
feat: add emphasis to tool confirmations (#502) 2025-05-23 05:28:31 +00:00
Allen Hutchison
efee7c6cce
Feat: Add test coverage scripts and ignore reports (#477) 2025-05-21 17:03:22 -07:00
Jacob Richman
716f7875a2
Support Images and PDFs (#447) 2025-05-20 13:02:41 -07:00
Taylor Mullen
968e09f0b5 fix: Ensure filename is available for diff rendering in write-file
This commit resolves a bug where the `write-file` operation could fail to render content due to a missing filename.

The fix involves:
- Ensuring `fileName` is consistently passed to `DiffRenderer.tsx` through `ToolConfirmationMessage.tsx`, `ToolMessage.tsx`, and `useGeminiStream.ts`.
- Modifying `edit.ts` and `write-file.ts` to include `fileName` in the `FileDiff` object.
- Expanding the `FileDiff` interface in `tools.ts` to include `fileName`.

Additionally, this commit enhances the diff rendering by:
- Adding syntax highlighting based on file extension in `DiffRenderer.tsx`.
- Adding more language mappings to `getLanguageFromExtension` in `DiffRenderer.tsx`.
- Added lots of tests for all the above.

Fixes https://b.corp.google.com/issues/418125982
2025-05-16 10:13:13 -07:00
N. Taylor Mullen
7d818b46bc
feat: Enable CI test reporting and artifact management (#367) 2025-05-15 22:59:53 -07:00
Taylor Mullen
41b82ce796 Add bundling support.
- This can now be invoked with `npm run bundle`, it creates a `bundle/` folder that has:
  - gemini.js
  - sandbox-macos-minimal.sb
  - sandbox-macos-strict.sb
  - shell.json
  - shell.md

- This doesn't include any sort of automation for auto bundling pieces. It's just the root capability which we can weave into other locations.

Fixes https://b.corp.google.com/issues/411432723
2025-05-08 23:36:42 -07:00
Brandon Keiji
358281f0fd
fix: use react-jsx for typecheck (#280) 2025-05-07 12:36:04 -07:00
Brandon Keiji
49b5db29b3
feat: add build:sandbox and build:all npm scripts (#274) 2025-05-07 07:46:47 -07:00
Brandon Keiji
739654bb25
fix(sandbox): consolidate dev and prod sandbox (#273) 2025-05-07 07:23:13 -07:00
Brandon Keiji
d051c0fd0f
feat: prototype publish sandbox script with npm package (#182) 2025-04-25 17:30:50 -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
Brandon Keiji
c24dc0ec77
feat: add react dev tools (#143) 2025-04-23 18:16:15 -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
79710375e3
fix: point npmrc to dogfood artifact registry (#108) 2025-04-21 23:11:51 -07:00
Olcan
2571e07175
enable debugging through sandbox (#88) 2025-04-21 12:39:58 -07:00
Brandon Keiji
e351baf10f
feat: add custom eslint rule for cross-package imports (#77) 2025-04-21 08:02:11 -07:00
Olcan
39bdedab9c
seamless sandboxing (just set GEMINI_CODE_SANDBOX=true in .env) (#76) 2025-04-21 07:50:18 -07:00
Taylor Mullen
bfb064024e Revert debug undo. 2025-04-20 22:28:39 -04:00
Taylor Mullen
ce0f2dd868 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
Tyler
d55168f51f
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
ef909f6335
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
Brandon Keiji
f480ef4bbc
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
Taylor Mullen
044ccc6dd7 Enable npm run debug from root. 2025-04-19 17:59:17 -04:00
Evan Senter
0c9e1ef61b
Adding some simple tests. (#54) 2025-04-19 18:07:24 +01:00
Allen Hutchison
3adc0dfbaf
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
Brandon Keiji
52683dafc3
infra: add multipackage support (#34) 2025-04-18 14:37:02 -07:00
Evan Senter
482aeaff10
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
Brandon Keiji
56d4a35d05
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
Evan Senter
f6a4a5c44d Revert "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."
This reverts commit 1bfc62dcc2.
2025-04-18 18:36:33 +01:00
Evan Senter
dbf4c3a37c Revert "Including a test harness for it, and making sure the cursor is always at the end."
This reverts commit 97db77997f.
2025-04-18 18:36:33 +01:00
Allen Hutchison
7878f54043
Add basic non blocking CI workflow. (#21) 2025-04-18 10:20:39 -07:00
Evan Senter
97db77997f Including a test harness for it, and making sure the cursor is always at the end. 2025-04-18 18:16:52 +01:00
Evan Senter
1bfc62dcc2 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. 2025-04-18 18:16:52 +01:00
Allen Hutchison
00d29aa162 Change the run command to properly pass the command line arguments to gemini.ts 2025-04-17 16:55:46 -07:00
Taylor Mullen
7928c1727f Configure linter + prettier.
- This is based on existing expectations for TS code in Google-esc repos.
- First part of the change (we have not run any linter or formatting commands). After this changeset goes in I'll do a mass changeset push.

Fixes https://b.corp.google.com/issues/411384603
2025-04-17 15:29:34 -07:00
Taylor Mullen
add233c504 Initial commit of Gemini Code CLI
This commit introduces the initial codebase for the Gemini Code CLI, a command-line interface designed to facilitate interaction with the Gemini API for software engineering tasks.

The code was migrated from a previous git repository as a single squashed commit.

Core Features & Components:

*   **Gemini Integration:** Leverages the `@google/genai` SDK to interact with the Gemini models, supporting chat history, streaming responses, and function calling (tools).
*   **Terminal UI:** Built with Ink (React for CLIs) providing an interactive chat interface within the terminal, including input prompts, message display, loading indicators, and tool interaction elements.
*   **Tooling Framework:** Implements a robust tool system allowing Gemini to interact with the local environment. Includes tools for:
    *   File system listing (`ls`)
    *   File reading (`read-file`)
    *   Content searching (`grep`)
    *   File globbing (`glob`)
    *   File editing (`edit`)
    *   File writing (`write-file`)
    *   Executing bash commands (`terminal`)
*   **State Management:** Handles the streaming state of Gemini responses and manages the conversation history.
*   **Configuration:** Parses command-line arguments (`yargs`) and loads environment variables (`dotenv`) for setup.
*   **Project Structure:** Organized into `core`, `ui`, `tools`, `config`, and `utils` directories using TypeScript. Includes basic build (`tsc`) and start scripts.

This initial version establishes the foundation for a powerful CLI tool enabling developers to use Gemini for coding assistance directly in their terminal environment.

---
Created by yours truly: __Gemini Code__
2025-04-17 13:19:55 -04:00