Skip to content

Latest commit

 

History

History
74 lines (61 loc) · 3.16 KB

ROADMAP.md

File metadata and controls

74 lines (61 loc) · 3.16 KB

CPE (Chat-based Programming Editor) Roadmap

This document outlines the planned features, improvements, and notes for the CPE project. Items are organized by priority and status.

Features

Agentic flow

  • 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?

Token Analysis and Visualization

  • 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

Code Map

  • 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:
      1. File paths (for extremely large repos, or maybe just in arbitrary directories?)
      2. Only type, function and method names (and class names for object-oriented langs)
      3. Code comments, global variables, full type definitions (like all struct fields, tags, field comments, etc.) (this is the current lowest fidelity level today)
      4. Full file contents
  • 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?)

Getting related files

  • 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

Tooling

  • Add support for bash execution tool

LLM Integration

  • 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.

User Experience

  • 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

Performance

  • Parallel processing for large codebases

Documentation

  • Comprehensive user guide
  • Example use cases and tutorials
  • Contributing guidelines
  • Architecture documentation

Goals

  • Test against extremely large mono-lang codebases
    • cert-manager
    • kubernetes
    • SWE bench?
  • Test against extremely large multi-lang codebases
    • ???