Commit graph

37 commits

Author SHA1 Message Date
Eric Gustin
53a12802f6
More updates to Publish Toolkit Workflow (#305) 2025-03-17 16:33:51 -07:00
Eric Gustin
5afd31ba27
Update Publish Toolkit Workflow (#303) 2025-03-17 16:10:08 -07:00
Eric Gustin
e048f277fd
Fix publish toolkit workflow (#302)
There was a bug where if the poetry publish failed, then the slack
message would say that it succeeded.

I am setting the notion toolkit version to 0.0.1. This is expected to
fail. I'm doing this to ensure the E2E issue is fixed.

The grep'd string comes from
https://github.com/python-poetry/poetry/blob/main/src/poetry/publishing/uploader.py#L246-L249
2025-03-17 15:40:32 -07:00
Eric Gustin
b7d5736995
Replace changed-files GH Action (#295) 2025-03-15 15:15:01 -07:00
Sam Partee
140f4eca17
Langchain arcade 1.2 (#282)
- **New Class Structure**: Introduced `ToolManager` and
`AsyncToolManager` classes (`ArcadeToolManager` is deprecated)
- **Async Support**: Full async implementation for modern LangChain
applications
- **Better Tool Management**: New methods for adding individual tools
and toolkits
- **CI/CD**: for langchain_arcade


## Upgrade Changes

```python
# Old pattern
manager = ArcadeToolManager(api_key="...")
tools = manager.get_tools(toolkits=["Google"])

# New pattern
manager = ToolManager(api_key="...")
manager.init_tools(toolkits=["Google"])
tools = manager.to_langchain()
```

Now supports underscores vs dots in tool names for better model
compatibility.
2025-03-10 18:52:06 -07:00
Nate Barbettini
668e92934e
fix: Rename actor->worker in gh workflow dispatch (#263)
Fixes a typo (will be relevant later with future CI changes).
2025-02-20 14:15:30 -08:00
Sterling Dreyer
f31cabdf2b
Give release permissions (#245) 2025-02-10 16:07:25 -08:00
Sterling Dreyer
8226cb3316
Fix CICD test wait (#235) 2025-01-27 14:48:33 -08:00
Eric Gustin
3657fc79b6
Whitelist Toolkit Release Managers (#234)
# PR Description
The `github.event.pull_request.author_association` in the "Prevent
Unauthorized Version Updates" workflow was returning inconsistent
results by saying that MEMBERS were CONTRIBUTORS. This PR moves away
from `author_association` in favor of a whitelist text file containing
the GitHub usernames of authorized toolkit release managers.

A toolkit release manager has the following special permissions:
* Can change the version of an existing toolkit
* Can delete an existing toolkit 
* Can rename an existing toolkit
2025-01-27 14:35:45 -08:00
Sam Partee
09a0784cd5
Improve Docker Build and Deployment for Arcade Worker (#205)
This PR enhances the Docker build and deployment process for the Arcade
Worker by:

- **Modularizing Docker Builds:**
- Introduces a new `INSTALL_TOOLKITS` build argument in the `Dockerfile`
to conditionally include toolkits. this enables the creation of a
`arcadeai/worker-base` which can be used to build custom containers in a
multi-stage build. an example of this is included in the example dir.
- Adds `docker-base` Makefile target to build a lightweight base image
without toolkits.

- **Publishing to GitHub Container Registry (GHCR):**
- Adds Makefile targets `publish-ghcr` and `gh-login` for pushing images
to GHCR.
  - Supports publishing both base and full images with toolkits to GHCR.

- **Docker Compose:**
  - Add Docker compose file and setup
  - Renames the `actor` service to `worker`
- Adds an `nginx` service in `docker-compose.yml` to proxy requests to
the Arcade Engine.
  - Introduces an `nginx.conf` file for the Nginx service.

- **Streamlining Toolkit Installation:**
- Moves toolkit installation from the `start.sh` script to the Docker
build process.
- Creates a `toolkits.txt` file to manage toolkit dependencies which can
be edited easily when we want to add a new toolkit. Developers can also
use this approach as shown in the example.

- **Improving Configuration Files:**
- Updates `docker.engine.yaml` and `env.example` to align with the new
setup.


TODO:
- CI/CD needs to be adjusted so that images are pushed to ghcr on
release.
- AWS resources need to be renamed actor -> worker @EricGustin 

This can go in after the above two items are resolved.

---------

Co-authored-by: Wils Dawson <wils@arcade-ai.com>
Co-authored-by: Eric Gustin <34000337+EricGustin@users.noreply.github.com>
Co-authored-by: sdreyer <sterling@arcade-ai.com>
Co-authored-by: Sterling Dreyer <sdreyer21@gmail.com>
Co-authored-by: Nate Barbettini <nathanaelb@gmail.com>
2025-01-23 12:57:24 -08:00
Sterling Dreyer
adaa0da649
Cleanup release action (#217) 2025-01-21 16:18:11 -08:00
Sterling Dreyer
b1ebd2afab
Fix pending test check (#216) 2025-01-21 15:57:24 -08:00
Sterling Dreyer
899c84929b
Multiarch builds (#214)
Changes CICD to build the worker image on separate runners and push to
both GHCR and ECR
2025-01-21 15:49:24 -08:00
Eric Gustin
e9d630f5dc
Check for unauthorized toolkit changes (#200)
# PR Description
Add checks for unauthorized actions performed on toolkits. A PR cannot
be merged if it contains an unauthorized toolkit action.

An unauthorized toolkit action is defined as:
1. The author of the PR is not an OWNER or a MEMBER of the ArcadeAI
organization
2. AND one of the following applies:
- A toolkit's version is altered (i.e., the version in
`toolkits/*/pyproject.toml`
    - A toolkit is deleted
- A toolkit's PyPI package name is renamed (i.e., the name in
`toolkits/*/pyproject.toml`
2025-01-16 17:28:20 -08:00
Eric Gustin
8795871d51
Check if toolkit version changed before attempting publish (#198)
# PR Description
Changes to a toolkit without changes to the toolkit's version fail the
'Publish Toolkit' workflow with `HTTP Error 400: File already exists
('arcade_zoom-0.1.7.tar.gz', with blake2_256 hash
'02183cda607f06616e7edb17e3d22bc11d1d83b074b3e44066b78ec72602fb37'). See
https://pypi.org/help/#file-name-reuse for more information.`, for
example.

This PR adds the `--skip-existing` flag to `poetry publish` to avoid
attempting to publish an existing version. Skips slack notification if
publish is skipped.


The `grep`'d string comes from
https://github.com/python-poetry/poetry/blob/main/src/poetry/publishing/uploader.py#L246-L249
2025-01-13 10:00:24 -08:00
Eric Gustin
4098cb8464
Fix 'Check Toolkits' Workflow (#197)
# PR Description
The 'Check Toolkits' workflow was failing if no toolkits were changed.
This PR gracefully exits the workflow for this case.
2025-01-09 10:11:20 -08:00
Eric Gustin
feb83c95ca
Pin poetry to 1.8.5 (#193)
# PR Description
Poetry released v2 with many breaking changes a couple days ago. The
`install-poetry` action that our workflows use default to that v2
version, so many of our workflows are failing. This PR forces that
action to use poetry version 1.8.5 and also uses 1.8.5 for toolkits

A ticket to migrate to 2.0.0 has been filed for future work
2025-01-07 13:21:55 -08:00
Eric Gustin
ab889f9f1d
Lint all toolkits (#183)
# PR Description
* Adds/updates the following files to all toolkits:
    - `.pre-commit-config.yaml`
    - `.ruff.toml`
    - `LICENSE`
    - `Makefile`
    - `pyproject.toml`
* Lint all toolkits such that they pass `make check` and `make test` (a
total doozy). This includes adding some unit tests and evals.
* Github workflow for testing toolkits before merge into main (courtesy
of @sdreyer)
* Added a QOL improvement for tool developers for when they need to get
the context's auth token.
* Minor updates to `arcade new` template.
2024-12-20 09:49:45 -08:00
Sterling Dreyer
d46accee2f
Fix Dispatch Repo Name (#178) 2024-12-19 10:44:00 -08:00
Sterling Dreyer
f8c8d47a01
Release Toolkits Individually (#176) 2024-12-18 16:34:06 -08:00
Eric Gustin
d91d14aee4
Update issue templates (#134) 2024-10-30 17:44:22 -07:00
Eric Gustin
2e9ac89e94
Add Issue Templates (#133)
# Description
* Add an issue template for bug reports
* Add an issue template for feature requests
2024-10-30 17:16:58 -07:00
Sterling Dreyer
20170d04e0
Fix asset upload (#103) 2024-10-09 15:38:24 -07:00
Sterling Dreyer
3bd56b295d
Release on tag and upload full dist (#98) 2024-10-09 14:19:38 -07:00
Sterling Dreyer
1ba6cc5a40
Remove 'v' In Tag Versioning (#99) 2024-10-09 12:32:42 -07:00
Sterling Dreyer
e7b937e393
Fix Package Builds (#82) 2024-10-02 10:51:18 -07:00
Sam Partee
13563871cb Fix Poetry install order (#80) 2024-10-01 23:48:51 -07:00
Sterling Dreyer
1988053bb0
Change make docker command (#79) 2024-10-01 21:56:52 -07:00
Nate Barbettini
33621a79e4
Generate poetry.lock before caching (#63)
Our Github Actions build cache step is subtly broken. (see comment
below)
2024-09-25 09:46:29 -07:00
Nate Barbettini
9ceb474372
Fix action file path again (#60)
Missed one, gotta catch 'em all
2024-09-24 17:56:33 -07:00
Nate Barbettini
dd572b8cce
Fix action file path (#59)
The path `poetry.lock` is wrong, fixed
2024-09-24 17:50:02 -07:00
Sterling Dreyer
399ad5f878
Release python (#48) 2024-09-20 16:42:53 -07:00
Sterling Dreyer
345b685b08
Deploy Actor Image (#34) 2024-09-10 10:07:31 -07:00
Sam Partee
aee706e118
Developer Makefile and Docker steps (#26)
Simpler docker build for the Actor and makefile
2024-08-29 21:24:46 -07:00
Sam Partee
6a2f37edea
Introduce arcade run and arcade chat Commands (#15)
Two new commands to the Arcade CLI: `arcade run` and `arcade chat`.

These commands enhance the usability of the Arcade CLI by integrating
language model capabilities for running tools and engaging in chat
sessions. Users can now leverage LLMs directly from the command line
2024-08-19 16:17:38 -07:00
Nate Barbettini
554f47cfd7
Spike FlaskActor and cleanup of BaseActor (#12)
Cleanup and refactor of actor abstraction and
related classes/methods


[ committed by @Spartee ]
[ Authored by @nbarbettini ]
2024-08-05 13:26:56 -07:00
Sam Partee
4b469eaa66
CI pipeline (#4)
Start of the CI/CD workflow for the python library and actor.

Covered:
- multiple python versions with Tox (3.10+) and pytest
- Docs eventually with mkdocs (commented out for now)
- Linting and formatting with Ruff and prettier
- Codecov
- include the mypy checks when the mypy errors are resolved.
2024-07-16 17:36:32 -07:00