Code Monkey home page Code Monkey logo

commanddash's Introduction

Dash AI

VScode Downloads License: APACHE

Your Flutter AI Autopilot powered with Gemini Code & Vision


Dash AI is an open-source coding assistant being built for Flutter Devs. It is aimed to not only write code, but also run and debug it. This allows Dash AI to assist beyond code completion, and autopilot routine tasks for you.

  • ✨ Powered by Gemini
  • 🤝 Integrated Dart Analyzer
  • 👨🏼‍💻 For and by Flutter Engineers

Chat with Gemini inside VSCODE

Our vision is to build a single-command assistant that automates tedious development tasks. Enabling both seasoned and beginner Flutter devs to focus on the creativity and innovation, bringing their app ideas to life faster.

The Mini-Engineer Vision

Engineering a feature for an app requires multiple iterations of writing code, running tests and debugging to meet the end-user requirements. Dash AI is designed to assist you through the entire process.

Imagine asking: "Implement this JIRA ticket for me"

graph TD
A(Dash AI)
A --> |Select relevant code| B(Break the task into steps)
B --> |For each step|C{Refactor code}
C --> |Generate| D(Exploratory Tests)
D --> |Tests Fail| C
D --> |Fails  > 3 times| E(Human Overrides)
E -->|Passes| F(Move to next step)
D -->|Passes| F(Move to next step)
F -->|All completed| G(Voila! Task Accomplished)

We have been able to build internal MVPs of such capablilties in a copilot. And are now sharing a roadmap with the community to make it available in production for everyone.

Roadmap

To build a mini-engineer with human developer like abilities, we need to provide Gemini LLMs the same access and information that we human devs have. This includes:

1. Full Contextual Knowledge To perform a task, humans or LLMs both need to understand the complete contextual code. This could be accomplished by integrating with Dart analyzer and embedding matching.

  • Dart Analyzer Integration
  • Manually attach code objects.
  • Basic auto code extraction.
  • Semantic match similar documents.
  • Advanced auto code extraction.
  • Auto identify file groups based on command.

2. Latest Syntax and Dependencies Data To keep up with evolving programming languages and coding practices, we'll use Retrieval Augmented Generation (RAG). This will ensure our Language Models can produce up-to-date code. By integrating the latest information and working with the community, we aim to build the most robust Flutter dataset.

  • Allow generative search across pub.dev.
  • Refer latest trusted sources for documentation.
  • Output code for the dependency version installed in the project.
  • Allow mechanism to update to latest dependency versions.
  • Choose from a range of trusted code practices and architecture styles.

3. Ability to Write, Run and Debug Code Modern LLMs are multimodal, understanding text, code, visuals, and even audio. When connected to Dart Tools (analyzer, debugger, devtools) and Dart Runtime (VM), they can leverage their multimodal capabilities to not only write code but also:

  • Write code across multiple files.
  • Run the tests or app by itself.
  • Read the console logs and iterate code.
  • Observe to device screen (multimodality) and interact with the app, to verify if features are met.

This allows us to mimic developer behavior and automate large-scale tasks in their entirety. We are setting a timeline of 4-6 months to achieve all of the above milestones.

Contributing

A coding assistant for all is best built when all of us contribute. You can make contributions to the VSCODE or IntelliJ extension or also to CommandDash CLI shared between the extensions.

Ways to contribute

  • File feature requests: Suggest features that'll make your development process easier in the issues board.

  • Pick up open issues: Pick up and fix existing issues open to the community in issues board.

  • Participate in discussions: Help by sharing your ideas in the active discussions in our community slack.

Community

Connect with like minded people building with Flutter and using AI to do so, every step of the way :D Join Now

commanddash's People

Contributors

brucemeek avatar dependabot[bot] avatar doitwithdk avatar kevalprajapati avatar khurramrizvi avatar maxim-saplin avatar mihan786chistie avatar nurdtechie98 avatar samyakkkk avatar superiorsd10 avatar tanmaymunjal avatar tanmoy27112000 avatar wadhia-yash avatar yatendra2001 avatar zexross avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

commanddash's Issues

[Feat]: Integrate vision model in chat.

Description

At present, Gemini-pro-vision doesn't support multi-turn text-based conversations. However, there is a need for multi-turn multi-modal chat capabilities.

