<!-- CURSOR_SUMMARY --> > [!NOTE] > **Medium Risk** > Tightens validation on tool metadata, which may break existing tools that relied on non-JSON-serializable `extras` values or keys; changes are localized and well-covered by tests. > > **Overview** > Adds **JSON-safety enforcement** for `ToolMetadata.extras`: top-level keys must be strings at model construction, and `validate_for_tool()` now recursively rejects non-JSON-native values (including non-finite floats) with path-rich `ToolDefinitionError` messages. > > Expands tests to cover valid/invalid nested `extras` cases and error-message quality, and bumps `arcade-core` version to `4.5.0`. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 2bab0db3c17f0ddb97868764d10494da543b39e5. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> |
||
|---|---|---|
| .. | ||
| arcade_core | ||
| pyproject.toml | ||
| README.md | ||
Arcade Core
Core library for the Arcade platform providing foundational components and utilities.
Overview
Arcade Core provides the essential building blocks for the Arcade platform:
- Tool Catalog & Toolkit Management: Core classes for managing and organizing tools
- Configuration & Schema Handling: Configuration management and validation
- Authentication & Authorization: Auth providers and security utilities
- Error Handling: Comprehensive error types and handling
- Telemetry & Observability: Monitoring and tracing capabilities
- Utilities: Common helper functions and validators
Installation
pip install arcade-core
Usage
- Install an arcade toolkit
pip install arcade-math
- Load the toolkit
import arcade_math
from arcade_core import ToolCatalog, Toolkit
# Create a tool catalog
catalog = ToolCatalog()
# Load a toolkit
toolkit = Toolkit.from_module(arcade_math)
License
MIT License - see LICENSE file for details.