reorg
This commit is contained in:
+6
-4
@@ -1,9 +1,14 @@
|
|||||||
from .adapters import (
|
from .adapters import (
|
||||||
BackendAdapter,
|
BackendAdapter,
|
||||||
|
ToolCallResult,
|
||||||
|
)
|
||||||
|
from .capabilities import (
|
||||||
|
CatalogNodeEntry,
|
||||||
|
CatalogPromptEntry,
|
||||||
|
CatalogResourceEntry,
|
||||||
DiscoveredPrompt,
|
DiscoveredPrompt,
|
||||||
DiscoveredResource,
|
DiscoveredResource,
|
||||||
DiscoveredTool,
|
DiscoveredTool,
|
||||||
ToolCallResult,
|
|
||||||
)
|
)
|
||||||
from .catalog import CombinedCatalog
|
from .catalog import CombinedCatalog
|
||||||
from .connections import ConnectionRegistry, parse_connection_id, qualify_node_name
|
from .connections import ConnectionRegistry, parse_connection_id, qualify_node_name
|
||||||
@@ -15,9 +20,6 @@ from .discovery import (
|
|||||||
from .events import McpEvent, make_event
|
from .events import McpEvent, make_event
|
||||||
from .models import (
|
from .models import (
|
||||||
AuthRecord,
|
AuthRecord,
|
||||||
CatalogNodeEntry,
|
|
||||||
CatalogPromptEntry,
|
|
||||||
CatalogResourceEntry,
|
|
||||||
CatalogSnapshot,
|
CatalogSnapshot,
|
||||||
ConnectionConfig,
|
ConnectionConfig,
|
||||||
RawWorkflowPlan,
|
RawWorkflowPlan,
|
||||||
|
|||||||
+2
-28
@@ -1,36 +1,10 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass, field
|
|
||||||
from typing import Any, Protocol
|
from typing import Any, Protocol
|
||||||
|
|
||||||
|
from .capabilities import DiscoveredPrompt, DiscoveredResource, DiscoveredTool
|
||||||
from .models import AuthRecord, ConnectionConfig
|
from .models import AuthRecord, ConnectionConfig
|
||||||
|
from dataclasses import dataclass, field
|
||||||
|
|
||||||
@dataclass(slots=True)
|
|
||||||
class DiscoveredTool:
|
|
||||||
name: str
|
|
||||||
description: str | None
|
|
||||||
input_schema: dict[str, Any]
|
|
||||||
output_schema: dict[str, Any]
|
|
||||||
outcomes: tuple[str, ...] = ("ok",)
|
|
||||||
metadata: dict[str, Any] = field(default_factory=dict)
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
|
||||||
class DiscoveredResource:
|
|
||||||
uri: str
|
|
||||||
name: str
|
|
||||||
description: str | None
|
|
||||||
mime_type: str | None = None
|
|
||||||
metadata: dict[str, Any] = field(default_factory=dict)
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
|
||||||
class DiscoveredPrompt:
|
|
||||||
name: str
|
|
||||||
description: str | None
|
|
||||||
arguments: list[dict[str, Any]] = field(default_factory=list)
|
|
||||||
metadata: dict[str, Any] = field(default_factory=dict)
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(slots=True)
|
||||||
|
|||||||
@@ -0,0 +1,63 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from dataclasses import dataclass, field
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass(slots=True)
|
||||||
|
class DiscoveredTool:
|
||||||
|
name: str
|
||||||
|
description: str | None
|
||||||
|
input_schema: dict[str, Any]
|
||||||
|
output_schema: dict[str, Any]
|
||||||
|
outcomes: tuple[str, ...] = ("ok",)
|
||||||
|
metadata: dict[str, Any] = field(default_factory=dict)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass(slots=True)
|
||||||
|
class DiscoveredResource:
|
||||||
|
uri: str
|
||||||
|
name: str
|
||||||
|
description: str | None
|
||||||
|
mime_type: str | None = None
|
||||||
|
metadata: dict[str, Any] = field(default_factory=dict)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass(slots=True)
|
||||||
|
class DiscoveredPrompt:
|
||||||
|
name: str
|
||||||
|
description: str | None
|
||||||
|
arguments: list[dict[str, Any]] = field(default_factory=list)
|
||||||
|
metadata: dict[str, Any] = field(default_factory=dict)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass(slots=True)
|
||||||
|
class CatalogNodeEntry:
|
||||||
|
qualified_name: str
|
||||||
|
connection_id: str
|
||||||
|
local_name: str
|
||||||
|
description: str | None
|
||||||
|
outcomes: tuple[str, ...]
|
||||||
|
input_schema: dict[str, Any]
|
||||||
|
output_schema: dict[str, Any]
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass(slots=True)
|
||||||
|
class CatalogResourceEntry:
|
||||||
|
qualified_name: str
|
||||||
|
connection_id: str
|
||||||
|
local_name: str
|
||||||
|
uri: str
|
||||||
|
description: str | None
|
||||||
|
mime_type: str | None = None
|
||||||
|
metadata: dict[str, Any] = field(default_factory=dict)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass(slots=True)
|
||||||
|
class CatalogPromptEntry:
|
||||||
|
qualified_name: str
|
||||||
|
connection_id: str
|
||||||
|
local_name: str
|
||||||
|
description: str | None
|
||||||
|
arguments: list[dict[str, Any]] = field(default_factory=list)
|
||||||
|
metadata: dict[str, Any] = field(default_factory=dict)
|
||||||
+5
-4
@@ -5,14 +5,15 @@ from typing import Any
|
|||||||
|
|
||||||
from wf_authoring import NodeCatalog, NodeSpec
|
from wf_authoring import NodeCatalog, NodeSpec
|
||||||
|
|
||||||
from .adapters import DiscoveredPrompt, DiscoveredResource
|
from .capabilities import (
|
||||||
from .connections import qualify_node_name
|
|
||||||
from .models import (
|
|
||||||
CatalogNodeEntry,
|
CatalogNodeEntry,
|
||||||
CatalogPromptEntry,
|
CatalogPromptEntry,
|
||||||
CatalogResourceEntry,
|
CatalogResourceEntry,
|
||||||
CatalogSnapshot,
|
DiscoveredPrompt,
|
||||||
|
DiscoveredResource,
|
||||||
)
|
)
|
||||||
|
from .connections import qualify_node_name
|
||||||
|
from .models import CatalogSnapshot
|
||||||
|
|
||||||
|
|
||||||
def snapshot_from_specs(
|
def snapshot_from_specs(
|
||||||
|
|||||||
@@ -88,6 +88,7 @@ def _tool_result_to_call_result(result: McpCallToolResult) -> ToolCallResult:
|
|||||||
meta=result.meta or {},
|
meta=result.meta or {},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class McpSdkAdapter(BackendAdapter):
|
class McpSdkAdapter(BackendAdapter):
|
||||||
@asynccontextmanager
|
@asynccontextmanager
|
||||||
async def _session(
|
async def _session(
|
||||||
|
|||||||
+2
-32
@@ -3,6 +3,8 @@ from __future__ import annotations
|
|||||||
from dataclasses import asdict, dataclass, field
|
from dataclasses import asdict, dataclass, field
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
|
from .capabilities import CatalogNodeEntry, CatalogPromptEntry, CatalogResourceEntry
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(slots=True)
|
||||||
class ConnectionConfig:
|
class ConnectionConfig:
|
||||||
@@ -20,38 +22,6 @@ class AuthRecord:
|
|||||||
payload: dict[str, Any] = field(default_factory=dict)
|
payload: dict[str, Any] = field(default_factory=dict)
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
|
||||||
class CatalogNodeEntry:
|
|
||||||
qualified_name: str
|
|
||||||
connection_id: str
|
|
||||||
local_name: str
|
|
||||||
description: str | None
|
|
||||||
outcomes: tuple[str, ...]
|
|
||||||
input_schema: dict[str, Any]
|
|
||||||
output_schema: dict[str, Any]
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
|
||||||
class CatalogResourceEntry:
|
|
||||||
qualified_name: str
|
|
||||||
connection_id: str
|
|
||||||
local_name: str
|
|
||||||
uri: str
|
|
||||||
description: str | None
|
|
||||||
mime_type: str | None = None
|
|
||||||
metadata: dict[str, Any] = field(default_factory=dict)
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
|
||||||
class CatalogPromptEntry:
|
|
||||||
qualified_name: str
|
|
||||||
connection_id: str
|
|
||||||
local_name: str
|
|
||||||
description: str | None
|
|
||||||
arguments: list[dict[str, Any]] = field(default_factory=list)
|
|
||||||
metadata: dict[str, Any] = field(default_factory=dict)
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(slots=True)
|
||||||
class CatalogSnapshot:
|
class CatalogSnapshot:
|
||||||
connection_id: str
|
connection_id: str
|
||||||
|
|||||||
Reference in New Issue
Block a user