-
Notifications
You must be signed in to change notification settings - Fork 15
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
olasunkanmi-SE
wants to merge
77
commits into
main
Choose a base branch
from
development
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Development #126
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
Code traverse
Code traverse
…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
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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.