| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
- package opencode
- import (
- "context"
- "net/http"
- "net/url"
- "slices"
- "github.com/sst/opencode-sdk-go/internal/apijson"
- "github.com/sst/opencode-sdk-go/internal/apiquery"
- "github.com/sst/opencode-sdk-go/internal/param"
- "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, query CommandListParams, opts ...option.RequestOption) (res *[]Command, err error) {
- opts = slices.Concat(r.Options, opts)
- path := "command"
- err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &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"`
- Subtask bool `json:"subtask"`
- 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
- Subtask 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
- }
- type CommandListParams struct {
- Directory param.Field[string] `query:"directory"`
- }
- // URLQuery serializes [CommandListParams]'s query parameters as `url.Values`.
- func (r CommandListParams) URLQuery() (v url.Values) {
- return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
- ArrayFormat: apiquery.ArrayQueryFormatComma,
- NestedFormat: apiquery.NestedQueryFormatBrackets,
- })
- }
|