npm package: @flowlitics/framework
Description: This framework enables the definition, management, and execution of complex processes through structured collaboration of AI Agents
Author: Flowlitics
Latest version: 0.2.2
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![opensource](https://img.shields.io/badge/open-source-blue)](https://en.wikipedia.org/wiki/Open_source)
[![npm](https://img.shields.io/badge/package-npm-red)](https://www.npmjs.com/package/@flowlitics/framework)

# Flowlitics Framework

This project introduces a TypeScript (TS) framework designed to define, manage, and execute complex processes through structured collaboration of agent "teams" or "swarms". A key feature is the ability to integrate both Artificial Intelligence (AI) agents and human operators within the same workflow.

## ⚠️ Not Production-Ready

At this stage, this framework will undergo continuous evolution, with significant changes to its structure and functionality. Features are actively developed, tested, and revised, which means that stability is not guaranteed at the moment. Use it with caution, as major and critical changes may occur!

❤️ Interested in **collaborating** or **sponsoring**? You're welcome to join! For more information, please see the bottom of this README.

## Core Concepts

### Teams and Context

- The framework is based on creating Teams. Each team operates within a specific context or pursues a defined purpose.
- Team composition is flexible: a member (whether AI or human) can be part of multiple teams simultaneously.

### Orchestrator

An Orchestrator, implemented as a dedicated AI agent, supervises and coordinates the overall execution of defined processes.

### Processes, Tasks and Steps

- A Process is the main work unit and consists of a set of Tasks.
- Each Task has an Owner, who is responsible for its overall completion and final validation of the result.
- Tasks can be broken down into smaller units called Steps.
  Each Step has a specific Responsible, who physically executes the action required by the step and provides its output.

## Execution Flow and Dependencies

### Step Dependencies

- Steps within a task can be dependent or independent.
- A dependent step requires the completion of one or more previous steps before it can be executed.
- An independent step can be executed in parallel or without waiting for specific steps within the same task.

### Task Completion

A task is considered ready for finalization (final execution or validation by the Owner) only when all its steps (if present) have been completed by their respective responsible parties.

### Task Dependencies

- Tasks can also have mutual dependencies.
- A dependent task can only start after other tasks specified as prerequisites have been completed.
- An independent task (without dependencies) can start as soon as the general process conditions allow.

## Task Types

The framework defines several task types to model complex flows.

### Execution Tasks

Represent a standard action or work to be performed.

### If-Else Tasks (Decision)

Allow introduction of decision logic into the process. The Owner of an If-Else task, based on received inputs (likely results from previous tasks/steps), decides which "branch" of the process to activate, selecting the next task or sequence of tasks to execute.

## Visualization

The entire structure of a process, with its tasks, steps, and dependencies, can be ideally represented and understood as a flowchart, facilitating workflow design and analysis.

## Objective

The main purpose is to provide a robust and flexible tool for modeling articulated workflows, effectively orchestrating collaboration between artificial intelligence and people to achieve complex goals.

## Visual Representation Example

Thanks to [Mermaid](https://mermaid.js.org/) [Live Editor](https://mermaid.live/edit) [Syntax](https://mermaid.js.org/syntax/flowchart.html), it is also possible to graphically represent the flow of all involved processes.

![Visual Example](https://github.com/flowlitics/framework/blob/main/screenshots/visual-example.png?raw=true)

## Support the project

This open-source project grows thanks to everyone's support. If you appreciate this work and want to keep it active, consider making a small donation. Even a small contribution, like the cost of a coffee ☕, can make a difference!

### Why Donate?

- You support the continuous development and maintenance of the project.
- You contribute to creating new features and improvements.

### How to Donate?

You can make a donation through:

**Lighjtning Network**
roaringcent59@walletofsatoshi.com

**Bitcoin address**
[bc1qtly7cqy8zxzs79ksmdsfnz7hjyhhd3t2f9mvvj](https://www.blockchain.com/explorer/addresses/btc/bc1qtly7cqy8zxzs79ksmdsfnz7hjyhhd3t2f9mvvj)

**Ethereum address**
[0xa4A79Be4e7AE537Cb9ee65DB92E6368425b2d63D](https://etherscan.io/address/0xa4A79Be4e7AE537Cb9ee65DB92E6368425b2d63D)

Thank you for your support! ❤️