Download packages/cli/src/acp/commands/init.ts from SaylorTwift/gemini-cli: direct link, hf CLI and curl.
- Browser
- Download file 1.88 kB
-
https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/packages/cli/src/acp/commands/init.ts
- Command line
-
hf download hf://SaylorTwift/gemini-cli/packages/cli/src/acp/commands/init.ts
-
curl -L -o init.ts https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/packages/cli/src/acp/commands/init.ts
1.88 kB
| /** | |
| * @license | |
| * Copyright 2026 Google LLC | |
| * SPDX-License-Identifier: Apache-2.0 | |
| */ | |
| import * as fs from 'node:fs'; | |
| import * as path from 'node:path'; | |
| import { performInit } from '@google/gemini-cli-core'; | |
| import type { | |
| Command, | |
| CommandContext, | |
| CommandExecutionResponse, | |
| } from './types.js'; | |
| export class InitCommand implements Command { | |
| name = 'init'; | |
| description = 'Analyzes the project and creates a tailored GEMINI.md file'; | |
| requiresWorkspace = true; | |
| async execute( | |
| context: CommandContext, | |
| _args: string[] = [], | |
| ): Promise<CommandExecutionResponse> { | |
| const targetDir = context.agentContext.config.getTargetDir(); | |
| if (!targetDir) { | |
| throw new Error('Command requires a workspace.'); | |
| } | |
| const geminiMdPath = path.join(targetDir, 'GEMINI.md'); | |
| const result = performInit(fs.existsSync(geminiMdPath)); | |
| switch (result.type) { | |
| case 'message': | |
| return { | |
| name: this.name, | |
| data: result, | |
| }; | |
| case 'submit_prompt': | |
| fs.writeFileSync(geminiMdPath, '', 'utf8'); | |
| if (typeof result.content !== 'string') { | |
| throw new Error('Init command content must be a string.'); | |
| } | |
| // Inform the user since we can't trigger the UI-based interactive agent loop here directly. | |
| // We output the prompt text they can use to re-trigger the generation manually, | |
| // or just seed the GEMINI.md file as we've done above. | |
| return { | |
| name: this.name, | |
| data: { | |
| type: 'message', | |
| messageType: 'info', | |
| content: `A template GEMINI.md has been created at ${geminiMdPath}.\n\nTo populate it with project context, you can run the following prompt in a new chat:\n\n${result.content}`, | |
| }, | |
| }; | |
| default: | |
| throw new Error('Unknown result type from performInit'); | |
| } | |
| } | |
| } | |