gitextract_ojj5tm71/ ├── .gemini/ │ └── skills/ │ └── code-reviewer/ │ └── SKILL.md ├── .github/ │ ├── dependabot.yml │ └── workflows/ │ ├── ci.yml │ ├── deploy-docs.yml │ ├── release.yml │ └── weekly-preview.yml ├── .gitignore ├── .prettierignore ├── .prettierrc.json ├── CONTRIBUTING.md ├── GEMINI.md ├── LICENSE ├── README.md ├── SECURITY.md ├── cloud_function/ │ ├── index.js │ └── package.json ├── commands/ │ ├── calendar/ │ │ ├── clear-schedule.toml │ │ └── get-schedule.toml │ ├── drive/ │ │ └── search.toml │ └── gmail/ │ └── search.toml ├── docs/ │ ├── .vitepress/ │ │ └── config.mts │ ├── GCP-RECREATION.md │ ├── development.md │ ├── feature-configuration.md │ ├── index.md │ ├── release.md │ └── release_notes.md ├── eslint.config.js ├── gemini-extension.json ├── jest.config.js ├── package.json ├── scripts/ │ ├── auth-utils.js │ ├── clean.js │ ├── list-deps.js │ ├── print-scopes.ts │ ├── release.js │ ├── set-version.js │ ├── setup-gcp.sh │ ├── start.js │ ├── tsconfig.json │ └── utils/ │ └── dependencies.js ├── skills/ │ ├── gmail/ │ │ └── SKILL.md │ ├── google-calendar/ │ │ └── SKILL.md │ ├── google-chat/ │ │ └── SKILL.md │ ├── google-docs/ │ │ └── SKILL.md │ ├── google-sheets/ │ │ └── SKILL.md │ └── google-slides/ │ └── SKILL.md ├── tsconfig.json └── workspace-server/ ├── .github/ │ └── workflows/ │ ├── ci.yml │ └── release.yml ├── WORKSPACE-Context.md ├── esbuild.auth-utils.js ├── esbuild.config.js ├── esbuild.headless-login.js ├── jest.config.js ├── package.json ├── src/ │ ├── __tests__/ │ │ ├── auth/ │ │ │ ├── AuthManager.test.ts │ │ │ └── token-storage/ │ │ │ ├── base-token-storage.test.ts │ │ │ ├── file-token-storage.test.ts │ │ │ ├── hybrid-token-storage.test.ts │ │ │ ├── keychain-token-storage.test.ts │ │ │ └── oauth-credential-storage.test.ts │ │ ├── features/ │ │ │ ├── feature-config.test.ts │ │ │ └── feature-resolver.test.ts │ │ ├── mocks/ │ │ │ └── wasm.js │ │ ├── services/ │ │ │ ├── CalendarService.test.ts │ │ │ ├── CalendarValidation.test.ts │ │ │ ├── ChatService.test.ts │ │ │ ├── DocsService.comments.test.ts │ │ │ ├── DocsService.test.ts │ │ │ ├── DriveService.test.ts │ │ │ ├── GmailService.test.ts │ │ │ ├── PeopleService.test.ts │ │ │ ├── SheetsService.test.ts │ │ │ ├── SlidesService.test.ts │ │ │ └── TimeService.test.ts │ │ ├── setup.ts │ │ ├── tool-normalization.test.ts │ │ └── utils/ │ │ ├── DriveQueryBuilder.test.ts │ │ ├── IdUtils.test.ts │ │ ├── MimeHelper.test.ts │ │ ├── config.test.ts │ │ ├── logger.test.ts │ │ ├── paths.test.ts │ │ ├── secure-browser-launcher.test.ts │ │ └── validation.test.ts │ ├── auth/ │ │ ├── AuthManager.ts │ │ ├── scopes.ts │ │ └── token-storage/ │ │ ├── base-token-storage.ts │ │ ├── file-token-storage.ts │ │ ├── hybrid-token-storage.ts │ │ ├── index.ts │ │ ├── keychain-token-storage.ts │ │ ├── oauth-credential-storage.ts │ │ └── types.ts │ ├── cli/ │ │ └── headless-login.ts │ ├── features/ │ │ ├── feature-config.ts │ │ ├── feature-resolver.ts │ │ └── index.ts │ ├── index.ts │ ├── services/ │ │ ├── CalendarService.ts │ │ ├── CalendarValidation.ts │ │ ├── ChatService.ts │ │ ├── DocsService.ts │ │ ├── DriveService.ts │ │ ├── GmailService.ts │ │ ├── PeopleService.ts │ │ ├── SheetsService.ts │ │ ├── SlidesService.ts │ │ └── TimeService.ts │ └── utils/ │ ├── DriveQueryBuilder.ts │ ├── GaxiosConfig.ts │ ├── IdUtils.ts │ ├── MimeHelper.ts │ ├── config.ts │ ├── constants.ts │ ├── logger.ts │ ├── open-wrapper.ts │ ├── paths.ts │ ├── secure-browser-launcher.ts │ ├── tool-normalization.ts │ └── validation.ts ├── tsconfig.json └── tsconfig.test.json