Commit Graph

90 Commits

Author SHA1 Message Date
Reinier van der Leer
e44ca4185a fix(frontend): Unbreak ChatInputField
Fix specification of `onSubmitted` hook in the `TextField`.
2024-02-21 02:09:23 +01:00
Ethan Presberg
6cfe229332 feat(frontend): Allow sending a message with the enter key (#6378)
This has not yet been tested due to an issue with compiling on WSL. This was the fix suggested by Pwuts.
2024-02-20 10:49:37 +01:00
hunteraraujo
9021d8392d feat: Add support for temporary chat message
- Added logic to display a temporary chat message while waiting for the response from the agent.
- When a user sends a message, a temporary chat message is created and displayed.
- Implemented a method to remove the temporary chat message when the response is received or in case of an error.
- Updated the UI to invoke the method for adding a temporary chat message when the send button is pressed.

Feedback:
- This change improves the user experience by allowing them to see their own message immediately while waiting for the response from the agent.
2023-10-31 19:39:56 -07:00
hunteraraujo
688ba62db7 feat: Add isWaitingForAgentResponse property to TaskViewModel
- Added a boolean property `isWaitingForAgentResponse` to the `TaskViewModel` class to track whether a task is being created and waiting for a response from the agent.
- When a task is being created, we set `isWaitingForAgentResponse` to `true` and notify the listeners.
- When the task creation process is completed (successfully or not), `isWaitingForAgentResponse` is set to `false` and listeners are notified.
- Updated the `ChatView` class to listen to changes in `TaskViewModel.isWaitingForAgentResponse` to show the loading indicator conditionally.
2023-10-31 16:59:36 -07:00
hunteraraujo
2f187a853e refactor: Refactor agent message tile rendering logic
- Updated the regular expression pattern to include matching fenced code blocks in addition to headers.
- Set the `dotAll` parameter to `true` to match across multiple lines in the regular expression.
- Wrapped the message container with a `SingleChildScrollView` widget to enable scrolling when the message content exceeds the available space.
- Implemented logic to conditionally render the message as markdown or selectable text based on the value of `hasMarkdown`.
- Modified the `MarkdownStyleSheet` to customize the appearance of blockquotes and code blocks.
- Updated the child widget of the message container to reflect the changes.
2023-10-31 16:33:45 -07:00
hunteraraujo
82434a248c Disable markdown as it causes crash for some responses 2023-10-20 08:07:27 -07:00
hunteraraujo
2187f66149 Show error toast for 5xx error 2023-10-20 00:20:46 -07:00
hunteraraujo
27ff99a9a5 Check for inline code blocks in agent step 2023-10-20 00:15:20 -07:00
hunteraraujo
9219bfba0e add Markdown detection and rendering
- Implement `containsMarkdown` function to identify messages with Markdown
- Utilize `flutter_markdown` package to render detected Markdown content
- Enhance chat UI to conditionally display plain text or formatted Markdown
2023-10-19 22:19:09 -07:00
hunteraraujo
57bcbdf45c Refactor LeaderboardSubmissionDialog to use SharedPreferencesService 2023-10-10 23:19:35 -07:00
hunteraraujo
dbec110bac Refactor ChatInputField to use SharedPreferencesService 2023-10-10 18:39:24 -07:00
hunteraraujo
c77ade5b2f Gate test suites from the task view based off isDeveloperModeEnabled flag 2023-10-09 11:30:58 -07:00
hunteraraujo
51ebe2407d Integrate TaskQueueViewModel throughout application 2023-10-08 22:34:52 -07:00
hunteraraujo
b2d53d8d18 Introduce TestOption Enum for Enhanced Test Selection Clarity (#5586) 2023-10-06 16:13:33 -07:00
hunteraraujo
0f2126e6f0 Implement Artifact Class for Enhanced Data Handling (#5585) 2023-10-06 14:55:47 -07:00
hunteraraujo
f97fc0dd3d Add GitHub Repository Validation to Leaderboard Submission Dialog (#5539) 2023-10-04 11:32:45 -07:00
hunteraraujo
45c15fc8c6 Enhanced Test Execution Flexibility (#5521)
Refactor UI and Logic for Task Queue and Test Suite Button
2023-10-03 22:34:22 -07:00
hunteraraujo
da6311fb1e Fix UI Overlap Issue in TaskQueueView
This commit addresses a UI issue where the ListView items were overlapping with the Positioned widget in the TaskQueueView. The Positioned widget has been replaced with a more flexible layout using a Column widget to ensure proper spacing and positioning of elements on the screen. The ListView now takes up all available space above the buttons, preventing any overlap and enhancing the user experience.
2023-10-03 22:05:21 -07:00
SwiftyOS
e71943f83b change the index url for the tutorials 2023-09-29 13:50:18 +02:00
SwiftyOS
2640fc85cf Frontend - Added link to tutorials 2023-09-29 13:36:58 +02:00
hunteraraujo
cbdb6ac0bf Add _throwawayFocusNode to allow continuous mode to work after dialog 2023-09-29 00:22:00 -07:00
hunteraraujo
8c58df706a Show helpful toast if someone hits a 404 2023-09-28 23:43:02 -07:00
hunteraraujo
ab2a49c8d2 Show loading state when running benchmark or waiting for agent response 2023-09-28 13:09:26 -07:00
hunteraraujo
a438619177 Add LoadingIndicator for Async Operations
Implemented a new LoadingIndicator widget that displays a pulsating gradient line, giving users visual feedback during asynchronous operations such as API calls. The indicator animates a gradient from white to AppColors.primaryLight and back to the grey background color, signifying the loading state.
2023-09-28 12:54:13 -07:00
hunteraraujo
41f0b472c0 Remove dark mode toggle until implementation is completed 2023-09-28 00:00:07 -07:00
hunteraraujo
d2f64a1163 Fix bug where AgentMessageTile are being reused inappropriately 2023-09-27 23:01:06 -07:00
hunteraraujo
b04f4e0f55 Added Artifact Handling for Chat Messages
- Enhanced the `Chat` model to include an `artifacts` field to hold associated artifacts.
- Updated the `AgentMessageTile` widget to display the number of artifacts and added functionality to trigger artifact downloads upon button press.
- Introduced a method in `ChatViewModel` to leverage the `ChatService` for artifact downloads.
2023-09-27 22:37:06 -07:00
hunteraraujo
c739e049c3 Fixed bug where task list did not update when creating new task 2023-09-27 20:27:21 -07:00
hunteraraujo
0847505add Dismiss leaderboard submission pop up after submitting 2023-09-27 15:46:54 -07:00
hunteraraujo
122c996714 Add helpful print statements and fix isURL validation 2023-09-27 15:46:05 -07:00
hunteraraujo
105b80101e Update Leaderboard Submission Dialog to Pass Parameters to ViewModel
This commit updates the Leaderboard Submission Dialog to pass the team name, repository URL, and commit SHA as parameters to the submitToLeaderboard function in the SkillTreeViewModel. These changes ensure that the dialog and the ViewModel are aligned in terms of parameter requirements, facilitating efficient and accurate leaderboard submissions.
2023-09-27 15:33:11 -07:00
hunteraraujo
9c1b55b9fb Integrate UriUtility in LeaderboardSubmissionDialog for URL Validation
This commit integrates the newly created UriUtility class into the LeaderboardSubmissionDialog. The isURL method from UriUtility is used to add an additional layer of validation for the GitHub repository URL input field. It ensures that users enter a valid URL format before submitting their leaderboard entries.

Changes made:
- Integrated UriUtility’s isURL method in the _validateAndSubmit function of the LeaderboardSubmissionDialog.
- Added a specific error message "Invalid URL format" to inform users when the entered URL does not meet the validation criteria.
- Updated the state management to reflect the URL validation status and re-render the dialog with appropriate error messages when necessary.

With this integration, the application now provides real-time feedback on the validity of the entered URL, enhancing user experience and data integrity by ensuring that only valid URLs are submitted to the leaderboard.
2023-09-27 15:11:27 -07:00
hunteraraujo
5df70eabd8 Adjust spacing + sizes of social icons 2023-09-26 20:18:29 -07:00
hunteraraujo
2d64647543 Update SideBarView with socials 2023-09-26 19:58:30 -07:00
hunteraraujo
193278fb53 Add image assets 2023-09-26 19:48:21 -07:00
hunteraraujo
1b9ec31d84 Add tooltip for LeaderboardSubmissionButton 2023-09-26 16:34:15 -07:00
hunteraraujo
efe1b3e0eb Update TaskQueueView with TestSuiteButton and LeaderboardSubmissionButton
Integrated both the TestSuiteButton and LeaderboardSubmissionButton in the TaskQueueView. Added conditions to disable the LeaderboardSubmissionButton based on benchmark running status and if the benchmarkStatusMap is empty. The onPressed logic for both buttons has been integrated as per requirements.
2023-09-26 16:28:52 -07:00
hunteraraujo
79f96c8f91 Introduce LeaderboardSubmissionButton widget
Added a new LeaderboardSubmissionButton widget to facilitate user submissions to the leaderboard. The button is styled consistently with other application buttons and features an emoji trophy icon to indicate leaderboard submissions. It provides a mechanism for disabling submissions based on certain conditions.
2023-09-26 16:03:27 -07:00
hunteraraujo
2605cd04d4 Add TestSuiteButton
Introduced a new reusable TestSuiteButton widget. It provides flexibility for positioning and is intended for initiating the test suite in the TaskQueueView.
2023-09-26 15:59:56 -07:00
hunteraraujo
6365071bb4 Add LeaderboardSubmissionDialog with SharedPreferences support
Introduce the LeaderboardSubmissionDialog widget which allows users to submit their team name, GitHub repo URL, and commit SHA for leaderboard consideration.

Features:
- Field validation: Ensure that all required fields are filled before submission.
- SharedPreferences integration: Save the user's last submission values and auto-populate the fields with these values when the dialog is shown next time.

This enhancement provides a smoother user experience by reducing repetitive data entry for subsequent leaderboard submissions.
2023-09-26 15:41:51 -07:00
hunteraraujo
389131f2ab Add ContinuousModeDialog and integrate with ChatInputField
- Introduced a new dialog, ContinuousModeDialog, to inform users about the repercussions of the continuous mode.
- Integrated ContinuousModeDialog with ChatInputField. The dialog is shown when the fast-forward icon is clicked, based on the user's shared preferences.
- Leveraged shared preferences to remember if the user has chosen not to see the dialog again.
- Enhanced the ChatInputField to handle different states and user interactions related to continuous mode.
2023-09-26 14:25:20 -07:00
hunteraraujo
3d4307a848 Added SkillTreeType enum and implemented dropdown selection in SkillTreeView
- Introduced a new `SkillTreeType` enum to represent different skill tree categories: General, Coding, Data, and Scrape/Synthesize.
- Extended the `SkillTreeType` enum to provide associated string values and JSON file names for each category.
- Refactored the `SkillTreeViewModel` to reload the skill tree data based on the selected category.
- Enhanced `SkillTreeView` by adding a positioned dropdown in the top-left corner to allow users to select and load different skill tree categories dynamically.
2023-09-25 23:08:24 -07:00
hunteraraujo
77ae0f490d Update hintText 2023-09-24 22:11:57 -07:00
hunteraraujo
72cbfd4d96 Conditionally show skill tree toggle based off isDeveloperModeEnabled 2023-09-24 22:09:45 -07:00
hunteraraujo
41a4ff828c Clean up settings view 2023-09-24 22:01:50 -07:00
hunteraraujo
da8b9d58ac Refactor Settings and Task Views for API Base URL Management
- Deprecated `ApiSettingsViewModel` in favor of enhancing `SettingsViewModel`.
- Moved the API Base URL field from `TaskView` to `SettingsView` to centralize configuration.
- Integrated `RestApiUtility` dependency into `SettingsViewModel` to ensure consistent URL management across the app.
2023-09-24 21:41:12 -07:00
hunteraraujo
ffa76c3a19 Integrated continuousModeSteps from SettingsViewModel into ChatViewModel
Refactored the ChatViewModel's sendChatMessage method to utilize the continuousModeSteps setting from the SettingsViewModel. This allows the continuous chat mode to honor the user's preference from the settings. Also introduced an optional currentStep parameter with a default value, enabling better control over the progression of continuous mode.
2023-09-24 17:15:36 -07:00
hunteraraujo
9463fbbe2b Refactor SettingsView to Accept External ViewModel
Changed the architecture of the SettingsView to align with the existing pattern in the application. Instead of creating its own instance of SettingsViewModel, the view now accepts an external viewModel as a parameter. This ensures consistency across the application and allows for better modularity and reusability of components.
2023-09-24 13:31:47 -07:00
hunteraraujo
9bd06cefdd Change color of settings app bar 2023-09-24 12:13:05 -07:00
hunteraraujo
a09d2a581f Enhance SettingsViewModel with State Persistence and Sign Out
This commit enriches the `SettingsViewModel` by integrating state persistence functionality and a sign-out method, thus ensuring a more robust and user-friendly settings feature.

Key Enhancements:
1. **State Persistence**:
   - Leveraging the `shared_preferences` package, the app now stores and retrieves user preferences related to app settings, ensuring consistency across app restarts.
   - Preferences like Dark Mode, Developer Mode, Base URL, and Continuous Mode Steps are persistently stored and loaded when the ViewModel is initialized.

2. **Sign Out Method**:
   - A `signOut` method has been introduced in the ViewModel, utilizing the `AuthService` to facilitate user sign-out processes.
   - This addition allows for seamless integration of sign-out functionality within the settings interface, granting users the ability to easily terminate sessions.

3. **SettingsView Enhancement**:
   - The `SettingsView` has been adapted to incorporate a UI element invoking the `signOut` method, enhancing user interaction within the settings environment.

This enhancement not only bolsters the resilience and usability of the app’s settings but also lays down a structured approach for potential future additions to user preferences and settings-related functionalities.
2023-09-23 21:51:07 -07:00