diff options
Diffstat (limited to 'packages/sdk/go/session.go')
| -rw-r--r-- | packages/sdk/go/session.go | 3047 |
1 files changed, 0 insertions, 3047 deletions
diff --git a/packages/sdk/go/session.go b/packages/sdk/go/session.go deleted file mode 100644 index afd64cb9e..000000000 --- a/packages/sdk/go/session.go +++ /dev/null @@ -1,3047 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -package opencode - -import ( - "context" - "errors" - "fmt" - "net/http" - "net/url" - "reflect" - "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" - "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 { - Options []option.RequestOption - Permissions *SessionPermissionService -} - -// 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 - r.Permissions = NewSessionPermissionService(opts...) - return -} - -// Create a new session -func (r *SessionService) New(ctx context.Context, params SessionNewParams, opts ...option.RequestOption) (res *Session, err error) { - opts = slices.Concat(r.Options, opts) - path := "session" - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...) - return -} - -// Update session properties -func (r *SessionService) Update(ctx context.Context, id string, params SessionUpdateParams, opts ...option.RequestOption) (res *Session, err error) { - 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.MethodPatch, path, params, &res, opts...) - return -} - -// List all sessions -func (r *SessionService) List(ctx context.Context, query SessionListParams, opts ...option.RequestOption) (res *[]Session, err error) { - opts = slices.Concat(r.Options, opts) - path := "session" - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) - 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) { - 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.MethodDelete, path, body, &res, opts...) - return -} - -// Abort a session -func (r *SessionService) Abort(ctx context.Context, id string, body SessionAbortParams, opts ...option.RequestOption) (res *bool, err error) { - opts = slices.Concat(r.Options, opts) - if id == "" { - err = errors.New("missing required id parameter") - return - } - path := fmt.Sprintf("session/%s/abort", id) - 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) { - 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) { - 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) { - 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 -} - -// 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) { - opts = slices.Concat(r.Options, opts) - 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...) - return -} - -// 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) { - opts = slices.Concat(r.Options, opts) - 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...) - return -} - -// List messages for a session -func (r *SessionService) Messages(ctx context.Context, id string, query SessionMessagesParams, opts ...option.RequestOption) (res *[]SessionMessagesResponse, err error) { - 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.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) { - 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...) - return -} - -// Revert a message -func (r *SessionService) Revert(ctx context.Context, id string, params SessionRevertParams, opts ...option.RequestOption) (res *Session, err error) { - opts = slices.Concat(r.Options, opts) - 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...) - return -} - -// Share a session -func (r *SessionService) Share(ctx context.Context, id string, body SessionShareParams, opts ...option.RequestOption) (res *Session, err error) { - opts = slices.Concat(r.Options, opts) - 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...) - return -} - -// Run a shell command -func (r *SessionService) Shell(ctx context.Context, id string, params SessionShellParams, opts ...option.RequestOption) (res *AssistantMessage, err error) { - opts = slices.Concat(r.Options, opts) - 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...) - return -} - -// Summarize the session -func (r *SessionService) Summarize(ctx context.Context, id string, params SessionSummarizeParams, opts ...option.RequestOption) (res *bool, err error) { - opts = slices.Concat(r.Options, opts) - 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...) - return -} - -// Restore all reverted messages -func (r *SessionService) Unrevert(ctx context.Context, id string, body SessionUnrevertParams, opts ...option.RequestOption) (res *Session, err error) { - opts = slices.Concat(r.Options, opts) - 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...) - return -} - -// Unshare the session -func (r *SessionService) Unshare(ctx context.Context, id string, body SessionUnshareParams, opts ...option.RequestOption) (res *Session, err error) { - opts = slices.Concat(r.Options, opts) - 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...) - 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) -} - -type AssistantMessage struct { - ID string `json:"id,required"` - Cost float64 `json:"cost,required"` - Mode string `json:"mode,required"` - ModelID string `json:"modelID,required"` - ParentID string `json:"parentID,required"` - 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 - ParentID apijson.Field - 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], - // [shared.UnknownErrorData], [interface{}], [shared.MessageAbortedErrorData], - // [AssistantMessageErrorAPIErrorData]. - 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], -// [shared.MessageAbortedError], [AssistantMessageErrorAPIError]. -func (r AssistantMessageError) AsUnion() AssistantMessageErrorUnion { - return r.union -} - -// Union satisfied by [shared.ProviderAuthError], [shared.UnknownError], -// [AssistantMessageErrorMessageOutputLengthError], [shared.MessageAbortedError] or -// [AssistantMessageErrorAPIError]. -type AssistantMessageErrorUnion interface { - ImplementsAssistantMessageError() -} - -func init() { - apijson.RegisterUnion( - reflect.TypeOf((*AssistantMessageErrorUnion)(nil)).Elem(), - "", - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(shared.ProviderAuthError{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(shared.UnknownError{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AssistantMessageErrorMessageOutputLengthError{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(shared.MessageAbortedError{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AssistantMessageErrorAPIError{}), - }, - ) -} - -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 -} - -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 -} - -type AssistantMessageErrorName string - -const ( - AssistantMessageErrorNameProviderAuthError AssistantMessageErrorName = "ProviderAuthError" - AssistantMessageErrorNameUnknownError AssistantMessageErrorName = "UnknownError" - AssistantMessageErrorNameMessageOutputLengthError AssistantMessageErrorName = "MessageOutputLengthError" - AssistantMessageErrorNameMessageAbortedError AssistantMessageErrorName = "MessageAbortedError" - AssistantMessageErrorNameAPIError AssistantMessageErrorName = "APIError" -) - -func (r AssistantMessageErrorName) IsKnown() bool { - switch r { - case AssistantMessageErrorNameProviderAuthError, AssistantMessageErrorNameUnknownError, AssistantMessageErrorNameMessageOutputLengthError, AssistantMessageErrorNameMessageAbortedError, AssistantMessageErrorNameAPIError: - 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() {} - -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(), - "", - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(FileSource{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(SymbolSource{}), - }, - ) -} - -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]. - Error interface{} `json:"error"` - Mode string `json:"mode"` - ModelID string `json:"modelID"` - ParentID string `json:"parentID"` - // This field can have the runtime type of [AssistantMessagePath]. - Path interface{} `json:"path"` - ProviderID string `json:"providerID"` - // This field can have the runtime type of [UserMessageSummary], [bool]. - Summary interface{} `json:"summary"` - // 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 - ParentID apijson.Field - 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(), - "", - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(UserMessage{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AssistantMessage{}), - }, - ) -} - -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"` - Attempt float64 `json:"attempt"` - CallID string `json:"callID"` - Cost float64 `json:"cost"` - // This field can have the runtime type of [PartRetryPartError]. - Error interface{} `json:"error"` - Filename string `json:"filename"` - // 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{}]. - Metadata interface{} `json:"metadata"` - Mime string `json:"mime"` - Name string `json:"name"` - Reason string `json:"reason"` - Snapshot string `json:"snapshot"` - // This field can have the runtime type of [FilePartSource], [AgentPartSource]. - Source interface{} `json:"source"` - // This field can have the runtime type of [ToolPartState]. - State interface{} `json:"state"` - Synthetic bool `json:"synthetic"` - Text string `json:"text"` - // This field can have the runtime type of [TextPartTime], [ReasoningPartTime], - // [PartRetryPartTime]. - 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 { - ID apijson.Field - MessageID apijson.Field - SessionID apijson.Field - Type apijson.Field - Attempt apijson.Field - CallID apijson.Field - Cost apijson.Field - Error apijson.Field - Filename apijson.Field - Files apijson.Field - Hash apijson.Field - Metadata apijson.Field - Mime apijson.Field - Name apijson.Field - Reason apijson.Field - 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 -} - -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], -// [AgentPart], [PartRetryPart]. -func (r Part) AsUnion() PartUnion { - return r.union -} - -// Union satisfied by [TextPart], [ReasoningPart], [FilePart], [ToolPart], -// [StepStartPart], [StepFinishPart], [SnapshotPart], [PartPatchPart], [AgentPart] -// or [PartRetryPart]. -type PartUnion interface { - implementsPart() -} - -func init() { - apijson.RegisterUnion( - reflect.TypeOf((*PartUnion)(nil)).Elem(), - "", - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(TextPart{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(ReasoningPart{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(FilePart{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(ToolPart{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(StepStartPart{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(StepFinishPart{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(SnapshotPart{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(PartPatchPart{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(AgentPart{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(PartRetryPart{}), - }, - ) -} - -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 -} - -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 -} - -type PartType string - -const ( - PartTypeText PartType = "text" - PartTypeReasoning PartType = "reasoning" - PartTypeFile PartType = "file" - PartTypeTool PartType = "tool" - PartTypeStepStart PartType = "step-start" - PartTypeStepFinish PartType = "step-finish" - PartTypeSnapshot PartType = "snapshot" - PartTypePatch PartType = "patch" - PartTypeAgent PartType = "agent" - PartTypeRetry PartType = "retry" -) - -func (r PartType) IsKnown() bool { - switch r { - case PartTypeText, PartTypeReasoning, PartTypeFile, PartTypeTool, PartTypeStepStart, PartTypeStepFinish, PartTypeSnapshot, PartTypePatch, PartTypeAgent, PartTypeRetry: - return true - } - return false -} - -type ReasoningPart struct { - 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 { - 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 -} - -type ReasoningPartType string - -const ( - ReasoningPartTypeReasoning ReasoningPartType = "reasoning" -) - -func (r ReasoningPartType) IsKnown() bool { - switch r { - case ReasoningPartTypeReasoning: - return true - } - return false -} - -type Session struct { - 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:"-"` -} - -// sessionJSON contains the JSON metadata for the struct [Session] -type sessionJSON struct { - ID apijson.Field - Directory apijson.Field - ProjectID apijson.Field - Time apijson.Field - Title apijson.Field - Version apijson.Field - ParentID apijson.Field - Revert apijson.Field - Share apijson.Field - Summary apijson.Field - 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 { - Created float64 `json:"created,required"` - Updated float64 `json:"updated,required"` - Compacting float64 `json:"compacting"` - JSON sessionTimeJSON `json:"-"` -} - -// sessionTimeJSON contains the JSON metadata for the struct [SessionTime] -type sessionTimeJSON struct { - Created apijson.Field - Updated apijson.Field - Compacting apijson.Field - 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 -} - -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 -} - -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"` - Reason string `json:"reason,required"` - SessionID string `json:"sessionID,required"` - Tokens StepFinishPartTokens `json:"tokens,required"` - Type StepFinishPartType `json:"type,required"` - Snapshot string `json:"snapshot"` - JSON stepFinishPartJSON `json:"-"` -} - -// stepFinishPartJSON contains the JSON metadata for the struct [StepFinishPart] -type stepFinishPartJSON struct { - ID apijson.Field - Cost apijson.Field - MessageID apijson.Field - Reason apijson.Field - SessionID apijson.Field - Tokens apijson.Field - Type apijson.Field - Snapshot apijson.Field - 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"` - Snapshot string `json:"snapshot"` - 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 - Snapshot apijson.Field - 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 { - 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:"-"` -} - -// 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 - Metadata apijson.Field - 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"` - Metadata param.Field[map[string]interface{}] `json:"metadata"` - 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() {} - -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 { - 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:"-"` -} - -// 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 - Metadata apijson.Field - 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"` - // This field can have the runtime type of [[]FilePart]. - Attachments interface{} `json:"attachments"` - Error string `json:"error"` - // 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 - Attachments apijson.Field - 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(), - "", - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(ToolStatePending{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(ToolStateRunning{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(ToolStateCompleted{}), - }, - apijson.UnionVariant{ - TypeFilter: gjson.JSON, - Type: reflect.TypeOf(ToolStateError{}), - }, - ) -} - -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 { - 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:"-"` -} - -// 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 - Attachments apijson.Field - 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:"-"` -} - -// toolStateCompletedTimeJSON contains the JSON metadata for the struct -// [ToolStateCompletedTime] -type toolStateCompletedTimeJSON struct { - End apijson.Field - Start apijson.Field - Compacted apijson.Field - 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"` - Metadata map[string]interface{} `json:"metadata"` - JSON toolStateErrorJSON `json:"-"` -} - -// toolStateErrorJSON contains the JSON metadata for the struct [ToolStateError] -type toolStateErrorJSON struct { - Error apijson.Field - Input apijson.Field - Status apijson.Field - Time apijson.Field - Metadata apijson.Field - 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"` - 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 - 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 { - 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:"-"` -} - -// userMessageJSON contains the JSON metadata for the struct [UserMessage] -type userMessageJSON struct { - ID apijson.Field - Role apijson.Field - SessionID apijson.Field - Time apijson.Field - Summary apijson.Field - 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 -} - -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 -} - -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 -} - -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, - }) -} - -type SessionUpdateParams struct { - Directory param.Field[string] `query:"directory"` - Title param.Field[string] `json:"title"` -} - -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, - }) -} - -type SessionListParams struct { - Directory param.Field[string] `query:"directory"` -} - -// 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, - }) -} - -type SessionDeleteParams struct { - Directory param.Field[string] `query:"directory"` -} - -// 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, - }) -} - -type SessionAbortParams struct { - Directory param.Field[string] `query:"directory"` -} - -// 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, - }) -} - -type SessionChildrenParams struct { - Directory param.Field[string] `query:"directory"` -} - -// 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, - }) -} - -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, - }) -} - -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"` -} - -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"` - 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"` - 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) -} - -type SessionRevertParams struct { - MessageID param.Field[string] `json:"messageID,required"` - Directory param.Field[string] `query:"directory"` - 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, - }) -} - -type SessionShellParams struct { - Agent param.Field[string] `json:"agent,required"` - Command param.Field[string] `json:"command,required"` - Directory param.Field[string] `query:"directory"` -} - -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, - }) -} - -type SessionSummarizeParams struct { - ModelID param.Field[string] `json:"modelID,required"` - ProviderID param.Field[string] `json:"providerID,required"` - Directory param.Field[string] `query:"directory"` -} - -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, - }) -} |
