(ctx context.Context, raw json.RawMessage)
| 128 | } |
| 129 | |
| 130 | func (h *HostAPIHandler) handleNetworkThreadGet(ctx context.Context, raw json.RawMessage) (any, error) { |
| 131 | var params extensioncontract.NetworkThreadTargetParams |
| 132 | if err := decodeHostAPIParams(raw, ¶ms); err != nil { |
| 133 | return nil, err |
| 134 | } |
| 135 | networkStore, err := h.requireHostAPINetworkStore() |
| 136 | if err != nil { |
| 137 | return nil, err |
| 138 | } |
| 139 | channel, err := hostAPINetworkChannel(params.Channel) |
| 140 | if err != nil { |
| 141 | return nil, err |
| 142 | } |
| 143 | threadID := strings.TrimSpace(params.ThreadID) |
| 144 | if err := network.ValidateConversationID(threadID, "thread_id"); err != nil { |
| 145 | return nil, invalidParamsRPCError(err) |
| 146 | } |
| 147 | workspaceID, err := h.hostAPINetworkWorkspaceID(ctx, params.WorkspaceID) |
| 148 | if err != nil { |
| 149 | return nil, err |
| 150 | } |
| 151 | thread, err := networkStore.GetThread( |
| 152 | ctx, |
| 153 | store.NetworkChannelRef{WorkspaceID: workspaceID, Channel: channel}, |
| 154 | threadID, |
| 155 | ) |
| 156 | if err != nil { |
| 157 | return nil, mapHostAPINetworkRPCError(err) |
| 158 | } |
| 159 | return hostAPINetworkThreadSummaryPayload(thread), nil |
| 160 | } |
| 161 | |
| 162 | func (h *HostAPIHandler) handleNetworkThreadMessages(ctx context.Context, raw json.RawMessage) (any, error) { |
| 163 | var params extensioncontract.NetworkThreadMessagesParams |
nothing calls this directly
no test coverage detected