diff options
| author | Jerop Kipruto <[email protected]> | 2025-06-15 16:24:53 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-06-15 13:24:53 -0700 |
| commit | 714421c2da4f5d6b9c1c7060fdf5c47ba1c965ca (patch) | |
| tree | 488459669757dda99eda46b621a030ece38842dd /packages/core/src/utils/fileUtils.ts | |
| parent | 4421ef126fc6a2de89132aa35c261bf78cd481d2 (diff) | |
Add file operation telemetry (#1068)
Introduces telemetry for file create, read, and update operations.
This change adds the `gemini_cli.file.operation.count` metric, recorded by the `read-file`, `read-many-files`, and `write-file` tools.
The metric includes the following attributes:
- `operation` (string: `create`, `read`, `update`): The type of file operation.
- `lines` (optional, Int): Number of lines in the file.
- `mimetype` (optional, string): Mimetype of the file.
- `extension` (optional, string): File extension of the file.
Here is a stacked bar chart of file operations by extension (`js`, `ts`, `md`):

Here is a stacked bar chart of file operations by type (`create`, `read`, `update`):

#750
cc @allenhutchison as discussed
Diffstat (limited to 'packages/core/src/utils/fileUtils.ts')
| -rw-r--r-- | packages/core/src/utils/fileUtils.ts | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/packages/core/src/utils/fileUtils.ts b/packages/core/src/utils/fileUtils.ts index d726c053..cb4d333a 100644 --- a/packages/core/src/utils/fileUtils.ts +++ b/packages/core/src/utils/fileUtils.ts @@ -17,6 +17,16 @@ const MAX_LINE_LENGTH_TEXT_FILE = 2000; export const DEFAULT_ENCODING: BufferEncoding = 'utf-8'; /** + * Looks up the specific MIME type for a file path. + * @param filePath Path to the file. + * @returns The specific MIME type string (e.g., 'text/python', 'application/javascript') or undefined if not found or ambiguous. + */ +export function getSpecificMimeType(filePath: string): string | undefined { + const lookedUpMime = mime.lookup(filePath); + return typeof lookedUpMime === 'string' ? lookedUpMime : undefined; +} + +/** * Checks if a path is within a given root directory. * @param pathToCheck The absolute path to check. * @param rootDirectory The absolute root directory. |
