aboutsummaryrefslogtreecommitdiff
path: root/frontend
diff options
context:
space:
mode:
authorGravatar hunteraraujo <hunter_araujo@msn.com> 2023-10-08 22:34:52 -0700
committerGravatar hunteraraujo <hunter_araujo@msn.com> 2023-10-08 22:34:52 -0700
commit51ebe2407d1572c238b96b9b800abb8fc8dbb6b7 (patch)
treefb4fd911065dac668feaed2afeef960645339547 /frontend
parentRemove duplicate functionality from SkillTreeViewModel (diff)
downloadAuto-GPT-51ebe2407d1572c238b96b9b800abb8fc8dbb6b7.tar.gz
Auto-GPT-51ebe2407d1572c238b96b9b800abb8fc8dbb6b7.tar.bz2
Auto-GPT-51ebe2407d1572c238b96b9b800abb8fc8dbb6b7.zip
Integrate TaskQueueViewModel throughout application
Diffstat (limited to 'frontend')
-rw-r--r--frontend/lib/main.dart5
-rw-r--r--frontend/lib/models/benchmark/benchmark_task_status.dart1
-rw-r--r--frontend/lib/views/chat/chat_view.dart3
-rw-r--r--frontend/lib/views/side_bar/side_bar_view.dart17
-rw-r--r--frontend/lib/views/skill_tree/tree_node_view.dart15
-rw-r--r--frontend/lib/views/task_queue/task_queue_view.dart12
6 files changed, 38 insertions, 15 deletions
diff --git a/frontend/lib/main.dart b/frontend/lib/main.dart
index 76b0564c4..da026b6bf 100644
--- a/frontend/lib/main.dart
+++ b/frontend/lib/main.dart
@@ -1,5 +1,6 @@
import 'package:auto_gpt_flutter_client/services/leaderboard_service.dart';
import 'package:auto_gpt_flutter_client/viewmodels/settings_viewmodel.dart';
+import 'package:auto_gpt_flutter_client/viewmodels/task_queue_viewmodel.dart';
import 'package:auto_gpt_flutter_client/views/auth/firebase_auth_view.dart';
import 'package:flutter/material.dart';
import 'views/main_layout.dart';
@@ -97,7 +98,9 @@ class MyApp extends StatelessWidget {
create: (context) => TaskViewModel(
Provider.of<TaskService>(context, listen: false))),
ChangeNotifierProvider(
- create: (context) => SkillTreeViewModel(
+ create: (context) => SkillTreeViewModel()),
+ ChangeNotifierProvider(
+ create: (context) => TaskQueueViewModel(
Provider.of<BenchmarkService>(context, listen: false),
Provider.of<LeaderboardService>(context, listen: false)),
),
diff --git a/frontend/lib/models/benchmark/benchmark_task_status.dart b/frontend/lib/models/benchmark/benchmark_task_status.dart
index c70147883..60f892a6d 100644
--- a/frontend/lib/models/benchmark/benchmark_task_status.dart
+++ b/frontend/lib/models/benchmark/benchmark_task_status.dart
@@ -1,3 +1,4 @@
+// TODO: Put more thought into task status vs. benchmark task status
enum BenchmarkTaskStatus {
notStarted,
inProgress,
diff --git a/frontend/lib/views/chat/chat_view.dart b/frontend/lib/views/chat/chat_view.dart
index 68a2f73e0..f54d37c6a 100644
--- a/frontend/lib/views/chat/chat_view.dart
+++ b/frontend/lib/views/chat/chat_view.dart
@@ -1,6 +1,7 @@
import 'package:auto_gpt_flutter_client/models/message_type.dart';
import 'package:auto_gpt_flutter_client/viewmodels/settings_viewmodel.dart';
import 'package:auto_gpt_flutter_client/viewmodels/skill_tree_viewmodel.dart';
+import 'package:auto_gpt_flutter_client/viewmodels/task_queue_viewmodel.dart';
import 'package:auto_gpt_flutter_client/viewmodels/task_viewmodel.dart';
import 'package:auto_gpt_flutter_client/views/chat/agent_message_tile.dart';
import 'package:auto_gpt_flutter_client/views/chat/chat_input_field.dart';
@@ -103,7 +104,7 @@ class _ChatViewState extends State<ChatView> {
),
const SizedBox(height: 10),
LoadingIndicator(
- isLoading: Provider.of<SkillTreeViewModel>(context, listen: true)
+ isLoading: Provider.of<TaskQueueViewModel>(context, listen: true)
.isBenchmarkRunning ||
widget.viewModel.isWaitingForAgentResponse),
const SizedBox(height: 10),
diff --git a/frontend/lib/views/side_bar/side_bar_view.dart b/frontend/lib/views/side_bar/side_bar_view.dart
index 7f224ca41..66f164c3d 100644
--- a/frontend/lib/views/side_bar/side_bar_view.dart
+++ b/frontend/lib/views/side_bar/side_bar_view.dart
@@ -1,5 +1,5 @@
import 'package:auto_gpt_flutter_client/viewmodels/settings_viewmodel.dart';
-import 'package:auto_gpt_flutter_client/viewmodels/skill_tree_viewmodel.dart';
+import 'package:auto_gpt_flutter_client/viewmodels/task_queue_viewmodel.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
@@ -22,8 +22,8 @@ class SideBarView extends StatelessWidget {
@override
Widget build(BuildContext context) {
// TODO: should we pass this in as a dependency?
- final skillTreeViewModel =
- Provider.of<SkillTreeViewModel>(context, listen: true);
+ final taskQueueViewModel =
+ Provider.of<TaskQueueViewModel>(context, listen: true);
return Material(
child: ValueListenableBuilder(
valueListenable: selectedViewNotifier,
@@ -40,7 +40,7 @@ class SideBarView extends StatelessWidget {
? Colors.blue
: Colors.black,
icon: const Icon(Icons.chat),
- onPressed: skillTreeViewModel.isBenchmarkRunning
+ onPressed: taskQueueViewModel.isBenchmarkRunning
? null
: () => selectedViewNotifier.value = 'TaskView',
),
@@ -52,7 +52,7 @@ class SideBarView extends StatelessWidget {
? Colors.blue
: Colors.black,
icon: const Icon(Icons.emoji_events),
- onPressed: skillTreeViewModel.isBenchmarkRunning
+ onPressed: taskQueueViewModel.isBenchmarkRunning
? null
: () =>
selectedViewNotifier.value = 'SkillTreeView',
@@ -74,9 +74,10 @@ class SideBarView extends StatelessWidget {
IconButton(
splashRadius: 0.1,
iconSize: 25,
- icon: Icon(Icons.book, color: Color.fromRGBO(50, 120, 123, 1)),
- onPressed: () =>
- _launchURL('https://aiedge.medium.com/autogpt-forge-e3de53cc58ec'),
+ icon: Icon(Icons.book,
+ color: Color.fromRGBO(50, 120, 123, 1)),
+ onPressed: () => _launchURL(
+ 'https://aiedge.medium.com/autogpt-forge-e3de53cc58ec'),
tooltip: 'Learn how to build your own Agent',
),
IconButton(
diff --git a/frontend/lib/views/skill_tree/tree_node_view.dart b/frontend/lib/views/skill_tree/tree_node_view.dart
index ee2471152..83534144a 100644
--- a/frontend/lib/views/skill_tree/tree_node_view.dart
+++ b/frontend/lib/views/skill_tree/tree_node_view.dart
@@ -1,5 +1,6 @@
import 'package:auto_gpt_flutter_client/models/skill_tree/skill_tree_node.dart';
import 'package:auto_gpt_flutter_client/viewmodels/skill_tree_viewmodel.dart';
+import 'package:auto_gpt_flutter_client/viewmodels/task_queue_viewmodel.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@@ -21,8 +22,18 @@ class _TreeNodeViewState extends State<TreeNodeView> {
return GestureDetector(
onTap: () {
print('Node ${widget.node.id} clicked');
- Provider.of<SkillTreeViewModel>(context, listen: false)
- .toggleNodeSelection(widget.node.id);
+ final taskQueueViewModel =
+ Provider.of<TaskQueueViewModel>(context, listen: false);
+ if (!taskQueueViewModel.isBenchmarkRunning) {
+ final skillTreeViewModel =
+ Provider.of<SkillTreeViewModel>(context, listen: false);
+ skillTreeViewModel.toggleNodeSelection(widget.node.id);
+ taskQueueViewModel.updateSelectedNodeHierarchyBasedOnOption(
+ taskQueueViewModel.selectedOption,
+ skillTreeViewModel.selectedNode,
+ skillTreeViewModel.skillTreeNodes,
+ skillTreeViewModel.skillTreeEdges);
+ }
},
child: MouseRegion(
onEnter: (_) => setState(() => _isHovering = true),
diff --git a/frontend/lib/views/task_queue/task_queue_view.dart b/frontend/lib/views/task_queue/task_queue_view.dart
index 256245a92..11cdd1c4e 100644
--- a/frontend/lib/views/task_queue/task_queue_view.dart
+++ b/frontend/lib/views/task_queue/task_queue_view.dart
@@ -1,18 +1,19 @@
import 'package:auto_gpt_flutter_client/models/benchmark/benchmark_task_status.dart';
import 'package:auto_gpt_flutter_client/models/test_option.dart';
import 'package:auto_gpt_flutter_client/viewmodels/chat_viewmodel.dart';
+import 'package:auto_gpt_flutter_client/viewmodels/skill_tree_viewmodel.dart';
+import 'package:auto_gpt_flutter_client/viewmodels/task_queue_viewmodel.dart';
import 'package:auto_gpt_flutter_client/viewmodels/task_viewmodel.dart';
import 'package:auto_gpt_flutter_client/views/task_queue/leaderboard_submission_button.dart';
import 'package:auto_gpt_flutter_client/views/task_queue/leaderboard_submission_dialog.dart';
import 'package:auto_gpt_flutter_client/views/task_queue/test_suite_button.dart';
import 'package:flutter/material.dart';
-import 'package:auto_gpt_flutter_client/viewmodels/skill_tree_viewmodel.dart';
import 'package:provider/provider.dart';
class TaskQueueView extends StatelessWidget {
@override
Widget build(BuildContext context) {
- final viewModel = Provider.of<SkillTreeViewModel>(context);
+ final viewModel = Provider.of<TaskQueueViewModel>(context);
// Node hierarchy
final nodeHierarchy = viewModel.selectedNodeHierarchy ?? [];
@@ -102,8 +103,13 @@ class TaskQueueView extends StatelessWidget {
selectedOptionString: viewModel.selectedOption.description,
onOptionSelected: (selectedOption) {
print('Option Selected: $selectedOption');
+ final skillTreeViewModel =
+ Provider.of<SkillTreeViewModel>(context, listen: false);
viewModel.updateSelectedNodeHierarchyBasedOnOption(
- TestOptionExtension.fromDescription(selectedOption)!);
+ TestOptionExtension.fromDescription(selectedOption)!,
+ skillTreeViewModel.selectedNode,
+ skillTreeViewModel.skillTreeNodes,
+ skillTreeViewModel.skillTreeEdges);
},
onPlayPressed: (selectedOption) {
print('Starting benchmark with option: $selectedOption');