( ctx context.Context, scope toolspkg.Scope, req toolspkg.CallRequest, )
| 1491 | } |
| 1492 | |
| 1493 | func (n *daemonNativeTools) networkThreads( |
| 1494 | ctx context.Context, |
| 1495 | scope toolspkg.Scope, |
| 1496 | req toolspkg.CallRequest, |
| 1497 | ) (toolspkg.ToolResult, error) { |
| 1498 | var input networkThreadsInput |
| 1499 | if err := decodeNativeInput(req, &input); err != nil { |
| 1500 | return toolspkg.ToolResult{}, err |
| 1501 | } |
| 1502 | channel, err := nativeNetworkChannel(req.ToolID, input.Channel) |
| 1503 | if err != nil { |
| 1504 | return toolspkg.ToolResult{}, err |
| 1505 | } |
| 1506 | query := store.NetworkThreadQuery{ |
| 1507 | Limit: input.Limit, |
| 1508 | After: strings.TrimSpace(input.After), |
| 1509 | } |
| 1510 | if err := query.Validate(); err != nil { |
| 1511 | return toolspkg.ToolResult{}, nativeNetworkInputError(req.ToolID, err) |
| 1512 | } |
| 1513 | workspaceID, err := n.nativeNetworkWorkspaceID(ctx, req.ToolID, input.WorkspaceID, scope) |
| 1514 | if err != nil { |
| 1515 | return toolspkg.ToolResult{}, err |
| 1516 | } |
| 1517 | threads, err := n.deps.NetworkStore.ListThreads( |
| 1518 | ctx, |
| 1519 | store.NetworkChannelRef{WorkspaceID: workspaceID, Channel: channel}, |
| 1520 | query, |
| 1521 | ) |
| 1522 | if err != nil { |
| 1523 | return toolspkg.ToolResult{}, err |
| 1524 | } |
| 1525 | payload := core.NetworkThreadSummaryPayloadsFromStore(threads) |
| 1526 | return structuredNetworkResult( |
| 1527 | map[string]any{"threads": payload}, |
| 1528 | fmt.Sprintf("%d threads", len(payload)), |
| 1529 | ) |
| 1530 | } |
| 1531 | |
| 1532 | func (n *daemonNativeTools) networkThreadMessages( |
| 1533 | ctx context.Context, |
nothing calls this directly
no test coverage detected