One option is to await the implementation of multi-turn multi-modal functionality in Gemini. Alternatively, as a temporary solution, we can consider attaching images as discrete features to enrich the conversation experience.

What do you think @samyakkkk ?

Screenshot 2023-12-23 at 2 07 51 PM

[Feat]: Implement Adaptive Chat Theme Based on VSCode Theme

Is your feature request related to a problem?

The chat interface does not currently adapt to the VSCode theme, which can cause inconsistencies in the user experience for those who switch between light and dark modes.

Check this image:
Screenshot 2023-12-28 at 1 03 19 PM

Describe the solution that you'd like

The chat interface should detect the current VSCode theme and adapt its styles accordingly. If the user is in light mode, the chat background and text colors should be light-themed, and if the user is in dark mode, the chat should display dark-themed colors.

Describe alternatives that you have considered

--

Additional Information

Investigate how to retrieve the current theme information from VSCode's API and apply the corresponding CSS styles to the chat interface dynamically.

Acceptance Criteria

  1. The chat interface detects the current VSCode theme.
  2. The chat background and text colors adapt to match the detected theme.
  3. The transition between themes is smooth, without requiring a restart of VSCode or the extension.

Command not found error

Trying to solve issue #9 , ran into another issue screenshotted below, did some digging up to make sure I have not broken something in my local fork and it seems to be the case that even git cloning the main branch and running gives the same error for me in developer extension

image

[Feat]: Implement Expandable Chat Input Box

Is your feature request related to a problem?

The current chat input box is limited in size, which can be inconvenient for users who want to write longer queries.

Describe the solution that you'd like

The chat input box should expand vertically to accommodate longer queries as the user types. Additionally, pressing Shift+Enter should insert a new line in the input box instead of submitting the query.

Describe alternatives that you have considered

No response

Additional Information

Ensure that the expanding functionality does not interfere with the rest of the chat UI and that the input box can be easily resized back to its original size.

Acceptance Criteria

  1. The chat input box expands vertically as the user types more content.
  2. Pressing Shift+Enter inserts a new line instead of submitting the query.
  3. The UI remains clean and uncluttered, with clear visual cues for expanding and contracting the input box.

[Feat]: Add ability to attach entire folders to context.

Describe the problem and solution that you'd like.

Currently, we can attach individual code snippets to text field in Dash Panel. It would also be helpful to have the ability to attach entire folders.

By default, they use the normal Gemini 1.0 PRO APIs. But if context limit goes beyond, we can also leverage 1.5PRO APIs.

Describe alternatives that you have considered.

Alternative solution right now is to attach every file of the folder individually which ain't the best experience.

Additional Information

No response

Acceptance Criteria

No response

[Feat]: Code Completion Support

Is your feature request related to a problem?

An important aspect of an AI copilot is on-the-go code completion. It'd be very helpful for FlutterGPT to have inbuilt support for this.

Describe the solution that you'd like

It'd be great to have a similar experience to Github Copilot where the suggestions are given in real-time and can be accepted with a Tab.

Some important aspects while designing a solution to think over are:

1. What model to use?

Ideally, code-completion models are fine-tuned LLMs for this purpose. Google itself has its series of completion models called code-gecko. However, at the moment, they don't provide dart support.

A workaround for that is to prompt the Gemini models to complete the code for us. This could be better because Gemini is a bigger model and can give better results compared to smaller fine-tuned models.

2. What challenges do we anticipate?

There'd of course be challenges like:

  • Slow speed due to a bigger model.
  • Gemini may misunderstand the instructions to return the full code instead of just the completion.
  • Only prose and no code in a few scenarios.

