Commit Graph

216 Commits

Author SHA1 Message Date
merwanehamadi
793ff1c163 Add data challenges (#5361)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-27 10:47:34 -07:00
hunteraraujo
c94835432e Update LeaderboardService to use PUT instead of POST 2023-09-27 00:12:45 -07:00
hunteraraujo
5f4454737d Added PUT method support to RestApiUtility
Enhanced the RestApiUtility class to support HTTP PUT requests. The new method, `put`, allows for updating data at a specified endpoint. This addition provides more comprehensive CRUD operations for the API interactions, ensuring the client can perform updates when necessary.
2023-09-27 00:12:17 -07:00
hunteraraujo
dc4ca47bc7 Implement full pagination support for task fetching
Refactored the TaskService and TaskViewModel classes to fully support paginated fetching of tasks. The solution fetches tasks page by page until all tasks have been retrieved, accommodating the API's pagination mechanism. Renamed `listAllTasks` to `fetchTasksPage` to better reflect its purpose and introduced a new method, `fetchAllTasks`, to handle the paginated fetching logic.
2023-09-27 00:11:24 -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
654f3dff06 Add URL launcher dependency 2023-09-26 19:26:47 -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
d056793309 Add placeholder submitToLeaderboard 2023-09-26 16:13:38 -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
Swifty
77d0516674 Update frontend build (#5341)
Co-authored-by: GitHub Action <action@github.com>
2023-09-26 12:41:10 +02: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
4a8da53d85 Add centralized color constants for light and dark modes
Introduced a `AppColors` class to house all color constants provided by the design team. This class segregates colors into light and dark modes, ensuring easy and consistent theming throughout the application. The centralized approach simplifies updates and ensures color consistency across the app.
2023-09-25 20:06:17 -07:00
hunteraraujo
bec207568a Add userExperienceIterationTwo feature flag utility
Added a FeatureFlags utility class to manage feature toggling within the application. This initial commit introduces a flag for the userExperienceIterationTwo feature, allowing for controlled testing and phased rollout as development progresses. The flag can be manually adjusted as needed.
2023-09-25 19:30:26 -07:00
Swifty
f34486a15a Update frontend build (#5323)
Co-authored-by: GitHub Action <action@github.com>
2023-09-25 13:01:37 +02:00
hunteraraujo
470cfa6c4e Fix issue with decoding metrics JSON 2023-09-24 22:30:37 -07:00
hunteraraujo
a6446ce43e Fix leaderboard URL 2023-09-24 22:30:17 -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
hunteraraujo
4c0349a6a8 Integrate SettingsView into MainLayout
This commit integrates the newly created `SettingsView` into the `MainLayout`, allowing users to access and interact with the settings through the main user interface of the app. When the user selects the settings tab from the `SideBarView`, the `SettingsView` is displayed alongside the `ChatView`, maintaining consistent layout aesthetics with other views like `TaskView`.

Key Changes:
- A new condition has been added in the `ValueListenableBuilder` within the `MainLayout` to check if the selected view is `'SettingsView'`.
- When `'SettingsView'` is selected, `SettingsView` is rendered with the same width as `TaskView`, and `ChatView` is displayed next to it.
- The state of the skill tree is reset when navigating to `SettingsView` to ensure a clean state.

This integration ensures a seamless user experience, allowing users to navigate and configure app settings easily and efficiently from the main layout of the app.
2023-09-22 23:36:12 -07:00
hunteraraujo
9d1b235472 Add Settings Tab to SideBarView
This commit augments the `SideBarView` by introducing a new `IconButton` that represents a tab for the newly created `SettingsView`. This enhancement allows users to navigate to the settings page directly from the sidebar, improving accessibility to app configuration options.

Key Changes:
- A new `IconButton` with a settings icon has been added to the sidebar’s `Column` widget.
- Selecting the settings tab updates the `selectedViewNotifier.value` to `'SettingsView'`, indicating the user's intent to navigate to the settings page.
- Visual feedback is provided by altering the color of the settings icon based on whether the settings tab is currently selected.

This addition ensures seamless integration of the `SettingsView` into the existing navigation structure, enabling users to easily configure app settings.
2023-09-22 23:24:37 -07:00
merwanehamadi
fa9fc18e22 Validate skill tree so the UI never breaks (#5306)
Validate skill tree to prevent it from breaking the UI

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-22 17:32:05 -07:00
hunteraraujo
ecc8d9430c Enhance Hierarchy Population to Support Nodes with Multiple Parents
This commit refines the `populateSelectedNodeHierarchy` method in the `SkillTreeViewModel` to accurately represent nodes that possess multiple parent nodes, ensuring a comprehensive and non-redundant representation of the entire hierarchy leading back to the root nodes.

Modifications and Features:
- The method now employs recursion to traverse all possible paths back to the root nodes from a selected node, capturing every unique node in the hierarchies.
- A `Set` is utilized to monitor and ensure that each node is only added once to the `_selectedNodeHierarchy` list, eliminating the possibility of duplicates.
- The finalized `_selectedNodeHierarchy` list is constructed such that the root of the tree is the last item in the list, providing a more logical representation of the hierarchy.

These enhancements ensure a more accurate and efficient representation of the skill tree structure, particularly in scenarios where nodes have multiple parents, facilitating better navigation and interaction within the skill tree.
2023-09-22 17:26:47 -07:00
hunteraraujo
078559182a Merge branch 'master' of github.com:Significant-Gravitas/Auto-GPT 2023-09-22 16:20:11 -07:00
hunteraraujo
45819e68d0 Use SugiyamaAlgorithm instead of BuchheimWalkerAlgorithm for skill tree 2023-09-22 16:20:04 -07:00
merwanehamadi
8f41dbe27d Rename Auto-GPT to AutoGPT (#5301)
* Rename to AutoGPT

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>

* Update autogpts/autogpt/BULLETIN.md

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>

* Update BULLETIN.md

* Update docker-compose.yml

* Update autogpts/forge/tutorials/001_getting_started.md

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>

* Update autogpts/autogpt/tests/unit/test_logs.py

Co-authored-by: Reinier van der Leer <pwuts@agpt.co>

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update introduction.md

* Update plugins.md

---------

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
Co-authored-by: Reinier van der Leer <pwuts@agpt.co>
2023-09-22 15:49:29 -07:00
hunteraraujo
bb627442d4 Implement SettingsView for User Configurable Settings
This commit introduces the `SettingsView` class, which is responsible for rendering the user interface for the settings feature of the app. This View is associated with the `SettingsViewModel` for state management and logic.

Features Represented in this View:
- Dark Mode: A switch to enable or disable Dark Mode.
- Developer Mode: A switch to enable or disable Developer Mode.
- Base URL: A text field to input and configure the Base URL.
- Continuous Mode Steps: User-friendly '+' and '-' buttons allowing users to configure the number of steps for continuous mode.

The `SettingsView` utilizes the Flutter `ListView` to display various settings options, providing an intuitive and user-friendly experience. It employs reactive state management using the `Provider` package, ensuring that any state changes in the associated ViewModel are reflected immediately in the View. Proper documentation and comments have been added for better code readability and maintenance.
2023-09-22 14:41:41 -07:00
hunteraraujo
5d00457d79 Add SettingsViewModel for Managing Settings State
This commit introduces the `SettingsViewModel` class, part of the MVVM architecture, responsible for managing the state and business logic for the settings feature of the app. This ViewModel is associated with the `SettingsView`.

Features Managed by this ViewModel:
- Dark Mode: Toggle the state of Dark Mode and notify listeners.
- Developer Mode: Toggle the state of Developer Mode and notify listeners.
- Base URL: Update the state of Base URL and notify listeners.
- Continuous Mode Steps: Increment and decrement the number of Continuous Mode Steps and notify listeners.

Each change in the state is followed by a notification to the listeners to rebuild the UI components that depend on this state, ensuring a reactive UI. To-do comments have been added where the state needs to be persisted or synchronized with a server.
2023-09-22 14:40:11 -07:00
hunteraraujo
18333fbc7c Temporarily allow null values in benchmark data models 2023-09-22 13:48:03 -07:00
merwanehamadi
a0e383f4d9 Fix skill tree (#5303)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-22 13:09:57 -07:00
Swifty
7542cdffb5 Update frontend build (#5298)
Co-authored-by: GitHub Action <action@github.com>
2023-09-22 10:05:52 +02:00
merwanehamadi
db4ac8d1d8 Update tree_structure.json (#5297) 2023-09-21 20:30:21 -07:00
merwanehamadi
18e576cb53 Structure challenges (#5296) 2023-09-21 20:06:37 -07:00
merwanehamadi
f67a352937 Add categories skill tree (#5295)
Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-21 17:39:16 -07:00
merwanehamadi
f4e7b1c61c Add eval_id and sync Skill Tree with Frontend(#5287)
Add eval_id to skill tree

Signed-off-by: Merwane Hamadi <merwanehamadi@gmail.com>
2023-09-21 13:36:17 -07:00
Swifty
3f83e20387 Update frontend build (#5282)
Co-authored-by: GitHub Action <action@github.com>
2023-09-21 08:07:15 +02:00
hunteraraujo
62efc6b07e Add Firebase Analytics dependency 2023-09-20 20:40:12 -07:00
hunteraraujo
22ea449850 Integrate LeaderboardService into SkillTreeViewModel
This commit integrates the `LeaderboardService` into `SkillTreeViewModel` to enable benchmark report submissions to the leaderboard. A `BenchmarkRun` object is created from the evaluation response and submitted using the `submitReport` method from `LeaderboardService`.
2023-09-20 19:36:25 -07:00
hunteraraujo
1a471b73cd Fix _leaderboardBaseUrl 2023-09-20 14:44:29 -07:00