Improve Pydantic and Typedict support and add a bunch of tets.
1. Fixed the test failure where TypeDict was being serialized as a list
of tuples instead of a dict by:
- Adding proper handling for BaseModel instances in the output.py file
- Converting BaseModel results (from TypeDict conversion) to dicts using
model_dump()
- Handling lists containing BaseModel objects
2. Fixed None handling to ensure None results are converted to empty
strings as expected
3. Updated the schema.py to allow dict and list types in
ToolCallOutput.value
4. new tests
- TypeDict output execution tests
- Output factory tests
- Executor tests with TypeDict support
- Schema validation tests
The key changes were:
- In ``arcade_core/output.py``: Added BaseModel conversion logic in the
success method
- In ``arcade_core/schema.py``: Changed ToolCallOutput.value type from
list[str] to list to support complex types
TODO
- [ ] Confirm engine compatibility without changes made to engine
---------
Co-authored-by: Eric Gustin <eric@arcade.dev>
|
||
|---|---|---|
| .github | ||
| .vscode | ||
| contrib | ||
| docker | ||
| examples | ||
| libs | ||
| schemas/preview | ||
| toolkits | ||
| .editorconfig | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .prettierignore | ||
| .prettierrc.toml | ||
| .ruff.toml | ||
| CONTRIBUTING.md | ||
| cspell.config.yaml | ||
| LICENSE | ||
| Makefile | ||
| pyproject.toml | ||
| README.md | ||
| worker.toml | ||
Documentation • Tools • Quickstart • Contact Us
Arcade AI Platform
Arcade is a developer platform that lets you build, deploy, and manage tools for AI agents.
This repository contains the core Arcade libraries, organized as separate packages for maximum flexibility and modularity:
- arcade-core - Core platform functionality and schemas | Source code |
pip install arcade-core| - arcade-tdk - Tool Development Kit with the
@tooldecorator | Source code |pip install arcade-tdk| - arcade-serve - Serving infrastructure for workers and MCP servers | Source code |
pip install arcade-serve| - arcade-evals - Evaluation framework for testing tool performance | Source code |
pip install 'arcade-ai[evals]| - arcade-cli - Command-line interface for the Arcade platform | Source code |
pip install arcade-ai|
To learn more about Arcade.dev, check out our documentation.
Pst. hey, you, give us a star if you like it!
Quick Start
Installation
For development, install all packages with dependencies using uv workspace:
# Install all packages and dev dependencies
uv sync --extra all --dev
# Or use the Makefile (includes pre-commit hooks)
make install
For production use, install individual packages as needed:
pip install arcade-ai # CLI
pip install 'arcade-ai[evals]' # CLI + Evaluation framework
pip install 'arcade-ai[all]' # CLI + Serving infra + eval framework + TDK
pip install arcade_serve # Serving infrastructure
pip install arcade-tdk # Tool Development Kit
Development
Use the Makefile for standard tasks:
# Run tests
make test
# Run linting and type checking
make check
# Build all packages
make build
# See all available commands
make help
Client Libraries
-
ArcadeAI/arcade-py: The Python client for interacting with Arcade.
-
ArcadeAI/arcade-js: The JavaScript client for interacting with Arcade.
-
ArcadeAI/arcade-go: The Go client for interacting with Arcade.
Support and Community
- Discord: Join our Discord community for real-time support and discussions.
- GitHub: Contribute or report issues on the Arcade GitHub repository.
- Documentation: Find in-depth guides and API references at Arcade Documentation.