Spaces:
Sleeping
Sleeping
feat: overhaul MCP architecture with structured tool schemas, comprehensive care-mode skill definitions, and enhanced test coverage for pipelines and service integration.
79df050 | from dataclasses import dataclass, field | |
| from typing import Any, Dict, List, Optional, Set | |
| class ToolMetadata: | |
| name: str | |
| requires_env: Set[str] = field(default_factory=set) | |
| defaults: Dict[str, Any] = field(default_factory=dict) | |
| enable_reformat: bool = False | |
| flow: Optional[str] = None # 例如 "navigation" | |
| env_fallbacks: Dict[str, List[str]] = field(default_factory=dict) # 環境變數 fallback 映射,例如 {"city": ["detailed_address", "label"]} | |
| supports_location_query: bool = False | |
| class ToolResult: | |
| name: str | |
| message: str | |
| data: Optional[Any] = None | |
| raw: Optional[Dict[str, Any]] = None | |
| metadata: Optional[Dict[str, Any]] = None | |
| def to_dict(self) -> Dict[str, Any]: | |
| payload: Dict[str, Any] = { | |
| "message": self.message, | |
| "tool_name": self.name, | |
| } | |
| if self.data is not None: | |
| payload["tool_data"] = self.data | |
| if self.metadata: | |
| payload["metadata"] = self.metadata | |
| return payload | |