Commit graph

405 commits

Author SHA1 Message Date
Eric Gustin
bfd183f06b
Bump versions (#470) 2025-07-01 13:43:33 -07:00
Eric Gustin
a336f43a83
Fix release workflow for toolkits (#469)
The workflow didn't work correctly for toolkits. see run logs for more
info on how it didn't work correctly:
https://github.com/ArcadeAI/arcade-ai/actions/runs/16008156518/job/45159613768

Bumped the code-sandbox toolkit to prove it works. Proof it worked:
https://github.com/ArcadeAI/arcade-ai/actions/runs/16009427831/job/45163629931?pr=469
2025-07-01 13:29:59 -07:00
Eric Gustin
1d9a4f2275
Bump toolkit versions (#468)
The PyPI packages haven't been bumped since migrating them to use the
TDK. This PR excludes bumping Jira since it was bumped last week.
2025-07-01 12:14:41 -07:00
Eric Gustin
87b7d0fdaf
Bump CLI version (#467) 2025-07-01 11:35:13 -07:00
Eric Gustin
a1dcd7667e
Update toolkit Makefiles (#466) 2025-07-01 11:29:12 -07:00
Eric Gustin
ff8675e4b6
Filter out unneeded files/directories before deploying workers (#464)
`arcade deploy` is failing for local packages that have large unneeded
files such as `uv.lock`. It is failing because it is taking too long for
the CLI to compress and PUT to the cloud.
2025-07-01 10:07:15 -07:00
Eric Gustin
30e36e1325
Update slack notification for PyPI publishes (#463)
Update the Slack notification to use the "package" notification instead
of the "toolkit" notification since this workflow runs for not only
toolkits but also our libs.
2025-07-01 10:00:35 -07:00
Eric Gustin
0e9207a895
Bump arcade-ai PyPI Package (#462)
v2.0.1 was missed last week. Going straight to 2.0.2 to match the
container version.
2025-07-01 08:07:32 -07:00
Mateo Torres
ab34d3ad8e
patching toolkit template generator for outside the main repo (#460)
The current `arcade new` command fails to `make install` and `make
check` if it's not manually patched with pre-commit files. It also fails
due to local dependencies if it's not run inside `arcade-ai/toolkits`

This PR patches the toolkit template to only include the local
dependencies if it detects is `arcade new` being run inside
`arcade-ai/toolkits`, it also makes pre-commit commands optional.
2025-06-30 19:19:15 -03:00
Sterling Dreyer
d86cc1c301
Add slack alerts to toolkit publish (#457) 2025-06-24 11:01:21 -07:00
Renato Byrro
352079151e
Jira toolkit: deduplicate cloud data in Atlassian's available-resources response (#456) 2025-06-24 12:39:16 -03:00
Sergio Serrano
67bc53c8ce
Update OpenAI Agent example (#452)
Update with the latest `@arcadeai/arcadejs`
2025-06-19 20:01:03 -03:00
Eric Gustin
454390486a
Update README.md (#450)
The links to the different libs/ packages are broken when viewed on PyPI
because they are relative paths to the source code. This PR updates
this.
2025-06-17 18:02:45 -07:00
Sergio Serrano
6921500e3c
Add OpenAI Agents example (#447)
Add a TypeScript example showing how to integrate OpenAI Agents with
Arcade AI, including basic usage and manual authorization flow.
2025-06-17 18:25:10 -03:00
Eric Gustin
bbe8cb3478
Update check unauthorized toolkit updates workflow (#449)
Forgot to add the change for the target versions too
2025-06-17 13:46:58 -07:00
Eric Gustin
99aa53d025
Fix check unauthorized toolkit updates workflow (#448)
Changing toolkits to uv broke this.
2025-06-17 13:32:08 -07:00
Eric Gustin
3149058aa1
Release arcade-ai 2.0.0 (#446) 2025-06-17 12:57:44 -07:00
Eric Gustin
093ac56040
Update release containers GH Action (#439)
1. Patch, Minor, or Major is selected during workflow dispatch (defaults
to patch)
2. Get most recent release version
3. Calculate new version based on findings from step 2
4. Build wheels
5. Build worker and base-worker
6. Push to GHCR
7. Create new release with release notes

Also, I removed everything related to ECR
2025-06-17 10:21:08 -07:00
Eric Gustin
2a91ee53ac
Small fixes before arcade-ai v2.0.0 (#437)
As I continue to test the pre-release I will place fixes in this PR
2025-06-16 18:55:11 -07:00
Eric Gustin
3687150c95
Release arcade-ai==2.0.0rc1 to PyPI (#435) 2025-06-13 15:02:05 -07:00
Eric Gustin
d19ef6fbb7
Deploy worker to bosslevel (#433) 2025-06-13 14:09:15 -07:00
Eric Gustin
8a9845b484
PyPI release arcade-serve and arcade-tdk (#432) 2025-06-13 13:06:11 -07:00
Eric Gustin
86cde2d9bd
Add PyPI release workflow (#429)
This is the first of a few PRs. Deploy to staging will fail until we
have `arcade-core`, `arcade-serve`, and `arcade-ai` released to PyPI.
This PR will release `arcade-core` to PyPI.


### PR Description
* Adds workflow that checks for changes in any pyproject.toml, and if
its version has changed, then tests, builds wheel, then publishes to
PyPI
* Updates the Dockerfile for our new structure
* Updates porter yamls
* Updates `make full-dist`
* Removes a couple unused workflows

Check out https://github.com/ArcadeAI/arcade-ai/actions/runs/15622059209
to see how the new workflow works (note that it failed publishing to
PyPI on purpose)
2025-06-13 11:22:31 -07:00
Eric Gustin
7ac6147733
Change versions (#428)
Temporarily changing core, tdk, and serve versions to 1.0.0 so that my
workflow will detect a change to the pyproject.toml version later
2025-06-12 15:38:23 -07:00
Sam Partee
b6b4cd0a4c
🏗️ Restructure: Multi-Package Architecture + uv Migration (#412)
### Overview
Major restructuring from monolithic `arcade-ai` package to modular
library architecture with standardized uv-based dependency management.

![arcade-ai Monorepo
(2)](https://github.com/user-attachments/assets/25f102b0-bb87-4a04-9701-d227d05664b1)

### New Package Structure
- **`arcade-tdk`** - Lightweight toolkit development kit (core
decorators, auth)
- **`arcade-core`** - Core execution engine and catalog functionality  
- **`arcade-serve`** - FastAPI/MCP server components
- **`arcade-ai`** - Meta package that includes CLI functionality.
Optionally include evals via the `evals` extra. Optionally include all
packages via the `all` extra.

### Key Benefits
- **Lighter Dependencies**: Toolkits now depend only on `arcade-tdk` (~2
deps) vs full `arcade-ai` (~30+ deps)
- **Faster Builds**: uv provides 10-100x faster dependency resolution
and installation
- **Better Modularity**: Clear separation of concerns, consumers import
only what they need
- **Standard Tooling**: Eliminates custom poetry scripts, uses standard
Python packaging

### Migration Impact
- All 20 toolkits converted from poetry → uv with `arcade-tdk`
dependencies plus `arcade-ai[evals]` and `arcade-serve` dev
dependencies. When developing locally, devs should install toolkits via
`make install-local`.
- Modern Python 3.10+ type hints throughout
- Standardized build system with hatchling backend
- Enhanced Makefile with robust toolkit management commands
- Removed `arcade dev` CLI command
- Reduce the number of files created by `arcade new` and add an option
to not generate a tests and evals folder.

This foundation enables faster development cycles and cleaner dependency
chains for the growing toolkit ecosystem.

### Todo After this PR is merged
- [ ] Post-merge workflow(s) (release & publish containers, etc)
- [ ] Release order plan. @EricGustin suggests releasing in the
following order:
    1. `arcade-core` version 0.1.0
    2. `arcade-serve` version 0.1.0 and `arcade-tdk` version 0.1.0
    3. `arcade-ai` version 2.0.0
4. Patch release for all toolkits (all changes in toolkits are internal
refactors)
- [ ] [Update docs](https://github.com/ArcadeAI/docs/pull/318)

---------

Co-authored-by: Eric Gustin <eric@arcade.dev>
Co-authored-by: Eric Gustin <34000337+EricGustin@users.noreply.github.com>
2025-06-11 16:48:17 -07:00
Renato Byrro
01a9efcf63
Fix quote issue when deploying worker (2) (#427) 2025-06-11 13:49:48 -03:00
Renato Byrro
5c221dd042
Fix quote issue when deploying worker (#426) 2025-06-11 12:53:45 -03:00
Sterling Dreyer
ab1a2a8d31
Move prod build (#424) 2025-06-11 08:30:18 -07:00
Renato Byrro
a538f4bf81
Jira Toolkit (#407)
Unusually big PR, in large part due to Jira's data model complexities.
2025-06-11 12:06:33 -03:00
Sterling Dreyer
3b50c0bb6e
Add promotion workflow (#422) 2025-06-10 13:12:04 -07:00
porter-deployment-app[bot]
f23d80fdff
Enable Porter Application worker (#423)
Hello 👋 from Porter! Please merge this PR to finish setting up your
application.

---------

Co-authored-by: porter-deployment-app[bot] <87230664+porter-deployment-app[bot]@users.noreply.github.com>
Co-authored-by: sdreyer <sterling@arcade-ai.com>
2025-06-10 13:02:59 -07:00
Sterling Dreyer
268b268044
Build staging from source (#421) 2025-06-10 12:05:00 -07:00
Eric Gustin
bc8814e24f
Add missing dev dependency to two toolkits (#419)
pytest asyncio was missing in dev deps for the reddit toolkit and notion
toolkit. This was causing PR workflows to fail.
2025-06-09 11:06:07 -07:00
porter-deployment-app[bot]
ce95b3abf2
Enable Porter Application worker (#418)
Hello 👋 from Porter! Please merge this PR to finish setting up your
application.

Co-authored-by: porter-deployment-app[bot] <87230664+porter-deployment-app[bot]@users.noreply.github.com>
2025-06-06 17:05:19 -07:00
Shub
0246682a30
fix: update typer dependency to ^0.10.0 to fix Python 3.13 compatibility (#413) 2025-05-29 10:56:03 -04:00
Sterling Dreyer
f8907684b7
Cleanup deploy exceptions (#410) 2025-05-23 17:21:47 -07:00
Evan Tahler
5189a4701b
Shorter Readme (#409)
This repo has a readme that is basically a shadow version of our docs
that we aren't keeping up-to-date. So, let's remove all that and
encourage folks to head to our docs.

---------

Co-authored-by: Nate Barbettini <nate@arcade.dev>
2025-05-23 14:46:42 -07:00
Eric Gustin
6bc6f0c574
Add Confluence toolkit (#406)
12 tools for the new Confluence toolkit.

| Name | Description |

|----------------------------------|------------------------------------------------------------------------------------|
| Confluence.CreatePage | Create a new page at the root of the given
space. |
| Confluence.UpdatePageContent | Update a page's content. |
| Confluence.RenamePage | Rename a page by changing its title. |
| Confluence.GetPage | Retrieve a SINGLE page's content by its ID or
title. |
| Confluence.GetPagesById | Get the content of MULTIPLE pages by their
ID in a single efficient request. |
| Confluence.ListPages | Get the content of multiple pages by their ID.
|
| Confluence.ListAttachments | List attachments in a workspace. |
| Confluence.GetAttachmentsForPage | Get attachments for a page by its
ID or title. |
| Confluence.SearchContent | Search for content in Confluence. |
| Confluence.GetSpace | Get the details of a space by its ID or key. |
| Confluence.ListSpaces | List all spaces sorted by name in ascending
order. |
| Confluence.GetSpaceHierarchy | Retrieve the full hierarchical
structure of a Confluence space as a tree structure.|

### Confluence Clients
Confluence has deprecated most of their V1 endpoints, so most of the
tools use V2. However, we still need a V1 client to support search. The
V1 search API has not been deprecated yet, because there is no V2
equivalent. But we need to be aware in the future for when this
deprecation happens.


### Future work
* Content of pages are returned in the Confluence `storage` format. This
is the format that Confluence uses to store pages internally. We should
understand the storage format more deeply, and write utility function to
transform this format into plain text.
* Better protections against extremely large pages. I've tested up to
6,000 word pages.
* Tools for blog posts
* Tool for getting the children of a page. (`get_space_hierarchy` will
suffice for now)
* Allow for numerical titles
2025-05-22 13:18:19 -07:00
Sam Partee
24758ad35a
DevEx: Hot Reload all installed toolkits on save (#400)
Add hot-reload capability 

adds watchfiles dependency and changes uvicorn server logic
but does not have any breaking changes.

---------

Co-authored-by: Eric Gustin <eric@arcade.dev>
Co-authored-by: sdreyer <sterling@arcade-ai.com>
Co-authored-by: Eric Gustin <34000337+EricGustin@users.noreply.github.com>
2025-05-21 21:50:33 -07:00
Evan Tahler
28637f5543
Revert "Arcade Gateway" (#403)
Reverts ArcadeAI/arcade-ai#401
2025-05-20 14:24:08 -07:00
Evan Tahler
bd1d75970d
Arcade Gateway (#401)
Updating the CLI and Docs to say "gateway" not "engine". I didn't touch
the code
2025-05-16 16:43:08 -07:00
Eric Gustin
e764205e6c
Add Microsoft.ListEmailsByProperty tool (#386) 2025-05-16 13:08:29 -08:00
Sergio Serrano
8d0d77af10
Add Langchain example for our docs. (#399)
These examples are the same we have for Python in our docs.
2025-05-13 20:30:48 -03:00
Sergio Serrano
45b83d3461
Update LangGraph example (#398) 2025-05-12 19:50:18 -03:00
Renato Byrro
b9afa1b5cf
Asana Toolkit (#381) 2025-05-12 14:59:52 -03:00
Sergio Serrano
44d7a23bdd
Add Mastra Integration Example (#397) 2025-05-12 14:35:47 -03:00
Sergio Serrano
dfe3005fe6
Update example with the last version of arcade-js (#396)
Update our example with the latest version of `arcade-js`. This means we
can delete all the utility functions we created here, since we now have
first-class `Zod` support and they are no longer needed.

> [!WARNING]
> Don't merge until this
[PR](https://github.com/ArcadeAI/arcade-js/pull/127) is merged.
2025-05-12 14:02:11 -03:00
Eric Gustin
419a0ac717
Add Outlook Calendar tools (#382) 2025-05-09 13:34:40 -08:00
Sterling Dreyer
c128717e53
Worker status polling (#385)
Changes deployments so that worker status is polled instead of waiting
in a single request to reduce risk of proxy timeouts
2025-05-09 10:43:39 -07:00
Eric Gustin
479d137e62
Lint CONTRIBUTING.md (#395) 2025-05-07 11:08:04 -07:00