( ctx context.Context, scope toolspkg.Scope, req toolspkg.CallRequest, )
| 1606 | } |
| 1607 | |
| 1608 | func (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 | |
| 1658 | func (n *daemonNativeTools) networkDirectMessages( |
| 1659 | ctx context.Context, |
nothing calls this directly
no test coverage detected