Rename G3 -> g3 in docs and comments
Standardize project name to lowercase 'g3' throughout documentation, comments, and configuration files. Environment variables (G3_*) are unchanged as they follow the uppercase convention.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# AGENTS.md - Machine Instructions for G3
|
||||
# AGENTS.md - Machine Instructions for g3
|
||||
|
||||
**Purpose**: Machine-specific instructions for AI agents working with this codebase.
|
||||
**For project overview, architecture, and usage**: See [README.md](README.md)
|
||||
|
||||
@@ -37,7 +37,7 @@ uuid = { version = "1.0", features = ["v4"] }
|
||||
name = "g3"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
authors = ["G3 Team"]
|
||||
authors = ["g3 Team"]
|
||||
description = "A general purpose AI agent that helps you complete tasks by writing code"
|
||||
license = "MIT"
|
||||
|
||||
|
||||
12
DESIGN.md
12
DESIGN.md
@@ -1,10 +1,10 @@
|
||||
# G3 - AI Coding Agent - Design Document
|
||||
# g3 - AI Coding Agent - Design Document
|
||||
|
||||
## Overview
|
||||
|
||||
G3 is a **modular, composable AI coding agent** built in Rust that helps you complete tasks by writing and executing code. It provides a flexible architecture for interacting with various Large Language Model (LLM) providers while offering powerful code generation, file manipulation, and task automation capabilities.
|
||||
g3 is a **modular, composable AI coding agent** built in Rust that helps you complete tasks by writing and executing code. It provides a flexible architecture for interacting with various Large Language Model (LLM) providers while offering powerful code generation, file manipulation, and task automation capabilities.
|
||||
|
||||
The agent follows a **tool-first philosophy**: instead of just providing advice, G3 actively uses tools to read files, write code, execute commands, and complete tasks autonomously.
|
||||
The agent follows a **tool-first philosophy**: instead of just providing advice, g3 actively uses tools to read files, write code, execute commands, and complete tasks autonomously.
|
||||
|
||||
## Core Principles
|
||||
|
||||
@@ -19,7 +19,7 @@ The agent follows a **tool-first philosophy**: instead of just providing advice,
|
||||
|
||||
## Project Structure
|
||||
|
||||
G3 is organized as a Rust workspace with the following crates:
|
||||
g3 is organized as a Rust workspace with the following crates:
|
||||
|
||||
```
|
||||
g3/
|
||||
@@ -217,7 +217,7 @@ g3/
|
||||
|
||||
### Context Window Management
|
||||
|
||||
G3 implements sophisticated context window management:
|
||||
g3 implements sophisticated context window management:
|
||||
|
||||
- **Automatic Monitoring**: Tracks token usage with percentage-based thresholds
|
||||
- **Smart Summarization**: Auto-triggers at 80% capacity to prevent context overflow
|
||||
@@ -389,7 +389,7 @@ g3 --retro --theme dracula
|
||||
- **Caching**: Strategic caching of expensive operations
|
||||
- **Profiling**: Regular performance profiling and optimization
|
||||
|
||||
This design document reflects the current state of G3 as a mature, production-ready AI coding agent with sophisticated architecture and comprehensive feature set.
|
||||
This design document reflects the current state of g3 as a mature, production-ready AI coding agent with sophisticated architecture and comprehensive feature set.
|
||||
|
||||
## Current Implementation Status
|
||||
|
||||
|
||||
22
README.md
22
README.md
@@ -1,10 +1,10 @@
|
||||
# G3 - AI Coding Agent
|
||||
# g3 - AI Coding Agent
|
||||
|
||||
G3 is a coding AI agent designed to help you complete tasks by writing code and executing commands. Built in Rust, it provides a flexible architecture for interacting with various Large Language Model (LLM) providers while offering powerful code generation and task automation capabilities.
|
||||
g3 is a coding AI agent designed to help you complete tasks by writing code and executing commands. Built in Rust, it provides a flexible architecture for interacting with various Large Language Model (LLM) providers while offering powerful code generation and task automation capabilities.
|
||||
|
||||
## Architecture Overview
|
||||
|
||||
G3 follows a modular architecture organized as a Rust workspace with multiple crates, each responsible for specific functionality:
|
||||
g3 follows a modular architecture organized as a Rust workspace with multiple crates, each responsible for specific functionality:
|
||||
|
||||
### Core Components
|
||||
|
||||
@@ -56,7 +56,7 @@ Command-line interface:
|
||||
|
||||
### Error Handling & Resilience
|
||||
|
||||
G3 includes robust error handling with automatic retry logic:
|
||||
g3 includes robust error handling with automatic retry logic:
|
||||
- **Recoverable Error Detection**: Automatically identifies recoverable errors (rate limits, network issues, server errors, timeouts)
|
||||
- **Exponential Backoff with Jitter**: Implements intelligent retry delays to avoid overwhelming services
|
||||
- **Detailed Error Logging**: Captures comprehensive error context including stack traces, request/response data, and session information
|
||||
@@ -65,7 +65,7 @@ G3 includes robust error handling with automatic retry logic:
|
||||
|
||||
### Tool Call Duplicate Detection
|
||||
|
||||
G3 includes intelligent duplicate detection to prevent the LLM from accidentally calling the same tool twice in a row:
|
||||
g3 includes intelligent duplicate detection to prevent the LLM from accidentally calling the same tool twice in a row:
|
||||
- **Sequential Duplicate Prevention**: Only immediately sequential identical tool calls are blocked
|
||||
- **Text Separation Allowed**: If there's any text between tool calls, they're not considered duplicates
|
||||
- **Session-Wide Reuse**: Tools can be called multiple times throughout a session - only back-to-back duplicates are prevented
|
||||
@@ -74,7 +74,7 @@ This catches cases where the LLM "stutters" and outputs the same tool call twice
|
||||
|
||||
### Timing Footer
|
||||
|
||||
After each response, G3 displays a timing footer showing elapsed time, time to first token, token usage (from the LLM, not estimated), and current context window usage percentage. The token and context info is displayed dimmed for a clean interface.
|
||||
After each response, g3 displays a timing footer showing elapsed time, time to first token, token usage (from the LLM, not estimated), and current context window usage percentage. The token and context info is displayed dimmed for a clean interface.
|
||||
|
||||
## Key Features
|
||||
|
||||
@@ -86,7 +86,7 @@ After each response, G3 displays a timing footer showing elapsed time, time to f
|
||||
- Dynamic token allocation for different providers (4k to 200k+ tokens)
|
||||
|
||||
### Interactive Control Commands
|
||||
G3's interactive CLI includes control commands for manual context management:
|
||||
g3's interactive CLI includes control commands for manual context management:
|
||||
- **`/compact`**: Manually trigger compaction to compact conversation history
|
||||
- **`/thinnify`**: Manually trigger context thinning to replace large tool results with file references
|
||||
- **`/skinnify`**: Manually trigger full context thinning (like `/thinnify` but processes the entire context window, not just the first third)
|
||||
@@ -134,7 +134,7 @@ These commands give you fine-grained control over context management, allowing y
|
||||
|
||||
## Use Cases
|
||||
|
||||
G3 is designed for:
|
||||
g3 is designed for:
|
||||
- Automated code generation and refactoring
|
||||
- File manipulation and project scaffolding
|
||||
- System administration tasks
|
||||
@@ -229,7 +229,7 @@ G3 uses a TOML configuration file for settings. The config file is automatically
|
||||
|
||||
### Retry Configuration
|
||||
|
||||
G3 includes configurable retry logic for handling recoverable errors (timeouts, rate limits, network issues, server errors):
|
||||
g3 includes configurable retry logic for handling recoverable errors (timeouts, rate limits, network issues, server errors):
|
||||
|
||||
```toml
|
||||
[agent]
|
||||
@@ -256,7 +256,7 @@ See `config.example.toml` for a complete configuration example.
|
||||
|
||||
## WebDriver Browser Automation
|
||||
|
||||
G3 includes WebDriver support for browser automation tasks. Safari is the default, with Chrome headless available as an alternative.
|
||||
g3 includes WebDriver support for browser automation tasks. Safari is the default, with Chrome headless available as an alternative.
|
||||
|
||||
**One-Time Setup** (macOS only):
|
||||
|
||||
@@ -305,7 +305,7 @@ chrome_binary = "/Users/yourname/.chrome-for-testing/chrome-mac-arm64/Google Chr
|
||||
|
||||
## Computer Control (Experimental)
|
||||
|
||||
G3 can interact with your computer's GUI for automation tasks:
|
||||
g3 can interact with your computer's GUI for automation tasks:
|
||||
|
||||
**Available Tools**: `mouse_click`, `type_text`, `find_element`, `take_screenshot`, `list_windows`
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# G3 Configuration Example - Coach/Player Mode
|
||||
# g3 Configuration Example - Coach/Player Mode
|
||||
#
|
||||
# This configuration demonstrates using different providers for coach and player
|
||||
# roles in autonomous mode. The coach reviews code while the player implements.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# G3 Configuration Example
|
||||
# g3 Configuration Example
|
||||
#
|
||||
# This file demonstrates the new provider configuration format.
|
||||
# Provider references use the format: "<provider_type>.<config_name>"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name = "studio"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
description = "Multi-agent workspace manager for G3"
|
||||
description = "Multi-agent workspace manager for g3"
|
||||
|
||||
[[bin]]
|
||||
name = "studio"
|
||||
|
||||
@@ -13,10 +13,10 @@ mod session;
|
||||
use git::GitWorktree;
|
||||
use session::{Session, SessionStatus};
|
||||
|
||||
/// Studio - Multi-agent workspace manager for G3
|
||||
/// Studio - Multi-agent workspace manager for g3
|
||||
#[derive(Parser)]
|
||||
#[command(name = "studio")]
|
||||
#[command(about = "Manage multiple G3 agent sessions using git worktrees")]
|
||||
#[command(about = "Manage multiple g3 agent sessions using git worktrees")]
|
||||
struct Cli {
|
||||
#[command(subcommand)]
|
||||
command: Commands,
|
||||
@@ -24,7 +24,7 @@ struct Cli {
|
||||
|
||||
#[derive(Subcommand)]
|
||||
enum Commands {
|
||||
/// Run a new G3 agent session (tails output until complete)
|
||||
/// Run a new g3 agent session (tails output until complete)
|
||||
Run {
|
||||
/// Agent name (e.g., carmack, torvalds)
|
||||
#[arg(long)]
|
||||
@@ -35,7 +35,7 @@ enum Commands {
|
||||
g3_args: Vec<String>,
|
||||
},
|
||||
|
||||
/// Execute a G3 agent session in detached mode (for future use)
|
||||
/// Execute a g3 agent session in detached mode (for future use)
|
||||
Exec {
|
||||
/// Agent name (e.g., carmack, torvalds)
|
||||
#[arg(long)]
|
||||
@@ -118,7 +118,7 @@ fn get_repo_root() -> Result<PathBuf> {
|
||||
Ok(PathBuf::from(path))
|
||||
}
|
||||
|
||||
/// Run a new G3 session (foreground, tails output)
|
||||
/// Run a new g3 session (foreground, tails output)
|
||||
fn cmd_run(agent: &str, g3_args: &[String]) -> Result<()> {
|
||||
let g3_binary = get_g3_binary_path()?;
|
||||
let repo_root = get_repo_root()?;
|
||||
@@ -200,7 +200,7 @@ fn cmd_run(agent: &str, g3_args: &[String]) -> Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Execute a G3 session in detached mode (placeholder for future)
|
||||
/// Execute a g3 session in detached mode (placeholder for future)
|
||||
fn cmd_exec(agent: &str, g3_args: &[String]) -> Result<()> {
|
||||
// For now, just print what would happen
|
||||
println!("exec command not yet implemented");
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# G3 Code Search Guide
|
||||
# g3 Code Search Guide
|
||||
|
||||
**Last updated**: January 2025
|
||||
**Source of truth**: `crates/g3-core/src/code_search/`, `crates/g3-core/src/tool_definitions.rs`
|
||||
|
||||
## Purpose
|
||||
|
||||
G3 includes a syntax-aware code search tool powered by tree-sitter. Unlike text-based search (grep), it understands code structure and finds actual functions, classes, methods, and other constructs—ignoring matches in comments and strings.
|
||||
g3 includes a syntax-aware code search tool powered by tree-sitter. Unlike text-based search (grep), it understands code structure and finds actual functions, classes, methods, and other constructs—ignoring matches in comments and strings.
|
||||
|
||||
## Why Use Code Search?
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# G3 Control Commands
|
||||
# g3 Control Commands
|
||||
|
||||
**Last updated**: January 2025
|
||||
**Source of truth**: `crates/g3-cli/src/lib.rs`
|
||||
|
||||
## Purpose
|
||||
|
||||
Control commands are special commands you can use during an interactive G3 session to manage context, refresh documentation, and view statistics. They start with `/` and are processed by the CLI, not sent to the LLM.
|
||||
Control commands are special commands you can use during an interactive g3 session to manage context, refresh documentation, and view statistics. They start with `/` and are processed by the CLI, not sent to the LLM.
|
||||
|
||||
## Available Commands
|
||||
|
||||
@@ -255,7 +255,7 @@ g3> /help
|
||||
|
||||
## Context Management Strategy
|
||||
|
||||
G3 automatically manages context, but manual intervention can help:
|
||||
g3 automatically manages context, but manual intervention can help:
|
||||
|
||||
### Proactive Management
|
||||
|
||||
@@ -283,7 +283,7 @@ When context gets high:
|
||||
|
||||
## Automatic Context Management
|
||||
|
||||
G3 performs automatic context management:
|
||||
g3 performs automatic context management:
|
||||
|
||||
| Threshold | Action |
|
||||
|-----------|--------|
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# G3 Flock Mode Guide
|
||||
# g3 Flock Mode Guide
|
||||
|
||||
**Last updated**: January 2025
|
||||
**Source of truth**: `crates/g3-ensembles/src/flock.rs`
|
||||
|
||||
## Purpose
|
||||
|
||||
Flock mode enables parallel multi-agent development by spawning multiple G3 agent instances that work on different parts of a project simultaneously. This is useful for large projects with modular architectures where independent components can be developed in parallel.
|
||||
Flock mode enables parallel multi-agent development by spawning multiple g3 agent instances that work on different parts of a project simultaneously. This is useful for large projects with modular architectures where independent components can be developed in parallel.
|
||||
|
||||
## Overview
|
||||
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
# G3 Architecture
|
||||
# g3 Architecture
|
||||
|
||||
**Last updated**: January 2025
|
||||
**Source of truth**: Crate structure in `crates/`, `Cargo.toml`, `DESIGN.md`
|
||||
|
||||
## Purpose
|
||||
|
||||
This document describes the internal architecture of G3, a modular AI coding agent built in Rust. It is intended for developers who want to understand, extend, or maintain the codebase.
|
||||
This document describes the internal architecture of g3, a modular AI coding agent built in Rust. It is intended for developers who want to understand, extend, or maintain the codebase.
|
||||
|
||||
## High-Level Overview
|
||||
|
||||
G3 follows a **tool-first philosophy**: instead of just providing advice, it actively uses tools to read files, write code, execute commands, and complete tasks autonomously.
|
||||
g3 follows a **tool-first philosophy**: instead of just providing advice, it actively uses tools to read files, write code, execute commands, and complete tasks autonomously.
|
||||
|
||||
```
|
||||
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
||||
@@ -58,7 +58,7 @@ G3 follows a **tool-first philosophy**: instead of just providing advice, it act
|
||||
|
||||
## Workspace Structure
|
||||
|
||||
G3 is organized as a Rust workspace with 9 crates:
|
||||
g3 is organized as a Rust workspace with 9 crates:
|
||||
|
||||
```
|
||||
g3/
|
||||
@@ -234,7 +234,7 @@ Flock mode enables parallel development by spawning multiple agent instances wor
|
||||
### studio (Multi-Agent Workspace Manager)
|
||||
|
||||
**Location**: `crates/studio/`
|
||||
**Purpose**: Manage multiple G3 agent sessions using git worktrees
|
||||
**Purpose**: Manage multiple g3 agent sessions using git worktrees
|
||||
|
||||
Key modules:
|
||||
- `main.rs` - CLI commands (run, exec, list, status, accept, discard)
|
||||
@@ -297,7 +297,7 @@ The `ContextWindow` struct manages conversation history with intelligent token t
|
||||
|
||||
## Error Handling
|
||||
|
||||
G3 implements comprehensive error handling:
|
||||
g3 implements comprehensive error handling:
|
||||
|
||||
1. **Error Classification**: Distinguishes recoverable vs non-recoverable errors
|
||||
2. **Automatic Retry**: Exponential backoff with jitter for:
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
# G3 Configuration Guide
|
||||
# g3 Configuration Guide
|
||||
|
||||
**Last updated**: January 2025
|
||||
**Source of truth**: `crates/g3-config/src/lib.rs`, `config.example.toml`
|
||||
|
||||
## Purpose
|
||||
|
||||
This document explains how to configure G3, including provider setup, agent behavior, and optional features like WebDriver and computer control.
|
||||
This document explains how to configure g3, including provider setup, agent behavior, and optional features like WebDriver and computer control.
|
||||
|
||||
## Configuration File Location
|
||||
|
||||
G3 looks for configuration files in this order:
|
||||
g3 looks for configuration files in this order:
|
||||
|
||||
1. Path specified via `--config` CLI argument
|
||||
2. `./g3.toml` (current directory)
|
||||
@@ -20,7 +20,7 @@ If no configuration file exists, G3 creates a default one at `~/.config/g3/confi
|
||||
|
||||
## Configuration Format
|
||||
|
||||
G3 uses TOML format. The configuration is organized into sections:
|
||||
g3 uses TOML format. The configuration is organized into sections:
|
||||
|
||||
```toml
|
||||
[providers] # LLM provider settings
|
||||
@@ -165,7 +165,7 @@ check_todo_staleness = true # Warn about stale TODO items
|
||||
|
||||
### Retry Behavior
|
||||
|
||||
G3 automatically retries on recoverable errors:
|
||||
g3 automatically retries on recoverable errors:
|
||||
- Rate limits (HTTP 429)
|
||||
- Network errors
|
||||
- Server errors (HTTP 5xx)
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# G3 LLM Providers Guide
|
||||
# g3 LLM Providers Guide
|
||||
|
||||
**Last updated**: January 2025
|
||||
**Source of truth**: `crates/g3-providers/src/`
|
||||
|
||||
## Purpose
|
||||
|
||||
This document describes the LLM providers supported by G3, their capabilities, and how to choose between them.
|
||||
This document describes the LLM providers supported by g3, their capabilities, and how to choose between them.
|
||||
|
||||
## Provider Overview
|
||||
|
||||
@@ -269,10 +269,10 @@ threads = 8 # Use more threads
|
||||
|
||||
### Tool Calling
|
||||
|
||||
Embedded models don't have native tool calling. G3 uses JSON fallback:
|
||||
Embedded models don't have native tool calling. g3 uses JSON fallback:
|
||||
1. System prompt includes tool definitions as JSON
|
||||
2. Model outputs tool calls as JSON in response
|
||||
3. G3 parses JSON and executes tools
|
||||
3. g3 parses JSON and executes tools
|
||||
|
||||
This works but is less reliable than native tool calling.
|
||||
|
||||
@@ -376,7 +376,7 @@ pub trait LLMProvider: Send + Sync {
|
||||
|
||||
### Rate Limits
|
||||
|
||||
G3 automatically retries on rate limits with exponential backoff.
|
||||
g3 automatically retries on rate limits with exponential backoff.
|
||||
|
||||
To reduce rate limit issues:
|
||||
- Use prompt caching (Anthropic)
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# G3 Tools Reference
|
||||
# g3 Tools Reference
|
||||
|
||||
**Last updated**: January 2025
|
||||
**Source of truth**: `crates/g3-core/src/tool_definitions.rs`, `crates/g3-core/src/tools/`
|
||||
|
||||
## Purpose
|
||||
|
||||
This document describes all tools available to the G3 agent. Tools are the primary mechanism by which G3 interacts with the filesystem, executes commands, and automates tasks.
|
||||
This document describes all tools available to the g3 agent. Tools are the primary mechanism by which g3 interacts with the filesystem, executes commands, and automates tasks.
|
||||
|
||||
## Tool Categories
|
||||
|
||||
@@ -445,7 +445,7 @@ List all open windows with IDs and titles.
|
||||
|
||||
### Duplicate Detection
|
||||
|
||||
G3 prevents accidental duplicate tool calls:
|
||||
g3 prevents accidental duplicate tool calls:
|
||||
- Only immediately sequential identical calls are blocked
|
||||
- Text between tool calls resets detection
|
||||
- Tools can be reused throughout a session
|
||||
|
||||
Reference in New Issue
Block a user