| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434 |
- // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
- package opencode
- import (
- "context"
- "errors"
- "fmt"
- "net/http"
- "reflect"
- "github.com/sst/opencode-sdk-go/internal/apijson"
- "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, body SessionNewParams, opts ...option.RequestOption) (res *Session, err error) {
- opts = append(r.Options[:], opts...)
- path := "session"
- err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...)
- return
- }
- // Update session properties
- func (r *SessionService) Update(ctx context.Context, id string, body SessionUpdateParams, opts ...option.RequestOption) (res *Session, err error) {
- opts = append(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, body, &res, opts...)
- return
- }
- // List all sessions
- func (r *SessionService) List(ctx context.Context, opts ...option.RequestOption) (res *[]Session, err error) {
- opts = append(r.Options[:], opts...)
- path := "session"
- err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...)
- return
- }
- // Delete a session and all its data
- func (r *SessionService) Delete(ctx context.Context, id string, opts ...option.RequestOption) (res *bool, err error) {
- opts = append(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, nil, &res, opts...)
- return
- }
- // Abort a session
- func (r *SessionService) Abort(ctx context.Context, id string, opts ...option.RequestOption) (res *bool, err error) {
- opts = append(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, nil, &res, opts...)
- return
- }
- // Create and send a new message to a session
- func (r *SessionService) Chat(ctx context.Context, id string, body SessionChatParams, opts ...option.RequestOption) (res *AssistantMessage, err error) {
- opts = append(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, body, &res, opts...)
- return
- }
- // Get a session's children
- func (r *SessionService) Children(ctx context.Context, id string, opts ...option.RequestOption) (res *[]Session, err error) {
- opts = append(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, nil, &res, opts...)
- return
- }
- // Get session
- func (r *SessionService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *Session, err error) {
- opts = append(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, nil, &res, opts...)
- return
- }
- // Analyze the app and create an AGENTS.md file
- func (r *SessionService) Init(ctx context.Context, id string, body SessionInitParams, opts ...option.RequestOption) (res *bool, err error) {
- opts = append(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, body, &res, opts...)
- return
- }
- // Get a message from a session
- func (r *SessionService) Message(ctx context.Context, id string, messageID string, opts ...option.RequestOption) (res *SessionMessageResponse, err error) {
- opts = append(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, nil, &res, opts...)
- return
- }
- // List messages for a session
- func (r *SessionService) Messages(ctx context.Context, id string, opts ...option.RequestOption) (res *[]SessionMessagesResponse, err error) {
- opts = append(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, nil, &res, opts...)
- return
- }
- // Revert a message
- func (r *SessionService) Revert(ctx context.Context, id string, body SessionRevertParams, opts ...option.RequestOption) (res *Session, err error) {
- opts = append(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, body, &res, opts...)
- return
- }
- // Share a session
- func (r *SessionService) Share(ctx context.Context, id string, opts ...option.RequestOption) (res *Session, err error) {
- opts = append(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, nil, &res, opts...)
- return
- }
- // Run a shell command
- func (r *SessionService) Shell(ctx context.Context, id string, body SessionShellParams, opts ...option.RequestOption) (res *AssistantMessage, err error) {
- opts = append(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, body, &res, opts...)
- return
- }
- // Summarize the session
- func (r *SessionService) Summarize(ctx context.Context, id string, body SessionSummarizeParams, opts ...option.RequestOption) (res *bool, err error) {
- opts = append(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, body, &res, opts...)
- return
- }
- // Restore all reverted messages
- func (r *SessionService) Unrevert(ctx context.Context, id string, opts ...option.RequestOption) (res *Session, err error) {
- opts = append(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, nil, &res, opts...)
- return
- }
- // Unshare the session
- func (r *SessionService) Unshare(ctx context.Context, id string, opts ...option.RequestOption) (res *Session, err error) {
- opts = append(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, nil, &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) implementsSessionChatParamsPartUnion() {}
- 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"`
- 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
- 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{}].
- 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].
- func (r AssistantMessageError) AsUnion() AssistantMessageErrorUnion {
- return r.union
- }
- // Union satisfied by [shared.ProviderAuthError], [shared.UnknownError],
- // [AssistantMessageErrorMessageOutputLengthError] or [shared.MessageAbortedError].
- type AssistantMessageErrorUnion interface {
- ImplementsAssistantMessageError()
- }
- func init() {
- apijson.RegisterUnion(
- reflect.TypeOf((*AssistantMessageErrorUnion)(nil)).Elem(),
- "name",
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(shared.ProviderAuthError{}),
- DiscriminatorValue: "ProviderAuthError",
- },
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(shared.UnknownError{}),
- DiscriminatorValue: "UnknownError",
- },
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(AssistantMessageErrorMessageOutputLengthError{}),
- DiscriminatorValue: "MessageOutputLengthError",
- },
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(shared.MessageAbortedError{}),
- DiscriminatorValue: "MessageAbortedError",
- },
- )
- }
- 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 AssistantMessageErrorName string
- const (
- AssistantMessageErrorNameProviderAuthError AssistantMessageErrorName = "ProviderAuthError"
- AssistantMessageErrorNameUnknownError AssistantMessageErrorName = "UnknownError"
- AssistantMessageErrorNameMessageOutputLengthError AssistantMessageErrorName = "MessageOutputLengthError"
- AssistantMessageErrorNameMessageAbortedError AssistantMessageErrorName = "MessageAbortedError"
- )
- func (r AssistantMessageErrorName) IsKnown() bool {
- switch r {
- case AssistantMessageErrorNameProviderAuthError, AssistantMessageErrorNameUnknownError, AssistantMessageErrorNameMessageOutputLengthError, AssistantMessageErrorNameMessageAbortedError:
- 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) implementsSessionChatParamsPartUnion() {}
- 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(),
- "type",
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(FileSource{}),
- DiscriminatorValue: "file",
- },
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(SymbolSource{}),
- DiscriminatorValue: "symbol",
- },
- )
- }
- 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"`
- // This field can have the runtime type of [AssistantMessagePath].
- Path interface{} `json:"path"`
- ProviderID string `json:"providerID"`
- Summary bool `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
- 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(),
- "role",
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(UserMessage{}),
- DiscriminatorValue: "user",
- },
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(AssistantMessage{}),
- DiscriminatorValue: "assistant",
- },
- )
- }
- 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"`
- CallID string `json:"callID"`
- Cost float64 `json:"cost"`
- 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"`
- 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].
- 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
- CallID apijson.Field
- Cost apijson.Field
- Filename apijson.Field
- Files apijson.Field
- Hash apijson.Field
- Metadata apijson.Field
- Mime apijson.Field
- Name 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].
- func (r Part) AsUnion() PartUnion {
- return r.union
- }
- // Union satisfied by [TextPart], [ReasoningPart], [FilePart], [ToolPart],
- // [StepStartPart], [StepFinishPart], [SnapshotPart], [PartPatchPart] or
- // [AgentPart].
- type PartUnion interface {
- implementsPart()
- }
- func init() {
- apijson.RegisterUnion(
- reflect.TypeOf((*PartUnion)(nil)).Elem(),
- "type",
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(TextPart{}),
- DiscriminatorValue: "text",
- },
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(ReasoningPart{}),
- DiscriminatorValue: "reasoning",
- },
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(FilePart{}),
- DiscriminatorValue: "file",
- },
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(ToolPart{}),
- DiscriminatorValue: "tool",
- },
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(StepStartPart{}),
- DiscriminatorValue: "step-start",
- },
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(StepFinishPart{}),
- DiscriminatorValue: "step-finish",
- },
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(SnapshotPart{}),
- DiscriminatorValue: "snapshot",
- },
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(PartPatchPart{}),
- DiscriminatorValue: "patch",
- },
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(AgentPart{}),
- DiscriminatorValue: "agent",
- },
- )
- }
- 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 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"
- )
- func (r PartType) IsKnown() bool {
- switch r {
- case PartTypeText, PartTypeReasoning, PartTypeFile, PartTypeTool, PartTypeStepStart, PartTypeStepFinish, PartTypeSnapshot, PartTypePatch, PartTypeAgent:
- 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"`
- 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"`
- JSON sessionJSON `json:"-"`
- }
- // sessionJSON contains the JSON metadata for the struct [Session]
- type sessionJSON struct {
- ID apijson.Field
- Time apijson.Field
- Title apijson.Field
- Version apijson.Field
- ParentID apijson.Field
- Revert apijson.Field
- Share 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"`
- JSON sessionTimeJSON `json:"-"`
- }
- // sessionTimeJSON contains the JSON metadata for the struct [SessionTime]
- type sessionTimeJSON struct {
- Created apijson.Field
- Updated 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 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"`
- SessionID string `json:"sessionID,required"`
- Tokens StepFinishPartTokens `json:"tokens,required"`
- Type StepFinishPartType `json:"type,required"`
- JSON stepFinishPartJSON `json:"-"`
- }
- // stepFinishPartJSON contains the JSON metadata for the struct [StepFinishPart]
- type stepFinishPartJSON struct {
- ID apijson.Field
- Cost apijson.Field
- MessageID apijson.Field
- SessionID apijson.Field
- Tokens apijson.Field
- Type 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"`
- 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
- 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"`
- 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
- 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"`
- 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) implementsSessionChatParamsPartUnion() {}
- 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"`
- 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
- 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"`
- 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
- 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(),
- "status",
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(ToolStatePending{}),
- DiscriminatorValue: "pending",
- },
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(ToolStateRunning{}),
- DiscriminatorValue: "running",
- },
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(ToolStateCompleted{}),
- DiscriminatorValue: "completed",
- },
- apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(ToolStateError{}),
- DiscriminatorValue: "error",
- },
- )
- }
- 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"`
- 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
- 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"`
- JSON toolStateCompletedTimeJSON `json:"-"`
- }
- // toolStateCompletedTimeJSON contains the JSON metadata for the struct
- // [ToolStateCompletedTime]
- type toolStateCompletedTimeJSON struct {
- End apijson.Field
- Start 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 {
- Status ToolStateRunningStatus `json:"status,required"`
- Time ToolStateRunningTime `json:"time,required"`
- Input interface{} `json:"input"`
- 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 {
- Status apijson.Field
- Time apijson.Field
- Input 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"`
- 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
- 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 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 SessionNewParams struct {
- ParentID param.Field[string] `json:"parentID"`
- Title param.Field[string] `json:"title"`
- }
- func (r SessionNewParams) MarshalJSON() (data []byte, err error) {
- return apijson.MarshalRoot(r)
- }
- type SessionUpdateParams struct {
- Title param.Field[string] `json:"title"`
- }
- func (r SessionUpdateParams) MarshalJSON() (data []byte, err error) {
- return apijson.MarshalRoot(r)
- }
- type SessionChatParams struct {
- ModelID param.Field[string] `json:"modelID,required"`
- Parts param.Field[[]SessionChatParamsPartUnion] `json:"parts,required"`
- ProviderID param.Field[string] `json:"providerID,required"`
- Agent param.Field[string] `json:"agent"`
- MessageID param.Field[string] `json:"messageID"`
- System param.Field[string] `json:"system"`
- Tools param.Field[map[string]bool] `json:"tools"`
- }
- func (r SessionChatParams) MarshalJSON() (data []byte, err error) {
- return apijson.MarshalRoot(r)
- }
- type SessionChatParamsPart struct {
- Type param.Field[SessionChatParamsPartsType] `json:"type,required"`
- ID param.Field[string] `json:"id"`
- Filename param.Field[string] `json:"filename"`
- 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 SessionChatParamsPart) MarshalJSON() (data []byte, err error) {
- return apijson.MarshalRoot(r)
- }
- func (r SessionChatParamsPart) implementsSessionChatParamsPartUnion() {}
- // Satisfied by [TextPartInputParam], [FilePartInputParam], [AgentPartInputParam],
- // [SessionChatParamsPart].
- type SessionChatParamsPartUnion interface {
- implementsSessionChatParamsPartUnion()
- }
- type SessionChatParamsPartsType string
- const (
- SessionChatParamsPartsTypeText SessionChatParamsPartsType = "text"
- SessionChatParamsPartsTypeFile SessionChatParamsPartsType = "file"
- SessionChatParamsPartsTypeAgent SessionChatParamsPartsType = "agent"
- )
- func (r SessionChatParamsPartsType) IsKnown() bool {
- switch r {
- case SessionChatParamsPartsTypeText, SessionChatParamsPartsTypeFile, SessionChatParamsPartsTypeAgent:
- return true
- }
- return false
- }
- type SessionInitParams struct {
- MessageID param.Field[string] `json:"messageID,required"`
- ModelID param.Field[string] `json:"modelID,required"`
- ProviderID param.Field[string] `json:"providerID,required"`
- }
- func (r SessionInitParams) MarshalJSON() (data []byte, err error) {
- return apijson.MarshalRoot(r)
- }
- type SessionRevertParams struct {
- MessageID param.Field[string] `json:"messageID,required"`
- PartID param.Field[string] `json:"partID"`
- }
- func (r SessionRevertParams) MarshalJSON() (data []byte, err error) {
- return apijson.MarshalRoot(r)
- }
- type SessionShellParams struct {
- Agent param.Field[string] `json:"agent,required"`
- Command param.Field[string] `json:"command,required"`
- }
- func (r SessionShellParams) MarshalJSON() (data []byte, err error) {
- return apijson.MarshalRoot(r)
- }
- type SessionSummarizeParams struct {
- ModelID param.Field[string] `json:"modelID,required"`
- ProviderID param.Field[string] `json:"providerID,required"`
- }
- func (r SessionSummarizeParams) MarshalJSON() (data []byte, err error) {
- return apijson.MarshalRoot(r)
- }
|