Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

agentapi-sdk-go

GoDoc

Go SDK for the AgentAPI HTTP API.

Install

go get github.com/coder/agentapi-sdk-go

Usage

package main

import (
	"context"
	"fmt"
	"log"

	agentapisdk "github.com/coder/agentapi-sdk-go"
)

func main() {
	ctx := context.Background()

	client, err := agentapisdk.NewClient("http://localhost:3284")
	if err != nil {
		log.Fatal(err)
	}

	// Send a message to the agent.
	_, err = client.PostMessage(ctx, agentapisdk.PostMessageParams{
		Content: "Hello, agent!",
		Type:    agentapisdk.MessageTypeUser,
	})
	if err != nil {
		log.Fatal(err)
	}

	// Check the agent's status.
	status, err := client.GetStatus(ctx)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("Agent status:", status.Status)

	// Subscribe to server-sent events.
	events, errCh, err := client.SubscribeEvents(ctx)
	if err != nil {
		log.Fatal(err)
	}
	for {
		select {
		case ev, ok := <-events:
			if !ok {
				return
			}
			switch e := ev.(type) {
			case agentapisdk.EventMessageUpdate:
				fmt.Println("Message update:", e.Message)
			case agentapisdk.EventStatusChange:
				fmt.Println("Status change:", e.Status)
			}
		case err, ok := <-errCh:
			if !ok {
				return
			}
			if err != nil {
				log.Fatal(err)
			}
		}
	}
}

Code generation

The gen/ package is auto-generated from the OpenAPI spec using oapi-codegen. See gen/README.md for the exact command.

AgentAPI

See the AgentAPI repository for the full API specification and server documentation.

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages