chore: import upstream snapshot with attribution
Validate YAML Workflows / Validate YAML Configuration Files (push) Has been cancelled
Validate YAML Workflows / Validate YAML Configuration Files (push) Has been cancelled
This commit is contained in:
Executable
+31
@@ -0,0 +1,31 @@
|
||||
"""Provider-agnostic tool specification dataclasses."""
|
||||
|
||||
from dataclasses import dataclass, field
|
||||
from typing import Any, Dict
|
||||
|
||||
|
||||
@dataclass
|
||||
class ToolSpec:
|
||||
"""Generic representation of a callable tool."""
|
||||
|
||||
name: str
|
||||
description: str = ""
|
||||
parameters: Dict[str, Any] = field(default_factory=dict)
|
||||
metadata: Dict[str, Any] = field(default_factory=dict)
|
||||
|
||||
def to_openai_dict(self) -> Dict[str, Any]:
|
||||
"""Convert to OpenAI Responses API function schema."""
|
||||
return {
|
||||
"type": "function",
|
||||
"name": self.name,
|
||||
"description": self.description,
|
||||
"parameters": self.parameters or {"type": "object", "properties": {}},
|
||||
}
|
||||
|
||||
def to_gemini_function(self) -> Dict[str, Any]:
|
||||
"""Convert to Gemini FunctionDeclaration schema."""
|
||||
return {
|
||||
"name": self.name,
|
||||
"description": self.description,
|
||||
"parameters": self.parameters or {"type": "object", "properties": {}},
|
||||
}
|
||||
Reference in New Issue
Block a user