1.0.1 • Published 5 months ago

coding-agent v1.0.1

Weekly downloads
-
License
ISC
Repository
-
Last release
5 months ago

AI Coding Agent

An intelligent coding assistant powered by the @agenite framework that helps with coding tasks, code analysis, and file operations. This agent acts as your pair programming partner, capable of understanding and modifying code, answering questions, and providing assistance with development tasks.

Features

  • šŸ” Code Analysis: Finds functions, imports, and analyzes code structure
  • šŸ“ Code Generation: Creates and modifies code with proper formatting
  • šŸ› ļø File Operations: Handles file system tasks (read, write, list)
  • šŸ’” Interactive Assistance: Provides explanations and suggestions
  • šŸŽØ Beautiful Output: Rich console output with icons and colors
  • šŸ”„ Development Flow: Seamless integration with your coding workflow

Architecture

The agent uses a modular architecture with specialized tools:

Command Runner Tool

  • Executes shell commands safely
  • Handles command timeouts
  • Caches recent command results
  • Provides detailed command output

File System Tool

  • Reads and writes files
  • Lists directory contents
  • Handles file operations safely
  • Supports various file types

Installation

# Clone the repository
git clone [repository-url]

# Navigate to the project directory
cd coding-agent

# Install dependencies
npm install

Usage

Start the agent and interact with it:

npm start

Example commands:

# Analyze code
"Can you analyze the code in src/agent.ts?"

# Find functions
"What functions are defined in src/tools/file-system.ts?"

# Make modifications
"Add error handling to the readFile function"

# Get explanations
"Explain how the command runner tool works"

Project Structure

coding-agent/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ agent.ts           # Main agent implementation
│   ā”œā”€ā”€ index.ts          # Entry point
│   └── tools/            # Tool implementations
│       ā”œā”€ā”€ command-runner.ts  # Command execution
│       └── file-system.ts     # File operations
ā”œā”€ā”€ tests/                # Test files
└── package.json

Configuration

The agent uses environment variables for configuration:

# LLM Provider Configuration
export LLM_PROVIDER=ollama     # or 'bedrock'
export LLM_MODEL_ID=llama3.2   # or other supported models

# Optional Configuration
export COMMAND_TIMEOUT=30000   # Command timeout in ms
export CACHE_DURATION=60000    # Cache duration in ms

Features in Detail

Code Analysis

  • Function and class detection
  • Import statement analysis
  • Code structure understanding
  • Dependency tracking

File Operations

  • Safe file reading/writing
  • Directory exploration
  • File type detection
  • Path resolution

Command Execution

  • Safe command running
  • Output capturing
  • Error handling
  • Result caching

Development

Run in development mode with auto-reload:

npm run dev

Watch mode for TypeScript:

npm run watch

Error Handling

The agent handles various scenarios:

  • Invalid commands
  • File system errors
  • Syntax errors
  • Timeout issues
  • Permission problems

Best Practices

When using the agent: 1. Be specific with your requests 2. Provide full file paths when needed 3. Review suggested changes before applying 4. Use version control for safety

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Dependencies

Core dependencies:

  • @agenite/agent: Core agent framework
  • @agenite/tool: Tool creation utilities
  • shared-llm-provider: LLM provider implementation

Dev dependencies:

  • typescript: Type support
  • tsx: TypeScript execution
  • @types/node: Node.js type definitions

License

MIT License

Acknowledgments

  • Built with @agenite framework
  • Inspired by pair programming practices
  • Uses modern AI techniques for code understanding