Problem
The /experimental/resource endpoint in agent_routes.py only checks for the legacy _ResourceProviding Protocol (get_resources() method). It does NOT check for the ResourceAccess Protocol (list_resources() method).
This means capabilities that implement ResourceAccess (like VikingCapability and McpServerCap) don't appear in the OpenCode TUI's @ mention resource list.
Affected Code
File: src/agentpool_server/opencode_server/routes/agent_routes.py
# Current — only checks get_resources():
@runtime_checkable
class _ResourceProviding(Protocol):
async def get_resources(self) -> Any: ...
for cap in caps:
if isinstance(cap, _ResourceProviding):
coros.append(cap.get_resources())
Only FunctionToolsetCapability implements get_resources(). Both McpServerCap and VikingCapability implement list_resources() (ResourceAccess Protocol), not get_resources().
Fix
Also check for ResourceAccess Protocol and include those resources. ResourceEntry objects from list_resources() lack a .client field, so use the capability class name as the client identifier.
@runtime_checkable
class _ResourceProviding(Protocol):
async def get_resources(self) -> Any: ...
@runtime_checkable
class _ResourceAccess(Protocol):
async def list_resources(self) -> Any: ...
for cap in caps:
if isinstance(cap, _ResourceProviding):
coros.append(cap.get_resources())
caps_with_resources.append(cap)
elif isinstance(cap, _ResourceAccess):
coros.append(cap.list_resources())
caps_with_resources.append(cap)
# When processing results:
client = getattr(resource, "client", None) or type(cap).__name__
Impact
Affects all ResourceAccess implementations — currently McpServerCap and VikingCapability. MCP server resources also don't show in the @ list.
Problem
The
/experimental/resourceendpoint inagent_routes.pyonly checks for the legacy_ResourceProvidingProtocol (get_resources()method). It does NOT check for theResourceAccessProtocol (list_resources()method).This means capabilities that implement
ResourceAccess(likeVikingCapabilityandMcpServerCap) don't appear in the OpenCode TUI's@mention resource list.Affected Code
File:
src/agentpool_server/opencode_server/routes/agent_routes.pyOnly
FunctionToolsetCapabilityimplementsget_resources(). BothMcpServerCapandVikingCapabilityimplementlist_resources()(ResourceAccess Protocol), notget_resources().Fix
Also check for
ResourceAccessProtocol and include those resources.ResourceEntryobjects fromlist_resources()lack a.clientfield, so use the capability class name as the client identifier.Impact
Affects all
ResourceAccessimplementations — currentlyMcpServerCapandVikingCapability. MCP server resources also don't show in the@list.