Skip to content

Commit

Permalink
refactor(typespec): Use typespec generated models (#766)
Browse files Browse the repository at this point in the history
- **feat(typespec): Add granular integration definitions**
- **feat(agents-api): Update integration defs**
- **feat(integrations): Remove unused integrations**
- **feat(typespec): Add provider cards**
- **fix(typespec): Remove redundant wikipedia setup**
- **refactor(integrations): Use typespec generated models**

<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> Refactor integration models to use typespec-generated models, add
granular integration definitions, update agents API, and configure CI
for linting and testing.
> 
>   - **Behavior**:
> - Refactor `execute_integration()` in `execute_integration.py` to use
`BaseIntegrationDef` instead of `IntegrationDef`.
>     - Remove unused integrations like `browserbase` and `hacker_news`.
>   - **Models**:
> - Add `BaseIntegrationDef` and specific integration models like
`BraveIntegrationDef`, `EmailIntegrationDef`, etc.
> - Add provider cards for integrations like `BraveProviderCard`,
`EmailProviderCard`, etc.
>   - **CI/CD**:
> - Add `lint-integrations-service-pr.yml` and
`test-integrations-service-pr.yml` for CI linting and testing.
>   - **Misc**:
> - Update `pyproject.toml` to use `datamodel-code-generator` version
`0.26.2`.
>     - Add `__main__.py` to `integrations-service` for entry point.
>     - Remove redundant setup in `wikipedia` integration.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 191b319. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
Co-authored-by: creatorrr <[email protected]>
  • Loading branch information
creatorrr and creatorrr authored Oct 29, 2024
1 parent f9a7ed5 commit 226013a
Show file tree
Hide file tree
Showing 82 changed files with 7,913 additions and 1,704 deletions.
57 changes: 57 additions & 0 deletions .github/workflows/lint-integrations-service-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Lint integrations-service
run-name: ${{ github.actor }} is linting the code

on:
pull_request:
paths:
- 'integrations-service/**'
push:
paths:
- 'integrations-service/**'

jobs:
Lint-And-Format:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install and configure Poetry
uses: snok/install-poetry@v1

- name: Configure Poetry to use .venv
run: |
cd integrations-service
poetry config virtualenvs.in-project true
- name: Cache Poetry virtualenv
uses: actions/cache@v4
with:
path: integrations-service/.venv
key: ${{ runner.os }}-integrations-service-poetry-${{ hashFiles('integrations-service/poetry.lock') }}
restore-keys: |
${{ runner.os }}-integrations-service-poetry-
- name: Install dependencies
run: |
cd integrations-service
poetry install
- name: Lint and format
run: |
cd integrations-service
poetry run poe format
poetry run poe lint
- uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: "refactor: Lint integrations-service (CI)"
branch: ${{ github.head_ref }}

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
50 changes: 50 additions & 0 deletions .github/workflows/test-integrations-service-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Test integrations-service
run-name: ${{ github.actor }} is testing the code

on:
pull_request:
paths:
- 'integrations-service/**'
push:
paths:
- 'integrations-service/**'

jobs:
Test:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install and configure Poetry
uses: snok/install-poetry@v1

- name: Configure Poetry to use .venv
run: |
cd integrations-service
poetry config virtualenvs.in-project true
- name: Cache Poetry virtualenv
uses: actions/cache@v4
with:
path: integrations-service/.venv
key: ${{ runner.os }}-integrations-service-poetry-${{ hashFiles('integrations-service/poetry.lock') }}
restore-keys: |
${{ runner.os }}-integrations-service-poetry-
- name: Install dependencies
run: |
cd integrations-service
poetry install
- name: Run tests
run: |
cd integrations-service
poetry run poe test --fail-limit 1
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
4 changes: 2 additions & 2 deletions agents-api/agents_api/activities/execute_integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from beartype import beartype
from temporalio import activity

from ..autogen.openapi_model import IntegrationDef
from ..autogen.openapi_model import BaseIntegrationDef
from ..clients import integrations
from ..common.protocol.tasks import StepContext
from ..common.storage_handler import auto_blob_store
Expand All @@ -16,7 +16,7 @@
async def execute_integration(
context: StepContext,
tool_name: str,
integration: IntegrationDef,
integration: BaseIntegrationDef,
arguments: dict[str, Any],
setup: dict[str, Any] = {},
) -> Any:
Expand Down
15 changes: 5 additions & 10 deletions agents-api/agents_api/autogen/Agents.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,10 @@ class Agent(BaseModel):
name: Annotated[
str,
Field(
"",
max_length=120,
pattern="^[\\p{L}\\p{Nl}\\p{Pattern_Syntax}\\p{Pattern_White_Space}]+[\\p{ID_Start}\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\\p{Pattern_Syntax}\\p{Pattern_White_Space}]*$",
),
]
] = ""
"""
Name of the agent
"""
Expand Down Expand Up @@ -66,11 +65,10 @@ class CreateAgentRequest(BaseModel):
name: Annotated[
str,
Field(
"",
max_length=120,
pattern="^[\\p{L}\\p{Nl}\\p{Pattern_Syntax}\\p{Pattern_White_Space}]+[\\p{ID_Start}\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\\p{Pattern_Syntax}\\p{Pattern_White_Space}]*$",
),
]
] = ""
"""
Name of the agent
"""
Expand Down Expand Up @@ -101,11 +99,10 @@ class CreateOrUpdateAgentRequest(CreateAgentRequest):
name: Annotated[
str,
Field(
"",
max_length=120,
pattern="^[\\p{L}\\p{Nl}\\p{Pattern_Syntax}\\p{Pattern_White_Space}]+[\\p{ID_Start}\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\\p{Pattern_Syntax}\\p{Pattern_White_Space}]*$",
),
]
] = ""
"""
Name of the agent
"""
Expand Down Expand Up @@ -139,11 +136,10 @@ class PatchAgentRequest(BaseModel):
name: Annotated[
str,
Field(
"",
max_length=120,
pattern="^[\\p{L}\\p{Nl}\\p{Pattern_Syntax}\\p{Pattern_White_Space}]+[\\p{ID_Start}\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\\p{Pattern_Syntax}\\p{Pattern_White_Space}]*$",
),
]
] = ""
"""
Name of the agent
"""
Expand Down Expand Up @@ -177,11 +173,10 @@ class UpdateAgentRequest(BaseModel):
name: Annotated[
str,
Field(
"",
max_length=120,
pattern="^[\\p{L}\\p{Nl}\\p{Pattern_Syntax}\\p{Pattern_White_Space}]+[\\p{ID_Start}\\p{Mn}\\p{Mc}\\p{Nd}\\p{Pc}\\p{Pattern_Syntax}\\p{Pattern_White_Space}]*$",
),
]
] = ""
"""
Name of the agent
"""
Expand Down
Loading

0 comments on commit 226013a

Please sign in to comment.