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

Method AgentTaskClaimNext

internal/cli/client.go:5161–5191  ·  view source on GitHub ↗
(
	ctx context.Context,
	request AgentTaskClaimNextRequest,
	credentials agentidentity.Credentials,
)

Source from the content-addressed store, hash-verified

5159}
5160
5161func (c *unixSocketClient) AgentTaskClaimNext(
5162 ctx context.Context,
5163 request AgentTaskClaimNextRequest,
5164 credentials agentidentity.Credentials,
5165) (AgentTaskNextRecord, error) {
5166 const path = "/api/agent/tasks/claim-next"
5167 response, err := c.doRequestWithCredentials(ctx, http.MethodPost, path, nil, request, "", credentials)
5168 if err != nil {
5169 return AgentTaskNextRecord{}, err
5170 }
5171 defer func() {
5172 _ = response.Body.Close()
5173 }()
5174
5175 if response.StatusCode == http.StatusNoContent {
5176 if err := drainResponseBody(http.MethodPost, path, response.Body); err != nil {
5177 return AgentTaskNextRecord{}, err
5178 }
5179 return AgentTaskNextRecord{Claimed: false}, nil
5180 }
5181 if response.StatusCode < 200 || response.StatusCode >= 300 {
5182 return AgentTaskNextRecord{}, readAPIError(response)
5183 }
5184
5185 var decoded contract.AgentTaskClaimResponse
5186 if err := json.NewDecoder(response.Body).Decode(&decoded); err != nil {
5187 return AgentTaskNextRecord{}, fmt.Errorf("cli: decode %s %s response: %w", http.MethodPost, path, err)
5188 }
5189 claim := decoded.Claim
5190 return AgentTaskNextRecord{Claimed: true, Claim: &claim}, nil
5191}
5192
5193func (c *unixSocketClient) AgentTaskHeartbeat(
5194 ctx context.Context,

Callers 1

Calls 4

drainResponseBodyFunction · 0.85
readAPIErrorFunction · 0.85
CloseMethod · 0.65

Tested by 1