diff --git a/.github/packages.yaml b/.github/packages.yaml new file mode 100644 index 00000000..3f570f17 --- /dev/null +++ b/.github/packages.yaml @@ -0,0 +1,34 @@ +shared: + - hyperforge/ + - hyperforge.mk + - pyproject.toml + - uv.lock + - mypy.ini + - ruff.toml + - bump.py + - HYPERFORGE.Dockerfile + - .github/packages.yaml + - .github/workflows/package-tests.yaml + +packages: + - hyperforge + - agents/conditional + - agents/external + - agents/generate + - agents/google + - agents/historical + - agents/http + - agents/mcp + - agents/nucliadb + - agents/passthrough + - agents/perplexity + - agents/perplexity_search + - agents/related + - agents/remi + - agents/rephrase + - agents/restart + - agents/restricted + - agents/smart + - agents/static + - agents/static_string + - agents/summarize diff --git a/.github/workflows/hyperforge_conditional_workflow.yaml b/.github/workflows/hyperforge_conditional_workflow.yaml deleted file mode 100644 index 7c12fcd2..00000000 --- a/.github/workflows/hyperforge_conditional_workflow.yaml +++ /dev/null @@ -1,89 +0,0 @@ -name: Conditional Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/conditional/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_conditional_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/conditional/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_conditional_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/conditional - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/conditional - run: make lint - - - name: Run tests - working-directory: agents/conditional - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/conditional - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/conditional - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_external_workflow.yaml b/.github/workflows/hyperforge_external_workflow.yaml deleted file mode 100644 index 53b1cb62..00000000 --- a/.github/workflows/hyperforge_external_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: External Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/external/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_external_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/external/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_external_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/external - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/external - run: make lint - - - name: Run tests - working-directory: agents/external - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/external - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/external - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_generate_workflow.yaml b/.github/workflows/hyperforge_generate_workflow.yaml deleted file mode 100644 index 32dac5f6..00000000 --- a/.github/workflows/hyperforge_generate_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Generate Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/generate/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_generate_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/generate/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_generate_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/generate - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/generate - run: make lint - - - name: Run tests - working-directory: agents/generate - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/generate - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/generate - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_google_workflow.yaml b/.github/workflows/hyperforge_google_workflow.yaml deleted file mode 100644 index 58a2633b..00000000 --- a/.github/workflows/hyperforge_google_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Google Agent Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/google/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_google_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/google/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_google_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/google - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/google - run: make lint - - - name: Run tests - working-directory: agents/google - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/google - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/google - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_historical_workflow.yaml b/.github/workflows/hyperforge_historical_workflow.yaml deleted file mode 100644 index 979c9e10..00000000 --- a/.github/workflows/hyperforge_historical_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Historical Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/historical/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_historical_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/historical/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_historical_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/historical - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/historical - run: make lint - - - name: Run tests - working-directory: agents/historical - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/historical - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/historical - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_http_workflow.yaml b/.github/workflows/hyperforge_http_workflow.yaml deleted file mode 100644 index 1c94ce62..00000000 --- a/.github/workflows/hyperforge_http_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: HTTP Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/http/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_http_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/http/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_http_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/http - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/http - run: make lint - - - name: Run tests - working-directory: agents/http - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/http - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/http - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_mcp_workflow.yaml b/.github/workflows/hyperforge_mcp_workflow.yaml deleted file mode 100644 index 243ffa85..00000000 --- a/.github/workflows/hyperforge_mcp_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: MCP Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/mcp/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_mcp_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/mcp/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_mcp_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/mcp - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/mcp - run: make lint - - - name: Run tests - working-directory: agents/mcp - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/mcp - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/mcp - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_nucliadb_workflow.yaml b/.github/workflows/hyperforge_nucliadb_workflow.yaml deleted file mode 100644 index a99d8ad8..00000000 --- a/.github/workflows/hyperforge_nucliadb_workflow.yaml +++ /dev/null @@ -1,91 +0,0 @@ -name: NucliaDB Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/nucliadb/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_nucliadb_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/nucliadb/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_nucliadb_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/nucliadb - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/nucliadb - run: make lint - - - name: Run tests - working-directory: agents/nucliadb - run: make test - env: # Or as an environment variable - NUA_KEY: ${{ secrets.NUA_KEY }} - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/nucliadb - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/nucliadb - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_passthrough_workflow.yaml b/.github/workflows/hyperforge_passthrough_workflow.yaml deleted file mode 100644 index 6fb7004a..00000000 --- a/.github/workflows/hyperforge_passthrough_workflow.yaml +++ /dev/null @@ -1,89 +0,0 @@ -name: Passthrough Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/passthrough/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_passthrough_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/passthrough/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_passthrough_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read -jobs: - test: - name: Test agents/passthrough - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/passthrough - run: make lint - - - name: Run tests - working-directory: agents/passthrough - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/passthrough - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/passthrough - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_perplexity_search_workflow.yaml b/.github/workflows/hyperforge_perplexity_search_workflow.yaml deleted file mode 100644 index 7ba8995d..00000000 --- a/.github/workflows/hyperforge_perplexity_search_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Perplexity Search Agent Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/perplexity_search/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_perplexity_search_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/perplexity_search/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_perplexity_search_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/perplexity_search - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/perplexity_search - run: make lint - - - name: Run tests - working-directory: agents/perplexity_search - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/perplexity_search - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/perplexity_search - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_perplexity_workflow.yaml b/.github/workflows/hyperforge_perplexity_workflow.yaml deleted file mode 100644 index 9ea7900b..00000000 --- a/.github/workflows/hyperforge_perplexity_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Perplexity Agent Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/perplexity/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_perplexity_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/perplexity/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_perplexity_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/perplexity - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/perplexity - run: make lint - - - name: Run tests - working-directory: agents/perplexity - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/perplexity - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/perplexity - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_related_workflow.yaml b/.github/workflows/hyperforge_related_workflow.yaml deleted file mode 100644 index 769b19cc..00000000 --- a/.github/workflows/hyperforge_related_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Related Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/related/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_related_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/related/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_related_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/related - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/related - run: make lint - - - name: Run tests - working-directory: agents/related - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/related - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/related - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_remi_workflow.yaml b/.github/workflows/hyperforge_remi_workflow.yaml deleted file mode 100644 index a615c50d..00000000 --- a/.github/workflows/hyperforge_remi_workflow.yaml +++ /dev/null @@ -1,92 +0,0 @@ -name: Remi Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/remi/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_remi_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/remi/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_remi_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/remi - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/remi - run: make lint - - - name: Run tests - working-directory: agents/remi - run: make test - env: # Or as an environment variable - NUA_KEY: ${{ secrets.NUA_KEY }} - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/remi - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/remi - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_rephrase_workflow.yaml b/.github/workflows/hyperforge_rephrase_workflow.yaml deleted file mode 100644 index b23906dd..00000000 --- a/.github/workflows/hyperforge_rephrase_workflow.yaml +++ /dev/null @@ -1,94 +0,0 @@ -name: Rephrase Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/rephrase/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_rephrase_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/rephrase/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_rephrase_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/rephrase - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/rephrase - run: make lint - - - name: Run tests - working-directory: agents/rephrase - run: make test - env: # Or as an environment variable - NUA_KEY: ${{ secrets.NUA_KEY }} - KB_DF8B4C24_2807_4888_AD6C_AE97357A638B: ${{ secrets.KB_DF8B4C24_2807_4888_AD6C_AE97357A638B }} - KB_DE48CFAA_3209_4041_BB64_8604AFF061FB: ${{ secrets.KB_DE48CFAA_3209_4041_BB64_8604AFF061FB }} - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/rephrase - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/rephrase - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_restart_workflow.yaml b/.github/workflows/hyperforge_restart_workflow.yaml deleted file mode 100644 index 47d1af7d..00000000 --- a/.github/workflows/hyperforge_restart_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Restart Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/restart/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_restart_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/restart/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_restart_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/restart - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/restart - run: make lint - - - name: Run tests - working-directory: agents/restart - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/restart - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/restart - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_restricted_workflow.yaml b/.github/workflows/hyperforge_restricted_workflow.yaml deleted file mode 100644 index 1aa85e8d..00000000 --- a/.github/workflows/hyperforge_restricted_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Restricted Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/restricted/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_restricted_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/restricted/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_restricted_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/restricted - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/restricted - run: make lint - - - name: Run tests - working-directory: agents/restricted - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/restricted - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/restricted - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_smart_workflow.yaml b/.github/workflows/hyperforge_smart_workflow.yaml deleted file mode 100644 index 2faa38da..00000000 --- a/.github/workflows/hyperforge_smart_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Smart Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/smart/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_smart_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/smart/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_smart_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/smart - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/smart - run: make lint - - - name: Run tests - working-directory: agents/smart - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/smart - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/smart - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_static_string_workflow.yaml b/.github/workflows/hyperforge_static_string_workflow.yaml deleted file mode 100644 index f78d4dbf..00000000 --- a/.github/workflows/hyperforge_static_string_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Static String Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/static_string/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_static_string_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/static_string/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_static_string_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/static_string - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/static_string - run: make lint - - - name: Run tests - working-directory: agents/static_string - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/static_string - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/static_string - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_static_workflow.yaml b/.github/workflows/hyperforge_static_workflow.yaml deleted file mode 100644 index 3b3360ad..00000000 --- a/.github/workflows/hyperforge_static_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Static Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/static/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_static_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/static/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_static_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/static - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/static - run: make lint - - - name: Run tests - working-directory: agents/static - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/static - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/static - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_summarize_workflow.yaml b/.github/workflows/hyperforge_summarize_workflow.yaml deleted file mode 100644 index 25e4472c..00000000 --- a/.github/workflows/hyperforge_summarize_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Summarize Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/summarize/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_summarize_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/summarize/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_summarize_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/summarize - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/summarize - run: make lint - - - name: Run tests - working-directory: agents/summarize - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/summarize - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/summarize - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_workflow.yaml b/.github/workflows/hyperforge_workflow.yaml deleted file mode 100644 index ed569306..00000000 --- a/.github/workflows/hyperforge_workflow.yaml +++ /dev/null @@ -1,168 +0,0 @@ -name: Hyperforge Main Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "hyperforge/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "hyperforge/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test hyperforge - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: hyperforge - run: make lint - - - name: Run tests - working-directory: hyperforge - run: make test - env: # Or as an environment variable - NUA_KEY: ${{ secrets.NUA_KEY }} - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Setup env - run: | - uv tool install twine - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: hyperforge - - - name: Install package - run: | - uv sync - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: hyperforge - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 - - build_and_push_docker_image: - name: Build and push Docker image - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - build_wheels - permissions: - contents: read - packages: write - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Log in to GitHub Container Registry - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GITHUB_ACTOR: ${{ github.actor }} - run: echo "$GITHUB_TOKEN" | docker login ghcr.io -u "$GITHUB_ACTOR" --password-stdin - - - name: Build Docker image - env: - REPOSITORY_OWNER: ${{ github.repository_owner }} - IMAGE_SHA_TAG: ${{ github.sha }} - IMAGE_REF_TAG: ${{ github.ref_name }} - run: docker build -f HYPERFORGE.Dockerfile -t "ghcr.io/$REPOSITORY_OWNER/hyperforge:$IMAGE_SHA_TAG" -t "ghcr.io/$REPOSITORY_OWNER/hyperforge:$IMAGE_REF_TAG" . - - - name: Push Docker image - env: - REPOSITORY_OWNER: ${{ github.repository_owner }} - IMAGE_SHA_TAG: ${{ github.sha }} - IMAGE_REF_TAG: ${{ github.ref_name }} - run: | - docker push "ghcr.io/$REPOSITORY_OWNER/hyperforge:$IMAGE_SHA_TAG" - docker push "ghcr.io/$REPOSITORY_OWNER/hyperforge:$IMAGE_REF_TAG" - - notify-teams-fail: - name: Notify Teams on failure - needs: - - test - - build_wheels - - build_and_push_docker_image - if: (failure() || cancelled()) && github.event_name == 'push' - runs-on: ubuntu-24.04 - steps: - - name: Send Teams notification - env: - REF_NAME: ${{ github.ref_name }} - RUN_NUMBER: ${{ github.run_number }} - RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} - COMMIT_SHA: ${{ github.sha }} - TEAMS_WEBHOOK_URL: ${{ secrets.TEAMS_WEBHOOK_URL }} - run: | - curl -s -o /dev/null -w "%{http_code}" \ - -H "Content-Type: application/json" \ - -d "{ - \"@type\": \"MessageCard\", - \"@context\": \"http://schema.org/extensions\", - \"themeColor\": \"FF0000\", - \"summary\": \"Hyperforge CI failed\", - \"sections\": [{ - \"activityTitle\": \"**Hyperforge CI failed on \`${REF_NAME}\`**\", - \"activityText\": \"Run [#${RUN_NUMBER}](${RUN_URL}) failed for commit \`${COMMIT_SHA}\`.\" - }] - }" \ - "$TEAMS_WEBHOOK_URL" diff --git a/.github/workflows/package-tests.yaml b/.github/workflows/package-tests.yaml new file mode 100644 index 00000000..ca472e4c --- /dev/null +++ b/.github/workflows/package-tests.yaml @@ -0,0 +1,219 @@ +name: Package Tests + +on: + push: + branches: [main] + pull_request: + branches: [main, dev] + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + changes: + name: Detect changed packages + runs-on: ubuntu-24.04 + outputs: + packages: ${{ steps.packages.outputs.packages }} + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + fetch-depth: ${{ github.event_name == 'pull_request' && 1 || 0 }} + persist-credentials: false + + - id: changed-files + uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47.0.0 + with: + matrix: true + + - name: Install uv + uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 + with: + enable-cache: false + python-version: "3.12" + + - id: packages + shell: bash + env: + CHANGED_FILES: ${{ steps.changed-files.outputs.all_modified_files }} + run: | + packages="$(uv run --with pyyaml python <<'PYTHON' + import json + import os + + import yaml + + with open(".github/packages.yaml") as manifest: + config = yaml.safe_load(manifest) + + changed = json.loads(os.environ["CHANGED_FILES"]) + shared_changed = any( + path.startswith(entry) if entry.endswith("/") else path == entry + for path in changed + for entry in config["shared"] + ) + selected = config["packages"] if shared_changed else [ + package + for package in config["packages"] + if any(path.startswith(f"{package}/") for path in changed) + ] + print(json.dumps(selected, separators=(",", ":"))) + PYTHON + )" + echo "packages=$packages" >> "$GITHUB_OUTPUT" + + test: + name: Test + if: needs.changes.outputs.packages != '[]' + needs: changes + runs-on: ubuntu-24.04 + permissions: + contents: read + strategy: + fail-fast: false + matrix: + package: ${{ fromJSON(needs.changes.outputs.packages) }} + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + + - name: Install uv + uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 + with: + enable-cache: false + python-version: "3.12" + + - name: Install package dependencies with uv + run: uv sync --group dev + + - name: Lint + working-directory: ${{ matrix.package }} + run: make lint + + - name: Run tests + working-directory: ${{ matrix.package }} + run: make test + + publish: + name: Publish + if: github.event_name == 'push' && needs.changes.outputs.packages != '[]' + needs: [changes, test] + runs-on: ubuntu-24.04 + permissions: + contents: read + id-token: write + strategy: + fail-fast: false + matrix: + package: ${{ fromJSON(needs.changes.outputs.packages) }} + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + + - name: Install uv + uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 + with: + enable-cache: false + python-version: "3.12" + + - name: Set dependency versions in requirements + env: + PACKAGE: ${{ matrix.package }} + run: python bump.py --package="$PACKAGE" --build="${{ github.run_number }}" + + - name: Build wheels + env: + PACKAGE: ${{ matrix.package }} + run: uv build "$PACKAGE" + + - name: Publish package to PyPI + uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 + + docker: + name: Build and push image + if: always() && github.event_name == 'push' && contains(fromJSON(needs.changes.outputs.packages), 'hyperforge') && needs.test.result == 'success' && needs.publish.result == 'success' + needs: [changes, test, publish] + runs-on: ubuntu-24.04 + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + + - name: Log in to GitHub Container Registry + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_ACTOR: ${{ github.actor }} + run: echo "$GITHUB_TOKEN" | docker login ghcr.io -u "$GITHUB_ACTOR" --password-stdin + + - name: Build Docker image + env: + REPOSITORY_OWNER: ${{ github.repository_owner }} + IMAGE_SHA_TAG: ${{ github.sha }} + IMAGE_REF_TAG: ${{ github.ref_name }} + run: docker build -f HYPERFORGE.Dockerfile -t "ghcr.io/$REPOSITORY_OWNER/hyperforge:$IMAGE_SHA_TAG" -t "ghcr.io/$REPOSITORY_OWNER/hyperforge:$IMAGE_REF_TAG" . + + - name: Push Docker image + env: + REPOSITORY_OWNER: ${{ github.repository_owner }} + IMAGE_SHA_TAG: ${{ github.sha }} + IMAGE_REF_TAG: ${{ github.ref_name }} + run: | + docker push "ghcr.io/$REPOSITORY_OWNER/hyperforge:$IMAGE_SHA_TAG" + docker push "ghcr.io/$REPOSITORY_OWNER/hyperforge:$IMAGE_REF_TAG" + + package-tests: + name: Package tests + if: always() + needs: [changes, test] + runs-on: ubuntu-24.04 + steps: + - name: Verify package tests + env: + CHANGES_RESULT: ${{ needs.changes.result }} + TEST_RESULT: ${{ needs.test.result }} + run: | + if [[ "$CHANGES_RESULT" != success ]]; then + exit 1 + fi + if [[ "$TEST_RESULT" != success && "$TEST_RESULT" != skipped ]]; then + exit 1 + fi + echo "All selected package tests completed successfully." + + notify-teams-fail: + name: Notify Teams on failure + needs: [changes, test, publish, docker, package-tests] + if: failure() && github.event_name == 'push' + runs-on: ubuntu-24.04 + steps: + - name: Send Teams notification + env: + REF_NAME: ${{ github.ref_name }} + RUN_NUMBER: ${{ github.run_number }} + RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + COMMIT_SHA: ${{ github.sha }} + TEAMS_WEBHOOK_URL: ${{ secrets.TEAMS_WEBHOOK_URL }} + run: | + curl -s -o /dev/null -w "%{http_code}" \ + -H "Content-Type: application/json" \ + -d "{ + \"@type\": \"MessageCard\", + \"@context\": \"http://schema.org/extensions\", + \"themeColor\": \"FF0000\", + \"summary\": \"Package CI failed\", + \"sections\": [{ + \"activityTitle\": \"**Package CI failed on \`${REF_NAME}\`**\", + \"activityText\": \"Run [#${RUN_NUMBER}](${RUN_URL}) failed for commit \`${COMMIT_SHA}\`.\" + }] + }" \ + "$TEAMS_WEBHOOK_URL" diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000..112cb1b6 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,57 @@ +# AGENTS.md + +## Project Overview + +Hyperforge is a Python monorepo containing the core framework and first-party +agent packages. Python 3.12 and `uv` are used for local development and package +management. + +## Development + +- Run development commands from the relevant subproject directory, such as + `hyperforge/` or `agents//`, rather than from the repository root. +- Install dependencies with `uv sync --group dev`. +- Format changes with `make fmt`. +- Run lint and type checks with `make lint`. +- Run the subproject's tests with `make test`. +- Keep changes focused and add or update tests for behavioral changes. + +### Tests And VCR Cassettes + +Many tests use VCR cassettes to replay previously recorded HTTP interactions. + +- `make test` runs tests with `--record-mode=none`. It replays existing + cassettes and does not record missing or changed interactions. Use this for + normal development and validation. CI also uses `--record-mode=none`, so + tests must not require an online connection. Tests that make external calls + must use VCR and commit the required cassettes. +- `make record` runs tests with `--record-mode=rewrite`. It calls live external + services and rewrites cassettes, so use it only when adding or intentionally + updating recorded interactions. Supply the required credentials locally and + review generated cassette changes carefully to ensure they contain no + secrets or unstable data. +- Both targets accept pytest arguments through `ARGS`, for example + `make test ARGS="tests/test_example.py -k test_name"`. + +## Creating A New Agent + +1. Use an existing package under `agents/` as the template for conventions and + create `agents//`. +2. Add package metadata in `agents//pyproject.toml`, using the package name + `hyperforge_` and a dependency on `hyperforge`. +3. Implement the package under + `agents//src/hyperforge_/`. Define an `AgentConfig`, register the + agent with `@agent`, and export the agent from `__init__.py`. +4. Add `README.md`, `CHANGELOG.md`, `VERSION`, `Makefile`, and tests consistent + with neighboring agent packages. +5. Register the package in the root `pyproject.toml`: add its dependency, + workspace member, and `[tool.uv.sources]` entry. +6. Run `uv lock` so `uv.lock` includes the new workspace package. +7. **Add `agents/` to the `packages` list in `.github/packages.yaml`.** + This is required for CI change detection, testing, and publishing; creating + the package without this entry leaves it outside the package workflow. +8. From `agents//`, run formatting, linting, and tests before submitting + the change. + +Do not add agent-specific secrets globally. If CI tests require credentials, +scope them only to that package in `.github/workflows/package-tests.yaml`.