opencode/packages/sdk/go/session.go

3048 lines
87 KiB
Go
Raw Normal View History

2025-07-31 13:00:29 +08:00
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
package opencode
import (
"context"
"errors"
"fmt"
"net/http"
"net/url"
2025-07-31 13:00:29 +08:00
"reflect"
2025-10-08 03:51:59 +08:00
"slices"
2025-07-31 13:00:29 +08:00
"github.com/sst/opencode-sdk-go/internal/apijson"
"github.com/sst/opencode-sdk-go/internal/apiquery"
2025-07-31 13:00:29 +08:00
"github.com/sst/opencode-sdk-go/internal/param"
"github.com/sst/opencode-sdk-go/internal/requestconfig"
"github.com/sst/opencode-sdk-go/option"
"github.com/sst/opencode-sdk-go/shared"
"github.com/tidwall/gjson"
)
// SessionService 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 [NewSessionService] method instead.
type SessionService struct {
2025-08-01 00:26:34 +08:00
Options []option.RequestOption
Permissions *SessionPermissionService
2025-07-31 13:00:29 +08:00
}
// NewSessionService 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 NewSessionService(opts ...option.RequestOption) (r *SessionService) {
r = &SessionService{}
r.Options = opts
2025-08-01 00:26:34 +08:00
r.Permissions = NewSessionPermissionService(opts...)
2025-07-31 13:00:29 +08:00
return
}
// Create a new session
func (r *SessionService) New(ctx context.Context, params SessionNewParams, opts ...option.RequestOption) (res *Session, err error) {
2025-10-08 03:51:59 +08:00
opts = slices.Concat(r.Options, opts)
2025-07-31 13:00:29 +08:00
path := "session"
err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...)
2025-07-31 13:00:29 +08:00
return
}
2025-08-14 02:28:22 +08:00
// Update session properties
func (r *SessionService) Update(ctx context.Context, id string, params SessionUpdateParams, opts ...option.RequestOption) (res *Session, err error) {
2025-10-08 03:51:59 +08:00
opts = slices.Concat(r.Options, opts)
2025-08-14 02:28:22 +08:00
if id == "" {
err = errors.New("missing required id parameter")
return
}
path := fmt.Sprintf("session/%s", id)
err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, params, &res, opts...)
2025-08-14 02:28:22 +08:00
return
}
2025-07-31 13:00:29 +08:00
// List all sessions
func (r *SessionService) List(ctx context.Context, query SessionListParams, opts ...option.RequestOption) (res *[]Session, err error) {
2025-10-08 03:51:59 +08:00
opts = slices.Concat(r.Options, opts)
2025-07-31 13:00:29 +08:00
path := "session"
err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...)
2025-07-31 13:00:29 +08:00
return
}
// Delete a session and all its data
func (r *SessionService) Delete(ctx context.Context, id string, body SessionDeleteParams, opts ...option.RequestOption) (res *bool, err error) {
2025-10-08 03:51:59 +08:00
opts = slices.Concat(r.Options, opts)
2025-07-31 13:00:29 +08:00
if id == "" {
err = errors.New("missing required id parameter")
return
}
path := fmt.Sprintf("session/%s", id)
err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, body, &res, opts...)
2025-07-31 13:00:29 +08:00
return
}
2025-08-14 02:28:22 +08:00
// Abort a session
func (r *SessionService) Abort(ctx context.Context, id string, body SessionAbortParams, opts ...option.RequestOption) (res *bool, err error) {
2025-10-08 03:51:59 +08:00
opts = slices.Concat(r.Options, opts)
if id == "" {
err = errors.New("missing required id parameter")
return
}
2025-08-14 02:28:22 +08:00
path := fmt.Sprintf("session/%s/abort", id)
2025-07-31 13:00:29 +08:00
err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...)
return
}
// Get a session's children
func (r *SessionService) Children(ctx context.Context, id string, query SessionChildrenParams, opts ...option.RequestOption) (res *[]Session, err error) {
2025-10-08 03:51:59 +08:00
opts = slices.Concat(r.Options, opts)
if id == "" {
err = errors.New("missing required id parameter")
return
}
path := fmt.Sprintf("session/%s/children", id)
err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...)
return
}
// Send a new command to a session
func (r *SessionService) Command(ctx context.Context, id string, params SessionCommandParams, opts ...option.RequestOption) (res *SessionCommandResponse, err error) {
2025-10-08 03:51:59 +08:00
opts = slices.Concat(r.Options, opts)
if id == "" {
err = errors.New("missing required id parameter")
return
}
path := fmt.Sprintf("session/%s/command", id)
err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...)
return
}
// Get session
func (r *SessionService) Get(ctx context.Context, id string, query SessionGetParams, opts ...option.RequestOption) (res *Session, err error) {
2025-10-08 03:51:59 +08:00
opts = slices.Concat(r.Options, opts)
if id == "" {
err = errors.New("missing required id parameter")
return
}
path := fmt.Sprintf("session/%s", id)
err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...)
return
}
2025-07-31 13:00:29 +08:00
// Analyze the app and create an AGENTS.md file
func (r *SessionService) Init(ctx context.Context, id string, params SessionInitParams, opts ...option.RequestOption) (res *bool, err error) {
2025-10-08 03:51:59 +08:00
opts = slices.Concat(r.Options, opts)
2025-07-31 13:00:29 +08:00
if id == "" {
err = errors.New("missing required id parameter")
return
}
path := fmt.Sprintf("session/%s/init", id)
err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...)
2025-07-31 13:00:29 +08:00
return
}
2025-08-01 00:26:34 +08:00
// Get a message from a session
func (r *SessionService) Message(ctx context.Context, id string, messageID string, query SessionMessageParams, opts ...option.RequestOption) (res *SessionMessageResponse, err error) {
2025-10-08 03:51:59 +08:00
opts = slices.Concat(r.Options, opts)
2025-08-01 00:26:34 +08:00
if id == "" {
err = errors.New("missing required id parameter")
return
}
if messageID == "" {
err = errors.New("missing required messageID parameter")
return
}
path := fmt.Sprintf("session/%s/message/%s", id, messageID)
err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...)
2025-08-01 00:26:34 +08:00
return
}
2025-07-31 13:00:29 +08:00
// List messages for a session
func (r *SessionService) Messages(ctx context.Context, id string, query SessionMessagesParams, opts ...option.RequestOption) (res *[]SessionMessagesResponse, err error) {
2025-10-08 03:51:59 +08:00
opts = slices.Concat(r.Options, opts)
2025-07-31 13:00:29 +08:00
if id == "" {
err = errors.New("missing required id parameter")
return
}
path := fmt.Sprintf("session/%s/message", id)
err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...)
return
}
// Create and send a new message to a session
func (r *SessionService) Prompt(ctx context.Context, id string, params SessionPromptParams, opts ...option.RequestOption) (res *SessionPromptResponse, err error) {
2025-10-08 03:51:59 +08:00
opts = slices.Concat(r.Options, opts)
if id == "" {
err = errors.New("missing required id parameter")
return
}
path := fmt.Sprintf("session/%s/message", id)
err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...)
2025-07-31 13:00:29 +08:00
return
}
// Revert a message
func (r *SessionService) Revert(ctx context.Context, id string, params SessionRevertParams, opts ...option.RequestOption) (res *Session, err error) {
2025-10-08 03:51:59 +08:00
opts = slices.Concat(r.Options, opts)
2025-07-31 13:00:29 +08:00
if id == "" {
err = errors.New("missing required id parameter")
return
}
path := fmt.Sprintf("session/%s/revert", id)
err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...)
2025-07-31 13:00:29 +08:00
return
}
// Share a session
func (r *SessionService) Share(ctx context.Context, id string, body SessionShareParams, opts ...option.RequestOption) (res *Session, err error) {
2025-10-08 03:51:59 +08:00
opts = slices.Concat(r.Options, opts)
2025-07-31 13:00:29 +08:00
if id == "" {
err = errors.New("missing required id parameter")
return
}
path := fmt.Sprintf("session/%s/share", id)
err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...)
2025-07-31 13:00:29 +08:00
return
}
2025-08-14 03:25:51 +08:00
// Run a shell command
func (r *SessionService) Shell(ctx context.Context, id string, params SessionShellParams, opts ...option.RequestOption) (res *AssistantMessage, err error) {
2025-10-08 03:51:59 +08:00
opts = slices.Concat(r.Options, opts)
2025-08-14 03:25:51 +08:00
if id == "" {
err = errors.New("missing required id parameter")
return
}
path := fmt.Sprintf("session/%s/shell", id)
err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...)
2025-08-14 03:25:51 +08:00
return
}
2025-07-31 13:00:29 +08:00
// Summarize the session
func (r *SessionService) Summarize(ctx context.Context, id string, params SessionSummarizeParams, opts ...option.RequestOption) (res *bool, err error) {
2025-10-08 03:51:59 +08:00
opts = slices.Concat(r.Options, opts)
2025-07-31 13:00:29 +08:00
if id == "" {
err = errors.New("missing required id parameter")
return
}
path := fmt.Sprintf("session/%s/summarize", id)
err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...)
2025-07-31 13:00:29 +08:00
return
}
// Restore all reverted messages
func (r *SessionService) Unrevert(ctx context.Context, id string, body SessionUnrevertParams, opts ...option.RequestOption) (res *Session, err error) {
2025-10-08 03:51:59 +08:00
opts = slices.Concat(r.Options, opts)
2025-07-31 13:00:29 +08:00
if id == "" {
err = errors.New("missing required id parameter")
return
}
path := fmt.Sprintf("session/%s/unrevert", id)
err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...)
2025-07-31 13:00:29 +08:00
return
}
// Unshare the session
func (r *SessionService) Unshare(ctx context.Context, id string, body SessionUnshareParams, opts ...option.RequestOption) (res *Session, err error) {
2025-10-08 03:51:59 +08:00
opts = slices.Concat(r.Options, opts)
2025-07-31 13:00:29 +08:00
if id == "" {
err = errors.New("missing required id parameter")
return
}
path := fmt.Sprintf("session/%s/share", id)
err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, body, &res, opts...)
2025-07-31 13:00:29 +08:00
return
}
type AgentPart struct {
ID string `json:"id,required"`
MessageID string `json:"messageID,required"`
Name string `json:"name,required"`
SessionID string `json:"sessionID,required"`
Type AgentPartType `json:"type,required"`
Source AgentPartSource `json:"source"`
JSON agentPartJSON `json:"-"`
}
// agentPartJSON contains the JSON metadata for the struct [AgentPart]
type agentPartJSON struct {
ID apijson.Field
MessageID apijson.Field
Name apijson.Field
SessionID apijson.Field
Type apijson.Field
Source apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *AgentPart) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r agentPartJSON) RawJSON() string {
return r.raw
}
func (r AgentPart) implementsPart() {}
type AgentPartType string
const (
AgentPartTypeAgent AgentPartType = "agent"
)
func (r AgentPartType) IsKnown() bool {
switch r {
case AgentPartTypeAgent:
return true
}
return false
}
type AgentPartSource struct {
End int64 `json:"end,required"`
Start int64 `json:"start,required"`
Value string `json:"value,required"`
JSON agentPartSourceJSON `json:"-"`
}
// agentPartSourceJSON contains the JSON metadata for the struct [AgentPartSource]
type agentPartSourceJSON struct {
End apijson.Field
Start apijson.Field
Value apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *AgentPartSource) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r agentPartSourceJSON) RawJSON() string {
return r.raw
}
type AgentPartInputParam struct {
Name param.Field[string] `json:"name,required"`
Type param.Field[AgentPartInputType] `json:"type,required"`
ID param.Field[string] `json:"id"`
Source param.Field[AgentPartInputSourceParam] `json:"source"`
}
func (r AgentPartInputParam) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
func (r AgentPartInputParam) implementsSessionPromptParamsPartUnion() {}
type AgentPartInputType string
const (
AgentPartInputTypeAgent AgentPartInputType = "agent"
)
func (r AgentPartInputType) IsKnown() bool {
switch r {
case AgentPartInputTypeAgent:
return true
}
return false
}
type AgentPartInputSourceParam struct {
End param.Field[int64] `json:"end,required"`
Start param.Field[int64] `json:"start,required"`
Value param.Field[string] `json:"value,required"`
}
func (r AgentPartInputSourceParam) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
2025-07-31 13:00:29 +08:00
type AssistantMessage struct {
ID string `json:"id,required"`
Cost float64 `json:"cost,required"`
Mode string `json:"mode,required"`
ModelID string `json:"modelID,required"`
2025-10-28 23:03:53 +08:00
ParentID string `json:"parentID,required"`
2025-07-31 13:00:29 +08:00
Path AssistantMessagePath `json:"path,required"`
ProviderID string `json:"providerID,required"`
Role AssistantMessageRole `json:"role,required"`
SessionID string `json:"sessionID,required"`
System []string `json:"system,required"`
Time AssistantMessageTime `json:"time,required"`
Tokens AssistantMessageTokens `json:"tokens,required"`
Error AssistantMessageError `json:"error"`
Summary bool `json:"summary"`
JSON assistantMessageJSON `json:"-"`
}
// assistantMessageJSON contains the JSON metadata for the struct
// [AssistantMessage]
type assistantMessageJSON struct {
ID apijson.Field
Cost apijson.Field
Mode apijson.Field
ModelID apijson.Field
2025-10-28 23:03:53 +08:00
ParentID apijson.Field
2025-07-31 13:00:29 +08:00
Path apijson.Field
ProviderID apijson.Field
Role apijson.Field
SessionID apijson.Field
System apijson.Field
Time apijson.Field
Tokens apijson.Field
Error apijson.Field
Summary apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *AssistantMessage) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r assistantMessageJSON) RawJSON() string {
return r.raw
}
func (r AssistantMessage) implementsMessage() {}
type AssistantMessagePath struct {
Cwd string `json:"cwd,required"`
Root string `json:"root,required"`
JSON assistantMessagePathJSON `json:"-"`
}
// assistantMessagePathJSON contains the JSON metadata for the struct
// [AssistantMessagePath]
type assistantMessagePathJSON struct {
Cwd apijson.Field
Root apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *AssistantMessagePath) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r assistantMessagePathJSON) RawJSON() string {
return r.raw
}
type AssistantMessageRole string
const (
AssistantMessageRoleAssistant AssistantMessageRole = "assistant"
)
func (r AssistantMessageRole) IsKnown() bool {
switch r {
case AssistantMessageRoleAssistant:
return true
}
return false
}
type AssistantMessageTime struct {
Created float64 `json:"created,required"`
Completed float64 `json:"completed"`
JSON assistantMessageTimeJSON `json:"-"`
}
// assistantMessageTimeJSON contains the JSON metadata for the struct
// [AssistantMessageTime]
type assistantMessageTimeJSON struct {
Created apijson.Field
Completed apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *AssistantMessageTime) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r assistantMessageTimeJSON) RawJSON() string {
return r.raw
}
type AssistantMessageTokens struct {
Cache AssistantMessageTokensCache `json:"cache,required"`
Input float64 `json:"input,required"`
Output float64 `json:"output,required"`
Reasoning float64 `json:"reasoning,required"`
JSON assistantMessageTokensJSON `json:"-"`
}
// assistantMessageTokensJSON contains the JSON metadata for the struct
// [AssistantMessageTokens]
type assistantMessageTokensJSON struct {
Cache apijson.Field
Input apijson.Field
Output apijson.Field
Reasoning apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *AssistantMessageTokens) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r assistantMessageTokensJSON) RawJSON() string {
return r.raw
}
type AssistantMessageTokensCache struct {
Read float64 `json:"read,required"`
Write float64 `json:"write,required"`
JSON assistantMessageTokensCacheJSON `json:"-"`
}
// assistantMessageTokensCacheJSON contains the JSON metadata for the struct
// [AssistantMessageTokensCache]
type assistantMessageTokensCacheJSON struct {
Read apijson.Field
Write apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *AssistantMessageTokensCache) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r assistantMessageTokensCacheJSON) RawJSON() string {
return r.raw
}
type AssistantMessageError struct {
// This field can have the runtime type of [shared.ProviderAuthErrorData],
2025-10-28 23:03:53 +08:00
// [shared.UnknownErrorData], [interface{}], [shared.MessageAbortedErrorData],
// [AssistantMessageErrorAPIErrorData].
2025-07-31 13:00:29 +08:00
Data interface{} `json:"data,required"`
Name AssistantMessageErrorName `json:"name,required"`
JSON assistantMessageErrorJSON `json:"-"`
union AssistantMessageErrorUnion
}
// assistantMessageErrorJSON contains the JSON metadata for the struct
// [AssistantMessageError]
type assistantMessageErrorJSON struct {
Data apijson.Field
Name apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r assistantMessageErrorJSON) RawJSON() string {
return r.raw
}
func (r *AssistantMessageError) UnmarshalJSON(data []byte) (err error) {
*r = AssistantMessageError{}
err = apijson.UnmarshalRoot(data, &r.union)
if err != nil {
return err
}
return apijson.Port(r.union, &r)
}
// AsUnion returns a [AssistantMessageErrorUnion] interface which you can cast to
// the specific types for more type safety.
//
// Possible runtime types of the union are [shared.ProviderAuthError],
// [shared.UnknownError], [AssistantMessageErrorMessageOutputLengthError],
2025-10-28 23:03:53 +08:00
// [shared.MessageAbortedError], [AssistantMessageErrorAPIError].
2025-07-31 13:00:29 +08:00
func (r AssistantMessageError) AsUnion() AssistantMessageErrorUnion {
return r.union
}
// Union satisfied by [shared.ProviderAuthError], [shared.UnknownError],
2025-10-28 23:03:53 +08:00
// [AssistantMessageErrorMessageOutputLengthError], [shared.MessageAbortedError] or
// [AssistantMessageErrorAPIError].
2025-07-31 13:00:29 +08:00
type AssistantMessageErrorUnion interface {
ImplementsAssistantMessageError()
}
func init() {
apijson.RegisterUnion(
reflect.TypeOf((*AssistantMessageErrorUnion)(nil)).Elem(),
"",
2025-07-31 13:00:29 +08:00
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(shared.ProviderAuthError{}),
2025-07-31 13:00:29 +08:00
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(shared.UnknownError{}),
2025-07-31 13:00:29 +08:00
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(AssistantMessageErrorMessageOutputLengthError{}),
2025-07-31 13:00:29 +08:00
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(shared.MessageAbortedError{}),
2025-07-31 13:00:29 +08:00
},
2025-10-28 23:03:53 +08:00
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(AssistantMessageErrorAPIError{}),
},
2025-07-31 13:00:29 +08:00
)
}
type AssistantMessageErrorMessageOutputLengthError struct {
Data interface{} `json:"data,required"`
Name AssistantMessageErrorMessageOutputLengthErrorName `json:"name,required"`
JSON assistantMessageErrorMessageOutputLengthErrorJSON `json:"-"`
}
// assistantMessageErrorMessageOutputLengthErrorJSON contains the JSON metadata for
// the struct [AssistantMessageErrorMessageOutputLengthError]
type assistantMessageErrorMessageOutputLengthErrorJSON struct {
Data apijson.Field
Name apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *AssistantMessageErrorMessageOutputLengthError) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r assistantMessageErrorMessageOutputLengthErrorJSON) RawJSON() string {
return r.raw
}
func (r AssistantMessageErrorMessageOutputLengthError) ImplementsAssistantMessageError() {}
type AssistantMessageErrorMessageOutputLengthErrorName string
const (
AssistantMessageErrorMessageOutputLengthErrorNameMessageOutputLengthError AssistantMessageErrorMessageOutputLengthErrorName = "MessageOutputLengthError"
)
func (r AssistantMessageErrorMessageOutputLengthErrorName) IsKnown() bool {
switch r {
case AssistantMessageErrorMessageOutputLengthErrorNameMessageOutputLengthError:
return true
}
return false
}
2025-10-28 23:03:53 +08:00
type AssistantMessageErrorAPIError struct {
Data AssistantMessageErrorAPIErrorData `json:"data,required"`
Name AssistantMessageErrorAPIErrorName `json:"name,required"`
JSON assistantMessageErrorAPIErrorJSON `json:"-"`
}
// assistantMessageErrorAPIErrorJSON contains the JSON metadata for the struct
// [AssistantMessageErrorAPIError]
type assistantMessageErrorAPIErrorJSON struct {
Data apijson.Field
Name apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *AssistantMessageErrorAPIError) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r assistantMessageErrorAPIErrorJSON) RawJSON() string {
return r.raw
}
func (r AssistantMessageErrorAPIError) ImplementsAssistantMessageError() {}
type AssistantMessageErrorAPIErrorData struct {
IsRetryable bool `json:"isRetryable,required"`
Message string `json:"message,required"`
ResponseBody string `json:"responseBody"`
ResponseHeaders map[string]string `json:"responseHeaders"`
StatusCode float64 `json:"statusCode"`
JSON assistantMessageErrorAPIErrorDataJSON `json:"-"`
}
// assistantMessageErrorAPIErrorDataJSON contains the JSON metadata for the struct
// [AssistantMessageErrorAPIErrorData]
type assistantMessageErrorAPIErrorDataJSON struct {
IsRetryable apijson.Field
Message apijson.Field
ResponseBody apijson.Field
ResponseHeaders apijson.Field
StatusCode apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *AssistantMessageErrorAPIErrorData) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r assistantMessageErrorAPIErrorDataJSON) RawJSON() string {
return r.raw
}
type AssistantMessageErrorAPIErrorName string
const (
AssistantMessageErrorAPIErrorNameAPIError AssistantMessageErrorAPIErrorName = "APIError"
)
func (r AssistantMessageErrorAPIErrorName) IsKnown() bool {
switch r {
case AssistantMessageErrorAPIErrorNameAPIError:
return true
}
return false
}
2025-07-31 13:00:29 +08:00
type AssistantMessageErrorName string
const (
AssistantMessageErrorNameProviderAuthError AssistantMessageErrorName = "ProviderAuthError"
AssistantMessageErrorNameUnknownError AssistantMessageErrorName = "UnknownError"
AssistantMessageErrorNameMessageOutputLengthError AssistantMessageErrorName = "MessageOutputLengthError"
AssistantMessageErrorNameMessageAbortedError AssistantMessageErrorName = "MessageAbortedError"
2025-10-28 23:03:53 +08:00
AssistantMessageErrorNameAPIError AssistantMessageErrorName = "APIError"
2025-07-31 13:00:29 +08:00
)
func (r AssistantMessageErrorName) IsKnown() bool {
switch r {
2025-10-28 23:03:53 +08:00
case AssistantMessageErrorNameProviderAuthError, AssistantMessageErrorNameUnknownError, AssistantMessageErrorNameMessageOutputLengthError, AssistantMessageErrorNameMessageAbortedError, AssistantMessageErrorNameAPIError:
2025-07-31 13:00:29 +08:00
return true
}
return false
}
type FilePart struct {
ID string `json:"id,required"`
MessageID string `json:"messageID,required"`
Mime string `json:"mime,required"`
SessionID string `json:"sessionID,required"`
Type FilePartType `json:"type,required"`
URL string `json:"url,required"`
Filename string `json:"filename"`
Source FilePartSource `json:"source"`
JSON filePartJSON `json:"-"`
}
// filePartJSON contains the JSON metadata for the struct [FilePart]
type filePartJSON struct {
ID apijson.Field
MessageID apijson.Field
Mime apijson.Field
SessionID apijson.Field
Type apijson.Field
URL apijson.Field
Filename apijson.Field
Source apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *FilePart) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r filePartJSON) RawJSON() string {
return r.raw
}
func (r FilePart) implementsPart() {}
type FilePartType string
const (
FilePartTypeFile FilePartType = "file"
)
func (r FilePartType) IsKnown() bool {
switch r {
case FilePartTypeFile:
return true
}
return false
}
type FilePartInputParam struct {
Mime param.Field[string] `json:"mime,required"`
Type param.Field[FilePartInputType] `json:"type,required"`
URL param.Field[string] `json:"url,required"`
ID param.Field[string] `json:"id"`
Filename param.Field[string] `json:"filename"`
Source param.Field[FilePartSourceUnionParam] `json:"source"`
}
func (r FilePartInputParam) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
func (r FilePartInputParam) implementsSessionPromptParamsPartUnion() {}
2025-07-31 13:00:29 +08:00
type FilePartInputType string
const (
FilePartInputTypeFile FilePartInputType = "file"
)
func (r FilePartInputType) IsKnown() bool {
switch r {
case FilePartInputTypeFile:
return true
}
return false
}
type FilePartSource struct {
Path string `json:"path,required"`
Text FilePartSourceText `json:"text,required"`
Type FilePartSourceType `json:"type,required"`
Kind int64 `json:"kind"`
Name string `json:"name"`
// This field can have the runtime type of [SymbolSourceRange].
Range interface{} `json:"range"`
JSON filePartSourceJSON `json:"-"`
union FilePartSourceUnion
}
// filePartSourceJSON contains the JSON metadata for the struct [FilePartSource]
type filePartSourceJSON struct {
Path apijson.Field
Text apijson.Field
Type apijson.Field
Kind apijson.Field
Name apijson.Field
Range apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r filePartSourceJSON) RawJSON() string {
return r.raw
}
func (r *FilePartSource) UnmarshalJSON(data []byte) (err error) {
*r = FilePartSource{}
err = apijson.UnmarshalRoot(data, &r.union)
if err != nil {
return err
}
return apijson.Port(r.union, &r)
}
// AsUnion returns a [FilePartSourceUnion] interface which you can cast to the
// specific types for more type safety.
//
// Possible runtime types of the union are [FileSource], [SymbolSource].
func (r FilePartSource) AsUnion() FilePartSourceUnion {
return r.union
}
// Union satisfied by [FileSource] or [SymbolSource].
type FilePartSourceUnion interface {
implementsFilePartSource()
}
func init() {
apijson.RegisterUnion(
reflect.TypeOf((*FilePartSourceUnion)(nil)).Elem(),
"",
2025-07-31 13:00:29 +08:00
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(FileSource{}),
2025-07-31 13:00:29 +08:00
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(SymbolSource{}),
2025-07-31 13:00:29 +08:00
},
)
}
type FilePartSourceType string
const (
FilePartSourceTypeFile FilePartSourceType = "file"
FilePartSourceTypeSymbol FilePartSourceType = "symbol"
)
func (r FilePartSourceType) IsKnown() bool {
switch r {
case FilePartSourceTypeFile, FilePartSourceTypeSymbol:
return true
}
return false
}
type FilePartSourceParam struct {
Path param.Field[string] `json:"path,required"`
Text param.Field[FilePartSourceTextParam] `json:"text,required"`
Type param.Field[FilePartSourceType] `json:"type,required"`
Kind param.Field[int64] `json:"kind"`
Name param.Field[string] `json:"name"`
Range param.Field[interface{}] `json:"range"`
}
func (r FilePartSourceParam) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
func (r FilePartSourceParam) implementsFilePartSourceUnionParam() {}
// Satisfied by [FileSourceParam], [SymbolSourceParam], [FilePartSourceParam].
type FilePartSourceUnionParam interface {
implementsFilePartSourceUnionParam()
}
type FilePartSourceText struct {
End int64 `json:"end,required"`
Start int64 `json:"start,required"`
Value string `json:"value,required"`
JSON filePartSourceTextJSON `json:"-"`
}
// filePartSourceTextJSON contains the JSON metadata for the struct
// [FilePartSourceText]
type filePartSourceTextJSON struct {
End apijson.Field
Start apijson.Field
Value apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *FilePartSourceText) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r filePartSourceTextJSON) RawJSON() string {
return r.raw
}
type FilePartSourceTextParam struct {
End param.Field[int64] `json:"end,required"`
Start param.Field[int64] `json:"start,required"`
Value param.Field[string] `json:"value,required"`
}
func (r FilePartSourceTextParam) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
type FileSource struct {
Path string `json:"path,required"`
Text FilePartSourceText `json:"text,required"`
Type FileSourceType `json:"type,required"`
JSON fileSourceJSON `json:"-"`
}
// fileSourceJSON contains the JSON metadata for the struct [FileSource]
type fileSourceJSON struct {
Path apijson.Field
Text apijson.Field
Type apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *FileSource) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r fileSourceJSON) RawJSON() string {
return r.raw
}
func (r FileSource) implementsFilePartSource() {}
type FileSourceType string
const (
FileSourceTypeFile FileSourceType = "file"
)
func (r FileSourceType) IsKnown() bool {
switch r {
case FileSourceTypeFile:
return true
}
return false
}
type FileSourceParam struct {
Path param.Field[string] `json:"path,required"`
Text param.Field[FilePartSourceTextParam] `json:"text,required"`
Type param.Field[FileSourceType] `json:"type,required"`
}
func (r FileSourceParam) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
func (r FileSourceParam) implementsFilePartSourceUnionParam() {}
type Message struct {
ID string `json:"id,required"`
Role MessageRole `json:"role,required"`
SessionID string `json:"sessionID,required"`
// This field can have the runtime type of [UserMessageTime],
// [AssistantMessageTime].
Time interface{} `json:"time,required"`
Cost float64 `json:"cost"`
// This field can have the runtime type of [AssistantMessageError].
2025-10-28 23:03:53 +08:00
Error interface{} `json:"error"`
Mode string `json:"mode"`
ModelID string `json:"modelID"`
ParentID string `json:"parentID"`
2025-07-31 13:00:29 +08:00
// This field can have the runtime type of [AssistantMessagePath].
Path interface{} `json:"path"`
ProviderID string `json:"providerID"`
2025-10-28 23:03:53 +08:00
// This field can have the runtime type of [UserMessageSummary], [bool].
Summary interface{} `json:"summary"`
2025-07-31 13:00:29 +08:00
// This field can have the runtime type of [[]string].
System interface{} `json:"system"`
// This field can have the runtime type of [AssistantMessageTokens].
Tokens interface{} `json:"tokens"`
JSON messageJSON `json:"-"`
union MessageUnion
}
// messageJSON contains the JSON metadata for the struct [Message]
type messageJSON struct {
ID apijson.Field
Role apijson.Field
SessionID apijson.Field
Time apijson.Field
Cost apijson.Field
Error apijson.Field
Mode apijson.Field
ModelID apijson.Field
2025-10-28 23:03:53 +08:00
ParentID apijson.Field
2025-07-31 13:00:29 +08:00
Path apijson.Field
ProviderID apijson.Field
Summary apijson.Field
System apijson.Field
Tokens apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r messageJSON) RawJSON() string {
return r.raw
}
func (r *Message) UnmarshalJSON(data []byte) (err error) {
*r = Message{}
err = apijson.UnmarshalRoot(data, &r.union)
if err != nil {
return err
}
return apijson.Port(r.union, &r)
}
// AsUnion returns a [MessageUnion] interface which you can cast to the specific
// types for more type safety.
//
// Possible runtime types of the union are [UserMessage], [AssistantMessage].
func (r Message) AsUnion() MessageUnion {
return r.union
}
// Union satisfied by [UserMessage] or [AssistantMessage].
type MessageUnion interface {
implementsMessage()
}
func init() {
apijson.RegisterUnion(
reflect.TypeOf((*MessageUnion)(nil)).Elem(),
"",
2025-07-31 13:00:29 +08:00
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(UserMessage{}),
2025-07-31 13:00:29 +08:00
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(AssistantMessage{}),
2025-07-31 13:00:29 +08:00
},
)
}
type MessageRole string
const (
MessageRoleUser MessageRole = "user"
MessageRoleAssistant MessageRole = "assistant"
)
func (r MessageRole) IsKnown() bool {
switch r {
case MessageRoleUser, MessageRoleAssistant:
return true
}
return false
}
type Part struct {
ID string `json:"id,required"`
MessageID string `json:"messageID,required"`
SessionID string `json:"sessionID,required"`
Type PartType `json:"type,required"`
2025-10-28 23:03:53 +08:00
Attempt float64 `json:"attempt"`
2025-07-31 13:00:29 +08:00
CallID string `json:"callID"`
Cost float64 `json:"cost"`
2025-10-28 23:03:53 +08:00
// This field can have the runtime type of [PartRetryPartError].
Error interface{} `json:"error"`
Filename string `json:"filename"`
2025-07-31 13:00:29 +08:00
// This field can have the runtime type of [[]string].
Files interface{} `json:"files"`
Hash string `json:"hash"`
// This field can have the runtime type of [map[string]interface{}].
2025-08-14 02:28:22 +08:00
Metadata interface{} `json:"metadata"`
Mime string `json:"mime"`
Name string `json:"name"`
2025-10-28 23:03:53 +08:00
Reason string `json:"reason"`
2025-08-14 02:28:22 +08:00
Snapshot string `json:"snapshot"`
// This field can have the runtime type of [FilePartSource], [AgentPartSource].
Source interface{} `json:"source"`
2025-07-31 13:00:29 +08:00
// This field can have the runtime type of [ToolPartState].
State interface{} `json:"state"`
Synthetic bool `json:"synthetic"`
Text string `json:"text"`
2025-10-28 23:03:53 +08:00
// This field can have the runtime type of [TextPartTime], [ReasoningPartTime],
// [PartRetryPartTime].
2025-07-31 13:00:29 +08:00
Time interface{} `json:"time"`
// This field can have the runtime type of [StepFinishPartTokens].
Tokens interface{} `json:"tokens"`
Tool string `json:"tool"`
URL string `json:"url"`
JSON partJSON `json:"-"`
union PartUnion
}
// partJSON contains the JSON metadata for the struct [Part]
type partJSON struct {
2025-08-14 02:28:22 +08:00
ID apijson.Field
MessageID apijson.Field
SessionID apijson.Field
Type apijson.Field
2025-10-28 23:03:53 +08:00
Attempt apijson.Field
2025-08-14 02:28:22 +08:00
CallID apijson.Field
Cost apijson.Field
2025-10-28 23:03:53 +08:00
Error apijson.Field
2025-08-14 02:28:22 +08:00
Filename apijson.Field
Files apijson.Field
Hash apijson.Field
Metadata apijson.Field
Mime apijson.Field
Name apijson.Field
2025-10-28 23:03:53 +08:00
Reason apijson.Field
2025-08-14 02:28:22 +08:00
Snapshot apijson.Field
Source apijson.Field
State apijson.Field
Synthetic apijson.Field
Text apijson.Field
Time apijson.Field
Tokens apijson.Field
Tool apijson.Field
URL apijson.Field
raw string
ExtraFields map[string]apijson.Field
2025-07-31 13:00:29 +08:00
}
func (r partJSON) RawJSON() string {
return r.raw
}
func (r *Part) UnmarshalJSON(data []byte) (err error) {
*r = Part{}
err = apijson.UnmarshalRoot(data, &r.union)
if err != nil {
return err
}
return apijson.Port(r.union, &r)
}
// AsUnion returns a [PartUnion] interface which you can cast to the specific types
// for more type safety.
//
// Possible runtime types of the union are [TextPart], [ReasoningPart], [FilePart],
// [ToolPart], [StepStartPart], [StepFinishPart], [SnapshotPart], [PartPatchPart],
2025-10-28 23:03:53 +08:00
// [AgentPart], [PartRetryPart].
2025-07-31 13:00:29 +08:00
func (r Part) AsUnion() PartUnion {
return r.union
}
// Union satisfied by [TextPart], [ReasoningPart], [FilePart], [ToolPart],
2025-10-28 23:03:53 +08:00
// [StepStartPart], [StepFinishPart], [SnapshotPart], [PartPatchPart], [AgentPart]
// or [PartRetryPart].
2025-07-31 13:00:29 +08:00
type PartUnion interface {
implementsPart()
}
func init() {
apijson.RegisterUnion(
reflect.TypeOf((*PartUnion)(nil)).Elem(),
"",
2025-07-31 13:00:29 +08:00
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(TextPart{}),
2025-07-31 13:00:29 +08:00
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(ReasoningPart{}),
},
2025-07-31 13:00:29 +08:00
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(FilePart{}),
2025-07-31 13:00:29 +08:00
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(ToolPart{}),
2025-07-31 13:00:29 +08:00
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(StepStartPart{}),
2025-07-31 13:00:29 +08:00
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(StepFinishPart{}),
2025-07-31 13:00:29 +08:00
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(SnapshotPart{}),
2025-07-31 13:00:29 +08:00
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(PartPatchPart{}),
2025-07-31 13:00:29 +08:00
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(AgentPart{}),
},
2025-10-28 23:03:53 +08:00
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(PartRetryPart{}),
},
2025-07-31 13:00:29 +08:00
)
}
type PartPatchPart struct {
ID string `json:"id,required"`
Files []string `json:"files,required"`
Hash string `json:"hash,required"`
MessageID string `json:"messageID,required"`
SessionID string `json:"sessionID,required"`
Type PartPatchPartType `json:"type,required"`
JSON partPatchPartJSON `json:"-"`
}
// partPatchPartJSON contains the JSON metadata for the struct [PartPatchPart]
type partPatchPartJSON struct {
ID apijson.Field
Files apijson.Field
Hash apijson.Field
MessageID apijson.Field
SessionID apijson.Field
Type apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *PartPatchPart) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r partPatchPartJSON) RawJSON() string {
return r.raw
}
func (r PartPatchPart) implementsPart() {}
type PartPatchPartType string
const (
PartPatchPartTypePatch PartPatchPartType = "patch"
)
func (r PartPatchPartType) IsKnown() bool {
switch r {
case PartPatchPartTypePatch:
return true
}
return false
}
2025-10-28 23:03:53 +08:00
type PartRetryPart struct {
ID string `json:"id,required"`
Attempt float64 `json:"attempt,required"`
Error PartRetryPartError `json:"error,required"`
MessageID string `json:"messageID,required"`
SessionID string `json:"sessionID,required"`
Time PartRetryPartTime `json:"time,required"`
Type PartRetryPartType `json:"type,required"`
JSON partRetryPartJSON `json:"-"`
}
// partRetryPartJSON contains the JSON metadata for the struct [PartRetryPart]
type partRetryPartJSON struct {
ID apijson.Field
Attempt apijson.Field
Error apijson.Field
MessageID apijson.Field
SessionID apijson.Field
Time apijson.Field
Type apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *PartRetryPart) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r partRetryPartJSON) RawJSON() string {
return r.raw
}
func (r PartRetryPart) implementsPart() {}
type PartRetryPartError struct {
Data PartRetryPartErrorData `json:"data,required"`
Name PartRetryPartErrorName `json:"name,required"`
JSON partRetryPartErrorJSON `json:"-"`
}
// partRetryPartErrorJSON contains the JSON metadata for the struct
// [PartRetryPartError]
type partRetryPartErrorJSON struct {
Data apijson.Field
Name apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *PartRetryPartError) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r partRetryPartErrorJSON) RawJSON() string {
return r.raw
}
type PartRetryPartErrorData struct {
IsRetryable bool `json:"isRetryable,required"`
Message string `json:"message,required"`
ResponseBody string `json:"responseBody"`
ResponseHeaders map[string]string `json:"responseHeaders"`
StatusCode float64 `json:"statusCode"`
JSON partRetryPartErrorDataJSON `json:"-"`
}
// partRetryPartErrorDataJSON contains the JSON metadata for the struct
// [PartRetryPartErrorData]
type partRetryPartErrorDataJSON struct {
IsRetryable apijson.Field
Message apijson.Field
ResponseBody apijson.Field
ResponseHeaders apijson.Field
StatusCode apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *PartRetryPartErrorData) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r partRetryPartErrorDataJSON) RawJSON() string {
return r.raw
}
type PartRetryPartErrorName string
const (
PartRetryPartErrorNameAPIError PartRetryPartErrorName = "APIError"
)
func (r PartRetryPartErrorName) IsKnown() bool {
switch r {
case PartRetryPartErrorNameAPIError:
return true
}
return false
}
type PartRetryPartTime struct {
Created float64 `json:"created,required"`
JSON partRetryPartTimeJSON `json:"-"`
}
// partRetryPartTimeJSON contains the JSON metadata for the struct
// [PartRetryPartTime]
type partRetryPartTimeJSON struct {
Created apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *PartRetryPartTime) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r partRetryPartTimeJSON) RawJSON() string {
return r.raw
}
type PartRetryPartType string
const (
PartRetryPartTypeRetry PartRetryPartType = "retry"
)
func (r PartRetryPartType) IsKnown() bool {
switch r {
case PartRetryPartTypeRetry:
return true
}
return false
}
2025-07-31 13:00:29 +08:00
type PartType string
const (
PartTypeText PartType = "text"
PartTypeReasoning PartType = "reasoning"
2025-07-31 13:00:29 +08:00
PartTypeFile PartType = "file"
PartTypeTool PartType = "tool"
PartTypeStepStart PartType = "step-start"
PartTypeStepFinish PartType = "step-finish"
PartTypeSnapshot PartType = "snapshot"
PartTypePatch PartType = "patch"
PartTypeAgent PartType = "agent"
2025-10-28 23:03:53 +08:00
PartTypeRetry PartType = "retry"
2025-07-31 13:00:29 +08:00
)
func (r PartType) IsKnown() bool {
switch r {
2025-10-28 23:03:53 +08:00
case PartTypeText, PartTypeReasoning, PartTypeFile, PartTypeTool, PartTypeStepStart, PartTypeStepFinish, PartTypeSnapshot, PartTypePatch, PartTypeAgent, PartTypeRetry:
2025-07-31 13:00:29 +08:00
return true
}
return false
}
type ReasoningPart struct {
2025-08-14 02:28:22 +08:00
ID string `json:"id,required"`
MessageID string `json:"messageID,required"`
SessionID string `json:"sessionID,required"`
Text string `json:"text,required"`
Time ReasoningPartTime `json:"time,required"`
Type ReasoningPartType `json:"type,required"`
Metadata map[string]interface{} `json:"metadata"`
JSON reasoningPartJSON `json:"-"`
}
// reasoningPartJSON contains the JSON metadata for the struct [ReasoningPart]
type reasoningPartJSON struct {
2025-08-14 02:28:22 +08:00
ID apijson.Field
MessageID apijson.Field
SessionID apijson.Field
Text apijson.Field
Time apijson.Field
Type apijson.Field
Metadata apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *ReasoningPart) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r reasoningPartJSON) RawJSON() string {
return r.raw
}
func (r ReasoningPart) implementsPart() {}
type ReasoningPartTime struct {
Start float64 `json:"start,required"`
End float64 `json:"end"`
JSON reasoningPartTimeJSON `json:"-"`
}
// reasoningPartTimeJSON contains the JSON metadata for the struct
// [ReasoningPartTime]
type reasoningPartTimeJSON struct {
Start apijson.Field
End apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *ReasoningPartTime) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r reasoningPartTimeJSON) RawJSON() string {
return r.raw
}
2025-08-14 02:28:22 +08:00
type ReasoningPartType string
const (
ReasoningPartTypeReasoning ReasoningPartType = "reasoning"
)
func (r ReasoningPartType) IsKnown() bool {
switch r {
case ReasoningPartTypeReasoning:
return true
}
return false
}
2025-07-31 13:00:29 +08:00
type Session struct {
2025-10-28 23:03:53 +08:00
ID string `json:"id,required"`
Directory string `json:"directory,required"`
ProjectID string `json:"projectID,required"`
Time SessionTime `json:"time,required"`
Title string `json:"title,required"`
Version string `json:"version,required"`
ParentID string `json:"parentID"`
Revert SessionRevert `json:"revert"`
Share SessionShare `json:"share"`
Summary SessionSummary `json:"summary"`
JSON sessionJSON `json:"-"`
2025-07-31 13:00:29 +08:00
}
// sessionJSON contains the JSON metadata for the struct [Session]
type sessionJSON struct {
ID apijson.Field
Directory apijson.Field
ProjectID apijson.Field
2025-07-31 13:00:29 +08:00
Time apijson.Field
Title apijson.Field
Version apijson.Field
ParentID apijson.Field
Revert apijson.Field
Share apijson.Field
2025-10-28 23:03:53 +08:00
Summary apijson.Field
2025-07-31 13:00:29 +08:00
raw string
ExtraFields map[string]apijson.Field
}
func (r *Session) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r sessionJSON) RawJSON() string {
return r.raw
}
type SessionTime struct {
2025-09-11 14:22:14 +08:00
Created float64 `json:"created,required"`
Updated float64 `json:"updated,required"`
Compacting float64 `json:"compacting"`
JSON sessionTimeJSON `json:"-"`
2025-07-31 13:00:29 +08:00
}
// sessionTimeJSON contains the JSON metadata for the struct [SessionTime]
type sessionTimeJSON struct {
Created apijson.Field
Updated apijson.Field
2025-09-11 14:22:14 +08:00
Compacting apijson.Field
2025-07-31 13:00:29 +08:00
raw string
ExtraFields map[string]apijson.Field
}
func (r *SessionTime) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r sessionTimeJSON) RawJSON() string {
return r.raw
}
type SessionRevert struct {
MessageID string `json:"messageID,required"`
Diff string `json:"diff"`
PartID string `json:"partID"`
Snapshot string `json:"snapshot"`
JSON sessionRevertJSON `json:"-"`
}
// sessionRevertJSON contains the JSON metadata for the struct [SessionRevert]
type sessionRevertJSON struct {
MessageID apijson.Field
Diff apijson.Field
PartID apijson.Field
Snapshot apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *SessionRevert) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r sessionRevertJSON) RawJSON() string {
return r.raw
}
type SessionShare struct {
URL string `json:"url,required"`
JSON sessionShareJSON `json:"-"`
}
// sessionShareJSON contains the JSON metadata for the struct [SessionShare]
type sessionShareJSON struct {
URL apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *SessionShare) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r sessionShareJSON) RawJSON() string {
return r.raw
}
2025-10-28 23:03:53 +08:00
type SessionSummary struct {
Diffs []SessionSummaryDiff `json:"diffs,required"`
JSON sessionSummaryJSON `json:"-"`
}
// sessionSummaryJSON contains the JSON metadata for the struct [SessionSummary]
type sessionSummaryJSON struct {
Diffs apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *SessionSummary) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r sessionSummaryJSON) RawJSON() string {
return r.raw
}
type SessionSummaryDiff struct {
Additions float64 `json:"additions,required"`
After string `json:"after,required"`
Before string `json:"before,required"`
Deletions float64 `json:"deletions,required"`
File string `json:"file,required"`
JSON sessionSummaryDiffJSON `json:"-"`
}
// sessionSummaryDiffJSON contains the JSON metadata for the struct
// [SessionSummaryDiff]
type sessionSummaryDiffJSON struct {
Additions apijson.Field
After apijson.Field
Before apijson.Field
Deletions apijson.Field
File apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *SessionSummaryDiff) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r sessionSummaryDiffJSON) RawJSON() string {
return r.raw
}
2025-07-31 13:00:29 +08:00
type SnapshotPart struct {
ID string `json:"id,required"`
MessageID string `json:"messageID,required"`
SessionID string `json:"sessionID,required"`
Snapshot string `json:"snapshot,required"`
Type SnapshotPartType `json:"type,required"`
JSON snapshotPartJSON `json:"-"`
}
// snapshotPartJSON contains the JSON metadata for the struct [SnapshotPart]
type snapshotPartJSON struct {
ID apijson.Field
MessageID apijson.Field
SessionID apijson.Field
Snapshot apijson.Field
Type apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *SnapshotPart) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r snapshotPartJSON) RawJSON() string {
return r.raw
}
func (r SnapshotPart) implementsPart() {}
type SnapshotPartType string
const (
SnapshotPartTypeSnapshot SnapshotPartType = "snapshot"
)
func (r SnapshotPartType) IsKnown() bool {
switch r {
case SnapshotPartTypeSnapshot:
return true
}
return false
}
type StepFinishPart struct {
ID string `json:"id,required"`
Cost float64 `json:"cost,required"`
MessageID string `json:"messageID,required"`
2025-10-28 23:03:53 +08:00
Reason string `json:"reason,required"`
2025-07-31 13:00:29 +08:00
SessionID string `json:"sessionID,required"`
Tokens StepFinishPartTokens `json:"tokens,required"`
Type StepFinishPartType `json:"type,required"`
2025-10-28 23:03:53 +08:00
Snapshot string `json:"snapshot"`
2025-07-31 13:00:29 +08:00
JSON stepFinishPartJSON `json:"-"`
}
// stepFinishPartJSON contains the JSON metadata for the struct [StepFinishPart]
type stepFinishPartJSON struct {
ID apijson.Field
Cost apijson.Field
MessageID apijson.Field
2025-10-28 23:03:53 +08:00
Reason apijson.Field
2025-07-31 13:00:29 +08:00
SessionID apijson.Field
Tokens apijson.Field
Type apijson.Field
2025-10-28 23:03:53 +08:00
Snapshot apijson.Field
2025-07-31 13:00:29 +08:00
raw string
ExtraFields map[string]apijson.Field
}
func (r *StepFinishPart) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r stepFinishPartJSON) RawJSON() string {
return r.raw
}
func (r StepFinishPart) implementsPart() {}
type StepFinishPartTokens struct {
Cache StepFinishPartTokensCache `json:"cache,required"`
Input float64 `json:"input,required"`
Output float64 `json:"output,required"`
Reasoning float64 `json:"reasoning,required"`
JSON stepFinishPartTokensJSON `json:"-"`
}
// stepFinishPartTokensJSON contains the JSON metadata for the struct
// [StepFinishPartTokens]
type stepFinishPartTokensJSON struct {
Cache apijson.Field
Input apijson.Field
Output apijson.Field
Reasoning apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *StepFinishPartTokens) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r stepFinishPartTokensJSON) RawJSON() string {
return r.raw
}
type StepFinishPartTokensCache struct {
Read float64 `json:"read,required"`
Write float64 `json:"write,required"`
JSON stepFinishPartTokensCacheJSON `json:"-"`
}
// stepFinishPartTokensCacheJSON contains the JSON metadata for the struct
// [StepFinishPartTokensCache]
type stepFinishPartTokensCacheJSON struct {
Read apijson.Field
Write apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *StepFinishPartTokensCache) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r stepFinishPartTokensCacheJSON) RawJSON() string {
return r.raw
}
type StepFinishPartType string
const (
StepFinishPartTypeStepFinish StepFinishPartType = "step-finish"
)
func (r StepFinishPartType) IsKnown() bool {
switch r {
case StepFinishPartTypeStepFinish:
return true
}
return false
}
type StepStartPart struct {
ID string `json:"id,required"`
MessageID string `json:"messageID,required"`
SessionID string `json:"sessionID,required"`
Type StepStartPartType `json:"type,required"`
2025-10-28 23:03:53 +08:00
Snapshot string `json:"snapshot"`
2025-07-31 13:00:29 +08:00
JSON stepStartPartJSON `json:"-"`
}
// stepStartPartJSON contains the JSON metadata for the struct [StepStartPart]
type stepStartPartJSON struct {
ID apijson.Field
MessageID apijson.Field
SessionID apijson.Field
Type apijson.Field
2025-10-28 23:03:53 +08:00
Snapshot apijson.Field
2025-07-31 13:00:29 +08:00
raw string
ExtraFields map[string]apijson.Field
}
func (r *StepStartPart) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r stepStartPartJSON) RawJSON() string {
return r.raw
}
func (r StepStartPart) implementsPart() {}
type StepStartPartType string
const (
StepStartPartTypeStepStart StepStartPartType = "step-start"
)
func (r StepStartPartType) IsKnown() bool {
switch r {
case StepStartPartTypeStepStart:
return true
}
return false
}
type SymbolSource struct {
Kind int64 `json:"kind,required"`
Name string `json:"name,required"`
Path string `json:"path,required"`
Range SymbolSourceRange `json:"range,required"`
Text FilePartSourceText `json:"text,required"`
Type SymbolSourceType `json:"type,required"`
JSON symbolSourceJSON `json:"-"`
}
// symbolSourceJSON contains the JSON metadata for the struct [SymbolSource]
type symbolSourceJSON struct {
Kind apijson.Field
Name apijson.Field
Path apijson.Field
Range apijson.Field
Text apijson.Field
Type apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *SymbolSource) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r symbolSourceJSON) RawJSON() string {
return r.raw
}
func (r SymbolSource) implementsFilePartSource() {}
type SymbolSourceRange struct {
End SymbolSourceRangeEnd `json:"end,required"`
Start SymbolSourceRangeStart `json:"start,required"`
JSON symbolSourceRangeJSON `json:"-"`
}
// symbolSourceRangeJSON contains the JSON metadata for the struct
// [SymbolSourceRange]
type symbolSourceRangeJSON struct {
End apijson.Field
Start apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *SymbolSourceRange) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r symbolSourceRangeJSON) RawJSON() string {
return r.raw
}
type SymbolSourceRangeEnd struct {
Character float64 `json:"character,required"`
Line float64 `json:"line,required"`
JSON symbolSourceRangeEndJSON `json:"-"`
}
// symbolSourceRangeEndJSON contains the JSON metadata for the struct
// [SymbolSourceRangeEnd]
type symbolSourceRangeEndJSON struct {
Character apijson.Field
Line apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *SymbolSourceRangeEnd) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r symbolSourceRangeEndJSON) RawJSON() string {
return r.raw
}
type SymbolSourceRangeStart struct {
Character float64 `json:"character,required"`
Line float64 `json:"line,required"`
JSON symbolSourceRangeStartJSON `json:"-"`
}
// symbolSourceRangeStartJSON contains the JSON metadata for the struct
// [SymbolSourceRangeStart]
type symbolSourceRangeStartJSON struct {
Character apijson.Field
Line apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *SymbolSourceRangeStart) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r symbolSourceRangeStartJSON) RawJSON() string {
return r.raw
}
type SymbolSourceType string
const (
SymbolSourceTypeSymbol SymbolSourceType = "symbol"
)
func (r SymbolSourceType) IsKnown() bool {
switch r {
case SymbolSourceTypeSymbol:
return true
}
return false
}
type SymbolSourceParam struct {
Kind param.Field[int64] `json:"kind,required"`
Name param.Field[string] `json:"name,required"`
Path param.Field[string] `json:"path,required"`
Range param.Field[SymbolSourceRangeParam] `json:"range,required"`
Text param.Field[FilePartSourceTextParam] `json:"text,required"`
Type param.Field[SymbolSourceType] `json:"type,required"`
}
func (r SymbolSourceParam) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
func (r SymbolSourceParam) implementsFilePartSourceUnionParam() {}
type SymbolSourceRangeParam struct {
End param.Field[SymbolSourceRangeEndParam] `json:"end,required"`
Start param.Field[SymbolSourceRangeStartParam] `json:"start,required"`
}
func (r SymbolSourceRangeParam) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
type SymbolSourceRangeEndParam struct {
Character param.Field[float64] `json:"character,required"`
Line param.Field[float64] `json:"line,required"`
}
func (r SymbolSourceRangeEndParam) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
type SymbolSourceRangeStartParam struct {
Character param.Field[float64] `json:"character,required"`
Line param.Field[float64] `json:"line,required"`
}
func (r SymbolSourceRangeStartParam) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
type TextPart struct {
2025-10-08 03:51:59 +08:00
ID string `json:"id,required"`
MessageID string `json:"messageID,required"`
SessionID string `json:"sessionID,required"`
Text string `json:"text,required"`
Type TextPartType `json:"type,required"`
Metadata map[string]interface{} `json:"metadata"`
Synthetic bool `json:"synthetic"`
Time TextPartTime `json:"time"`
JSON textPartJSON `json:"-"`
2025-07-31 13:00:29 +08:00
}
// textPartJSON contains the JSON metadata for the struct [TextPart]
type textPartJSON struct {
ID apijson.Field
MessageID apijson.Field
SessionID apijson.Field
Text apijson.Field
Type apijson.Field
2025-10-08 03:51:59 +08:00
Metadata apijson.Field
2025-07-31 13:00:29 +08:00
Synthetic apijson.Field
Time apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *TextPart) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r textPartJSON) RawJSON() string {
return r.raw
}
func (r TextPart) implementsPart() {}
type TextPartType string
const (
TextPartTypeText TextPartType = "text"
)
func (r TextPartType) IsKnown() bool {
switch r {
case TextPartTypeText:
return true
}
return false
}
type TextPartTime struct {
Start float64 `json:"start,required"`
End float64 `json:"end"`
JSON textPartTimeJSON `json:"-"`
}
// textPartTimeJSON contains the JSON metadata for the struct [TextPartTime]
type textPartTimeJSON struct {
Start apijson.Field
End apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *TextPartTime) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r textPartTimeJSON) RawJSON() string {
return r.raw
}
type TextPartInputParam struct {
Text param.Field[string] `json:"text,required"`
Type param.Field[TextPartInputType] `json:"type,required"`
ID param.Field[string] `json:"id"`
2025-10-08 03:51:59 +08:00
Metadata param.Field[map[string]interface{}] `json:"metadata"`
2025-07-31 13:00:29 +08:00
Synthetic param.Field[bool] `json:"synthetic"`
Time param.Field[TextPartInputTimeParam] `json:"time"`
}
func (r TextPartInputParam) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
func (r TextPartInputParam) implementsSessionPromptParamsPartUnion() {}
2025-07-31 13:00:29 +08:00
type TextPartInputType string
const (
TextPartInputTypeText TextPartInputType = "text"
)
func (r TextPartInputType) IsKnown() bool {
switch r {
case TextPartInputTypeText:
return true
}
return false
}
type TextPartInputTimeParam struct {
Start param.Field[float64] `json:"start,required"`
End param.Field[float64] `json:"end"`
}
func (r TextPartInputTimeParam) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
type ToolPart struct {
2025-10-08 03:51:59 +08:00
ID string `json:"id,required"`
CallID string `json:"callID,required"`
MessageID string `json:"messageID,required"`
SessionID string `json:"sessionID,required"`
State ToolPartState `json:"state,required"`
Tool string `json:"tool,required"`
Type ToolPartType `json:"type,required"`
Metadata map[string]interface{} `json:"metadata"`
JSON toolPartJSON `json:"-"`
2025-07-31 13:00:29 +08:00
}
// toolPartJSON contains the JSON metadata for the struct [ToolPart]
type toolPartJSON struct {
ID apijson.Field
CallID apijson.Field
MessageID apijson.Field
SessionID apijson.Field
State apijson.Field
Tool apijson.Field
Type apijson.Field
2025-10-08 03:51:59 +08:00
Metadata apijson.Field
2025-07-31 13:00:29 +08:00
raw string
ExtraFields map[string]apijson.Field
}
func (r *ToolPart) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r toolPartJSON) RawJSON() string {
return r.raw
}
func (r ToolPart) implementsPart() {}
type ToolPartState struct {
Status ToolPartStateStatus `json:"status,required"`
2025-10-28 23:03:53 +08:00
// This field can have the runtime type of [[]FilePart].
Attachments interface{} `json:"attachments"`
Error string `json:"error"`
2025-07-31 13:00:29 +08:00
// This field can have the runtime type of [interface{}], [map[string]interface{}].
Input interface{} `json:"input"`
// This field can have the runtime type of [map[string]interface{}].
Metadata interface{} `json:"metadata"`
Output string `json:"output"`
// This field can have the runtime type of [ToolStateRunningTime],
// [ToolStateCompletedTime], [ToolStateErrorTime].
Time interface{} `json:"time"`
Title string `json:"title"`
JSON toolPartStateJSON `json:"-"`
union ToolPartStateUnion
}
// toolPartStateJSON contains the JSON metadata for the struct [ToolPartState]
type toolPartStateJSON struct {
Status apijson.Field
2025-10-28 23:03:53 +08:00
Attachments apijson.Field
2025-07-31 13:00:29 +08:00
Error apijson.Field
Input apijson.Field
Metadata apijson.Field
Output apijson.Field
Time apijson.Field
Title apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r toolPartStateJSON) RawJSON() string {
return r.raw
}
func (r *ToolPartState) UnmarshalJSON(data []byte) (err error) {
*r = ToolPartState{}
err = apijson.UnmarshalRoot(data, &r.union)
if err != nil {
return err
}
return apijson.Port(r.union, &r)
}
// AsUnion returns a [ToolPartStateUnion] interface which you can cast to the
// specific types for more type safety.
//
// Possible runtime types of the union are [ToolStatePending], [ToolStateRunning],
// [ToolStateCompleted], [ToolStateError].
func (r ToolPartState) AsUnion() ToolPartStateUnion {
return r.union
}
// Union satisfied by [ToolStatePending], [ToolStateRunning], [ToolStateCompleted]
// or [ToolStateError].
type ToolPartStateUnion interface {
implementsToolPartState()
}
func init() {
apijson.RegisterUnion(
reflect.TypeOf((*ToolPartStateUnion)(nil)).Elem(),
"",
2025-07-31 13:00:29 +08:00
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(ToolStatePending{}),
2025-07-31 13:00:29 +08:00
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(ToolStateRunning{}),
2025-07-31 13:00:29 +08:00
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(ToolStateCompleted{}),
2025-07-31 13:00:29 +08:00
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(ToolStateError{}),
2025-07-31 13:00:29 +08:00
},
)
}
type ToolPartStateStatus string
const (
ToolPartStateStatusPending ToolPartStateStatus = "pending"
ToolPartStateStatusRunning ToolPartStateStatus = "running"
ToolPartStateStatusCompleted ToolPartStateStatus = "completed"
ToolPartStateStatusError ToolPartStateStatus = "error"
)
func (r ToolPartStateStatus) IsKnown() bool {
switch r {
case ToolPartStateStatusPending, ToolPartStateStatusRunning, ToolPartStateStatusCompleted, ToolPartStateStatusError:
return true
}
return false
}
type ToolPartType string
const (
ToolPartTypeTool ToolPartType = "tool"
)
func (r ToolPartType) IsKnown() bool {
switch r {
case ToolPartTypeTool:
return true
}
return false
}
type ToolStateCompleted struct {
2025-10-28 23:03:53 +08:00
Input map[string]interface{} `json:"input,required"`
Metadata map[string]interface{} `json:"metadata,required"`
Output string `json:"output,required"`
Status ToolStateCompletedStatus `json:"status,required"`
Time ToolStateCompletedTime `json:"time,required"`
Title string `json:"title,required"`
Attachments []FilePart `json:"attachments"`
JSON toolStateCompletedJSON `json:"-"`
2025-07-31 13:00:29 +08:00
}
// toolStateCompletedJSON contains the JSON metadata for the struct
// [ToolStateCompleted]
type toolStateCompletedJSON struct {
Input apijson.Field
Metadata apijson.Field
Output apijson.Field
Status apijson.Field
Time apijson.Field
Title apijson.Field
2025-10-28 23:03:53 +08:00
Attachments apijson.Field
2025-07-31 13:00:29 +08:00
raw string
ExtraFields map[string]apijson.Field
}
func (r *ToolStateCompleted) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r toolStateCompletedJSON) RawJSON() string {
return r.raw
}
func (r ToolStateCompleted) implementsToolPartState() {}
type ToolStateCompletedStatus string
const (
ToolStateCompletedStatusCompleted ToolStateCompletedStatus = "completed"
)
func (r ToolStateCompletedStatus) IsKnown() bool {
switch r {
case ToolStateCompletedStatusCompleted:
return true
}
return false
}
type ToolStateCompletedTime struct {
End float64 `json:"end,required"`
Start float64 `json:"start,required"`
Compacted float64 `json:"compacted"`
JSON toolStateCompletedTimeJSON `json:"-"`
2025-07-31 13:00:29 +08:00
}
// toolStateCompletedTimeJSON contains the JSON metadata for the struct
// [ToolStateCompletedTime]
type toolStateCompletedTimeJSON struct {
End apijson.Field
Start apijson.Field
Compacted apijson.Field
2025-07-31 13:00:29 +08:00
raw string
ExtraFields map[string]apijson.Field
}
func (r *ToolStateCompletedTime) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r toolStateCompletedTimeJSON) RawJSON() string {
return r.raw
}
type ToolStateError struct {
Error string `json:"error,required"`
Input map[string]interface{} `json:"input,required"`
Status ToolStateErrorStatus `json:"status,required"`
Time ToolStateErrorTime `json:"time,required"`
2025-08-15 20:43:30 +08:00
Metadata map[string]interface{} `json:"metadata"`
JSON toolStateErrorJSON `json:"-"`
2025-07-31 13:00:29 +08:00
}
// toolStateErrorJSON contains the JSON metadata for the struct [ToolStateError]
type toolStateErrorJSON struct {
Error apijson.Field
Input apijson.Field
Status apijson.Field
Time apijson.Field
2025-08-15 20:43:30 +08:00
Metadata apijson.Field
2025-07-31 13:00:29 +08:00
raw string
ExtraFields map[string]apijson.Field
}
func (r *ToolStateError) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r toolStateErrorJSON) RawJSON() string {
return r.raw
}
func (r ToolStateError) implementsToolPartState() {}
type ToolStateErrorStatus string
const (
ToolStateErrorStatusError ToolStateErrorStatus = "error"
)
func (r ToolStateErrorStatus) IsKnown() bool {
switch r {
case ToolStateErrorStatusError:
return true
}
return false
}
type ToolStateErrorTime struct {
End float64 `json:"end,required"`
Start float64 `json:"start,required"`
JSON toolStateErrorTimeJSON `json:"-"`
}
// toolStateErrorTimeJSON contains the JSON metadata for the struct
// [ToolStateErrorTime]
type toolStateErrorTimeJSON struct {
End apijson.Field
Start apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *ToolStateErrorTime) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r toolStateErrorTimeJSON) RawJSON() string {
return r.raw
}
type ToolStatePending struct {
Status ToolStatePendingStatus `json:"status,required"`
JSON toolStatePendingJSON `json:"-"`
}
// toolStatePendingJSON contains the JSON metadata for the struct
// [ToolStatePending]
type toolStatePendingJSON struct {
Status apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *ToolStatePending) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r toolStatePendingJSON) RawJSON() string {
return r.raw
}
func (r ToolStatePending) implementsToolPartState() {}
type ToolStatePendingStatus string
const (
ToolStatePendingStatusPending ToolStatePendingStatus = "pending"
)
func (r ToolStatePendingStatus) IsKnown() bool {
switch r {
case ToolStatePendingStatusPending:
return true
}
return false
}
type ToolStateRunning struct {
Input interface{} `json:"input,required"`
2025-07-31 13:00:29 +08:00
Status ToolStateRunningStatus `json:"status,required"`
Time ToolStateRunningTime `json:"time,required"`
Metadata map[string]interface{} `json:"metadata"`
Title string `json:"title"`
JSON toolStateRunningJSON `json:"-"`
}
// toolStateRunningJSON contains the JSON metadata for the struct
// [ToolStateRunning]
type toolStateRunningJSON struct {
Input apijson.Field
2025-07-31 13:00:29 +08:00
Status apijson.Field
Time apijson.Field
Metadata apijson.Field
Title apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *ToolStateRunning) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r toolStateRunningJSON) RawJSON() string {
return r.raw
}
func (r ToolStateRunning) implementsToolPartState() {}
type ToolStateRunningStatus string
const (
ToolStateRunningStatusRunning ToolStateRunningStatus = "running"
)
func (r ToolStateRunningStatus) IsKnown() bool {
switch r {
case ToolStateRunningStatusRunning:
return true
}
return false
}
type ToolStateRunningTime struct {
Start float64 `json:"start,required"`
JSON toolStateRunningTimeJSON `json:"-"`
}
// toolStateRunningTimeJSON contains the JSON metadata for the struct
// [ToolStateRunningTime]
type toolStateRunningTimeJSON struct {
Start apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *ToolStateRunningTime) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r toolStateRunningTimeJSON) RawJSON() string {
return r.raw
}
type UserMessage struct {
2025-10-28 23:03:53 +08:00
ID string `json:"id,required"`
Role UserMessageRole `json:"role,required"`
SessionID string `json:"sessionID,required"`
Time UserMessageTime `json:"time,required"`
Summary UserMessageSummary `json:"summary"`
JSON userMessageJSON `json:"-"`
2025-07-31 13:00:29 +08:00
}
// userMessageJSON contains the JSON metadata for the struct [UserMessage]
type userMessageJSON struct {
ID apijson.Field
Role apijson.Field
SessionID apijson.Field
Time apijson.Field
2025-10-28 23:03:53 +08:00
Summary apijson.Field
2025-07-31 13:00:29 +08:00
raw string
ExtraFields map[string]apijson.Field
}
func (r *UserMessage) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r userMessageJSON) RawJSON() string {
return r.raw
}
func (r UserMessage) implementsMessage() {}
type UserMessageRole string
const (
UserMessageRoleUser UserMessageRole = "user"
)
func (r UserMessageRole) IsKnown() bool {
switch r {
case UserMessageRoleUser:
return true
}
return false
}
type UserMessageTime struct {
Created float64 `json:"created,required"`
JSON userMessageTimeJSON `json:"-"`
}
// userMessageTimeJSON contains the JSON metadata for the struct [UserMessageTime]
type userMessageTimeJSON struct {
Created apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *UserMessageTime) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r userMessageTimeJSON) RawJSON() string {
return r.raw
}
2025-10-28 23:03:53 +08:00
type UserMessageSummary struct {
Diffs []UserMessageSummaryDiff `json:"diffs,required"`
Body string `json:"body"`
Title string `json:"title"`
JSON userMessageSummaryJSON `json:"-"`
}
// userMessageSummaryJSON contains the JSON metadata for the struct
// [UserMessageSummary]
type userMessageSummaryJSON struct {
Diffs apijson.Field
Body apijson.Field
Title apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *UserMessageSummary) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r userMessageSummaryJSON) RawJSON() string {
return r.raw
}
type UserMessageSummaryDiff struct {
Additions float64 `json:"additions,required"`
After string `json:"after,required"`
Before string `json:"before,required"`
Deletions float64 `json:"deletions,required"`
File string `json:"file,required"`
JSON userMessageSummaryDiffJSON `json:"-"`
}
// userMessageSummaryDiffJSON contains the JSON metadata for the struct
// [UserMessageSummaryDiff]
type userMessageSummaryDiffJSON struct {
Additions apijson.Field
After apijson.Field
Before apijson.Field
Deletions apijson.Field
File apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *UserMessageSummaryDiff) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r userMessageSummaryDiffJSON) RawJSON() string {
return r.raw
}
type SessionCommandResponse struct {
Info AssistantMessage `json:"info,required"`
Parts []Part `json:"parts,required"`
JSON sessionCommandResponseJSON `json:"-"`
}
// sessionCommandResponseJSON contains the JSON metadata for the struct
// [SessionCommandResponse]
type sessionCommandResponseJSON struct {
Info apijson.Field
Parts apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *SessionCommandResponse) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r sessionCommandResponseJSON) RawJSON() string {
return r.raw
}
2025-08-01 00:26:34 +08:00
type SessionMessageResponse struct {
Info Message `json:"info,required"`
Parts []Part `json:"parts,required"`
JSON sessionMessageResponseJSON `json:"-"`
}
// sessionMessageResponseJSON contains the JSON metadata for the struct
// [SessionMessageResponse]
type sessionMessageResponseJSON struct {
Info apijson.Field
Parts apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *SessionMessageResponse) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r sessionMessageResponseJSON) RawJSON() string {
return r.raw
}
2025-07-31 13:00:29 +08:00
type SessionMessagesResponse struct {
Info Message `json:"info,required"`
Parts []Part `json:"parts,required"`
JSON sessionMessagesResponseJSON `json:"-"`
}
// sessionMessagesResponseJSON contains the JSON metadata for the struct
// [SessionMessagesResponse]
type sessionMessagesResponseJSON struct {
Info apijson.Field
Parts apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *SessionMessagesResponse) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r sessionMessagesResponseJSON) RawJSON() string {
return r.raw
}
type SessionPromptResponse struct {
Info AssistantMessage `json:"info,required"`
Parts []Part `json:"parts,required"`
JSON sessionPromptResponseJSON `json:"-"`
}
// sessionPromptResponseJSON contains the JSON metadata for the struct
// [SessionPromptResponse]
type sessionPromptResponseJSON struct {
Info apijson.Field
Parts apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
func (r *SessionPromptResponse) UnmarshalJSON(data []byte) (err error) {
return apijson.UnmarshalRoot(data, r)
}
func (r sessionPromptResponseJSON) RawJSON() string {
return r.raw
}
type SessionNewParams struct {
Directory param.Field[string] `query:"directory"`
ParentID param.Field[string] `json:"parentID"`
Title param.Field[string] `json:"title"`
}
func (r SessionNewParams) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
// URLQuery serializes [SessionNewParams]'s query parameters as `url.Values`.
func (r SessionNewParams) URLQuery() (v url.Values) {
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
ArrayFormat: apiquery.ArrayQueryFormatComma,
NestedFormat: apiquery.NestedQueryFormatBrackets,
})
}
2025-08-14 02:28:22 +08:00
type SessionUpdateParams struct {
Directory param.Field[string] `query:"directory"`
Title param.Field[string] `json:"title"`
2025-08-14 02:28:22 +08:00
}
func (r SessionUpdateParams) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
// URLQuery serializes [SessionUpdateParams]'s query parameters as `url.Values`.
func (r SessionUpdateParams) URLQuery() (v url.Values) {
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
ArrayFormat: apiquery.ArrayQueryFormatComma,
NestedFormat: apiquery.NestedQueryFormatBrackets,
})
2025-07-31 13:00:29 +08:00
}
type SessionListParams struct {
Directory param.Field[string] `query:"directory"`
2025-07-31 13:00:29 +08:00
}
// URLQuery serializes [SessionListParams]'s query parameters as `url.Values`.
func (r SessionListParams) URLQuery() (v url.Values) {
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
ArrayFormat: apiquery.ArrayQueryFormatComma,
NestedFormat: apiquery.NestedQueryFormatBrackets,
})
2025-07-31 13:00:29 +08:00
}
type SessionDeleteParams struct {
Directory param.Field[string] `query:"directory"`
2025-07-31 13:00:29 +08:00
}
// URLQuery serializes [SessionDeleteParams]'s query parameters as `url.Values`.
func (r SessionDeleteParams) URLQuery() (v url.Values) {
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
ArrayFormat: apiquery.ArrayQueryFormatComma,
NestedFormat: apiquery.NestedQueryFormatBrackets,
})
}
2025-07-31 13:00:29 +08:00
type SessionAbortParams struct {
Directory param.Field[string] `query:"directory"`
2025-07-31 13:00:29 +08:00
}
// URLQuery serializes [SessionAbortParams]'s query parameters as `url.Values`.
func (r SessionAbortParams) URLQuery() (v url.Values) {
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
ArrayFormat: apiquery.ArrayQueryFormatComma,
NestedFormat: apiquery.NestedQueryFormatBrackets,
})
}
2025-07-31 13:00:29 +08:00
type SessionChildrenParams struct {
Directory param.Field[string] `query:"directory"`
}
2025-07-31 13:00:29 +08:00
// URLQuery serializes [SessionChildrenParams]'s query parameters as `url.Values`.
func (r SessionChildrenParams) URLQuery() (v url.Values) {
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
ArrayFormat: apiquery.ArrayQueryFormatComma,
NestedFormat: apiquery.NestedQueryFormatBrackets,
})
2025-07-31 13:00:29 +08:00
}
type SessionCommandParams struct {
Arguments param.Field[string] `json:"arguments,required"`
Command param.Field[string] `json:"command,required"`
Directory param.Field[string] `query:"directory"`
Agent param.Field[string] `json:"agent"`
MessageID param.Field[string] `json:"messageID"`
Model param.Field[string] `json:"model"`
}
func (r SessionCommandParams) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
// URLQuery serializes [SessionCommandParams]'s query parameters as `url.Values`.
func (r SessionCommandParams) URLQuery() (v url.Values) {
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
ArrayFormat: apiquery.ArrayQueryFormatComma,
NestedFormat: apiquery.NestedQueryFormatBrackets,
})
}
type SessionGetParams struct {
Directory param.Field[string] `query:"directory"`
}
// URLQuery serializes [SessionGetParams]'s query parameters as `url.Values`.
func (r SessionGetParams) URLQuery() (v url.Values) {
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
ArrayFormat: apiquery.ArrayQueryFormatComma,
NestedFormat: apiquery.NestedQueryFormatBrackets,
})
}
2025-07-31 13:00:29 +08:00
type SessionInitParams struct {
MessageID param.Field[string] `json:"messageID,required"`
ModelID param.Field[string] `json:"modelID,required"`
ProviderID param.Field[string] `json:"providerID,required"`
Directory param.Field[string] `query:"directory"`
2025-07-31 13:00:29 +08:00
}
func (r SessionInitParams) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
// URLQuery serializes [SessionInitParams]'s query parameters as `url.Values`.
func (r SessionInitParams) URLQuery() (v url.Values) {
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
ArrayFormat: apiquery.ArrayQueryFormatComma,
NestedFormat: apiquery.NestedQueryFormatBrackets,
})
}
type SessionMessageParams struct {
Directory param.Field[string] `query:"directory"`
}
// URLQuery serializes [SessionMessageParams]'s query parameters as `url.Values`.
func (r SessionMessageParams) URLQuery() (v url.Values) {
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
ArrayFormat: apiquery.ArrayQueryFormatComma,
NestedFormat: apiquery.NestedQueryFormatBrackets,
})
}
type SessionMessagesParams struct {
Directory param.Field[string] `query:"directory"`
}
// URLQuery serializes [SessionMessagesParams]'s query parameters as `url.Values`.
func (r SessionMessagesParams) URLQuery() (v url.Values) {
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
ArrayFormat: apiquery.ArrayQueryFormatComma,
NestedFormat: apiquery.NestedQueryFormatBrackets,
})
}
type SessionPromptParams struct {
Parts param.Field[[]SessionPromptParamsPartUnion] `json:"parts,required"`
Directory param.Field[string] `query:"directory"`
Agent param.Field[string] `json:"agent"`
MessageID param.Field[string] `json:"messageID"`
Model param.Field[SessionPromptParamsModel] `json:"model"`
2025-10-28 23:03:53 +08:00
NoReply param.Field[bool] `json:"noReply"`
System param.Field[string] `json:"system"`
Tools param.Field[map[string]bool] `json:"tools"`
}
func (r SessionPromptParams) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
// URLQuery serializes [SessionPromptParams]'s query parameters as `url.Values`.
func (r SessionPromptParams) URLQuery() (v url.Values) {
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
ArrayFormat: apiquery.ArrayQueryFormatComma,
NestedFormat: apiquery.NestedQueryFormatBrackets,
})
}
type SessionPromptParamsPart struct {
Type param.Field[SessionPromptParamsPartsType] `json:"type,required"`
ID param.Field[string] `json:"id"`
Filename param.Field[string] `json:"filename"`
2025-10-08 03:51:59 +08:00
Metadata param.Field[interface{}] `json:"metadata"`
Mime param.Field[string] `json:"mime"`
Name param.Field[string] `json:"name"`
Source param.Field[interface{}] `json:"source"`
Synthetic param.Field[bool] `json:"synthetic"`
Text param.Field[string] `json:"text"`
Time param.Field[interface{}] `json:"time"`
URL param.Field[string] `json:"url"`
}
func (r SessionPromptParamsPart) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
func (r SessionPromptParamsPart) implementsSessionPromptParamsPartUnion() {}
// Satisfied by [TextPartInputParam], [FilePartInputParam], [AgentPartInputParam],
// [SessionPromptParamsPart].
type SessionPromptParamsPartUnion interface {
implementsSessionPromptParamsPartUnion()
}
type SessionPromptParamsPartsType string
const (
SessionPromptParamsPartsTypeText SessionPromptParamsPartsType = "text"
SessionPromptParamsPartsTypeFile SessionPromptParamsPartsType = "file"
SessionPromptParamsPartsTypeAgent SessionPromptParamsPartsType = "agent"
)
func (r SessionPromptParamsPartsType) IsKnown() bool {
switch r {
case SessionPromptParamsPartsTypeText, SessionPromptParamsPartsTypeFile, SessionPromptParamsPartsTypeAgent:
return true
}
return false
}
type SessionPromptParamsModel struct {
ModelID param.Field[string] `json:"modelID,required"`
ProviderID param.Field[string] `json:"providerID,required"`
}
func (r SessionPromptParamsModel) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
2025-07-31 13:00:29 +08:00
type SessionRevertParams struct {
MessageID param.Field[string] `json:"messageID,required"`
Directory param.Field[string] `query:"directory"`
2025-07-31 13:00:29 +08:00
PartID param.Field[string] `json:"partID"`
}
func (r SessionRevertParams) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
// URLQuery serializes [SessionRevertParams]'s query parameters as `url.Values`.
func (r SessionRevertParams) URLQuery() (v url.Values) {
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
ArrayFormat: apiquery.ArrayQueryFormatComma,
NestedFormat: apiquery.NestedQueryFormatBrackets,
})
}
type SessionShareParams struct {
Directory param.Field[string] `query:"directory"`
}
// URLQuery serializes [SessionShareParams]'s query parameters as `url.Values`.
func (r SessionShareParams) URLQuery() (v url.Values) {
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
ArrayFormat: apiquery.ArrayQueryFormatComma,
NestedFormat: apiquery.NestedQueryFormatBrackets,
})
}
2025-08-14 03:25:51 +08:00
type SessionShellParams struct {
Agent param.Field[string] `json:"agent,required"`
Command param.Field[string] `json:"command,required"`
Directory param.Field[string] `query:"directory"`
2025-08-14 03:25:51 +08:00
}
func (r SessionShellParams) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
// URLQuery serializes [SessionShellParams]'s query parameters as `url.Values`.
func (r SessionShellParams) URLQuery() (v url.Values) {
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
ArrayFormat: apiquery.ArrayQueryFormatComma,
NestedFormat: apiquery.NestedQueryFormatBrackets,
})
}
2025-07-31 13:00:29 +08:00
type SessionSummarizeParams struct {
ModelID param.Field[string] `json:"modelID,required"`
ProviderID param.Field[string] `json:"providerID,required"`
Directory param.Field[string] `query:"directory"`
2025-07-31 13:00:29 +08:00
}
func (r SessionSummarizeParams) MarshalJSON() (data []byte, err error) {
return apijson.MarshalRoot(r)
}
// URLQuery serializes [SessionSummarizeParams]'s query parameters as `url.Values`.
func (r SessionSummarizeParams) URLQuery() (v url.Values) {
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
ArrayFormat: apiquery.ArrayQueryFormatComma,
NestedFormat: apiquery.NestedQueryFormatBrackets,
})
}
type SessionUnrevertParams struct {
Directory param.Field[string] `query:"directory"`
}
// URLQuery serializes [SessionUnrevertParams]'s query parameters as `url.Values`.
func (r SessionUnrevertParams) URLQuery() (v url.Values) {
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
ArrayFormat: apiquery.ArrayQueryFormatComma,
NestedFormat: apiquery.NestedQueryFormatBrackets,
})
}
type SessionUnshareParams struct {
Directory param.Field[string] `query:"directory"`
}
// URLQuery serializes [SessionUnshareParams]'s query parameters as `url.Values`.
func (r SessionUnshareParams) URLQuery() (v url.Values) {
return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{
ArrayFormat: apiquery.ArrayQueryFormatComma,
NestedFormat: apiquery.NestedQueryFormatBrackets,
})
}