This document outlines the planned features, improvements, and notes for the CPE project. Items are organized by priority and status.
- Move from disparate mulit-agent to single-agent, will reduce necessary calls, as we can remove the needs codebase function call
- Experiment with idea of sub agent creation on the fly?
- Models like Gemini such at editing files with function calling. Maybe just have the model utilize the bash tool to give specific edit instructions to a file-editing function calling capable model? like gpt-4o-mini?
- Implement basic token counting per file
- Show total tokens for each directory (tree)
- Model specific token counting
- Use anthropic token counting endpoint
- Default to using gpt-4o token counting
- Some repos are too large to fit in a context window, even without function bodies, so we should process the codebase in chunks if it exceeds the context window
- Or maybe we can create further levels of fidelity hierarchy. Maybe something like:
- File paths (for extremely large repos, or maybe just in arbitrary directories?)
- Only type, function and method names (and class names for object-oriented langs)
- Code comments, global variables, full type definitions (like all struct fields, tags, field comments, etc.) (this is the current lowest fidelity level today)
- Full file contents
- Or maybe we can create further levels of fidelity hierarchy. Maybe something like:
- Instead of detecting file extensions, try to detect if file of text context using magic bytes
- Include code from dependencies if possible in file overview
- Use model token counting to return an error to the model if given level of file overview will exceed to context window (or maybe given threshold? 75% of context window to allow for some room?)
- Transition from using tree sitter for go to using native ast pkg in stdlib
- Explore using python in wasm runtime to resolve related files (RustPython?)
- Explore using java in wasm runtime to resolve related files
- Add support for bash execution tool
- Support for more LLM providers
- Mistral
- Deepseek
- Nous
- support multimodality
- images
- videos
- Use official sdks instead for openai, gemini
- openai
- gemini
- anthropic
- Use structured outputs for openai and gemini to ensure strict following of tool schemas.
- Command auto-completion
- Add support for continuing a conversation if user chooses to do so
- Support sending requests to multiple models and picking the best one
- Support sending requests to multiple models and picking the best one
- Parallel processing for large codebases
- Comprehensive user guide
- Example use cases and tutorials
- Contributing guidelines
- Architecture documentation
- Test against extremely large mono-lang codebases
- cert-manager
- kubernetes
- SWE bench?
- Test against extremely large multi-lang codebases
- ???