3. How could we tackle the challenges?

  • Maybe to start with, instead of auto, we can instruct users to trigger the completion manually a key combination like command + >This will make sense because, with a slower speed during the time we fetch the generation, the user may have already proceeded ahead. If they use a manual trigger, we can show our default loading indicator.
  • We should also have a solid verification mechanism to ensure that the code received is the right completion (i.e. it doesn't contain any repeats etc) and retry the request if the checks aren't met.

Describe alternatives that you have considered

No response

Additional Information

Github Copilot Example:

Here is a good reference to a similar open-sourced code completion extension: https://github.com/hieunc229/copilot-clone/blob/master/src/extension.ts

It seems like that we'd by using InlineCompletionProvider API by VSCODE.

Acceptance Criteria

The basic acceptance criteria are receiving valid code completions when manually triggered by the user.

Anything more will be appreciated but please discuss it here before implementing.

In the next ticket, we'd enhance this feature by providing valid contextual code and references in the code completion prompt.

[Feat]: Navigate to the file by tapping the path in message tiles.

Describe the problem and solution that you'd like.

It would be a big convenience to users if they could directly tap the path in message tiles to navigate to the respective file.
Screenshot 2024-02-24 at 9 02 04 PM

Ideal solution:

  1. To check if the path mentioned exists (keep in mind that the path may be relative or only a sub-path of it, like just repositories/explore_repository.dart instead of the full path as in the message tile.)
  2. Underline the path in the tile.
  3. Hovering over should update the cursor to the hand icon (indicating the path is tappable)
  4. Tapping should take to the respective file.

Describe alternatives that you have considered.

No response

Additional Information

No response

Acceptance Criteria

  1. All kinds of paths are covered (full, sub-paths or even just file names).
  2. It is ok if we have multiple matches for a sub-path. We can navigate to the first match.

[Feat]: Design Frontend UI for Loading Screen During Workspace Query Processing

Is your feature request related to a problem?

When a user submits a @workspace query, there is no visual feedback indicating the steps the system is taking to process the query.

Describe the solution that you'd like

Create a frontend UI for the loading screen that appears when a @workspace query is provided. The screen should have three sections: "Accessing work structure(it can take a while in first time)," "Fetching most relevant files," and "Creating a result for you". Each section should visually indicate when it is in progress and when it has been completed.

Describe alternatives that you have considered

An alternative could be to use a simple progress bar, but a detailed step-by-step UI provides better transparency about the process.

Additional Information

Take inspiration from GitHub Copilot's UI for designing the loading screen, ensuring it aligns with the visual language of VSCode and provides a clear, informative user experience.

copilot.mov

Acceptance Criteria

  1. The loading screen is displayed when a @workspace query is processing.
  2. The screen has three distinct sections for each step of the process.
  3. Each section has visual indicators for in-progress and completed states.
  4. The design is consistent with VSCode's theme and GitHub Copilot's UI aesthetics.

[Feat]: Notify Users of Extension Updates

Is your feature request related to a problem?

Users are not notified when a new update for the extension is available, potentially missing out on new features and fixes.

Describe the solution that you'd like

Implement a notification system that alerts users of available updates when the extension is activated. Include a direct link or button in the notification to facilitate easy updating.

Describe alternatives that you have considered

An alternative could be to include update notifications in the extension's changelog or documentation, but this is less proactive.

Additional Information

Look into Visual Studio Code's API to see if there are built-in methods for detecting and prompting updates.

Acceptance Criteria

  1. Users receive a notification when an update is available.
  2. The notification includes an action that takes the user to the update page.
  3. The feature respects the user's notification settings.

[Feat]: Implement Codebase Search Feature with Embedding Matching

Is your feature request related to a problem?

Developers need a way to quickly search across the codebase to find specific functions or references, such as where a push notification listen method is implemented.

Describe the solution that you'd like

The solution involves creating embeddings for every file in the codebase. When a user queries something specific, like "Where is the push notification listen method," the system will match this query against all file embeddings. The top matching files will then be provided as context to the language model along with the user's query.

Describe alternatives that you have considered

An alternative could be to use traditional text search algorithms like regex or full-text search databases, but these may not offer the same level of semantic understanding as embedding matching.

Additional Information

Research articles on embedding matching and experiment with a subset of files to understand how effectively they match against a set of queries.

Acceptance Criteria

  1. Embeddings are created for every file in the codebase.
  2. A search feature is implemented that matches user queries against these embeddings.
  3. The top 5 matching files are used as context in the language model prompt.
  4. The feature is tested to ensure it accurately finds relevant files based on various queries.

[Feat]: Support IntelliJ Idea 2023.3.2

Is your feature request related to a problem?

No response

Describe the solution that you'd like

No response

Describe alternatives that you have considered

No response

Additional Information

No response

Acceptance Criteria

No response

[Bug]: Empty Text Response Bug in Chat View

What version are you using?

I'm using FlutterGPT: AI Copilot with Gemini inside Dart v0.2.0

What happened?

When using the chat view in the FlutterGPT VSCode extension, I observed a bug where it responds even when the user enters empty text (whitespace) and presses Enter. This behavior is unexpected, and I believe it would be better to prompt the user to enter something meaningful before pressing Enter when the user doesn't type anything and presses Enter.

Expected Behavior

I expect that it should not respond when the user enters empty text, and instead, a prompt or notification (e.g., snack bar) should be displayed, indicating that the user needs to type something before pressing Enter.

Steps to reproduce

1. Open the chat view in the FlutterGPT extension.
2. Enter whitespace or leave the text input empty.
3. Press Enter.

Supporting info to reproduce

I'm attaching an image depicting the above-described behavior

Relevant log output

No response

[Feat]: Add Scroll to Bottom Button in Chat Container

Is your feature request related to a problem?

There is currently no convenient way to scroll to the bottom of the chat container in the FlutterGPT VSCode extension. This can be cumbersome, especially when the chat history is long.

Describe the solution that you'd like

I would like to propose the addition of a "Scroll to Bottom" button in the chat container of the FlutterGPT extension. This button will make it easier for users to navigate to the latest messages without manually scrolling.

Describe alternatives that you have considered

No response

Additional Information

Jan.mp4

Acceptance Criteria

  • The "Scroll to Bottom" button is added to the chat container.
  • The button is visible when the user is not at the bottom of the chat container.
  • Clicking the button scrolls the chat container to the bottom, revealing the latest messages.
  • The button has a user-friendly design, ensuring it fits well with the overall aesthetics of the extension.

[Feat]: Api Key is blocked how to change it to new one

Describe the problem and solution that you'd like.

So my old Api key was blocked for some reason and now I want be able to change it to new APi key so please have a look into that Thank You !!

Describe alternatives that you have considered.

No response

Additional Information

No response

Acceptance Criteria

No response

HTML rendering of index is broken for lists.

What version are you using?

v0.2.10

What happened?

Indexed list response is not correctly handled.

Screenshot 2024-02-24 at 9 09 35 PM

Steps to reproduce

1. Go to Chat
2. Ask a question that shall be returning an indexed list. Like "What are 5 kinds of widgets in  Flutter"

Supporting info to reproduce

No response

Relevant log output

No response

[Doc]: Add Documentation for activate Function in extension.ts

Is your feature request related to a problem?

The activate function lacks documentation, making it difficult for new contributors to understand its purpose and functionality.

Describe the solution that you'd like

Add comprehensive JSDoc comments to the activate function, detailing its responsibilities, parameters, and any important information about its inner workings.

Describe alternatives that you have considered

Alternatively, a separate documentation file could be created, but in-line documentation is preferred for ease of access.

Additional Information

Familiarize yourself with the activate function's code and the extension's overall workflow.

Acceptance Criteria

  1. JSDoc comments are present for the activate function.
  2. Comments are clear, concise, and accurately describe the function's behavior.

[Feat]: Contextual Code Additions.

Is your feature request related to a problem?

FlutterGPT currently passes contextual code of all classes/methods referred in the current file by fetching it with Dart Analysis Server.

However, for optimisation reasons, we just limit ourselves to the code inside the current project. This could be a problem when users are using submodules or are using new versions of packages or unpopular packages not understood by the default model.****

Describe the solution that you'd like

We need a smart algorithm to figure out what context to include and not include and also assign weightage to each of them so we can shortlist or filter when running short on token limit.

Let's think of all possible cases, - including when using stateful widgets, variables, generated code, packages code etc. and how to include them.

Describe alternatives that you have considered

No response

Additional Information

No response

Acceptance Criteria

After thorough discussion and once approved by everyone in the team, then only we will start to implement.

ReferenceError: fetch is not defined

What version are you using?

0.2.0

What happened?

The chat and other requests doesn't work for vscode versions < 1.82

Steps to reproduce

1. Go to Chat
2. Send a message
3. Error processing the message.

Supporting info to reproduce

No response

Relevant log output

No response

[Feat]: Implement Loading Indicator for AI Response Fetching

Is your feature request related to a problem?

Currently, when the AI is fetching a response, the chat interface shows a text placeholder "loading...". This is not visually engaging and can be unclear to some users.

Describe the solution that you'd like

Replace the "loading..." text with a graphical loading indicator, such as a spinner or progress bar, which provides a more modern and user-friendly visual cue that the system is processing the request.

Describe alternatives that you have considered

An alternative could be to use an animated character or icon that reflects the AI's "thinking" process, which could add personality to the user interface.

Additional Information

Acceptance Criteria

  1. A graphical loading indicator is displayed when the AI is fetching a response.
  2. The indicator is clearly visible and matches the extension's design.
  3. The transition from the loading indicator to the AI's response is smooth and without glitches.

[Fix]: Use KeyboardEvent.key or KeyboardEvent.code instead of deprecated keyCode

Description

The project currently uses the deprecated KeyboardEvent.keyCode property in several places (e.g. searchPebblePanel.html and main.js) This property is no longer recommended for use in new code and might be removed from browsers in the future.

Proposed Solution

We should update the code to use either of the recommended properties:

  • KeyboardEvent.key: Provides a consistent string representation of the pressed key (e.g., "Enter", "Space", "ArrowUp").
  • KeyboardEvent.code: Provides a physical key identifier (e.g., "KeyA", "KeyF1", "Digit5").

Relevant Links

Link to the Docs mentioning the deprecation of keyCode

No active editor message

I get the message no active editor on my VS Code (little msg that pops up on the lower right corner) after running FlutterGPT Refactor: From Instructions from the Command Palette. I already have a paid OpenAI account and put my api key in both the user and workspace settings. What else could I be missing for this to work?

Newly installed user cannot access chat feature

What version are you using?

v0.2.2

What happened?

Newly installed users are stuck with a loading indicator and are unable to access the chat features.

Steps to reproduce

1. Install the plugin
2. Follow Gemini instructions
3. Observe that the chat feature is not accessible.

Supporting info to reproduce

No response

Relevant log output

No response

[Feat]: Tutorials or sample prompts

Describe the problem and solution that you'd like.

I cannot get Dash AI to write integration tests as it is supposed to. Can you please help?

Describe alternatives that you have considered.

No response

Additional Information

No response

Acceptance Criteria

No response

Window for Preview and suggested changes on refactoring

I am new to coding but learn fast. This is an awesome project. I have been strictly using the VSCode extension. I have a few prompts i made to really help fluttergpt work but since there is no access to the internet (just yet). I think it would be really helpful to have a side window from the code we are working with to show information like an explanation of changes made, preview for the suggested code so on and so forth. Once again i love the project and would be willing to help in anyway i can.

Here are the prompts i have been using with the "refactor from instructions" in case it helps anyone else out.

Optimizations:
Develop and optimize code by troubleshooting errors, fleshing out the code, fixing errors, and identifying root causes of issues. Consider your token limit and break down instructions into several responses if needed. Reflect and critique your solution to ensure it meets the requirements and specifications of speed, flexibility and user friendliness.

Implement more code:
To flesh out the code, focus on adding more detail and expanding upon the existing code. This might involve adding new features, writing additional code to handle certain scenarios, completing code for // todo: or providing more descriptive comments. By doing so, you can ensure that the code is more robust and complete, meeting the necessary requirements and specifications.

[Feat]: Implement Workspace Selection Dropdown for '@' Command

Is your feature request related to a problem?

Users need an intuitive way to include their entire workspace as context when typing queries in the chat interface.

Describe the solution that you'd like

Introduce a feature where typing '@' in the chat input triggers a dropdown menu with the option to select the workspace. This will signal the extension to include the entire workspace as context for the subsequent query.

Describe alternatives that you have considered

No response

Additional Information

@workspace must be a part of string input.

Refer this image of co-pilot:
Screenshot 2024-01-05 at 4 07 45 PM

Acceptance Criteria

  1. Typing '@' in the chat input shows a dropdown with the workspace selection.
  2. Selecting the workspace from the dropdown appends a special tag to the chat input.
  3. The UI for the dropdown is consistent with the chat interface and VSCode's design language.

[Feat]: Add Tooltips to Copy and Merge Icons in Code Blocks

Is your feature request related to a problem?

Currently, there are no tooltips associated with the copy and merge icons in code blocks within the FlutterGPT VSCode extension. This can lead to confusion for users who might not be familiar with the icons' purposes.

Describe the solution that you'd like

I propose adding tooltips to the copy and merge icons in code blocks. Tooltips will provide clear information about the functionality of these icons, enhancing the user experience and reducing confusion.

Describe alternatives that you have considered

No response

Additional Information

Screen.Recording.Jan.26.mp4

Acceptance Criteria

  • Tooltips are added to the copy and merge icons within code blocks.
  • Tooltip text clearly explains the purpose of the copy icon.
  • Tooltip text clearly explains the purpose of the merge icon.
  • Tooltips are displayed when the user hovers over the respective icons.

[Feat]: Move chat logic to engine

Describe the problem and solution that you'd like.

Move the chat interaction logic to the CommandDash Engine. Also, manage nested code context of attach code snippets.

Describe alternatives that you have considered.

No response

Additional Information

No response

Acceptance Criteria

No response

[Feat]: Implement Syntax Highlighting in Webview Chat

Is your feature request related to a problem?

The chat interface in the webview currently does not support syntax highlighting, which can make it difficult for users to read and understand code snippets.

Describe the solution that you'd like

Integrate a syntax highlighting library into the webview chat interface to automatically highlight code snippets in messages. This should support Dart/Flutter syntax at a minimum.

Describe alternatives that you have considered

Additional Information

Investigate libraries like PrismJS or highlight.js that can be embedded into webviews for syntax highlighting. Explore media/chat/scripts/main.js to know how currently code markdown to plain text works.

Acceptance Criteria

  1. Code snippets in chat messages are syntax-highlighted.
  2. The highlighting supports Dart/Flutter syntax.
  3. The feature does not significantly impact the performance of the chat interface.

[Feat]: Display References in a Tree View. (Research)

Is your feature request related to a problem?

Large Language Models work the best when they have the right contextual code. While embedding matching and analyzer helps us automatically extract relevant contextual code from the project, it is not always reliable.

This is why FlutterGPT has an "Add to Reference" feature that allows users to manually mark certain selected code as reference. This reference will later be attached in the prompt.

However, the current way is not the best UX. References take up half of the editor window and are displayed in full.

Screenshot 2024-01-02 at 3 56 05 PM

Describe the solution that you'd like

The ideal experience would be to display the reference somewhere:

  1. Easily findable.
  2. Mentioned in summarised manner.
  3. Ability for user to visit the actual reference code when tapped.
  4. Ability for user to remove one or few references.

It looks like that the Tree View API offered by VSCODE comes quite close to this requirement.
Screenshot 2024-01-02 at 3 58 09 PM

Describe alternatives that you have considered

No response

Additional Information

No response

Acceptance Criteria

The current acceptance criteria only require R&D to see if it's feasible to show references in the tree view and what does the final UX look like.

Once we have a clear idea, we can discuss and see if we want to proceed with this method or find other better options.

Exposed API key

What version are you using?

v0.2.9

What happened?

The FlutterGPT doc mentions that the API key is to be inserted in the settings like this:
Screenshot 2024-02-03 at 5 59 10 PM

So here I added it according to the docs
Screenshot 2024-02-03 at 6 10 51 PM

And here in console you can see I was able to extract it
Screenshot 2024-02-03 at 6 09 51 PM

Steps to reproduce

.

Supporting info to reproduce

No response

Relevant log output

No response

[Feat]: Must have improved onboarding experience

Is your feature request related to a problem?

Users installing the extension should be addressed with a better onboarding experience.

Describe the solution that you'd like

A step by step flow resolving initial dependencies, and showcasing basic use cases

Describe alternatives that you have considered

No response

Additional Information

No response

Acceptance Criteria

Group 120

Doesnt work in Android Studio

Installed it in Android Studio Giraffe. Added OpenApi key in Settings-Tools-FlutterGPT. Restarted many times. Reinstalled the plugin several times. Paying for OpenApi GPT-4 (Any issue?)

I simply cannot get it to work. Any idea why?

MacOs Senoma M1

Thanks

[Feat]: Implement Slash Command Interface for Quick Actions

Is your feature request related to a problem?

The extension currently lacks a quick-access method for performing common tasks, which can slow down user workflow and efficiency.

Describe the solution that you'd like

Introduce a slash command feature that, when the user types / in the chat input, presents a dropdown menu with a list of available actions (e.g., describe, improve, help etc.)

Describe alternatives that you have considered

--

Additional Information

The design of the slash command interface should be consistent with the overall UI of the extension. It should be extensible so that new commands can be easily added in the future.

Acceptance Criteria

  1. Typing / in the chat input triggers a dropdown menu with available actions.
  2. The dropdown menu is navigable via keyboard arrows and selection is made by pressing Enter.
  3. The UI for the slash commands is clean, unobtrusive, and matches the existing design language.

Keep OpenAI API for non eligible countries ?

Hello and thanks for your work !
Gemini is not available worldwide (for exemple in France we can't access the API without VPN)
Is it possible to keep the previous way of working for users like us ? With open AI API ?

Thank you

[GoogleGenerativeAI Error]

What version are you using?

v0.2.0

What happened?

[GoogleGenerativeAI Error]: Error fetching from https://generativelanguage.googleapis.com/v1/models/gemini-pro:generateContent?key=APIKEY: [400 Bad Request] User location is not supported for the API use.

Steps to reproduce

1. use fluttergpt create code from description

Supporting info to reproduce

No response

Relevant log output

[GoogleGenerativeAI Error]: Error fetching from https://generativelanguage.googleapis.com/v1/models/gemini-pro:generateContent?key=APIKEY: [400 Bad Request] User location is not supported for the API use.

[Feat]: Implement Regex Validation for OpenAI Key Format

Is your feature request related to a problem?

Currently, the isOldOpenAIKey function uses a simple startsWith check to validate OpenAI keys. This method is not robust and may not accurately validate all key formats.

Describe the solution that you'd like

The solution is to refactor the isOldOpenAIKey function to use a regular expression(REGEX) that matches the expected format of OpenAI keys. This will provide a more accurate validation method.

Describe alternatives that you have considered

An alternative could be to use a third-party library designed for API key validation, but this may introduce unnecessary dependencies. So let's leave it for now.

Additional Information

Research the expected format of both old and new OpenAI keys to create an accurate regex pattern.

Acceptance Criteria

  1. The isOldOpenAIKey function uses regex for validation.
  2. The function should not produce false positives or negatives.

[Feat]: Add Clear Chat Functionality to Chat Interface

Is your feature request related to a problem?

Users currently do not have the option to clear the chat within the extension, which can lead to clutter and difficulty in managing conversations.

Describe the solution that you'd like

Implement a 'Clear Chat' feature that allows users to clear their chat conversation from the chat interface. This could be a button that, when pressed, clears the chat window.

Describe alternatives that you have considered

--

Additional Information

Ensure that the clear chat functionality is easily accessible but includes a confirmation step to prevent accidental deletion of the chat history.

Acceptance Criteria

  1. A 'Clear Chat' button is present in the chat interface.
  2. Activating the feature clears the chat history from the interface.
  3. Users are prompted to confirm before the chat is cleared to prevent accidental data loss.

Dash Panel Keeps Loading

What version are you using?

v0.2.10

What happened?

Disable the extension and open any workspace and enable the extension. Now go to the Dash Panel. It will keep loading.

The same error has also been reported by Barış KAÇİN in the marketplace review:

sometimes that window is not working its like loads stuff on background

We need to figure all cases where the issue is reproducible and push the correct fix.

@wadhia-yash could be reached here or in slack for any questions.

Steps to reproduce

1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
...

Supporting info to reproduce

No response

Relevant log output

2024-02-23 10:38:51.609 [info] ExtensionService#_doActivateExtension WelltestedAI.fluttergpt, startup: false, activationEvent: 'onLanguage:dart'
2024-02-23 10:38:51.912 [error] Activating extension WelltestedAI.fluttergpt failed due to an error:
2024-02-23 10:38:51.912 [error] TypeError: Cannot read properties of undefined (reading 'analyzer')
    at activate (/Users/mr.minnu/.cursor-nightly/extensions/welltestedai.fluttergpt-0.2.10/out/extension.js:55:50)
    at u.n (/Applications/Cursor Nightly.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:141:6342)
    at u.m (/Applications/Cursor Nightly.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:141:6305)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.