1. Add README, LICENSE (MIT), .gitignore, Makefile, CHANGELOG 2. Add Version constant and User-Agent header to all requests 3. Rename SetStream to EnableStream (narrower API surface) 4. Fix FinishReason in CompletionStreamChoice to use typed *FinishReason 5. Type conversation entry Content as chat.Content instead of json.RawMessage 6. Graceful unknown type handling — UnknownEntry, UnknownEvent, UnknownChunk, UnknownMessage, UnknownAgentTool all return data instead of erroring on unrecognized discriminator values 7. Type agent tools with AgentTool sealed interface + UnmarshalAgentTool 8. Add pagination params to ListConversations and ListLibraries 9. Move openapi.yaml to docs/openapi.yaml
28 lines
865 B
Go
28 lines
865 B
Go
package mistral
|
|
|
|
import (
|
|
"context"
|
|
|
|
"somegit.dev/vikingowl/mistral-go-sdk/agents"
|
|
"somegit.dev/vikingowl/mistral-go-sdk/chat"
|
|
)
|
|
|
|
// AgentsComplete sends an agents completion request.
|
|
func (c *Client) AgentsComplete(ctx context.Context, req *agents.CompletionRequest) (*chat.CompletionResponse, error) {
|
|
var resp chat.CompletionResponse
|
|
if err := c.doJSON(ctx, "POST", "/v1/agents/completions", req, &resp); err != nil {
|
|
return nil, err
|
|
}
|
|
return &resp, nil
|
|
}
|
|
|
|
// AgentsCompleteStream sends an agents request and returns a stream of chunks.
|
|
func (c *Client) AgentsCompleteStream(ctx context.Context, req *agents.CompletionRequest) (*Stream[chat.CompletionChunk], error) {
|
|
req.EnableStream()
|
|
resp, err := c.doStream(ctx, "POST", "/v1/agents/completions", req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return newStream[chat.CompletionChunk](resp.Body), nil
|
|
}
|