From 91d60b7b1c2b6717b6e6a9af6036b6dc2bb3feb6 Mon Sep 17 00:00:00 2001
From: evelynmitchell <efmphone@gmail.com>
Date: Fri, 24 Nov 2023 17:30:57 -0700
Subject: [PATCH 01/12] cicd, yamllint

---
 .flake8                                       |   2 +-
 .github/FUNDING.yml                           |  21 +--
 .github/dependabot.yml                        |   2 +-
 .github/labeler.yml                           |   8 +-
 .github/workflows/code_quality_control.yml    |  30 ----
 .github/workflows/cos_integration.yml         |  42 -----
 .github/workflows/docker-image.yml            |  15 +-
 .github/workflows/docs_test.yml               |  28 ----
 .../generator-generic-ossf-slsa3-publish.yml  |  66 --------
 .github/workflows/lint.yml                    |  24 ++-
 .github/workflows/lints.yml                   |  25 ---
 .github/workflows/makefile.yml                |  27 ---
 .github/workflows/pr_request_checks.yml       |   3 +-
 .github/workflows/pylint.yml                  |  23 ---
 .github/workflows/pyre.yml                    |  46 -----
 .github/workflows/python-app.yml              |  39 -----
 .github/workflows/python-publish.yml          |   8 +-
 .github/workflows/quality.yml                 |  23 ---
 .github/workflows/ruff.yml                    |   8 -
 .github/workflows/run_test.yml                |  23 ---
 .github/workflows/test.yml                    |  63 ++++++-
 .readthedocs.yml                              |   3 +-
 .yamllint                                     |   4 +
 mkdocs.yml                                    | 157 +++++++++---------
 24 files changed, 196 insertions(+), 494 deletions(-)
 delete mode 100644 .github/workflows/code_quality_control.yml
 delete mode 100644 .github/workflows/cos_integration.yml
 delete mode 100644 .github/workflows/docs_test.yml
 delete mode 100644 .github/workflows/generator-generic-ossf-slsa3-publish.yml
 delete mode 100644 .github/workflows/lints.yml
 delete mode 100644 .github/workflows/makefile.yml
 delete mode 100644 .github/workflows/pylint.yml
 delete mode 100644 .github/workflows/pyre.yml
 delete mode 100644 .github/workflows/python-app.yml
 delete mode 100644 .github/workflows/quality.yml
 delete mode 100644 .github/workflows/ruff.yml
 delete mode 100644 .github/workflows/run_test.yml
 create mode 100644 .yamllint

diff --git a/.flake8 b/.flake8
index d148ed3e..eedac54c 100644
--- a/.flake8
+++ b/.flake8
@@ -1,2 +1,2 @@
 [flake8]
-extend-ignore = E501, W292, W291
\ No newline at end of file
+extend-ignore = E501, W292, W291, W293
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
index c626b001..e3733b98 100644
--- a/.github/FUNDING.yml
+++ b/.github/FUNDING.yml
@@ -1,13 +1,14 @@
+---
 # These are supported funding model platforms
 
 github: [kyegomez]
-patreon: # Replace with a single Patreon username
-open_collective: # Replace with a single Open Collective username
-ko_fi: # Replace with a single Ko-fi username
-tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
-community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
-liberapay: # Replace with a single Liberapay username
-issuehunt: # Replace with a single IssueHunt username
-otechie: # Replace with a single Otechie username
-lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
-custom: #Nothing
+# patreon: # Replace with a single Patreon username
+# open_collective: # Replace with a single Open Collective username
+# ko_fi: # Replace with a single Ko-fi username
+# tidelift: # Replace with a single Tidelift platform-name/package-name
+# community_bridge: # Replace with a single Community Bridge project-name
+# liberapay: # Replace with a single Liberapay username
+# issuehunt: # Replace with a single IssueHunt username
+# otechie: # Replace with a single Otechie username
+# lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name
+# custom: #Nothing
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 34b75fb9..b523994a 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -1,3 +1,4 @@
+---
 # https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates
 
 version: 2
@@ -11,4 +12,3 @@ updates:
     directory: "/"
     schedule:
       interval: "weekly"
-
diff --git a/.github/labeler.yml b/.github/labeler.yml
index 72ccc40a..1fb9d7ec 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -1,12 +1,14 @@
+---
 # this is a config file for the github action labeler
 
 # Add 'label1' to any changes within 'example' folder or any subfolders
 example_change:
-- example/**
+  - example/**
 
 # Add 'label2' to any file changes within 'example2' folder
 example2_change: example2/*
 
-# Add label3 to any change to .txt files within the entire repository. Quotation marks are required for the leading asterisk
+# Add label3 to any change to .txt files within the entire repository.
+# Quotation marks are required for the leading asterisk
 text_files:
-- '**/*.txt'
\ No newline at end of file
+  - '**/*.txt'
diff --git a/.github/workflows/code_quality_control.yml b/.github/workflows/code_quality_control.yml
deleted file mode 100644
index a0a49572..00000000
--- a/.github/workflows/code_quality_control.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-name: Linting and Formatting
-
-on:
-  push:
-    branches:
-      - master
-
-jobs:
-  lint_and_format:
-    runs-on: ubuntu-latest
-
-    steps:
-      - name: Checkout code
-        uses: actions/checkout@v4
-
-      - name: Set up Python
-        uses: actions/setup-python@v4
-        with:
-          python-version: 3.x
-
-      - name: Install dependencies
-        run: pip install -r requirements.txt
-
-      - name: Find Python files
-        run: find swarms -name "*.py" -type f -exec autopep8 --in-place --aggressive --aggressive {} +
-
-      - name: Push changes
-        uses: ad-m/github-push-action@master
-        with:
-          github_token: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file
diff --git a/.github/workflows/cos_integration.yml b/.github/workflows/cos_integration.yml
deleted file mode 100644
index 3bfb587c..00000000
--- a/.github/workflows/cos_integration.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-name: Continuous Integration
-
-on:
-  push:
-    branches:
-      - master
-
-jobs:
-  test:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout code
-        uses: actions/checkout@v4
-
-      - name: Set up Python
-        uses: actions/setup-python@v4
-        with:
-          python-version: 3.x
-
-      - name: Install dependencies
-        run: pip install -r requirements.txt
-
-      - name: Run unit tests
-        run: pytest tests/unit
-
-      - name: Run integration tests
-        run: pytest tests/integration
-
-      - name: Run code coverage
-        run: pytest --cov=swarms tests/
-
-      - name: Run linters
-        run: pylint swarms
-
-      - name: Build documentation
-        run: make docs
-
-      - name: Validate documentation
-        run: sphinx-build -b linkcheck docs build/docs
-
-      - name: Run performance tests
-        run: find ./tests -name '*.py' -exec pytest {} \;
\ No newline at end of file
diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml
index 793d8e0e..6ed5bcba 100644
--- a/.github/workflows/docker-image.yml
+++ b/.github/workflows/docker-image.yml
@@ -1,18 +1,19 @@
+---
 name: Docker Image CI
 
-on:
+on:  # yamllint disable-line rule:truthy
   push:
-    branches: [ "master" ]
+    branches: ["master"]
   pull_request:
-    branches: [ "master" ]
+    branches: ["master"]
 
 jobs:
 
   build:
 
     runs-on: ubuntu-latest
-
+    name: Build Docker image
     steps:
-    - uses: actions/checkout@v4
-    - name: Build the Docker image
-      run: docker build . --file Dockerfile --tag my-image-name:$(date +%s)
+      - uses: actions/checkout@v4
+      - name: Build the Docker image
+        run: docker build . --file Dockerfile --tag my-image-name:$(date +%s)
diff --git a/.github/workflows/docs_test.yml b/.github/workflows/docs_test.yml
deleted file mode 100644
index 35d2ca91..00000000
--- a/.github/workflows/docs_test.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-name: Documentation Tests
-
-on:
-  push:
-    branches:
-      - master
-
-jobs:
-  test:
-    runs-on: ubuntu-latest
-
-    steps:
-      - name: Checkout code
-        uses: actions/checkout@v4
-
-      - name: Set up Python
-        uses: actions/setup-python@v4
-        with:
-          python-version: 3.x
-
-      - name: Install dependencies
-        run: pip install -r requirements.txt
-
-      - name: Build documentation
-        run: make docs
-
-      - name: Validate documentation
-        run: sphinx-build -b linkcheck docs build/docs
\ No newline at end of file
diff --git a/.github/workflows/generator-generic-ossf-slsa3-publish.yml b/.github/workflows/generator-generic-ossf-slsa3-publish.yml
deleted file mode 100644
index a36e782c..00000000
--- a/.github/workflows/generator-generic-ossf-slsa3-publish.yml
+++ /dev/null
@@ -1,66 +0,0 @@
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-
-# This workflow lets you generate SLSA provenance file for your project.
-# The generation satisfies level 3 for the provenance requirements - see https://slsa.dev/spec/v0.1/requirements
-# The project is an initiative of the OpenSSF (openssf.org) and is developed at
-# https://github.com/slsa-framework/slsa-github-generator.
-# The provenance file can be verified using https://github.com/slsa-framework/slsa-verifier.
-# For more information about SLSA and how it improves the supply-chain, visit slsa.dev.
-
-name: SLSA generic generator
-on:
-  workflow_dispatch:
-  release:
-    types: [created]
-
-jobs:
-  build:
-    runs-on: ubuntu-latest
-    outputs:
-      digests: ${{ steps.hash.outputs.digests }}
-
-    steps:
-      - uses: actions/checkout@v3
-
-      # ========================================================
-      #
-      # Step 1: Build your artifacts.
-      #
-      # ========================================================
-      - name: Build artifacts
-        run: |
-            # These are some amazing artifacts.
-            echo "artifact1" > artifact1
-            echo "artifact2" > artifact2
-
-      # ========================================================
-      #
-      # Step 2: Add a step to generate the provenance subjects
-      #         as shown below. Update the sha256 sum arguments
-      #         to include all binaries that you generate
-      #         provenance for.
-      #
-      # ========================================================
-      - name: Generate subject for provenance
-        id: hash
-        run: |
-          set -euo pipefail
-
-          # List the artifacts the provenance will refer to.
-          files=$(ls artifact*)
-          # Generate the subjects (base64 encoded).
-          echo "hashes=$(sha256sum $files | base64 -w0)" >> "${GITHUB_OUTPUT}"
-
-  provenance:
-    needs: [build]
-    permissions:
-      actions: read   # To read the workflow path.
-      id-token: write # To sign the provenance.
-      contents: write # To add assets to a release.
-    uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v1.4.0
-    with:
-      base64-subjects: "${{ needs.build.outputs.digests }}"
-      upload-assets: true # Optional: Upload to a new release
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 97aa4732..8a6f374c 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -1,19 +1,29 @@
+---
 # This is a basic workflow to help you get started with Actions
 
 name: Lint
 
-on: [push, pull_request]
+on: [push, pull_request]  # yamllint disable-line rule:truthy
 
 jobs:
+  yaml-lint:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Check out source repository
+        uses: actions/checkout@v4
+      - name: yaml Lint
+        uses: ibiqlik/action-yamllint@v3
   flake8-lint:
     runs-on: ubuntu-latest
-    name: Lint
+    name: flake8 Lint
     steps:
       - name: Check out source repository
         uses: actions/checkout@v4
       - name: Set up Python environment
-        uses: actions/setup-python@v4
-        with:
-          python-version: "3.11"
-      - name: flake8 Lint
-        uses: py-actions/flake8@v2
\ No newline at end of file
+        uses: py-actions/flake8@v2
+  ruff-lint:
+    runs-on: ubuntu-latest
+    name: ruff Lint
+    steps:
+      - uses: actions/checkout@v4
+      - uses: chartboost/ruff-action@v1
diff --git a/.github/workflows/lints.yml b/.github/workflows/lints.yml
deleted file mode 100644
index 216903d5..00000000
--- a/.github/workflows/lints.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-name: Linting
-
-on:
-  push:
-    branches:
-      - master
-
-jobs:
-  lint:
-    runs-on: ubuntu-latest
-
-    steps:
-      - name: Checkout code
-        uses: actions/checkout@v4
-
-      - name: Set up Python
-        uses: actions/setup-python@v4
-        with:
-          python-version: 3.x
-
-      - name: Install dependencies
-        run: pip install -r requirements.txt
-
-      - name: Run linters
-        run: pylint swarms
\ No newline at end of file
diff --git a/.github/workflows/makefile.yml b/.github/workflows/makefile.yml
deleted file mode 100644
index ab01451f..00000000
--- a/.github/workflows/makefile.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-name: Makefile CI
-
-on:
-  push:
-    branches: [ "master" ]
-  pull_request:
-    branches: [ "master" ]
-
-jobs:
-  build:
-
-    runs-on: ubuntu-latest
-
-    steps:
-    - uses: actions/checkout@v3
-
-    - name: configure
-      run: ./configure
-
-    - name: Install dependencies
-      run: make
-
-    - name: Run check
-      run: make check
-
-    - name: Run distcheck
-      run: make distcheck
diff --git a/.github/workflows/pr_request_checks.yml b/.github/workflows/pr_request_checks.yml
index 56b8c1f7..ad7b691f 100644
--- a/.github/workflows/pr_request_checks.yml
+++ b/.github/workflows/pr_request_checks.yml
@@ -1,3 +1,4 @@
+---
 name: Pull Request Checks
 
 on:
@@ -24,4 +25,4 @@ jobs:
       - name: Run tests and checks
         run: |
           find tests/ -name "*.py" | xargs pytest
-          pylint swarms
\ No newline at end of file
+          pylint swarms
diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml
deleted file mode 100644
index 3f3ba2e2..00000000
--- a/.github/workflows/pylint.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-name: Pylint
-
-on: [push]
-
-jobs:
-  build:
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        python-version: ["3.8", "3.9", "3.10"]
-    steps:
-    - uses: actions/checkout@v4
-    - name: Set up Python ${{ matrix.python-version }}
-      uses: actions/setup-python@v4
-      with:
-        python-version: ${{ matrix.python-version }}
-    - name: Install dependencies
-      run: |
-        python -m pip install --upgrade pip
-        pip install pylint
-    - name: Analysing the code with pylint
-      run: |
-        pylint $(git ls-files '*.py')
diff --git a/.github/workflows/pyre.yml b/.github/workflows/pyre.yml
deleted file mode 100644
index 5ff88856..00000000
--- a/.github/workflows/pyre.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-# This workflow uses actions that are not certified by GitHub.
-# They are provided by a third-party and are governed by
-# separate terms of service, privacy policy, and support
-# documentation.
-
-# This workflow integrates Pyre with GitHub's
-# Code Scanning feature.
-#
-# Pyre is a performant type checker for Python compliant with
-# PEP 484. Pyre can analyze codebases with millions of lines
-# of code incrementally โ€“ providing instantaneous feedback
-# to developers as they write code.
-#
-# See https://pyre-check.org
-
-name: Pyre
-
-on:
-  workflow_dispatch:
-  push:
-    branches: [ "master" ]
-  pull_request:
-    branches: [ "master" ]
-
-permissions:
-    contents: read
-
-jobs:
-  pyre:
-    permissions:
-      actions: read
-      contents: read
-      security-events: write
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v3
-        with:
-          submodules: true
-
-      - name: Run Pyre
-        uses: facebook/pyre-action@60697a7858f7cc8470d8cc494a3cf2ad6b06560d
-        with:
-          # To customize these inputs:
-          # See https://github.com/facebook/pyre-action#inputs
-          repo-directory: './'
-          requirements-path: 'requirements.txt'
diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml
deleted file mode 100644
index 1f634309..00000000
--- a/.github/workflows/python-app.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-# This workflow will install Python dependencies, run tests and lint with a single version of Python
-# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
-
-name: Python application
-
-on:
-  push:
-    branches: [ "master" ]
-  pull_request:
-    branches: [ "master" ]
-
-permissions:
-  contents: read
-
-jobs:
-  build:
-
-    runs-on: ubuntu-latest
-
-    steps:
-    - uses: actions/checkout@v4
-    - name: Set up Python 3.10
-      uses: actions/setup-python@v4
-      with:
-        python-version: "3.10"
-    - name: Install dependencies
-      run: |
-        python -m pip install --upgrade pip
-        pip install flake8 pytest
-        if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
-    - name: Lint with flake8
-      run: |
-        # stop the build if there are Python syntax errors or undefined names
-        flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
-        # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
-        flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
-    - name: Test with pytest
-      run: |
-        pytest
diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml
index c8f4ba0c..66beff23 100644
--- a/.github/workflows/python-publish.yml
+++ b/.github/workflows/python-publish.yml
@@ -1,7 +1,7 @@
-
+---
 name: Upload Python Package
 
-on:
+on:  # yamllint disable-line rule:truthy
   release:
     types: [published]
 
@@ -13,7 +13,7 @@ jobs:
 
     runs-on: ubuntu-latest
 
-    steps:
+   steps:
     - uses: actions/checkout@v4
     - name: Set up Python
       uses: actions/setup-python@v4
@@ -29,4 +29,4 @@ jobs:
       uses: pypa/gh-action-pypi-publish@b7f401de30cb6434a1e19f805ff006643653240e
       with:
         user: __token__
-        password: ${{ secrets.PYPI_API_TOKEN }}
\ No newline at end of file
+        password: ${{ secrets.PYPI_API_TOKEN }}
diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml
deleted file mode 100644
index 9b09cfa9..00000000
--- a/.github/workflows/quality.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-name: Quality
-
-on:
-  push:
-    branches: [ "master" ]
-  pull_request:
-    branches: [ "master" ]
-
-jobs:
-  lint:
-    runs-on: ubuntu-latest
-    strategy:
-      fail-fast: false
-    steps:
-      - name: Checkout actions
-        uses: actions/checkout@v4
-        with:
-          fetch-depth: 0
-      - name: Init environment 
-        uses: ./.github/actions/init-environment 
-      - name: Run linter
-        run: |
-          pylint `git diff --name-only --diff-filter=d origin/master HEAD | grep -E '\.py$' | tr '\n' ' '`
\ No newline at end of file
diff --git a/.github/workflows/ruff.yml b/.github/workflows/ruff.yml
deleted file mode 100644
index ef06d34a..00000000
--- a/.github/workflows/ruff.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-name: Ruff
-on: [ push, pull_request ]
-jobs:
-  ruff:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v4
-      - uses: chartboost/ruff-action@v1
diff --git a/.github/workflows/run_test.yml b/.github/workflows/run_test.yml
deleted file mode 100644
index 172dc64b..00000000
--- a/.github/workflows/run_test.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-name: Python application test
-
-on: [push]
-
-jobs:
-  build:
-
-    runs-on: ubuntu-latest
-
-    steps:
-    - uses: actions/checkout@v4
-    - name: Set up Python 3.8
-      uses: actions/setup-python@v4
-      with:
-        python-version: 3.8
-    - name: Install dependencies
-      run: |
-        python -m pip install --upgrade pip
-        pip install pytest
-        if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
-    - name: Run tests with pytest
-      run: |
-        find tests/ -name "*.py" | xargs pytest
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 65dc68d9..d9dafc76 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -1,3 +1,4 @@
+---
 name: test
 
 on:
@@ -9,7 +10,67 @@ on:
 env:
   POETRY_VERSION: "1.4.2"
 
-jobs:
+  test:
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        python-version:
+          - "3.8"
+          - "3.9"
+          - "3.10"
+          - "3.11"
+        test_type:
+          - "core"
+          - "extended"
+    steps:
+      - uses: actions/checkout@v4
+      - name: Set up Python ${{ matrix.python-version }}
+        uses: "snok/install-poetry@v1"
+        with:
+          python-version: ${{ matrix.python-version }}
+          poetry-version: "1.4.2"
+          cache-key: ${{ matrix.test_type }}
+          install-command: |
+              if [ "${{ matrix.test_type }}" == "core" ]; then
+                echo "Running core tests, installing dependencies with poetry..."
+                poetry install
+              else
+                echo "Running extended tests, installing dependencies with poetry..."
+                poetry install -E extended_testing
+              fi
+      - name: Run ${{matrix.test_type}} tests
+        run: |
+          if [ "${{ matrix.test_type }}" == "core" ]; then
+            make test
+          else
+            make extended_tests
+          fi
+        shell: bash
+    name: Python ${{ matrix.python-version }} ${{ matrix.test_type }}
+    steps:
+      - uses: actions/checkout@v4
+      - name: Set up Python ${{ matrix.python-version }}
+        uses: "./.github/actions/poetry_setup"
+        with:
+          python-version: ${{ matrix.python-version }}
+          poetry-version: "1.4.2"
+          cache-key: ${{ matrix.test_type }}
+          install-command: |
+              if [ "${{ matrix.test_type }}" == "core" ]; then
+                echo "Running core tests, installing dependencies with poetry..."
+                poetry install
+              else
+                echo "Running extended tests, installing dependencies with poetry..."
+                poetry install -E extended_testing
+              fi
+      - name: Run ${{matrix.test_type}} tests
+        run: |
+          if [ "${{ matrix.test_type }}" == "core" ]; then
+            make test
+          else
+            make extended_tests
+          fi
+        shell: bash
   build:
     runs-on: ubuntu-latest
     strategy:
diff --git a/.readthedocs.yml b/.readthedocs.yml
index fbdc74ec..1c969083 100644
--- a/.readthedocs.yml
+++ b/.readthedocs.yml
@@ -1,3 +1,4 @@
+---
 version: 2
 
 build:
@@ -10,4 +11,4 @@ mkdocs:
 
 python:
    install:
-   - requirements: requirements.txt
\ No newline at end of file
+   - requirements: requirements.txt
diff --git a/.yamllint b/.yamllint
new file mode 100644
index 00000000..c58fcd8f
--- /dev/null
+++ b/.yamllint
@@ -0,0 +1,4 @@
+rules:
+    line-length: 
+        level: warning
+        allow-non-breakable-inline-mappings: true
\ No newline at end of file
diff --git a/mkdocs.yml b/mkdocs.yml
index e70e1a39..8616cc2f 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -1,3 +1,4 @@
+---
 site_name: Swarms Docs
 plugins:
   - glightbox
@@ -19,15 +20,15 @@ extra:
     - icon: fontawesome/brands/python
       link: https://pypi.org/project/Swarms/
 theme:
-    name: material
-    custom_dir: docs/overrides
-    logo: assets/img/SwarmsLogoIcon.png
-    palette:
-      # Palette toggle for light mode
+  name: material
+  custom_dir: docs/overrides
+  logo: assets/img/SwarmsLogoIcon.png
+  palette:
+    # Palette toggle for light mode
     - scheme: default
       primary: black
       toggle:
-        icon: material/brightness-7 
+        icon: material/brightness-7
         name: Switch to dark mode
     # Palette toggle for dark mode
     - scheme: slate
@@ -35,14 +36,14 @@ theme:
       toggle:
         icon: material/brightness-4
         name: Switch to light mode
-    features:
-        - content.code.copy
-        - content.code.annotate
-        - navigation.tabs
-        - navigation.sections
-        - navigation.expand
-        - navigation.top
-        - announce.dismiss
+  features:
+    - content.code.copy
+    - content.code.annotate
+    - navigation.tabs
+    - navigation.sections
+    - navigation.expand
+    - navigation.top
+    - announce.dismiss
 markdown_extensions:
   - pymdownx.highlight:
       anchor_linenums: true
@@ -58,25 +59,25 @@ markdown_extensions:
   - def_list
   - footnotes
 nav:
-- Home:
-    - Overview: "index.md"
-    - Contributing: "contributing.md"
-    - Docker Container Setup: "docker_setup.md"
-- Swarms:
-  - Overview: "swarms/index.md"
+  - Home:
+      - Overview: "index.md"
+  - Contributing: "contributing.md"
+  - Docker Container Setup: "docker_setup.md"
+  - Swarms:
+      - Overview: "swarms/index.md"
   - swarms.swarms:
-    - AbstractSwarm: "swarms/swarms/abstractswarm.md"
-    - GodMode: "swarms/swarms/godmode.md"
-    - Groupchat: "swarms/swarms/groupchat.md"
+      - AbstractSwarm: "swarms/swarms/abstractswarm.md"
+      - GodMode: "swarms/swarms/godmode.md"
+      - Groupchat: "swarms/swarms/groupchat.md"
   - swarms.workers:
-    - Overview: "swarms/workers/index.md"
-    - AbstractWorker: "swarms/workers/abstract_worker.md"
+      - Overview: "swarms/workers/index.md"
+      - AbstractWorker: "swarms/workers/abstract_worker.md"
   - swarms.agents:
-    - AbstractAgent: "swarms/agents/abstract_agent.md"
-    - OmniModalAgent: "swarms/agents/omni_agent.md"
+      - AbstractAgent: "swarms/agents/abstract_agent.md"
+      - OmniModalAgent: "swarms/agents/omni_agent.md"
   - swarms.models:
-    - Language:  
-      - Overview: "swarms/models/index.md"
+      - Language:
+          - Overview: "swarms/models/index.md"
       - HuggingFaceLLM: "swarms/models/huggingface.md"
       - Anthropic: "swarms/models/anthropic.md"
       - OpenAI: "swarms/models/openai.md"
@@ -84,54 +85,54 @@ nav:
       - BioGPT: "swarms/models/biogpt.md"
       - MPT7B: "swarms/models/mpt.md"
       - Mistral: "swarms/models/mistral.md"
-    - MultiModal:
-      - Fuyu: "swarms/models/fuyu.md"
-      - Vilt: "swarms/models/vilt.md"
-      - Idefics: "swarms/models/idefics.md"
-      - BingChat: "swarms/models/bingchat.md"
-      - Kosmos: "swarms/models/kosmos.md"
-      - Nougat: "swarms/models/nougat.md"
-      - Dalle3: "swarms/models/dalle3.md"
-      - GPT4V: "swarms/models/gpt4v.md"
-      - LayoutLMDocumentQA: "swarms/models/layoutlm_document_qa.md"
-      - DistilWhisperModel: "swarms/models/distilled_whisperx.md"
-      - ElevenLabsText2SpeechTool: "swarms/models/elevenlabs.md"
+      - MultiModal:
+          - Fuyu: "swarms/models/fuyu.md"
+          - Vilt: "swarms/models/vilt.md"
+          - Idefics: "swarms/models/idefics.md"
+          - BingChat: "swarms/models/bingchat.md"
+          - Kosmos: "swarms/models/kosmos.md"
+          - Nougat: "swarms/models/nougat.md"
+          - Dalle3: "swarms/models/dalle3.md"
+          - GPT4V: "swarms/models/gpt4v.md"
+          - LayoutLMDocumentQA: "swarms/models/layoutlm_document_qa.md"
+          - DistilWhisperModel: "swarms/models/distilled_whisperx.md"
+          - ElevenLabsText2SpeechTool: "swarms/models/elevenlabs.md"
   - swarms.structs:
-    - Overview: "swarms/structs/overview.md"
-    - AutoScaler: "swarms/swarms/autoscaler.md"
-    - Flow: "swarms/structs/flow.md"
-    - SequentialWorkflow: 'swarms/structs/sequential_workflow.md'
+      - Overview: "swarms/structs/overview.md"
+      - AutoScaler: "swarms/swarms/autoscaler.md"
+      - Flow: "swarms/structs/flow.md"
+      - SequentialWorkflow: 'swarms/structs/sequential_workflow.md'
   - swarms.memory:
-    - PineconeVectorStoreStore: "swarms/memory/pinecone.md"
-    - PGVectorStore: "swarms/memory/pg.md"
-  # - swarms.chunkers: 
-  #   - BaseChunker: "swarms/chunkers/basechunker.md"
-  #   - PdfChunker: "swarms/chunkers/pdf_chunker.md"
-- Guides:
-    - Overview: "examples/index.md"
-    - Agents:
-      - Flow: "examples/flow.md"
-      - SequentialWorkflow: "examples/reliable_autonomous_agents.md"
-      - OmniAgent: "examples/omni_agent.md"
-    - 2O+ Autonomous Agent Blogs: "examples/ideas.md"
-- Applications:
-    - CustomerSupport: 
-      - Overview: "applications/customer_support.md"
-    - Marketing: 
-      - Overview: "applications/marketing_agencies.md" 
-- Corporate:
-    - FAQ: "corporate/faq.md"
-    - Purpose: "corporate/purpose.md"
-    - Roadmap: "corporate/roadmap.md"
-    - Weaknesses: "corporate/failures.md"
-    - Design: "corporate/design.md"
-    - Flywheel: "corporate/flywheel.md"
-    - Bounties: "corporate/bounties.md"
-    - Metric: "corporate/metric.md"
-    - Distribution: "corporate/distribution"
-    - Research: "corporate/research.md"
-    - Demos: "corporate/demos.md"
-    - Architecture: "corporate/architecture.md"
-    - Checklist: "corporate/checklist.md"
-    - Hiring: "corporate/hiring.md"
-    - SwarmCloud: "corporate/swarm_cloud.md"
+      - PineconeVectorStoreStore: "swarms/memory/pinecone.md"
+      - PGVectorStore: "swarms/memory/pg.md"
+# - swarms.chunkers:
+#   - BaseChunker: "swarms/chunkers/basechunker.md"
+#   - PdfChunker: "swarms/chunkers/pdf_chunker.md"
+  - Guides:
+      - Overview: "examples/index.md"
+      - Agents:
+          - Flow: "examples/flow.md"
+          - SequentialWorkflow: "examples/reliable_autonomous_agents.md"
+          - OmniAgent: "examples/omni_agent.md"
+      - 2O+ Autonomous Agent Blogs: "examples/ideas.md"
+  - Applications:
+      - CustomerSupport:
+          - Overview: "applications/customer_support.md"
+      - Marketing:
+          - Overview: "applications/marketing_agencies.md"
+  - Corporate:
+      - FAQ: "corporate/faq.md"
+      - Purpose: "corporate/purpose.md"
+      - Roadmap: "corporate/roadmap.md"
+      - Weaknesses: "corporate/failures.md"
+      - Design: "corporate/design.md"
+      - Flywheel: "corporate/flywheel.md"
+      - Bounties: "corporate/bounties.md"
+      - Metric: "corporate/metric.md"
+      - Distribution: "corporate/distribution"
+      - Research: "corporate/research.md"
+      - Demos: "corporate/demos.md"
+      - Architecture: "corporate/architecture.md"
+      - Checklist: "corporate/checklist.md"
+      - Hiring: "corporate/hiring.md"
+      - SwarmCloud: "corporate/swarm_cloud.md"

From ad0005368bdea1e8dd2ed2250d125400330cd137 Mon Sep 17 00:00:00 2001
From: evelynmitchell <efmphone@gmail.com>
Date: Sat, 25 Nov 2023 09:01:38 -0700
Subject: [PATCH 02/12] pytest clednup

---
 .github/workflows/pr_request_checks.yml |  6 ++++--
 .github/workflows/python-package.yml    |  2 +-
 .github/workflows/testing.yml           |  6 ++++--
 .github/workflows/unit-test.yml         |  8 +++++---
 CONTRIBUTING.md                         | 17 ++++++++---------
 code_quality.sh                         |  2 +-
 tests/Dockerfile                        |  2 +-
 7 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/.github/workflows/pr_request_checks.yml b/.github/workflows/pr_request_checks.yml
index ad7b691f..2b91f9a3 100644
--- a/.github/workflows/pr_request_checks.yml
+++ b/.github/workflows/pr_request_checks.yml
@@ -20,9 +20,11 @@ jobs:
           python-version: 3.x
 
       - name: Install dependencies
-        run: pip install -r requirements.txt
+        run: |
+          pip install -r requirements.txt
+          pip install pytest 
 
       - name: Run tests and checks
         run: |
-          find tests/ -name "*.py" | xargs pytest
+          pytest
           pylint swarms
diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml
index b8e0a17a..de09fd0b 100644
--- a/.github/workflows/python-package.yml
+++ b/.github/workflows/python-package.yml
@@ -38,4 +38,4 @@ jobs:
         flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
     - name: Test with pytest
       run: |
-        find ./tests -name '*.py' -exec pytest {} \;
+        pytest
\ No newline at end of file
diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml
index c2c805f5..ae572d22 100644
--- a/.github/workflows/testing.yml
+++ b/.github/workflows/testing.yml
@@ -19,7 +19,9 @@ jobs:
           python-version: 3.x
 
       - name: Install dependencies
-        run: pip install -r requirements.txt
+        run: |
+          pip install -r requirements.txt
+          pip install pytest
 
       - name: Run unit tests
-        run: find tests/ -name "*.py" | xargs pytest
\ No newline at end of file
+        run: pytest
\ No newline at end of file
diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml
index 42ac2271..c68e49b6 100644
--- a/.github/workflows/unit-test.yml
+++ b/.github/workflows/unit-test.yml
@@ -21,13 +21,15 @@ jobs:
         python-version: '3.10'
 
     - name: Install dependencies
-      run: pip install -r requirements.txt
+      run: |
+        pip install -r requirements.txt
+        pip install pytest
 
     - name: Run Python unit tests
-      run: python3 -m unittest tests/
+      run: pytest
 
     - name: Verify that the Docker image for the action builds
       run: docker build . --file Dockerfile
 
     - name: Verify integration test results
-      run: find tests/ -name "*.py" | xargs pytest
+      run: pytest
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 8230322d..21f4b51c 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -72,7 +72,6 @@ pre-commit --version
 
 Now when you make a git commit, the black code formatter and ruff linter will run.
 
-
 Furthermore, we have integrated a pre-commit GitHub Action into our workflow. This means that with every pull request opened, the pre-commit checks will be automatically enforced, streamlining the code review process and ensuring that all contributions adhere to our quality standards.
 
 To run the pre-commit tool, follow these steps:
@@ -124,13 +123,13 @@ You can learn more about mkdocs on the [mkdocs website](https://www.mkdocs.org/)
 
 ## ๐Ÿงช tests
 - Run all the tests in the tests folder
-`find ./tests -name '*.py' -exec pytest {} \;`
-
+   ```pytest```
+   
 ## Code Quality
-`quality.sh` runs 4 different code formatters for ultra reliable code cleanup using Autopep8, Black, Ruff, YAPF
+`code-quality.sh` runs 4 different code formatters for ultra reliable code cleanup using Autopep8, Black, Ruff, YAPF
 1. Open your terminal.
 
-2. Change directory to where `quality.sh` is located using `cd` command:
+2. Change directory to where `code-quality.sh` is located using `cd` command:
    ```sh
    cd /path/to/directory
    ```
@@ -142,17 +141,17 @@ You can learn more about mkdocs on the [mkdocs website](https://www.mkdocs.org/)
 
 4. Run the script:
    ```sh
-   ./quality.sh
+   ./code-quality.sh
    ```
    
 If the script requires administrative privileges, you might need to run it with `sudo`:
 ```sh
-sudo ./quality.sh
+sudo ./code-quality.sh
 ```
 
-Please replace `/path/to/directory` with the actual path where the `quality.sh` script is located on your system.
+Please replace `/path/to/directory` with the actual path where the `code-quality.sh` script is located on your system.
 
-If you're asking for a specific content or functionality inside `quality.sh` related to YAPF or other code quality tools, you would need to edit the `quality.sh` script to include the desired commands, such as running YAPF on a directory. The contents of `quality.sh` would dictate exactly what happens when you run it.
+If you're asking for a specific content or functionality inside `code-quality.sh` related to YAPF or other code quality tools, you would need to edit the `code-quality.sh` script to include the desired commands, such as running YAPF on a directory. The contents of `code-quality.sh` would dictate exactly what happens when you run it.
 
 
 ## ๐Ÿ“„ license
diff --git a/code_quality.sh b/code_quality.sh
index 1c8c95b5..90153258 100755
--- a/code_quality.sh
+++ b/code_quality.sh
@@ -13,7 +13,7 @@ black --experimental-string-processing swarms/
 
 # Run ruff on the 'swarms' directory.
 # Add any additional flags if needed according to your version of ruff.
-#ruff --unsafe_fix
+ruff --unsafe_fix
 
 # YAPF
 yapf --recursive --in-place --verbose --style=google --parallel swarms
diff --git a/tests/Dockerfile b/tests/Dockerfile
index 4bec42c1..f6e46515 100644
--- a/tests/Dockerfile
+++ b/tests/Dockerfile
@@ -29,4 +29,4 @@ RUN pip install swarms
 RUN pip install pytest
 
 # Run pytest on all tests in the tests directory
-CMD find ./tests -name '*.py' -exec pytest {} +
+CMD pytest

From 304a049f29392daed7bd98c84a22efc547edfccf Mon Sep 17 00:00:00 2001
From: evelynmitchell <efmphone@gmail.com>
Date: Sat, 25 Nov 2023 09:04:18 -0700
Subject: [PATCH 03/12] python-publish fix

---
 .github/workflows/python-publish.yml | 34 ++++++++++++++--------------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml
index 66beff23..9fc16341 100644
--- a/.github/workflows/python-publish.yml
+++ b/.github/workflows/python-publish.yml
@@ -13,20 +13,20 @@ jobs:
 
     runs-on: ubuntu-latest
 
-   steps:
-    - uses: actions/checkout@v4
-    - name: Set up Python
-      uses: actions/setup-python@v4
-      with:
-        python-version: '3.x'
-    - name: Install dependencies
-      run: |
-        python -m pip install --upgrade pip
-        pip install build
-    - name: Build package
-      run: python -m build
-    - name: Publish package
-      uses: pypa/gh-action-pypi-publish@b7f401de30cb6434a1e19f805ff006643653240e
-      with:
-        user: __token__
-        password: ${{ secrets.PYPI_API_TOKEN }}
+    steps:
+      - uses: actions/checkout@v4
+      - name: Set up Python
+        uses: actions/setup-python@v4
+        with:
+          python-version: '3.x'
+      - name: Install dependencies
+        run: |
+          python -m pip install --upgrade pip
+          pip install build
+      - name: Build package
+        run: python -m build
+      - name: Publish package
+        uses: pypa/gh-action-pypi-publish@b7f401de30cb6434a1e19f805ff006643653240e
+        with:
+          user: __token__
+          password: ${{ secrets.PYPI_API_TOKEN }}

From 378d4a383eec3f1008d33d04752cb458a7e9e3c2 Mon Sep 17 00:00:00 2001
From: evelynmitchell <efmphone@gmail.com>
Date: Sat, 25 Nov 2023 09:10:58 -0700
Subject: [PATCH 04/12] boosted python version to 3.10 for pytorch

---
 pyproject.toml   | 4 ++--
 tests/Dockerfile | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/pyproject.toml b/pyproject.toml
index dcad7e7e..bac55bc6 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -18,11 +18,11 @@ classifiers = [
     "Intended Audience :: Developers",
     "Topic :: Scientific/Engineering :: Artificial Intelligence",
     "License :: OSI Approved :: MIT License",
-    "Programming Language :: Python :: 3.6"
+    "Programming Language :: Python :: 3.10"
 ]
 
 [tool.poetry.dependencies]
-python = "^3.8.1"
+python = "^3.10.1"
 torch = "2.1.1"
 transformers = "*"
 openai = "0.28.0"
diff --git a/tests/Dockerfile b/tests/Dockerfile
index f6e46515..f575f599 100644
--- a/tests/Dockerfile
+++ b/tests/Dockerfile
@@ -1,7 +1,7 @@
 # TESTING
 # -==================
 # Use an official Python runtime as a parent image
-FROM python:3.9-slim
+FROM python:3.10-slim
 
 # Set environment variables to make Python output unbuffered and disable the PIP cache
 ENV PYTHONDONTWRITEBYTECODE 1

From 54c4a10a86b1c0392e17b697cf3a8a43ec86d625 Mon Sep 17 00:00:00 2001
From: evelynmitchell <efmphone@gmail.com>
Date: Sun, 26 Nov 2023 12:41:37 -0700
Subject: [PATCH 05/12] gitignore

---
 .gitignore | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index 8f8a98a8..716dc148 100644
--- a/.gitignore
+++ b/.gitignore
@@ -186,4 +186,5 @@ cython_debug/
 #  be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
 #  and can be added to the global gitignore or merged into this file.  For a more nuclear
 #  option (not recommended) you can uncomment the following to ignore the entire idea folder.
-#.idea/
\ No newline at end of file
+#.idea/
+.vscode/settings.json

From 0f42da287d845df951ce567cea81481bab26e7ac Mon Sep 17 00:00:00 2001
From: evelynmitchell <efmphone@gmail.com>
Date: Sun, 26 Nov 2023 19:49:58 -0700
Subject: [PATCH 06/12] python 3.9

---
 .github/workflows/RELEASE.yml   | 4 ++--
 .github/workflows/unit-test.yml | 2 +-
 pyproject.toml                  | 2 +-
 tests/Dockerfile                | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/.github/workflows/RELEASE.yml b/.github/workflows/RELEASE.yml
index 0abb2ed7..cde08689 100644
--- a/.github/workflows/RELEASE.yml
+++ b/.github/workflows/RELEASE.yml
@@ -22,10 +22,10 @@ jobs:
       - uses: actions/checkout@v4
       - name: Install poetry
         run: pipx install poetry==$POETRY_VERSION
-      - name: Set up Python 3.10
+      - name: Set up Python 3.9
         uses: actions/setup-python@v4
         with:
-          python-version: "3.10"
+          python-version: "3.9"
           cache: "poetry"
       - name: Build project for distribution
         run: poetry build
diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml
index c68e49b6..0a1985a7 100644
--- a/.github/workflows/unit-test.yml
+++ b/.github/workflows/unit-test.yml
@@ -18,7 +18,7 @@ jobs:
     - name: Setup Python
       uses: actions/setup-python@v4
       with:
-        python-version: '3.10'
+        python-version: '3.9'
 
     - name: Install dependencies
       run: |
diff --git a/pyproject.toml b/pyproject.toml
index bac55bc6..a15d5d83 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -22,7 +22,7 @@ classifiers = [
 ]
 
 [tool.poetry.dependencies]
-python = "^3.10.1"
+python = "^3.9.1"
 torch = "2.1.1"
 transformers = "*"
 openai = "0.28.0"
diff --git a/tests/Dockerfile b/tests/Dockerfile
index f575f599..f6e46515 100644
--- a/tests/Dockerfile
+++ b/tests/Dockerfile
@@ -1,7 +1,7 @@
 # TESTING
 # -==================
 # Use an official Python runtime as a parent image
-FROM python:3.10-slim
+FROM python:3.9-slim
 
 # Set environment variables to make Python output unbuffered and disable the PIP cache
 ENV PYTHONDONTWRITEBYTECODE 1

From f808cad2a364dc4f75bcdb6fdcea29b54fc5f727 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 27 Nov 2023 04:24:41 +0000
Subject: [PATCH 07/12] Bump actions/checkout from 3 to 4

Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 .github/workflows/python-package.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml
index de09fd0b..41f2942a 100644
--- a/.github/workflows/python-package.yml
+++ b/.github/workflows/python-package.yml
@@ -19,7 +19,7 @@ jobs:
         python-version: ["3.7", "3.9", "3.10", "3.11"]
 
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - name: Set up Python ${{ matrix.python-version }}
       uses: actions/setup-python@v3
       with:

From ab2f12e27c6da2f496473bc0caca5f33c0a5eb98 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 27 Nov 2023 04:24:46 +0000
Subject: [PATCH 08/12] Bump actions/setup-python from 3 to 4

Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3 to 4.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
---
 .github/workflows/python-package.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml
index de09fd0b..62bd4dfa 100644
--- a/.github/workflows/python-package.yml
+++ b/.github/workflows/python-package.yml
@@ -21,7 +21,7 @@ jobs:
     steps:
     - uses: actions/checkout@v3
     - name: Set up Python ${{ matrix.python-version }}
-      uses: actions/setup-python@v3
+      uses: actions/setup-python@v4
       with:
         python-version: ${{ matrix.python-version }}
     - name: Install dependencies

From f71e31d9eaef945d049ff92c7d0625b5c288a556 Mon Sep 17 00:00:00 2001
From: Eternal Reclaimer <98760976+kyegomez@users.noreply.github.com>
Date: Sun, 26 Nov 2023 20:27:17 -0800
Subject: [PATCH 09/12] Update flow.py

---
 swarms/structs/flow.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/swarms/structs/flow.py b/swarms/structs/flow.py
index 5084c82e..19d9a90e 100644
--- a/swarms/structs/flow.py
+++ b/swarms/structs/flow.py
@@ -249,8 +249,8 @@ class Flow:
         autosave: Optional[bool] = False,
         context_length: Optional[int] = 8192,
         user_name: str = "Human:",
-        self_healing_enabled: bool = False,
-        code_interpreter: bool = False,
+        self_healing_enabled: Optional[bool] = False,
+        code_interpreter: Optional[bool] = False,
         multi_modal: Optional[bool] = None,
         **kwargs: Any,
     ):

From 9da150a4ddf2f666cdadf77d5f657bc500a8ed47 Mon Sep 17 00:00:00 2001
From: Eternal Reclaimer <98760976+kyegomez@users.noreply.github.com>
Date: Sun, 26 Nov 2023 20:28:41 -0800
Subject: [PATCH 10/12] Update mkdocs.yml

---
 mkdocs.yml | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/mkdocs.yml b/mkdocs.yml
index 8616cc2f..4644c0d0 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -78,13 +78,13 @@ nav:
   - swarms.models:
       - Language:
           - Overview: "swarms/models/index.md"
-      - HuggingFaceLLM: "swarms/models/huggingface.md"
-      - Anthropic: "swarms/models/anthropic.md"
-      - OpenAI: "swarms/models/openai.md"
-      - Zephyr: "swarms/models/zephyr.md"
-      - BioGPT: "swarms/models/biogpt.md"
-      - MPT7B: "swarms/models/mpt.md"
-      - Mistral: "swarms/models/mistral.md"
+          - HuggingFaceLLM: "swarms/models/huggingface.md"
+          - Anthropic: "swarms/models/anthropic.md"
+          - OpenAI: "swarms/models/openai.md"
+          - Zephyr: "swarms/models/zephyr.md"
+          - BioGPT: "swarms/models/biogpt.md"
+          - MPT7B: "swarms/models/mpt.md"
+          - Mistral: "swarms/models/mistral.md"
       - MultiModal:
           - Fuyu: "swarms/models/fuyu.md"
           - Vilt: "swarms/models/vilt.md"
@@ -105,9 +105,6 @@ nav:
   - swarms.memory:
       - PineconeVectorStoreStore: "swarms/memory/pinecone.md"
       - PGVectorStore: "swarms/memory/pg.md"
-# - swarms.chunkers:
-#   - BaseChunker: "swarms/chunkers/basechunker.md"
-#   - PdfChunker: "swarms/chunkers/pdf_chunker.md"
   - Guides:
       - Overview: "examples/index.md"
       - Agents:

From 2ecf6593758dd2a781181cf54c6e17fa37efc601 Mon Sep 17 00:00:00 2001
From: Eternal Reclaimer <98760976+kyegomez@users.noreply.github.com>
Date: Sun, 26 Nov 2023 20:30:21 -0800
Subject: [PATCH 11/12] Update mkdocs.yml

---
 mkdocs.yml | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/mkdocs.yml b/mkdocs.yml
index 4644c0d0..3a4e6691 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -1,4 +1,3 @@
----
 site_name: Swarms Docs
 plugins:
   - glightbox
@@ -7,9 +6,6 @@ copyright: "&copy; APAC Corp, Inc."
 extra_css:
   - docs/assets/css/extra.css
 extra:
-  # analytics:
-  #   provider: google
-  #   property: G-QM8EDPSCB6
   social:
     - icon: fontawesome/solid/house
       link: assets/img/SwarmsLogoIcon.png
@@ -61,8 +57,8 @@ markdown_extensions:
 nav:
   - Home:
       - Overview: "index.md"
-  - Contributing: "contributing.md"
-  - Docker Container Setup: "docker_setup.md"
+      - Contributing: "contributing.md"
+      - Docker Container Setup: "docker_setup.md"
   - Swarms:
       - Overview: "swarms/index.md"
   - swarms.swarms:
@@ -108,9 +104,9 @@ nav:
   - Guides:
       - Overview: "examples/index.md"
       - Agents:
-          - Flow: "examples/flow.md"
-          - SequentialWorkflow: "examples/reliable_autonomous_agents.md"
-          - OmniAgent: "examples/omni_agent.md"
+      - Flow: "examples/flow.md"
+      - SequentialWorkflow: "examples/reliable_autonomous_agents.md"
+      - OmniAgent: "examples/omni_agent.md"
       - 2O+ Autonomous Agent Blogs: "examples/ideas.md"
   - Applications:
       - CustomerSupport:

From 01bb0084276b5de772480c258b2490c73cdbe36a Mon Sep 17 00:00:00 2001
From: Eternal Reclaimer <98760976+kyegomez@users.noreply.github.com>
Date: Sun, 26 Nov 2023 20:31:33 -0800
Subject: [PATCH 12/12] Update .readthedocs.yml

---
 .readthedocs.yml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/.readthedocs.yml b/.readthedocs.yml
index 1c969083..e3e74fad 100644
--- a/.readthedocs.yml
+++ b/.readthedocs.yml
@@ -1,4 +1,3 @@
----
 version: 2
 
 build: