MCPcopy Create free account
hub / github.com/compozy/agh / networkDirectResolve

Method networkDirectResolve

internal/daemon/native_tools.go:1608–1656  ·  view source on GitHub ↗
(
	ctx context.Context,
	scope toolspkg.Scope,
	req toolspkg.CallRequest,
)

Source from the content-addressed store, hash-verified

1606}
1607
1608func (n *daemonNativeTools) networkDirectResolve(
1609 ctx context.Context,
1610 scope toolspkg.Scope,
1611 req toolspkg.CallRequest,
1612) (toolspkg.ToolResult, error) {
1613 var input networkDirectResolveInput
1614 if err := decodeNativeInput(req, &input); err != nil {
1615 return toolspkg.ToolResult{}, err
1616 }
1617 channel, err := nativeNetworkChannel(req.ToolID, input.Channel)
1618 if err != nil {
1619 return toolspkg.ToolResult{}, err
1620 }
1621 sessionID := firstNonEmpty(input.SessionID, req.SessionID, scope.SessionID)
1622 if sessionID == "" {
1623 return toolspkg.ToolResult{}, nativeRequiredInputError(req.ToolID, "session_id")
1624 }
1625 peerID := strings.TrimSpace(input.PeerID)
1626 if err := network.ValidatePeerID(peerID); err != nil {
1627 return toolspkg.ToolResult{}, nativeNetworkInputError(req.ToolID, err)
1628 }
1629 workspaceID, err := n.nativeNetworkWorkspaceID(ctx, req.ToolID, input.WorkspaceID, scope)
1630 if err != nil {
1631 return toolspkg.ToolResult{}, err
1632 }
1633 localPeer, remotePeer, err := n.resolveNetworkDirectRoomPeers(ctx, workspaceID, channel, sessionID, peerID)
1634 if err != nil {
1635 return toolspkg.ToolResult{}, nativeNetworkToolError(req.ToolID, err)
1636 }
1637 directID, peerA, peerB, err := network.DirectRoomIdentity(workspaceID, channel, localPeer.PeerID, remotePeer.PeerID)
1638 if err != nil {
1639 return toolspkg.ToolResult{}, nativeNetworkToolError(req.ToolID, err)
1640 }
1641 now := time.Now().UTC()
1642 direct, err := n.deps.NetworkStore.ResolveDirectRoom(ctx, store.NetworkDirectRoomEntry{
1643 WorkspaceID: workspaceID,
1644 Channel: channel,
1645 DirectID: directID,
1646 PeerA: peerA,
1647 PeerB: peerB,
1648 OpenedAt: now,
1649 LastActivityAt: now,
1650 })
1651 if err != nil {
1652 return toolspkg.ToolResult{}, err
1653 }
1654 payload := core.NetworkDirectRoomPayloadFromStore(direct)
1655 return structuredNetworkResult(map[string]any{nativeToolsDirectKey: payload}, payload.DirectID)
1656}
1657
1658func (n *daemonNativeTools) networkDirectMessages(
1659 ctx context.Context,

Callers

nothing calls this directly

Calls 14

ValidatePeerIDFunction · 0.92
DirectRoomIdentityFunction · 0.92
decodeNativeInputFunction · 0.85
nativeNetworkChannelFunction · 0.85
nativeRequiredInputErrorFunction · 0.85
nativeNetworkInputErrorFunction · 0.85
nativeNetworkToolErrorFunction · 0.85
structuredNetworkResultFunction · 0.85
firstNonEmptyFunction · 0.70

Tested by

no test coverage detected