SDK support for tool secrets (stored and managed by the engine): - [x] New `requires_secrets=` option in the `@tool` decorator - [x] Internal plumbing in the catalog and `ToolContext` - [x] Full test coverage of all added code - [x] Bumped minor version (new feature) This PR can be merged without waiting for Engine changes, because it is additive only (no breaking changes). After this is merged, I will open another PR to update existing toolkits that will benefit from this feature!
74 lines
2 KiB
Text
74 lines
2 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": "The globally-unique run ID provided by the Engine."
|
|
},
|
|
"execution_id": {
|
|
"type": "string",
|
|
"description": "The globally-unique ID for this tool execution in the run."
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"tool": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Name of the tool to call (invoke)"
|
|
},
|
|
"toolkit": {
|
|
"type": "string",
|
|
"description": "Name of the toolkit containing the tool to call"
|
|
},
|
|
"version": {
|
|
"type": "string",
|
|
"description": "Version of the toolkit containing the tool to call"
|
|
}
|
|
},
|
|
"required": ["name", "toolkit", "version"],
|
|
"additionalProperties": false
|
|
},
|
|
"inputs": {
|
|
"type": "object",
|
|
"additionalProperties": true
|
|
},
|
|
"context": {
|
|
"type": "object",
|
|
"properties": {
|
|
"authorization": {
|
|
"type": "object",
|
|
"properties": {
|
|
"token": {
|
|
"type": "string"
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"secrets": {
|
|
"type": "object",
|
|
"additionalProperties": true
|
|
},
|
|
"user_id": {
|
|
"type": "string",
|
|
"description": "A unique ID that identifies the user (if any)"
|
|
},
|
|
"user_info": {
|
|
"type": "object",
|
|
"description": "The user information provided by the authorization server (if any)"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"required": ["run_id", "execution_id", "created_at", "tool", "inputs", "context"],
|
|
"additionalProperties": false
|
|
}
|