arcade-mcp/schemas/preview/tool_request.schema.jsonc
Sam Partee 28fe56cfc1
MyPy Compliant (#5)
MyPy compliance for the whole codebase

- systematic way of executing tools (`executor.py`)
- support for using pydantic models in tool inputs and outputs
- mypy compliance (most of the changes)
- removal of unused code (from previous iterations)

Co-authored-by: Nate Barbettini <nate@arcade-ai.com>
2024-07-16 17:01:38 -07:00

73 lines
1.8 KiB
Text

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"$schema": {
// Explicitly allow JSON-Schema to be referenced (needed due to additionalProperties: false)
"type": "string",
"format": "uri"
},
"run_id": {
"type": "string",
"description": "ID of the overall run"
},
"invocation_id": {
"type": "string",
"description": "ID of this specific tool call"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"tool": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the tool to invoke"
},
"version": {
"type": "string",
"description": "Version of the named tool to invoke"
}
},
"required": ["name", "version"],
"additionalProperties": false
},
"input": {
"type": "object",
"additionalProperties": true
},
"context": {
"type": "object",
"properties": {
"authorization": {
"type": "object",
"properties": {
"token": {
"type": "string"
},
"additionalProperties": false
}
},
"user": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A unique ID that identifies the user"
},
"name": {
"type": "string",
"description": "The name of the user"
}
},
"required": ["id"],
"additionalProperties": false
}
}
}
},
"required": ["run_id", "invocation_id", "created_at", "tool", "input", "context"],
"additionalProperties": false
}