diff options
Diffstat (limited to 'packages/sdk/go/command.go')
| -rw-r--r-- | packages/sdk/go/command.go | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/packages/sdk/go/command.go b/packages/sdk/go/command.go new file mode 100644 index 000000000..9ca70c3ac --- /dev/null +++ b/packages/sdk/go/command.go @@ -0,0 +1,67 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package opencode + +import ( + "context" + "net/http" + + "github.com/sst/opencode-sdk-go/internal/apijson" + "github.com/sst/opencode-sdk-go/internal/requestconfig" + "github.com/sst/opencode-sdk-go/option" +) + +// CommandService contains methods and other services that help with interacting +// with the opencode API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewCommandService] method instead. +type CommandService struct { + Options []option.RequestOption +} + +// NewCommandService generates a new service that applies the given options to each +// request. These options are applied after the parent client's options (if there +// is one), and before any request-specific options. +func NewCommandService(opts ...option.RequestOption) (r *CommandService) { + r = &CommandService{} + r.Options = opts + return +} + +// List all commands +func (r *CommandService) List(ctx context.Context, opts ...option.RequestOption) (res *[]Command, err error) { + opts = append(r.Options[:], opts...) + path := "command" + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) + return +} + +type Command struct { + Name string `json:"name,required"` + Template string `json:"template,required"` + Agent string `json:"agent"` + Description string `json:"description"` + Model string `json:"model"` + JSON commandJSON `json:"-"` +} + +// commandJSON contains the JSON metadata for the struct [Command] +type commandJSON struct { + Name apijson.Field + Template apijson.Field + Agent apijson.Field + Description apijson.Field + Model apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *Command) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r commandJSON) RawJSON() string { + return r.raw +} |
