mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-22 03:51:22 -07:00
48 lines
2.0 KiB
Markdown
48 lines
2.0 KiB
Markdown
# Gemini CLI Core (`@google/gemini-cli-core`)
|
|
|
|
Backend logic for Gemini CLI: API orchestration, prompt construction, tool
|
|
execution, and agent management.
|
|
|
|
## Architecture
|
|
|
|
- `src/agent/` & `src/agents/`: Agent lifecycle and sub-agent management.
|
|
- `src/availability/`: Model availability checks.
|
|
- `src/billing/`: Billing and usage tracking.
|
|
- `src/code_assist/`: Code assistance features.
|
|
- `src/commands/`: Built-in CLI command implementations.
|
|
- `src/config/`: Configuration management.
|
|
- `src/confirmation-bus/`: User confirmation flow for tool execution.
|
|
- `src/core/`: Core types and shared logic.
|
|
- `src/fallback/`: Fallback and retry strategies.
|
|
- `src/hooks/`: Hook system for extensibility.
|
|
- `src/ide/`: IDE integration interfaces.
|
|
- `src/mcp/`: MCP (Model Context Protocol) client and server integration.
|
|
- `src/output/`: Output formatting and rendering.
|
|
- `src/policy/`: Policy enforcement (e.g., tool confirmation policies).
|
|
- `src/prompts/`: System prompt construction and prompt snippets.
|
|
- `src/resources/`: Resource management.
|
|
- `src/routing/`: Model routing and selection logic.
|
|
- `src/safety/`: Safety filtering and guardrails.
|
|
- `src/scheduler/`: Task scheduling.
|
|
- `src/services/`: Shared service layer.
|
|
- `src/skills/`: Skill discovery and activation.
|
|
- `src/telemetry/`: Usage telemetry and logging.
|
|
- `src/tools/`: Built-in tool implementations (file system, shell, web, MCP).
|
|
- `src/utils/`: Shared utility functions.
|
|
- `src/voice/`: Voice input/output support.
|
|
|
|
## Coding Conventions
|
|
|
|
- **Legacy Snippets:** `src/prompts/snippets.legacy.ts` is a snapshot of an
|
|
older system prompt. Avoid changing the prompting verbiage to preserve its
|
|
historical behavior; however, structural changes to ensure compilation or
|
|
simplify the code are permitted.
|
|
- **Style:** Follow existing backend logic patterns. This package has no UI
|
|
dependencies — keep it framework-agnostic.
|
|
|
|
## Testing
|
|
|
|
- Run tests: `npm test -w @google/gemini-cli-core`
|
|
- Run a specific test:
|
|
`npm test -w @google/gemini-cli-core -- src/path/to/file.test.ts`
|