Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Development #126

Open
wants to merge 77 commits into
base: main
Choose a base branch
from
Open

Development #126

wants to merge 77 commits into from

Conversation

olasunkanmi-SE
Copy link
Owner

No description provided.

olasunkanmiraymond and others added 30 commits December 20, 2024 18:05
Set up new React + TypeScript project using Vite build tool
Configure ESLint with TypeScript and React-specific rules
Add essential project configuration files (.gitignore, tsconfig)
Include basic React application template with sample components
Set up development dependencies including React 18.3, TypeScript 5.6, and Vite 6.0
refactor(webview): migrate chat UI to React with VS Code Webview UI Toolkit

Add React-based webview UI infrastructure with Vite bundler
Update webview content generation to use new UI components
Configure build system for webview assets distribution
Add security features (nonce, CSP) for webview scripts
Update gitignore to exclude webview dist directory
Add VS Code Webview UI Toolkit dependency for native VS Code components
create communication between the extension and the React webview
* Update event generator to handle different AI models
* Fix errors in user prompt handling and response generation
* Improve code formatting and consolidate duplicate code
* Update webview UI components to display bot messages and code blocks
Remove unused properties from model configurations
refactor(event-generator): Improve event generator functionality
…e file structure

• Add TypeScript code mapper service for analyzing codebase structure and dependencies
• Implement interfaces for code mapping and file uploading
• Move file-uploader from events to services directory
• Update imports across multiple files to reflect new file structure
• Add support for extracting class metadata, function details, and type information
… system handling

* Move interfaces and constants to new application directory for better organization
* Add new FileSystemService class for centralized file system operations
* Remove duplicate code and unused enums from interfaces
* Add FSPROPS enum for file system constants
* Improve error handling with new handleError utility function
* Update imports across files to reflect new directory structure
…handling

Add path normalization for module paths and root directory
Add error handling for empty TypeScript files array
Remove unused TypeScript and path imports from file-system service
Refactor file reading operations to use vscode.Uri consistently
Extract getRootUri method for better code organization
Replace path.posix.join with vscode.Uri.joinPath for consistent path
… storage

Create CodeRepository class for database operations with vector search capabilities
Implement CodeStructureMapper for transforming code structure into simplified format
Add logging functionality with new Logger class
Rename TypeScriptCodeMapper to TypeScriptAtsMapper and update related interfaces
Add new interfaces for code structure mapping and database operations
…e_mapper

Create repository and code mapper
Implement context service for code indexing and function mapping
Configure embedding settings with batch processing and rate limiting
Update code repository to separate table creation and data insertion
Add @xenova/transformers dependency
Refactor TypeScriptAtsMapper to use singleton pattern
…e_mapper

Create repository and code mapper
… code structure

* Introduce a singleton pattern in CodeRepository to ensure a single instance
* Improve error handling in database connection and initialization
* Modify code structure and formatting in various services for better readability
* Update dependencies and imports in TypeScript services
…sitory instance

Implement buildFunctionStructureMap method to map codebase structures
Introduce generateFunctionDescription method for generating function descriptions
Create generateEmbeddings method for generating embeddings from function descriptions
Add InsertFunctionsinDB method to insert functions into the database
Update EmbeddingService to process functions in batches with rate limiting
olasunkanmi-SE and others added 30 commits January 27, 2025 18:37
feat(core): Add base AI agent system with event handling and management
• Rename class AIAgentEmitter to AgentEventEmitter
• Update import and class extension in base.ts
Introduce LocalStorageManager for secure data storage
Improve type safety and reusability in BaseEmitter
…gleton pattern

Create TextAnalysisAgent class for text analysis functionality
Update BaseWebViewProvider to use Orchestrator and TextAnalysisAgent instances
Modify AgentEventEmitter to use ISO timestamp format
Rename setUpGenerativeAiModel to initializeGenerativeAiEnvironment
Update various files to reflect these changes
Implement Orchestrator class with a static getInstance method for sin…
refactor memory content for all llms
Update agent interface to include new query handling functionality
Modify Orchestrator to handle new query events
Adjust providers to use the updated CodeBuddy agent
Implement processInput method in provider classes
Update event emitter to include onPrompt event
Add query status to EventState type
- Updates dependencies for , , and
- Introduces  class that extends  to handle text analysis and query processing using LLMs.
- Implements  method in  to process user input and interact with the LLM, including Gemini.
- Adds  interface and  type alias to define the structure of the LLM processing results and supported models.
- Implements prompt creation and response parsing from LLMs.
feat(agents): Implement CodeBuddy agent with LLM integration
…tecture

- Refactor agent and orchestrator to use a new event-driven architecture.
- Remove LLM model parameter from the agent run method.
- Implement new  function in  for publishing events.
- Update provider classes to use  to send query events.
Refactor(agent): Update agent and orchestrator for event-driven archi…
- Remove CodeBuddyAgent and integrate its functionality into the Orchestrator.
- Update Orchestrator to extend BaseAiAgent and manage event subscriptions internally.
- Remove unused run method from BaseAiAgent.
- Update GeminiWebViewProvider to use Orchestrator's parseResponse and emitEvent methods.
refactor(agents): Refactor agent classes and orchestrator
- Renames AgentEventEmitter to EventEmitter to improve code readability and reflect its broader usage.
- Updates references to the class name in relevant files (base.ts, orchestrator.ts, extension.ts, generative-ai-model-manager.ts).
- Replaces emitEvent with publish method to represent publishing of events.
Refactor: Rename AgentEventEmitter to EventEmitter for clarity
- Introduce a  class to encapsulate chat message details (role, content, parts).
- Refactor Anthropic, Gemini and Groq providers to utilize the  class for managing chat history.
- Update chat history management in , , and  to use  instances.
Add GeminiLLM class for interacting with the Gemini model.
Implement generateContent to extract queries and thoughts from user input.
Modify event handling to include onThinking and onResponse events for better UI updates.
Update BaseWebViewProvider and Orchestrator to handle new events.
Update EventEmitter and IAgentEventMap to include new events.
feat(llms): Introduce Message class for structured chat history
- Implement chat history for Gemini model to maintain context across conversations
- Improve error handling in logger and LLM configuration validation
- Refactor Gemini LLM to use a singleton instance
- Update message handling to use content or parts, but not both
feat(gemini): implements chat history and improve error handling
Add CodeBuddyTool base class and related interfaces
Implement ToolFactory and CodeBuddyToolProvider for tool management
Create ContextRetriever service for retrieving similar code contexts
Add SearchTool as the first CodeBuddyTool implementation
Remove unused sql.ts file and update GoogleSearchTool
feat(tools): implement CodeBuddyTool system and ContextRetriever
This commit introduces the following changes:

- Updates the IToolConfig interface to align with expected tool behavior.
- Adds database connection functionality to extension activation.
- Implements tool retrieval for Gemini and enables tool execution during content generation.
- Initializes the CodeBuddyToolProvider and ContextRetriever during Gemini LLM instantiation.
- Modifies tool base class to support configuration.
- Introduces a vector database search tool and factory.
- Adds a tool provider and factory to register tools.
- Adds database search tool and functionality.
- Adds tool execution capability to the Gemini model.
- Refactors the getInstances method in ToolFactory to use Array.from(this.tools.values()) for cleaner code and better readability.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants