pull/443/head
Wyatt Stanke 9 months ago
parent e0ac3fd361
commit 53d81eddcf
No known key found for this signature in database
GPG Key ID: CE6BA5FFF135536D

@ -1,6 +1,4 @@
---
# These are supported funding model platforms # These are supported funding model platforms
github: [kyegomez] github: [kyegomez]
# patreon: # Replace with a single Patreon username # patreon: # Replace with a single Patreon username
# open_collective: # Replace with a single Open Collective username # open_collective: # Replace with a single Open Collective username

59
.github/action.yml vendored

@ -3,35 +3,30 @@ description: "Initialize environment for tests"
runs: runs:
using: "composite" using: "composite"
steps: steps:
- name: Checkout actions - name: Checkout actions
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
- name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4
uses: actions/setup-python@v4 with:
with: python-version: ${{ matrix.python-version }}
python-version: ${{ matrix.python-version }} - name: Install and configure Poetry
uses: snok/install-poetry@v1
- name: Install and configure Poetry with:
uses: snok/install-poetry@v1 virtualenvs-create: true
with: virtualenvs-in-project: true
virtualenvs-create: true installer-parallel: true
virtualenvs-in-project: true - name: Load cached venv
installer-parallel: true id: cached-poetry-dependencies
uses: actions/cache@v3
- name: Load cached venv with:
id: cached-poetry-dependencies path: .venv
uses: actions/cache@v3 key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}
with: - name: Install dependencies
path: .venv if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} run: poetry install --no-interaction --no-root --with test --with dev --all-extras
shell: bash
- name: Install dependencies - name: Activate venv
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' run: |
run: poetry install --no-interaction --no-root --with test --with dev --all-extras source .venv/bin/activate
shell: bash echo PATH=$PATH >> $GITHUB_ENV
shell: bash
- name: Activate venv
run: |
source .venv/bin/activate
echo PATH=$PATH >> $GITHUB_ENV
shell: bash

@ -1,13 +1,10 @@
---
# https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates # https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates
version: 2 version: 2
updates: updates:
- package-ecosystem: "github-actions" - package-ecosystem: "github-actions"
directory: "/" directory: "/"
schedule: schedule:
interval: "weekly" interval: "weekly"
- package-ecosystem: "pip" - package-ecosystem: "pip"
directory: "/" directory: "/"
schedule: schedule:

