summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk/go/command.go
diff options
context:
space:
mode:
Diffstat (limited to 'packages/sdk/go/command.go')
-rw-r--r--packages/sdk/go/command.go67
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
+}