big-AGI
big-AGI copied to clipboard
App: Patterns
This new top-level application will be a workflow designer and runner.
This will allow to cut down on time for repeated workflows in big-AGI. The graph is drawn as a no-code alternative to writing scripts, and with reusability and scalability in mind.
Components
- Node Composer: This is the core of the project, allowing users to create, edit, and manage nodes and their connections. It should support a variety of node types and allow for easy extension with new types. The composer should provide an intuitive and responsive user interface, with features like drag-and-drop, zoom, pan, and undo/redo.
- Execution Engine: This component is responsible for running the workflows defined by the node composer. It should support both synchronous and asynchronous tasks, with the ability to pause, resume, and monitor progress. The engine should be designed to run both on the client (for the initial version) and on the server (for future versions).
Requirements (to be refined later)
-
Node Composer Interface:
- [ ] Node Creation: Ability to create nodes of various types.
- [ ] Node Modification: Ability to edit properties of nodes including their type, inputs, outputs, and position.
- [ ] Node Management: Ability to delete nodes and manage their connections.
- [ ] Node Customization: Ability to define custom node types with user-defined logic.
- [ ] User Interaction: Support for user actions such as drag-and-drop, zoom, and pan.
-
Execution Engine Interface:
- [ ] Workflow Execution: Ability to run workflows defined by the Node Composer.
- [ ] Synchronous and Asynchronous Operations: Support for both synchronous and asynchronous tasks.
- [ ] User Interaction: Ability to pause, resume, and handle user input during execution.
- [ ] Live Debugging: Ability to step through the execution, inspect the current state of each node, and modify values on the fly.
- [ ] Interactive Execution: Support for a mode where users can manually advance the execution step by step, inspect the current state, and intervene if necessary.
-
State Management Interface:
- [ ] Application State: Management of the current diagram, selected nodes/edges, and execution state.
- [ ] Execution Snapshots: Ability to save and load the execution state at any point.
- [ ] Node Versioning: Support for storing old versions of a node's logic when it changes, and allowing users to select which version to use.