Commit Graph

177 Commits (remove-git-from-cli)

Author SHA1 Message Date
hunteraraujo e1a5a2a481 Clear skill tree state when initializing tree 2023-09-10 15:12:52 -07:00
hunteraraujo 19db097709 ChangeNotifierProvider for SkillTreeViewModel 2023-09-10 14:45:37 -07:00
hunteraraujo 60264d68b5 Integrate SkillTreeViewModel into MainLayout 2023-09-10 14:45:21 -07:00
hunteraraujo 70a05ec82a Replace Placeholder SkillTreeView with Full Implementation
This commit replaces the placeholder implementation of the SkillTreeView class with a complete, functional version.

Features:
- Initializes the skill tree from the SkillTreeViewModel during `initState`.
- Dynamically creates Node and Edge objects for GraphView based on ViewModel data.
- Utilizes the TreeNodeView to render individual nodes.
- Integrates node selection functionality from the ViewModel.
- Adds InteractiveViewer for zoom and pan capabilities.

The new SkillTreeView is designed to work closely with SkillTreeViewModel to manage and display the skill tree.
2023-09-10 14:42:15 -07:00
hunteraraujo 90e73b83a1 Implement TreeNodeView with selection functionality
This commit adds the TreeNodeView class, a StatelessWidget responsible for rendering individual nodes in the skill tree.

Features:
- Displays the node ID in the view.
- Uses the Provider package to interact with the SkillTreeViewModel.
- Includes an onTap method to toggle node selection state.
- Updates the UI to reflect the selected state by changing the background color.

The TreeNodeView is designed to work in conjunction with SkillTreeViewModel to manage node selection states.
2023-09-10 14:33:42 -07:00
hunteraraujo d6b0894c6b Add SkillTreeViewModel for managing skill tree state
The SkillTreeViewModel class serves as the view model for the skill tree and extends Flutter's ChangeNotifier for state management.

Features include:
- Storing and managing the list of SkillTreeNodes and SkillTreeEdges.
- Managing the state of the selected node.
- Initializing the skill tree with predefined nodes and edges.
- Methods for toggling node selection, allowing for only a single node to be selected at any given time.

The view model utilizes the GraphView package for visualization and layout.
2023-09-10 14:28:17 -07:00
hunteraraujo a6b791c4f0 Update SkillTreeNode data model for skill tree
The SkillTreeNode model represents a single node in the skill tree.
It includes:
- Node ID
- Node color
2023-09-10 13:58:02 -07:00
hunteraraujo e16e48f893 Add SkillTreeEdge data model for skill tree
The SkillTreeEdge model represents the relationship between different skill nodes.
It includes:
- Edge ID
- Source node ID
- Destination node ID
- Arrows property to indicate directionality
2023-09-10 13:57:25 -07:00
hunteraraujo 5726613dfb Add SkillNodeData data model for skill tree
The SkillNodeData model aggregates various data related to a skill node.
It includes:
- Node name
- Node category
- Associated task
- Dependencies
- Cutoff value
- Ground object for evaluation details
- Info object for metadata
2023-09-10 13:56:59 -07:00
hunteraraujo 5ed6a08c22 Add Info data model for skill tree
The Info data model holds metadata about a skill node.
It includes:
- The difficulty level of the skill node
- A description of the skill node
- A list of potential side effects related to the skill node
2023-09-10 13:52:02 -07:00
hunteraraujo e13f7ca757 Add Ground data model for skill tree
The Ground data model stores evaluation information for each skill node.
It includes:
- The answer to be evaluated
- A list of terms that should be contained in the answer
- A list of terms that should not be contained in the answer
- A list of associated files
- A map for additional evaluation criteria
2023-09-10 13:51:36 -07:00
hunteraraujo b00be97030 Create placeholder SkillTreeView 2023-09-08 08:53:49 -07:00
hunteraraujo 97bd56b263 Move SIdeBarView to new directory 2023-09-08 08:53:25 -07:00
hunteraraujo 1320ce66d4 Integrate SideBarView into MainLayout for Wider Screens 2023-09-07 17:24:57 -07:00
hunteraraujo 0e977e6818 Add SideBarView with Toggleable Icons 2023-09-07 17:24:48 -07:00
hunteraraujo 3ccffdab19 Implement artifact download functionality in Flutter web app
Added the downloadArtifact method to the ChatService class, enabling the download of artifacts in the Flutter web application. The function uses the dart:html package to trigger a browser-based file download, allowing users to save artifacts locally. This implementation complements the existing REST API and enhances the user experience.
2023-09-06 16:08:51 -07:00
hunteraraujo 17f284a9ac Add auto-scroll behavior to chat message list
Implemented auto-scrolling in the chat message list to ensure that the view scrolls down to the most recent message when a new chat is added. This behavior only triggers if the user is already at the bottom of the list, providing a seamless user experience.
2023-09-06 15:05:26 -07:00
hunteraraujo a933f117fb Add the ability to deselect a task 2023-09-06 12:21:30 -07:00
hunteraraujo a8023c2598 Fix empty user chats 2023-09-06 12:15:57 -07:00
hunteraraujo 27e9868aa5 End continuous mode when clicking text field 2023-09-06 12:10:57 -07:00
hunteraraujo 2e62c517e2 Include tooltips for single message + continuous mode 2023-09-06 12:04:52 -07:00
hunteraraujo 4e499c5bac Deselect text field after user goes into continuous mode 2023-09-06 11:56:45 -07:00
hunteraraujo d3b4b50a5c Update parameters for ChatInputField to support continuous mode 2023-09-06 11:46:43 -07:00
hunteraraujo d80053e8dc Refactor ChatInputField to Support Continuous Mode
- Added a new boolean state `isContinuousMode` to the `ChatInputField` widget to handle the continuous mode feature.
- Introduced a new callback function `onContinuousModePressed` to manage the state of the continuous mode from an external source.
- Conditionally rendered the send button based on the `isContinuousMode` state.
- Enhanced the UI by adding a button to toggle between continuous mode and single message mode, which triggers the `onContinuousModePressed` callback.
2023-09-06 11:46:03 -07:00
hunteraraujo 5cd1abab94 Implement Continuous Mode in ChatViewModel
Added a new state variable `_isContinuousMode` to the ChatViewModel to track whether the chat is in continuous mode or not. This state is toggled via a setter and triggers UI updates through `notifyListeners()`.

Enhanced the `sendChatMessage` method to automatically send a null message if continuous mode is active, triggering the next step in the chat.
2023-09-06 11:42:45 -07:00
hunteraraujo a7c37da713 Make input and additionalInput optional in StepRequestBody
Updated the StepRequestBody class to allow both 'input' and 'additionalInput' to be optional. Added logic in toJson() method to return an empty JSON object if both fields are null.
2023-09-06 11:41:23 -07:00
hunteraraujo ef2d64513b Merge commit 'e5d30a9f6d0854e20049309333c2f637cd03025c' as 'frontend' 2023-09-06 11:22:37 -07:00