## I. Introduction

By default, the following nodes are always present in your workspace to help you get started:

### Session Info Node
- **Purpose**: Displays current session information, such as session count and details.
- **Usage**: Provides essential session-related data to enhance user experience.

### Toolbar Node
- **Purpose**: Provides quick access to tools and options.
- **Usage**: Use this node to enhance productivity by accessing frequently used functions.

### Application Bar Node
- **Purpose**: Creates a navigation or application bar.
- **Usage**: Enhances the user interface with organized navigation elements.

These nodes are foundational and provide essential functionality to help you begin your workflow efficiently.

## II. How to Add New Nodes

To create new nodes related to your workflow, you can use the Toolbar. Here's how you can add nodes like LLM, Thread, Vector Database, and more:

![Toolbox](./docs/toolbox-node.png)
*Example*: Toolbox with to add an LLM Node.

The application also supports some default applications like VSLite and Editor, etc which can be added in a similar manner to enhance your workflow with embedded development environments.

![Adding Applications](./docs/application-bar-node.png)
*Example*: Application bar to add a VSLite App Node

## III. Interaction with Nodes

Once you have added nodes to your workspace, you can interact with them to perform various actions. Here are some common interactions you can have with nodes:
* Drag and drop nodes to rearrange them in your workspace.
* Connect nodes to create a workflow by dragging a line from one node's output to another node's input.

## IV. Delete node

Delete nodes by selecting them and pressing the delete key or using the delete option from node header.

![Node Interaction](./docs/node-interaction.gif)

## V. Create Standalone Application

For some nodes, you can convert a node and connections to a standalone application by using the option from node header.

![Create standalone application](./docs/create-standalone-application.gif)

## VI. Supported Nodes

Our application supports a variety of nodes, each designed to fulfill specific roles in your workflow. Here's a brief overview of each node type:

### LLM Node
- **Purpose**: Integrate language models for processing and generating text.
- **Usage**: Ideal for tasks involving natural language understanding and generation.

### Toolbar Node
- **Purpose**: Provides quick access to tools and options.
- **Usage**: Use this node to enhance productivity by accessing frequently used functions.

### Thread Node
- **Purpose**: Organize and manage conversation threads.
- **Usage**: Perfect for maintaining structured discussions or dialogues.

### Message Node
- **Purpose**: Send and receive messages.
- **Usage**: Utilize this node for communication within your application.

### Prompt Node
- **Purpose**: Create prompts for user inputs or actions.
- **Usage**: Employ this node to guide users through specific tasks or workflows.

### Session Info Node
- **Purpose**: Display session-related information.
- **Usage**: Keep track of session details to enhance user experience.

### Schema Node
- **Purpose**: Define and manage data schemas.
- **Usage**: Use this node for structuring data in your application.

### CSV Data Node
- **Purpose**: Handle CSV data inputs and outputs.
- **Usage**: Ideal for tasks involving data import/export in CSV format.

### Tool Node
- **Purpose**: Define custom tools and functionalities.
- **Usage**: Extend your application's capabilities with specialized tools.

### Embedding Node
- **Purpose**: Utilize embedding models for data representation.
- **Usage**: Great for applications involving machine learning and data analysis.

### Vector Database Node
- **Purpose**: Manage and query vector databases.
- **Usage**: Use this node for efficient handling of vector data.

### JSONL Data Node
- **Purpose**: Work with JSONL (JSON Lines) data format.
- **Usage**: Suitable for applications requiring structured data processing.

### Application Bar Node
- **Purpose**: Create a navigation or application bar.
- **Usage**: Enhance user interface with organized navigation elements.

### Shape Node
- **Purpose**: Add geometric shapes to your design.
- **Usage**: Use this node for visual representation and design enhancements.

### Circle Node
- **Purpose**: Specifically add circular shapes.
- **Usage**: Ideal for highlighting or marking specific areas.

### Triangle Node
- **Purpose**: Specifically add triangular shapes.
- **Usage**: Use for directional indicators or design elements.

### Editor App Node
- **Purpose**: Integrate a text or code editor.
- **Usage**: Perfect for applications requiring in-app editing capabilities.

### Placeholder Node
- **Purpose**: Reserve space for future content or features.
- **Usage**: Use this node to plan and organize your layout.

### Code Container App Node
- **Purpose**: Embed and run code snippets.
- **Usage**: Ideal for applications that involve coding and development.

### VSLite App Node
- **Purpose**: Integrate a lightweight visual studio-like environment.
- **Usage**: Enhance development workflows with an embedded IDE.

### MCP Node
- **Purpose**: Connect to MCP server to listing tools
- **Usage**: Under development

---

## Additional Resources

- [Node connections](./#/document/connections "<_self>")
- [Get started example](./#/document/get-started "<_self>")

<br />
<br />
<br />
<br />
<br />
