arcade-mcp/libs/arcade-core/arcade_core
Eric Gustin 25267ab6ee
JSON-safety validation for ToolMetadata.extras (#773)
<!-- 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 -->
2026-02-25 09:48:04 -08:00
..
converters Adding MCP Servers supports to Arcade Evals (#689) 2026-01-07 20:26:23 -03:00
network feat: Support multiple orgs & projects in Arcade CLI (#717) 2025-12-11 12:58:55 -08:00
usage [TOO-326] Windows papercuts (#768) 2026-02-25 13:18:16 -03:00
__init__.py 🏗️ Restructure: Multi-Package Architecture + uv Migration (#412) 2025-06-11 16:48:17 -07:00
annotations.py 🏗️ Restructure: Multi-Package Architecture + uv Migration (#412) 2025-06-11 16:48:17 -07:00
auth.py Add Attio wellknown auth class (#769) 2026-02-12 11:05:43 -08:00
auth_tokens.py feat: Support multiple orgs & projects in Arcade CLI (#717) 2025-12-11 12:58:55 -08:00
catalog.py Add Tool Metadata (#766) 2026-02-17 14:31:45 -08:00
config.py 🏗️ Restructure: Multi-Package Architecture + uv Migration (#412) 2025-06-11 16:48:17 -07:00
config_model.py [TOO-326] Windows papercuts (#768) 2026-02-25 13:18:16 -03:00
constants.py feat: Support multiple orgs & projects in Arcade CLI (#717) 2025-12-11 12:58:55 -08:00
context.py MCP Local (#563) 2025-09-25 15:28:15 -07:00
discovery.py MCP Local (#563) 2025-09-25 15:28:15 -07:00
errors.py ToolExecutionError description (#762) 2026-02-03 16:04:52 -08:00
executor.py Worker Stability (#688) 2025-11-20 11:13:41 -08:00
metadata.py JSON-safety validation for ToolMetadata.extras (#773) 2026-02-25 09:48:04 -08:00
output.py Tool Error Handling (#539) 2025-09-10 10:45:18 -07:00
parse.py [TOO-326] Windows papercuts (#768) 2026-02-25 13:18:16 -03:00
py.typed 🏗️ Restructure: Multi-Package Architecture + uv Migration (#412) 2025-06-11 16:48:17 -07:00
schema.py Add Tool Metadata (#766) 2026-02-17 14:31:45 -08:00
subprocess_utils.py [TOO-326] Windows papercuts (#768) 2026-02-25 13:18:16 -03:00
toolkit.py [TOO-326] Windows papercuts (#768) 2026-02-25 13:18:16 -03:00
utils.py Fix MCP capabilities, examples, tests, and more (#657) 2025-10-30 11:59:00 -07:00
version.py 🏗️ Restructure: Multi-Package Architecture + uv Migration (#412) 2025-06-11 16:48:17 -07:00