@ -1,13 +1,10 @@
---
# this is a config file for the github action labeler # this is a config file for the github action labeler
# Add 'label1' to any changes within 'example' folder or any subfolders # Add 'label1' to any changes within 'example' folder or any subfolders
example_change: example_change:
- example/** - example/**
# Add 'label2' to any file changes within 'example2' folder # Add 'label2' to any file changes within 'example2' folder
example2_change: example2/* example2_change: example2/*
# Add label3 to any change to .txt files within the entire repository. # Add label3 to any change to .txt files within the entire repository.
# Quotation marks are required for the leading asterisk # Quotation marks are required for the leading asterisk
text_files: text_files:

@ -1,6 +1,5 @@
name: "Setup environment" name: "Setup environment"
description: "Setup environment for the CI" description: "Setup environment for the CI"
runs: runs:
using: composite using: composite
steps: steps:

@ -1,5 +1,4 @@
name: release name: release
on: on:
pull_request: pull_request:
types: types:
@ -8,15 +7,13 @@ on:
- master - master
paths: paths:
- 'pyproject.toml' - 'pyproject.toml'
env: env:
POETRY_VERSION: "1.4.2" POETRY_VERSION: "1.4.2"
jobs: jobs:
if_release: if_release:
if: | if: |
${{ github.event.pull_request.merged == true }} ${{ github.event.pull_request.merged == true }}
&& ${{ contains(github.event.pull_request.labels.*.name, 'release') }} && ${{ contains(github.event.pull_request.labels.*.name, 'release') }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@ -45,5 +42,5 @@ jobs:
- name: Publish to PyPI - name: Publish to PyPI
env: env:
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_API_TOKEN }} POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_API_TOKEN }}
run: | run: |-
poetry publish poetry publish

@ -12,19 +12,16 @@
# https://github.com/codacy/codacy-analysis-cli. # https://github.com/codacy/codacy-analysis-cli.
name: Codacy Security Scan name: Codacy Security Scan
on: on:
push: push:
branches: [ "master" ] branches: ["master"]
pull_request: pull_request:
# The branches below must be a subset of the branches above # The branches below must be a subset of the branches above
branches: [ "master" ] branches: ["master"]
schedule: schedule:
- cron: '18 23 * * 4' - cron: '18 23 * * 4'
permissions: permissions:
contents: read contents: read
jobs: jobs:
codacy-security-scan: codacy-security-scan:
permissions: permissions:
@ -37,7 +34,6 @@ jobs:
# Checkout the repository to the GitHub Actions runner # Checkout the repository to the GitHub Actions runner
- name: Checkout code - name: Checkout code
uses: actions/checkout@v4 uses: actions/checkout@v4
# Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis # Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis
- name: Run Codacy Analysis CLI - name: Run Codacy Analysis CLI
uses: codacy/codacy-analysis-cli-action@33d455949345bddfdb845fba76b57b70cc83754b uses: codacy/codacy-analysis-cli-action@33d455949345bddfdb845fba76b57b70cc83754b
@ -53,7 +49,6 @@ jobs:
# Force 0 exit code to allow SARIF file generation # Force 0 exit code to allow SARIF file generation
# This will handover control about PR rejection to the GitHub side # This will handover control about PR rejection to the GitHub side
max-allowed-issues: 2147483647 max-allowed-issues: 2147483647
# Upload the SARIF file generated in the previous step # Upload the SARIF file generated in the previous step
- name: Upload SARIF results file - name: Upload SARIF results file
uses: github/codeql-action/upload-sarif@v3 uses: github/codeql-action/upload-sarif@v3

@ -10,16 +10,14 @@
# supported CodeQL languages. # supported CodeQL languages.
# #
name: "CodeQL" name: "CodeQL"
on: on:
push: push:
branches: [ "master" ] branches: ["master"]
pull_request: pull_request:
# The branches below must be a subset of the branches above # The branches below must be a subset of the branches above
branches: [ "master" ] branches: ["master"]
schedule: schedule:
- cron: '33 12 * * 5' - cron: '33 12 * * 5'
jobs: jobs:
analyze: analyze:
name: Analyze name: Analyze
@ -34,49 +32,42 @@ jobs:
actions: read actions: read
contents: read contents: read
security-events: write security-events: write
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
language: [ 'python' ] language: ['python']
# CodeQL supports [ 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' ] # CodeQL supports [ 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' ]
# Use only 'java-kotlin' to analyze code written in Java, Kotlin or both # Use only 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use only 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both # Use only 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
# Initializes the CodeQL tools for scanning. - name: Initialize CodeQL
- name: Initialize CodeQL uses: github/codeql-action/init@v3
uses: github/codeql-action/init@v3 with:
with: languages: ${{ matrix.language }}
languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file.
# If you wish to specify custom queries, you can do so here or in a config file. # By default, queries listed here will override any specified in a config file.
# By default, queries listed here will override any specified in a config file. # Prefix the list here with "+" to use these queries and those in the config file.
# Prefix the list here with "+" to use these queries and those in the config file. # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality # queries: security-extended,security-and-quality
uses: github/codeql-action/autobuild@v3
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift). # If the Autobuild fails above, remove it and uncomment the following three lines.
# If this step fails, then you should remove it and run the build manually (see below) # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
- name: Autobuild
uses: github/codeql-action/autobuild@v3
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis # - run: |
uses: github/codeql-action/analyze@v3 # echo "Run, Build Application using script"
with: # ./location_of_script_within_repo/buildscript.sh
category: "/language:${{matrix.language}}" - name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"

@ -1,27 +1,22 @@
name: Run pytest name: Run pytest
on: on:
schedule: schedule:
# This will run the job every day at a random minute past the hour # This will run the job every day at a random minute past the hour
- cron: '0 0 * * *' - cron: '0 0 * * *'
jobs: jobs:
test: test:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Check out code - name: Check out code
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Set up Python
- name: Set up Python uses: actions/setup-python@v4
uses: actions/setup-python@v4 with:
with: python-version: '3.9'
python-version: '3.9' - name: Install dependencies
run: |
- name: Install dependencies python -m pip install --upgrade pip
run: | pip install pytest
python -m pip install --upgrade pip pip install swarms
pip install pytest - name: Run tests
pip install swarms run: pytest
- name: Run tests
run: pytest

@ -1,5 +1,4 @@
name: Docs WorkAgent name: Docs WorkAgent
on: on:
push: push:
branches: branches:

@ -7,16 +7,13 @@
name: Labeler name: Labeler
on: [pull_request_target] on: [pull_request_target]
jobs: jobs:
label: label:
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
contents: read contents: read
pull-requests: write pull-requests: write
steps: steps:
- uses: actions/labeler@v5 - uses: actions/labeler@v5
with: with:
repo-token: "${{ secrets.GITHUB_TOKEN }}" repo-token: "${{ secrets.GITHUB_TOKEN }}"

@ -1,8 +1,14 @@
name: Lint name: Lint
on: [push, pull_request] # yamllint disable-line rule:truthy on: [push, pull_request] # yamllint disable-line rule:truthy
jobs: jobs:
yaml-format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
- run: go install github.com/google/yamlfmt/cmd/yamlfmt@latest
- run: yamlfmt -w .
# - uses: autofix-ci/action@d3e591514b99d0fca6779455ff8338516663f7cc
yaml-lint: yaml-lint:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -27,4 +33,4 @@ jobs:
- run: pip install ruff - run: pip install ruff
- run: ruff format . - run: ruff format .
- run: ruff check --fix . - run: ruff check --fix .
# - uses: autofix-ci/action@d3e591514b99d0fca6779455ff8338516663f7cc - uses: autofix-ci/action@d3e591514b99d0fca6779455ff8338516663f7cc

@ -1,9 +1,7 @@
name: "PR Labeler" name: "PR Labeler"
on: on:
pull_request_target: pull_request_target:
types: ["opened", "reopened", "ready_for_review"] types: ["opened", "reopened", "ready_for_review"]
jobs: jobs:
triage: triage:
permissions: permissions:
@ -11,5 +9,5 @@ jobs:
pull-requests: write pull-requests: write
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/labeler@v5 - uses: actions/labeler@v5
if: ${{ github.event.pull_request.draft == false }} if: ${{ github.event.pull_request.draft == false }}

@ -1,29 +1,20 @@
name: Pull Request Checks name: Pull Request Checks
on: on:
pull_request: pull_request:
branches: branches:
- master - master
jobs: jobs:
test: test:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v5 uses: actions/setup-python@v5
with: with:
python-version: 3.x python-version: 3.x
- name: Install dependencies - name: Install dependencies
run: | run: "pip install -r requirements.txt\npip install swarms\npip install pytest \n"
pip install -r requirements.txt
pip install swarms
pip install pytest
- name: Run tests and checks - name: Run tests and checks
run: | run: |
pytest pytest

@ -5,10 +5,8 @@ on:
- opened - opened
paths: paths:
- "docs/**" - "docs/**"
permissions: permissions:
pull-requests: write pull-requests: write
jobs: jobs:
pull-request-links: pull-request-links:
runs-on: ubuntu-latest runs-on: ubuntu-latest

@ -1,7 +1,5 @@
name: Pylint name: Pylint
on: [push] on: [push]
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -9,15 +7,15 @@ jobs:
matrix: matrix:
python-version: ["3.8", "3.9", "3.10"] python-version: ["3.8", "3.9", "3.10"]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }} - name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5 uses: actions/setup-python@v5
with: with:
python-version: ${{ matrix.python-version }} python-version: ${{ matrix.python-version }}
- name: Install dependencies - name: Install dependencies
run: | run: |
python -m pip install --upgrade pip python -m pip install --upgrade pip
pip install pylint pip install pylint
- name: Analysing the code with pylint - name: Analysing the code with pylint
run: | run: |
pylint $(git ls-files '*.py') pylint $(git ls-files '*.py')

@ -2,38 +2,33 @@
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
name: Python application name: Python application
on: on:
push: push:
branches: [ "master" ] branches: ["master"]
pull_request: pull_request:
branches: [ "master" ] branches: ["master"]
permissions: permissions:
contents: read contents: read
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Set up Python 3.10 - name: Set up Python 3.10
uses: actions/setup-python@v5 uses: actions/setup-python@v5
with: with:
python-version: "3.10" python-version: "3.10"
- name: Install dependencies - name: Install dependencies
run: | run: |
python -m pip install --upgrade pip python -m pip install --upgrade pip
pip install flake8 pytest swarms pip install flake8 pytest swarms
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Lint with flake8 - name: Lint with flake8
run: | run: |
# stop the build if there are Python syntax errors or undefined names # stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide # 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 flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest - name: Test with pytest
run: | run: |
pytest pytest

@ -2,40 +2,36 @@
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
name: Python package name: Python package
on: on:
push: push:
branches: [ "master" ] branches: ["master"]
pull_request: pull_request:
branches: [ "master" ] branches: ["master"]
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
python-version: ["3.7", "3.9", "3.10", "3.11"] python-version: ["3.7", "3.9", "3.10", "3.11"]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }} - name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5 uses: actions/setup-python@v5
with: with:
python-version: ${{ matrix.python-version }} python-version: ${{ matrix.python-version }}
- name: Install dependencies - name: Install dependencies
run: | run: |
python -m pip install --upgrade pip python -m pip install --upgrade pip
python -m pip install --upgrade swarms python -m pip install --upgrade swarms
python -m pip install flake8 pytest swarms python -m pip install flake8 pytest swarms
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Lint with flake8 - name: Lint with flake8
run: | run: |
# stop the build if there are Python syntax errors or undefined names # stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide # 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 flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest - name: Test with pytest
run: | run: |-
pytest pytest

@ -1,17 +1,12 @@
name: Upload Python Package name: Upload Python Package
on: # yamllint disable-line rule:truthy
on: # yamllint disable-line rule:truthy
release: release:
types: [published] types: [published]
permissions: permissions:
contents: read contents: read
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Set up Python - name: Set up Python

@ -1,34 +1,28 @@
name: Run Examples Script name: Run Examples Script
on: on:
push: push:
branches: [ main ] branches: [main]
pull_request: pull_request:
branches: [ main ] branches: [main]
schedule: schedule:
# Runs at 3:00 AM UTC every day # Runs at 3:00 AM UTC every day
- cron: '0 3 * * *' - cron: '0 3 * * *'
jobs: jobs:
run-examples: run-examples:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Setup Python
- name: Setup Python uses: actions/setup-python@v5
uses: actions/setup-python@v5 with:
with: python-version: '3.9'
python-version: '3.9' - name: Install dependencies
run: |
- name: Install dependencies pip install -r requirements.txt
run: | # Assuming your script might also need pytest and swarms
pip install -r requirements.txt pip install pytest
# Assuming your script might also need pytest and swarms pip install swarms
pip install pytest - name: Make Script Executable and Run
pip install swarms run: |-
chmod +x ./swarms/scripts/run_examples.sh
- name: Make Script Executable and Run ./swarms/scripts/run_examples.sh
run: |
chmod +x ./swarms/scripts/run_examples.sh
./swarms/scripts/run_examples.sh

@ -4,24 +4,20 @@
# For more information, see: # For more information, see:
# https://github.com/actions/stale # https://github.com/actions/stale
name: Mark stale issues and pull requests name: Mark stale issues and pull requests
on: on:
schedule: schedule:
- cron: '26 12 * * *' - cron: '26 12 * * *'
jobs: jobs:
stale: stale:
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
issues: write issues: write
pull-requests: write pull-requests: write
steps: steps:
- uses: actions/stale@v9 - uses: actions/stale@v9
with: with:
repo-token: ${{ secrets.GITHUB_TOKEN }} repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-message: 'Stale issue message' stale-issue-message: 'Stale issue message'
stale-pr-message: 'Stale pull request message' stale-pr-message: 'Stale pull request message'
stale-issue-label: 'no-issue-activity' stale-issue-label: 'no-issue-activity'
stale-pr-label: 'no-pr-activity' stale-pr-label: 'no-pr-activity'

@ -4,46 +4,41 @@
# For more information, see: # For more information, see:
# https://github.com/actions/stale # https://github.com/actions/stale
name: Mark stale issues and pull requests name: Mark stale issues and pull requests
on: on:
schedule: schedule:
# Scheduled to run at 1.30 UTC everyday # Scheduled to run at 1.30 UTC everyday
- cron: '30 1 * * *' - cron: '30 1 * * *'
jobs: jobs:
stale: stale:
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
issues: write issues: write
pull-requests: write pull-requests: write
steps: steps:
- uses: actions/stale@v9 - uses: actions/stale@v9
with: with:
repo-token: ${{ secrets.GITHUB_TOKEN }} repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-issue-stale: 14 days-before-issue-stale: 14
days-before-issue-close: 14 days-before-issue-close: 14
stale-issue-label: "status:stale" stale-issue-label: "status:stale"
close-issue-reason: not_planned close-issue-reason: not_planned
any-of-labels: "status:awaiting user response,status:more data needed" any-of-labels: "status:awaiting user response,status:more data needed"
stale-issue-message: > stale-issue-message: >
Marking this issue as stale since it has been open for 14 days with no activity. Marking this issue as stale since it has been open for 14 days with no activity. This issue will be closed if no further activity occurs.
This issue will be closed if no further activity occurs.
close-issue-message: > close-issue-message: >
This issue was closed because it has been inactive for 28 days. This issue was closed because it has been inactive for 28 days. Please post a new issue if you need further assistance. Thanks!
Please post a new issue if you need further assistance. Thanks!
days-before-pr-stale: 14 days-before-pr-stale: 14
days-before-pr-close: 14 days-before-pr-close: 14
stale-pr-label: "status:stale" stale-pr-label: "status:stale"
stale-pr-message: > stale-pr-message: >
Marking this pull request as stale since it has been open for 14 days with no activity. Marking this pull request as stale since it has been open for 14 days with no activity. This PR will be closed if no further activity occurs.
This PR will be closed if no further activity occurs.
close-pr-message: > close-pr-message: >
This pull request was closed because it has been inactive for 28 days. This pull request was closed because it has been inactive for 28 days. Please open a new pull request if you need further assistance. Thanks!
Please open a new pull request if you need further assistance. Thanks!
# Label that can be assigned to issues to exclude them from being marked as stale
exempt-issue-labels: 'override-stale'
# Label that can be assigned to PRs to exclude them from being marked as stale
exempt-pr-labels: "override-stale"
# Label that can be assigned to issues to exclude them from being marked as stale
exempt-issue-labels: 'override-stale'
# Label that can be assigned to PRs to exclude them from being marked as stale
exempt-pr-labels: "override-stale"

@ -1,14 +1,11 @@
name: test name: test
on: on:
push: push:
branches: [master] branches: [master]
pull_request: pull_request:
workflow_dispatch: workflow_dispatch:
env: env:
POETRY_VERSION: "1.4.2" POETRY_VERSION: "1.4.2"
jobs: jobs:
test: test:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -30,14 +27,7 @@ jobs:
python-version: ${{ matrix.python-version }} python-version: ${{ matrix.python-version }}
poetry-version: "1.4.2" poetry-version: "1.4.2"
cache-key: ${{ matrix.test_type }} cache-key: ${{ matrix.test_type }}
install-command: 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
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 - name: Run ${{matrix.test_type}} tests
run: | run: |
if [ "${{ matrix.test_type }}" == "core" ]; then if [ "${{ matrix.test_type }}" == "core" ]; then
@ -56,13 +46,13 @@ jobs:
poetry-version: "1.4.2" poetry-version: "1.4.2"
cache-key: ${{ matrix.test_type }} cache-key: ${{ matrix.test_type }}
install-command: | install-command: |
if [ "${{ matrix.test_type }}" == "core" ]; then if [ "${{ matrix.test_type }}" == "core" ]; then
echo "Running core tests, installing dependencies with poetry..." echo "Running core tests, installing dependencies with poetry..."
poetry install poetry install
else else
echo "Running extended tests, installing dependencies with poetry..." echo "Running extended tests, installing dependencies with poetry..."
poetry install -E extended_testing poetry install -E extended_testing
fi fi
- name: Run ${{matrix.test_type}} tests - name: Run ${{matrix.test_type}} tests
run: | run: |
if [ "${{ matrix.test_type }}" == "core" ]; then if [ "${{ matrix.test_type }}" == "core" ]; then
@ -93,13 +83,13 @@ jobs:
poetry-version: "1.4.2" poetry-version: "1.4.2"
cache-key: ${{ matrix.test_type }} cache-key: ${{ matrix.test_type }}
install-command: | install-command: |
if [ "${{ matrix.test_type }}" == "core" ]; then if [ "${{ matrix.test_type }}" == "core" ]; then
echo "Running core tests, installing dependencies with poetry..." echo "Running core tests, installing dependencies with poetry..."
poetry install poetry install
else else
echo "Running extended tests, installing dependencies with poetry..." echo "Running extended tests, installing dependencies with poetry..."
poetry install -E extended_testing poetry install -E extended_testing
fi fi
- name: Run ${{matrix.test_type}} tests - name: Run ${{matrix.test_type}} tests
run: | run: |
if [ "${{ matrix.test_type }}" == "core" ]; then if [ "${{ matrix.test_type }}" == "core" ]; then

@ -1,81 +1,79 @@
# Notebook-related checks # Notebook-related checks
name: Presubmit checks name: Presubmit checks
on: on:
# Relevant PRs # Relevant PRs
pull_request: pull_request:
paths: paths:
- "swarms/**" - "swarms/**"
- "tests/**" - "tests/**"
# Allow manual runs # Allow manual runs
workflow_dispatch: workflow_dispatch:
jobs: jobs:
test3_11: test3_11:
name: Test Py3.11 name: Test Py3.11
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: actions/setup-python@v5 - uses: actions/setup-python@v5
with: with:
python-version: '3.11' python-version: '3.11'
- name: Run tests - name: Run tests
run: | run: |
python --version python --version
pip install .[dev] pip install .[dev]
python -m pytest python -m pytest
test3_10: test3_10:
name: Test Py3.10 name: Test Py3.10
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: actions/setup-python@v5 - uses: actions/setup-python@v5
with: with:
python-version: '3.10' python-version: '3.10'
- name: Run tests - name: Run tests
run: | run: |
python --version python --version
pip install -q .[dev] pip install -q .[dev]
python -m pytest python -m pytest
test3_9: test3_9:
name: Test Py3.9 name: Test Py3.9
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: actions/setup-python@v5 - uses: actions/setup-python@v5
with: with:
python-version: '3.9' python-version: '3.9'
- name: Run tests - name: Run tests
run: | run: |
python --version python --version
pip install .[dev] pip install .[dev]
python -m pytest python -m pytest
pytype3_10: pytype3_10:
name: pytype 3.10 name: pytype 3.10
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: actions/setup-python@v5 - uses: actions/setup-python@v5
with: with:
python-version: '3.10' python-version: '3.10'
- name: Run pytype - name: Run pytype
run: | run: |
python --version python --version
pip install .[dev] pip install .[dev]
pip install -q gspread ipython pip install -q gspread ipython
pytype pytype
format: format:
name: Check format with black name: Check format with black
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: actions/setup-python@v5 - uses: actions/setup-python@v5
with: with:
python-version: '3.11' python-version: '3.11'
- name: Check format - name: Check format
run: | run: |
python --version python --version
pip install -q . pip install -q .
pip install -q black pip install -q black
black . --check black . --check

@ -1,27 +1,21 @@
name: Unit Tests name: Unit Tests
on: on:
push: push:
branches: branches:
- master - master
jobs: jobs:
test: test:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v5 uses: actions/setup-python@v5
with: with:
python-version: "3.10" python-version: "3.10"
- name: Install dependencies - name: Install dependencies
run: | run: |
pip install -r requirements.txt pip install -r requirements.txt
pip install pytest pip install pytest
- name: Run unit tests - name: Run unit tests
run: pytest run: pytest

@ -1,36 +1,26 @@
name: build name: build
on: on:
push: push:
branches: [ main ] branches: [main]
pull_request: pull_request:
branches: [ main ] branches: [main]
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Setup Python
- name: Setup Python uses: actions/setup-python@v5
uses: actions/setup-python@v5 with:
with: python-version: '3.9'
python-version: '3.9' - name: Install dependencies
run: |
- name: Install dependencies pip install -r requirements.txt
run: | pip install pytest
pip install -r requirements.txt pip install swarms
pip install pytest - name: Run Python unit tests
pip install swarms run: pytest
- name: Verify that the Docker image for the action builds
- name: Run Python unit tests run: docker build . --file Dockerfile
run: pytest - name: Verify integration test results
run: pytest
- name: Verify that the Docker image for the action builds
run: docker build . --file Dockerfile
- name: Verify integration test results
run: pytest

@ -1,11 +1,9 @@
name: Welcome WorkAgent name: Welcome WorkAgent
on: on:
issues: issues:
types: [opened] types: [opened]
pull_request_target: pull_request_target:
types: [opened] types: [opened]
jobs: jobs:
build: build:
name: 👋 Welcome name: 👋 Welcome
@ -16,4 +14,4 @@ jobs:
with: with:
repo-token: ${{ secrets.GITHUB_TOKEN }} repo-token: ${{ secrets.GITHUB_TOKEN }}
issue-message: "Hello there, thank you for opening an Issue ! 🙏🏻 The team was notified and they will get back to you asap." issue-message: "Hello there, thank you for opening an Issue ! 🙏🏻 The team was notified and they will get back to you asap."
pr-message: "Hello there, thank you for opening an PR ! 🙏🏻 The team was notified and they will get back to you asap." pr-message: "Hello there, thank you for opening an PR ! 🙏🏻 The team was notified and they will get back to you asap."

@ -2,17 +2,17 @@ repos:
- repo: https://github.com/ambv/black - repo: https://github.com/ambv/black
rev: 22.3.0 rev: 22.3.0
hooks: hooks:
- id: black - id: black
- repo: https://github.com/charliermarsh/ruff-pre-commit - repo: https://github.com/charliermarsh/ruff-pre-commit
rev: 'v0.0.255' rev: 'v0.0.255'
hooks: hooks:
- id: ruff - id: ruff
args: [----unsafe-fixes] args: ['----unsafe-fixes']
- repo: https://github.com/nbQA-dev/nbQA - repo: https://github.com/nbQA-dev/nbQA
rev: 1.6.3 rev: 1.6.3
hooks: hooks:
- id: nbqa-black - id: nbqa-black
additional_dependencies: [ipython==8.12, black] additional_dependencies: [ipython==8.12, black]
- id: nbqa-ruff - id: nbqa-ruff
args: ["--ignore=I001"] args: ["--ignore=I001"]
additional_dependencies: [ipython==8.12, ruff] additional_dependencies: [ipython==8.12, ruff]

@ -1,13 +1,10 @@
version: 2 version: 2
build: build:
os: ubuntu-22.04 os: ubuntu-22.04
tools: tools:
python: "3.11" python: "3.11"
mkdocs: mkdocs:
configuration: mkdocs.yml configuration: mkdocs.yml
python: python:
install: install:
- requirements: requirements.txt - requirements: requirements.txt

@ -16,11 +16,11 @@ extra:
- icon: fontawesome/brands/python - icon: fontawesome/brands/python
link: https://pypi.org/project/Swarms/ link: https://pypi.org/project/Swarms/
theme: theme:
name: material name: material
custom_dir: docs/overrides custom_dir: docs/overrides
logo: assets/img/SwarmsLogoIcon.png logo: assets/img/SwarmsLogoIcon.png
palette: palette:
# Palette toggle for light mode # Palette toggle for light mode
- scheme: default - scheme: default
primary: black primary: black
toggle: toggle:
@ -32,14 +32,14 @@ theme:
toggle: toggle:
icon: material/brightness-4 icon: material/brightness-4
name: Switch to light mode name: Switch to light mode
features: features:
- content.code.copy - content.code.copy
- content.code.annotate - content.code.annotate
- navigation.tabs - navigation.tabs
- navigation.sections - navigation.sections
- navigation.expand - navigation.expand
- navigation.top - navigation.top
- announce.dismiss - announce.dismiss
markdown_extensions: markdown_extensions:
- pymdownx.highlight: - pymdownx.highlight:
anchor_linenums: true anchor_linenums: true
@ -55,131 +55,127 @@ markdown_extensions:
- def_list - def_list
- footnotes - footnotes
nav: nav:
- Home: - Home:
- Overview: "index.md" - Overview: "index.md"
- Contributing: "contributing.md" - Contributing: "contributing.md"
- Limitations of Individual Agents: "limits_of_individual_agents.md" - Limitations of Individual Agents: "limits_of_individual_agents.md"
- Why Swarms: "why_swarms.md" - Why Swarms: "why_swarms.md"
- The Swarms Bounty System: "swarms_bounty_system.md" - The Swarms Bounty System: "swarms_bounty_system.md"
- Swarms Cloud API: - Swarms Cloud API:
- Overview: "swarms_cloud/main.md" - Overview: "swarms_cloud/main.md"
- Migrate from OpenAI to Swarms in 3 lines of code: "swarms_cloud/migrate_openai.md" - Migrate from OpenAI to Swarms in 3 lines of code: "swarms_cloud/migrate_openai.md"
- Swarms Framework [PY]: - Swarms Framework [PY]:
- Overview: "swarms/index.md" - Overview: "swarms/index.md"
- DIY Build Your Own Agent: "diy_your_own_agent.md" - DIY Build Your Own Agent: "diy_your_own_agent.md"
- swarms.agents: - swarms.agents:
- Agents: - Agents:
- WorkerAgent: "swarms/agents/workeragent.md" - WorkerAgent: "swarms/agents/workeragent.md"
- OmniAgent: "swarms/agents/omni_agent.md" - OmniAgent: "swarms/agents/omni_agent.md"
- AbstractAgent: "swarms/agents/abstractagent.md" - AbstractAgent: "swarms/agents/abstractagent.md"
- ToolAgent: "swarms/agents/toolagent.md" - ToolAgent: "swarms/agents/toolagent.md"
- swarms.models: - swarms.models:
- How to Create A Custom Language Model: "swarms/models/custom_model.md" - How to Create A Custom Language Model: "swarms/models/custom_model.md"
- Deploying Azure OpenAI in Production: A Comprehensive Guide: "swarms/models/azure_openai.md" - "Deploying Azure OpenAI in Production: A Comprehensive Guide": "swarms/models/azure_openai.md"
- Language: - Language:
- BaseLLM: "swarms/models/base_llm.md" - BaseLLM: "swarms/models/base_llm.md"
- Overview: "swarms/models/index.md" - Overview: "swarms/models/index.md"
- HuggingFaceLLM: "swarms/models/huggingface.md" - HuggingFaceLLM: "swarms/models/huggingface.md"
- Anthropic: "swarms/models/anthropic.md" - Anthropic: "swarms/models/anthropic.md"
- OpenAI: "swarms/models/openai.md" - OpenAI: "swarms/models/openai.md"
- vLLM: "swarms/models/vllm.md" - vLLM: "swarms/models/vllm.md"
- MPT7B: "swarms/models/mpt.md" - MPT7B: "swarms/models/mpt.md"
- Mistral: "swarms/models/mistral.md" - Mistral: "swarms/models/mistral.md"
- Mixtral: "swarms/models/mixtral.md" - Mixtral: "swarms/models/mixtral.md"
- MultiModal: - MultiModal:
- BaseMultiModalModel: "swarms/models/base_multimodal_model.md" - BaseMultiModalModel: "swarms/models/base_multimodal_model.md"
- Fuyu: "swarms/models/fuyu.md" - Fuyu: "swarms/models/fuyu.md"
- Vilt: "swarms/models/vilt.md" - Vilt: "swarms/models/vilt.md"
- Idefics: "swarms/models/idefics.md" - Idefics: "swarms/models/idefics.md"
- Kosmos: "swarms/models/kosmos.md" - Kosmos: "swarms/models/kosmos.md"
- Nougat: "swarms/models/nougat.md" - Nougat: "swarms/models/nougat.md"
- Dalle3: "swarms/models/dalle3.md" - Dalle3: "swarms/models/dalle3.md"
- GPT4V: "swarms/models/gpt4v.md" - GPT4V: "swarms/models/gpt4v.md"
- DistilWhisperModel: "swarms/models/distilled_whisperx.md" - DistilWhisperModel: "swarms/models/distilled_whisperx.md"
- swarms.structs: - swarms.structs:
- Foundational Structures: - Foundational Structures:
- agent: "swarms/structs/agent.md" - agent: "swarms/structs/agent.md"
- basestructure: "swarms/structs/basestructure.md" - basestructure: "swarms/structs/basestructure.md"
- artifactupload: "swarms/structs/artifactupload.md" - artifactupload: "swarms/structs/artifactupload.md"
- taskinput: "swarms/structs/taskinput.md" - taskinput: "swarms/structs/taskinput.md"
- stepinput: "swarms/structs/stepinput.md" - stepinput: "swarms/structs/stepinput.md"
- artifact: "swarms/structs/artifact.md" - artifact: "swarms/structs/artifact.md"
- task: "swarms/structs/task.md" - task: "swarms/structs/task.md"
- Task Queue Base: "swarms/structs/taskqueuebase.md" - Task Queue Base: "swarms/structs/taskqueuebase.md"
- Workflows: - Workflows:
- recursiveworkflow: "swarms/structs/recursiveworkflow.md" - recursiveworkflow: "swarms/structs/recursiveworkflow.md"
- concurrentworkflow: "swarms/structs/concurrentworkflow.md" - concurrentworkflow: "swarms/structs/concurrentworkflow.md"
- nonlinearworkflow: "swarms/structs/nonlinearworkflow.md" - nonlinearworkflow: "swarms/structs/nonlinearworkflow.md"
- sequential_workflow: "swarms/structs/sequential_workflow.md" - sequential_workflow: "swarms/structs/sequential_workflow.md"
- workflow: "swarms/structs/workflow.md" - workflow: "swarms/structs/workflow.md"
- baseworkflow: "swarms/structs/baseworkflow.md" - baseworkflow: "swarms/structs/baseworkflow.md"
- Multi Agent Architectures: - Multi Agent Architectures:
- conversation: "swarms/structs/conversation.md" - conversation: "swarms/structs/conversation.md"
- groupchat: "swarms/structs/groupchat.md" - groupchat: "swarms/structs/groupchat.md"
- swarmnetwork: "swarms/structs/swarmnetwork.md" - swarmnetwork: "swarms/structs/swarmnetwork.md"
- groupchatmanager: "swarms/structs/groupchatmanager.md" - groupchatmanager: "swarms/structs/groupchatmanager.md"
- MajorityVoting: "swarms/structs/majorityvoting.md" - MajorityVoting: "swarms/structs/majorityvoting.md"
- swarms.memory: - swarms.memory:
- Building Custom Vector Memory Databases with the AbstractVectorDatabase Class: "swarms/memory/diy_memory.md" - Building Custom Vector Memory Databases with the AbstractVectorDatabase Class: "swarms/memory/diy_memory.md"
- Vector Databases: - Vector Databases:
- Weaviate: "swarms/memory/weaviate.md" - Weaviate: "swarms/memory/weaviate.md"
- PineconeDB: "swarms/memory/pinecone.md" - PineconeDB: "swarms/memory/pinecone.md"
- PGVectorStore: "swarms/memory/pg.md" - PGVectorStore: "swarms/memory/pg.md"
- ShortTermMemory: "swarms/memory/short_term_memory.md" - ShortTermMemory: "swarms/memory/short_term_memory.md"
- swarms.utils: - swarms.utils:
- Misc: - Misc:
- pdf_to_text: "swarms/utils/pdf_to_text.md" - pdf_to_text: "swarms/utils/pdf_to_text.md"
- load_model_torch: "swarms/utils/load_model_torch.md" - load_model_torch: "swarms/utils/load_model_torch.md"
- metrics_decorator: "swarms/utils/metrics_decorator.md" - metrics_decorator: "swarms/utils/metrics_decorator.md"
- prep_torch_inference: "swarms/utils/prep_torch_inference.md" - prep_torch_inference: "swarms/utils/prep_torch_inference.md"
- find_image_path: "swarms/utils/find_image_path.md" - find_image_path: "swarms/utils/find_image_path.md"
- print_class_parameters: "swarms/utils/print_class_parameters.md" - print_class_parameters: "swarms/utils/print_class_parameters.md"
- extract_code_from_markdown: "swarms/utils/extract_code_from_markdown.md" - extract_code_from_markdown: "swarms/utils/extract_code_from_markdown.md"
- check_device: "swarms/utils/check_device.md" - check_device: "swarms/utils/check_device.md"
- display_markdown_message: "swarms/utils/display_markdown_message.md" - display_markdown_message: "swarms/utils/display_markdown_message.md"
- phoenix_tracer: "swarms/utils/phoenix_tracer.md" - phoenix_tracer: "swarms/utils/phoenix_tracer.md"
- limit_tokens_from_string: "swarms/utils/limit_tokens_from_string.md" - limit_tokens_from_string: "swarms/utils/limit_tokens_from_string.md"
- math_eval: "swarms/utils/math_eval.md" - math_eval: "swarms/utils/math_eval.md"
- Guides: - Guides:
- Building Custom Vector Memory Databases with the AbstractVectorDatabase Class: "swarms/memory/diy_memory.md" - Building Custom Vector Memory Databases with the AbstractVectorDatabase Class: "swarms/memory/diy_memory.md"
- How to Create A Custom Language Model: "swarms/models/custom_model.md" - How to Create A Custom Language Model: "swarms/models/custom_model.md"
- Deploying Azure OpenAI in Production: A Comprehensive Guide: "swarms/models/azure_openai.md" - "Deploying Azure OpenAI in Production: A Comprehensive Guide": "swarms/models/azure_openai.md"
- DIY Build Your Own Agent: "diy_your_own_agent.md" - DIY Build Your Own Agent: "diy_your_own_agent.md"
- Overview: "examples/index.md" - Overview: "examples/index.md"
- Agents: - Agents:
- Agent: "examples/flow.md" - Agent: "examples/flow.md"
- OmniAgent: "examples/omni_agent.md" - OmniAgent: "examples/omni_agent.md"
- Swarms: - Swarms:
- SequentialWorkflow: "examples/reliable_autonomous_agents.md" - SequentialWorkflow: "examples/reliable_autonomous_agents.md"
- 2O+ Autonomous Agent Blogs: "examples/ideas.md" - 2O+ Autonomous Agent Blogs: "examples/ideas.md"
- Applications: - Applications:
- CustomerSupport: - CustomerSupport:
- Overview: "applications/customer_support.md" - Overview: "applications/customer_support.md"
- Marketing: - Marketing:
- Overview: "applications/marketing_agencies.md" - Overview: "applications/marketing_agencies.md"
- Corporate: - Corporate:
- Corporate Documents: - Corporate Documents:
- Data Room: "corporate/data_room.md" - Data Room: "corporate/data_room.md"
- SwarmMemo: "corporate/swarm_memo.md" - SwarmMemo: "corporate/swarm_memo.md"
- Corporate Architecture: "corporate/architecture.md" - Corporate Architecture: "corporate/architecture.md"
- Flywheel: "corporate/flywheel.md" - Flywheel: "corporate/flywheel.md"
- Bounties: "corporate/bounties.md" - Bounties: "corporate/bounties.md"
- Purpose: "corporate/purpose.md" - Purpose: "corporate/purpose.md"
- Roadmap: "corporate/roadmap.md" - Roadmap: "corporate/roadmap.md"
- Sales: - Sales:
- FAQ: "corporate/faq.md" - FAQ: "corporate/faq.md"
- Distribution: "corporate/distribution" - Distribution: "corporate/distribution"
- Product: - Product:
- SwarmCloud: "corporate/swarm_cloud.md" - SwarmCloud: "corporate/swarm_cloud.md"
- Weaknesses: "corporate/failures.md" - Weaknesses: "corporate/failures.md"
- Design: "corporate/design.md" - Design: "corporate/design.md"
- Metric: "corporate/metric.md" - Metric: "corporate/metric.md"
- Research: "corporate/research.md" - Research: "corporate/research.md"
- Demos: "corporate/demos.md" - Demos: "corporate/demos.md"
- Checklist: "corporate/checklist.md" - Checklist: "corporate/checklist.md"
- Organization:
- Organization: - FrontEnd Member Onboarding: "corporate/front_end_contributors.md"
- FrontEnd Member Onboarding: "corporate/front_end_contributors.md"

Loading…
Cancel
Save