diff --git a/packages/sdk/go/.release-please-manifest.json b/packages/sdk/go/.release-please-manifest.json index 6f2b4018..4ad3fef3 100644 --- a/packages/sdk/go/.release-please-manifest.json +++ b/packages/sdk/go/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.16.2" + ".": "0.18.0" } \ No newline at end of file diff --git a/packages/sdk/go/.stats.yml b/packages/sdk/go/.stats.yml index 911073ed..5383f794 100644 --- a/packages/sdk/go/.stats.yml +++ b/packages/sdk/go/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 43 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/opencode%2Fopencode-273fc9fea965af661dfed0902d00f10d6ed844f0681ca861a58821c4902eac2f.yml -openapi_spec_hash: c6144f23a1bac75f79be86edd405552b +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/opencode%2Fopencode-92f9d0f8daee2ea7458f8b9f1d7a7f941ff932442ad944bc7576254d5978b6d5.yml +openapi_spec_hash: 5b785c4ff6fb69039915f0e746abdaf9 config_hash: 026ef000d34bf2f930e7b41e77d2d3ff diff --git a/packages/sdk/go/CHANGELOG.md b/packages/sdk/go/CHANGELOG.md index 27affc4f..498a7802 100644 --- a/packages/sdk/go/CHANGELOG.md +++ b/packages/sdk/go/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## 0.18.0 (2025-10-10) + +Full Changelog: [v0.17.0...v0.18.0](https://github.com/sst/opencode-sdk-go/compare/v0.17.0...v0.18.0) + +### Features + +* **api:** api update ([0a7f5e7](https://github.com/sst/opencode-sdk-go/commit/0a7f5e710911506512a132ba39e0593c412beb77)) + +## 0.17.0 (2025-10-07) + +Full Changelog: [v0.16.2...v0.17.0](https://github.com/sst/opencode-sdk-go/compare/v0.16.2...v0.17.0) + +### Features + +* **api:** api update ([84a3df5](https://github.com/sst/opencode-sdk-go/commit/84a3df50a7ff3d87e5593e4f29dfb5d561f71cc3)) + ## 0.16.2 (2025-09-26) Full Changelog: [v0.16.1...v0.16.2](https://github.com/sst/opencode-sdk-go/compare/v0.16.1...v0.16.2) diff --git a/packages/sdk/go/README.md b/packages/sdk/go/README.md index 2de28f6c..f4c02d12 100644 --- a/packages/sdk/go/README.md +++ b/packages/sdk/go/README.md @@ -24,7 +24,7 @@ Or to pin the version: ```sh -go get -u 'github.com/sst/opencode-sdk-go@v0.16.2' +go get -u 'github.com/sst/opencode-sdk-go@v0.18.0' ``` diff --git a/packages/sdk/go/app.go b/packages/sdk/go/app.go index 19662f10..4ba42332 100644 --- a/packages/sdk/go/app.go +++ b/packages/sdk/go/app.go @@ -62,7 +62,9 @@ type Model struct { Temperature bool `json:"temperature,required"` ToolCall bool `json:"tool_call,required"` Experimental bool `json:"experimental"` + Modalities ModelModalities `json:"modalities"` Provider ModelProvider `json:"provider"` + Status ModelStatus `json:"status"` JSON modelJSON `json:"-"` } @@ -79,7 +81,9 @@ type modelJSON struct { Temperature apijson.Field ToolCall apijson.Field Experimental apijson.Field + Modalities apijson.Field Provider apijson.Field + Status apijson.Field raw string ExtraFields map[string]apijson.Field } @@ -140,6 +144,64 @@ func (r modelLimitJSON) RawJSON() string { return r.raw } +type ModelModalities struct { + Input []ModelModalitiesInput `json:"input,required"` + Output []ModelModalitiesOutput `json:"output,required"` + JSON modelModalitiesJSON `json:"-"` +} + +// modelModalitiesJSON contains the JSON metadata for the struct [ModelModalities] +type modelModalitiesJSON struct { + Input apijson.Field + Output apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *ModelModalities) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r modelModalitiesJSON) RawJSON() string { + return r.raw +} + +type ModelModalitiesInput string + +const ( + ModelModalitiesInputText ModelModalitiesInput = "text" + ModelModalitiesInputAudio ModelModalitiesInput = "audio" + ModelModalitiesInputImage ModelModalitiesInput = "image" + ModelModalitiesInputVideo ModelModalitiesInput = "video" + ModelModalitiesInputPdf ModelModalitiesInput = "pdf" +) + +func (r ModelModalitiesInput) IsKnown() bool { + switch r { + case ModelModalitiesInputText, ModelModalitiesInputAudio, ModelModalitiesInputImage, ModelModalitiesInputVideo, ModelModalitiesInputPdf: + return true + } + return false +} + +type ModelModalitiesOutput string + +const ( + ModelModalitiesOutputText ModelModalitiesOutput = "text" + ModelModalitiesOutputAudio ModelModalitiesOutput = "audio" + ModelModalitiesOutputImage ModelModalitiesOutput = "image" + ModelModalitiesOutputVideo ModelModalitiesOutput = "video" + ModelModalitiesOutputPdf ModelModalitiesOutput = "pdf" +) + +func (r ModelModalitiesOutput) IsKnown() bool { + switch r { + case ModelModalitiesOutputText, ModelModalitiesOutputAudio, ModelModalitiesOutputImage, ModelModalitiesOutputVideo, ModelModalitiesOutputPdf: + return true + } + return false +} + type ModelProvider struct { Npm string `json:"npm,required"` JSON modelProviderJSON `json:"-"` @@ -160,6 +222,21 @@ func (r modelProviderJSON) RawJSON() string { return r.raw } +type ModelStatus string + +const ( + ModelStatusAlpha ModelStatus = "alpha" + ModelStatusBeta ModelStatus = "beta" +) + +func (r ModelStatus) IsKnown() bool { + switch r { + case ModelStatusAlpha, ModelStatusBeta: + return true + } + return false +} + type Provider struct { ID string `json:"id,required"` Env []string `json:"env,required"` diff --git a/packages/sdk/go/config.go b/packages/sdk/go/config.go index 561a35a0..02460fb5 100644 --- a/packages/sdk/go/config.go +++ b/packages/sdk/go/config.go @@ -1567,19 +1567,21 @@ func (r configProviderJSON) RawJSON() string { } type ConfigProviderModel struct { - ID string `json:"id"` - Attachment bool `json:"attachment"` - Cost ConfigProviderModelsCost `json:"cost"` - Experimental bool `json:"experimental"` - Limit ConfigProviderModelsLimit `json:"limit"` - Name string `json:"name"` - Options map[string]interface{} `json:"options"` - Provider ConfigProviderModelsProvider `json:"provider"` - Reasoning bool `json:"reasoning"` - ReleaseDate string `json:"release_date"` - Temperature bool `json:"temperature"` - ToolCall bool `json:"tool_call"` - JSON configProviderModelJSON `json:"-"` + ID string `json:"id"` + Attachment bool `json:"attachment"` + Cost ConfigProviderModelsCost `json:"cost"` + Experimental bool `json:"experimental"` + Limit ConfigProviderModelsLimit `json:"limit"` + Modalities ConfigProviderModelsModalities `json:"modalities"` + Name string `json:"name"` + Options map[string]interface{} `json:"options"` + Provider ConfigProviderModelsProvider `json:"provider"` + Reasoning bool `json:"reasoning"` + ReleaseDate string `json:"release_date"` + Status ConfigProviderModelsStatus `json:"status"` + Temperature bool `json:"temperature"` + ToolCall bool `json:"tool_call"` + JSON configProviderModelJSON `json:"-"` } // configProviderModelJSON contains the JSON metadata for the struct @@ -1590,11 +1592,13 @@ type configProviderModelJSON struct { Cost apijson.Field Experimental apijson.Field Limit apijson.Field + Modalities apijson.Field Name apijson.Field Options apijson.Field Provider apijson.Field Reasoning apijson.Field ReleaseDate apijson.Field + Status apijson.Field Temperature apijson.Field ToolCall apijson.Field raw string @@ -1659,6 +1663,65 @@ func (r configProviderModelsLimitJSON) RawJSON() string { return r.raw } +type ConfigProviderModelsModalities struct { + Input []ConfigProviderModelsModalitiesInput `json:"input,required"` + Output []ConfigProviderModelsModalitiesOutput `json:"output,required"` + JSON configProviderModelsModalitiesJSON `json:"-"` +} + +// configProviderModelsModalitiesJSON contains the JSON metadata for the struct +// [ConfigProviderModelsModalities] +type configProviderModelsModalitiesJSON struct { + Input apijson.Field + Output apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *ConfigProviderModelsModalities) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r configProviderModelsModalitiesJSON) RawJSON() string { + return r.raw +} + +type ConfigProviderModelsModalitiesInput string + +const ( + ConfigProviderModelsModalitiesInputText ConfigProviderModelsModalitiesInput = "text" + ConfigProviderModelsModalitiesInputAudio ConfigProviderModelsModalitiesInput = "audio" + ConfigProviderModelsModalitiesInputImage ConfigProviderModelsModalitiesInput = "image" + ConfigProviderModelsModalitiesInputVideo ConfigProviderModelsModalitiesInput = "video" + ConfigProviderModelsModalitiesInputPdf ConfigProviderModelsModalitiesInput = "pdf" +) + +func (r ConfigProviderModelsModalitiesInput) IsKnown() bool { + switch r { + case ConfigProviderModelsModalitiesInputText, ConfigProviderModelsModalitiesInputAudio, ConfigProviderModelsModalitiesInputImage, ConfigProviderModelsModalitiesInputVideo, ConfigProviderModelsModalitiesInputPdf: + return true + } + return false +} + +type ConfigProviderModelsModalitiesOutput string + +const ( + ConfigProviderModelsModalitiesOutputText ConfigProviderModelsModalitiesOutput = "text" + ConfigProviderModelsModalitiesOutputAudio ConfigProviderModelsModalitiesOutput = "audio" + ConfigProviderModelsModalitiesOutputImage ConfigProviderModelsModalitiesOutput = "image" + ConfigProviderModelsModalitiesOutputVideo ConfigProviderModelsModalitiesOutput = "video" + ConfigProviderModelsModalitiesOutputPdf ConfigProviderModelsModalitiesOutput = "pdf" +) + +func (r ConfigProviderModelsModalitiesOutput) IsKnown() bool { + switch r { + case ConfigProviderModelsModalitiesOutputText, ConfigProviderModelsModalitiesOutputAudio, ConfigProviderModelsModalitiesOutputImage, ConfigProviderModelsModalitiesOutputVideo, ConfigProviderModelsModalitiesOutputPdf: + return true + } + return false +} + type ConfigProviderModelsProvider struct { Npm string `json:"npm,required"` JSON configProviderModelsProviderJSON `json:"-"` @@ -1680,6 +1743,21 @@ func (r configProviderModelsProviderJSON) RawJSON() string { return r.raw } +type ConfigProviderModelsStatus string + +const ( + ConfigProviderModelsStatusAlpha ConfigProviderModelsStatus = "alpha" + ConfigProviderModelsStatusBeta ConfigProviderModelsStatus = "beta" +) + +func (r ConfigProviderModelsStatus) IsKnown() bool { + switch r { + case ConfigProviderModelsStatusAlpha, ConfigProviderModelsStatusBeta: + return true + } + return false +} + type ConfigProviderOptions struct { APIKey string `json:"apiKey"` BaseURL string `json:"baseURL"` diff --git a/packages/sdk/go/event.go b/packages/sdk/go/event.go index ac5231c7..41a37951 100644 --- a/packages/sdk/go/event.go +++ b/packages/sdk/go/event.go @@ -65,6 +65,7 @@ type EventListResponse struct { // [EventListResponseEventFileWatcherUpdatedProperties], // [EventListResponseEventTodoUpdatedProperties], // [EventListResponseEventSessionIdleProperties], + // [EventListResponseEventSessionCreatedProperties], // [EventListResponseEventSessionUpdatedProperties], // [EventListResponseEventSessionDeletedProperties], // [EventListResponseEventSessionErrorProperties], [interface{}], @@ -110,9 +111,10 @@ func (r *EventListResponse) UnmarshalJSON(data []byte) (err error) { // [EventListResponseEventPermissionUpdated], // [EventListResponseEventPermissionReplied], [EventListResponseEventFileEdited], // [EventListResponseEventFileWatcherUpdated], [EventListResponseEventTodoUpdated], -// [EventListResponseEventSessionIdle], [EventListResponseEventSessionUpdated], -// [EventListResponseEventSessionDeleted], [EventListResponseEventSessionError], -// [EventListResponseEventServerConnected], [EventListResponseEventIdeInstalled]. +// [EventListResponseEventSessionIdle], [EventListResponseEventSessionCreated], +// [EventListResponseEventSessionUpdated], [EventListResponseEventSessionDeleted], +// [EventListResponseEventSessionError], [EventListResponseEventServerConnected], +// [EventListResponseEventIdeInstalled]. func (r EventListResponse) AsUnion() EventListResponseUnion { return r.union } @@ -126,9 +128,10 @@ func (r EventListResponse) AsUnion() EventListResponseUnion { // [EventListResponseEventPermissionUpdated], // [EventListResponseEventPermissionReplied], [EventListResponseEventFileEdited], // [EventListResponseEventFileWatcherUpdated], [EventListResponseEventTodoUpdated], -// [EventListResponseEventSessionIdle], [EventListResponseEventSessionUpdated], -// [EventListResponseEventSessionDeleted], [EventListResponseEventSessionError], -// [EventListResponseEventServerConnected] or [EventListResponseEventIdeInstalled]. +// [EventListResponseEventSessionIdle], [EventListResponseEventSessionCreated], +// [EventListResponseEventSessionUpdated], [EventListResponseEventSessionDeleted], +// [EventListResponseEventSessionError], [EventListResponseEventServerConnected] or +// [EventListResponseEventIdeInstalled]. type EventListResponseUnion interface { implementsEventListResponse() } @@ -189,6 +192,10 @@ func init() { TypeFilter: gjson.JSON, Type: reflect.TypeOf(EventListResponseEventSessionIdle{}), }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(EventListResponseEventSessionCreated{}), + }, apijson.UnionVariant{ TypeFilter: gjson.JSON, Type: reflect.TypeOf(EventListResponseEventSessionUpdated{}), @@ -482,14 +489,16 @@ func (r eventListResponseEventMessagePartUpdatedJSON) RawJSON() string { func (r EventListResponseEventMessagePartUpdated) implementsEventListResponse() {} type EventListResponseEventMessagePartUpdatedProperties struct { - Part Part `json:"part,required"` - JSON eventListResponseEventMessagePartUpdatedPropertiesJSON `json:"-"` + Part Part `json:"part,required"` + Delta string `json:"delta"` + JSON eventListResponseEventMessagePartUpdatedPropertiesJSON `json:"-"` } // eventListResponseEventMessagePartUpdatedPropertiesJSON contains the JSON // metadata for the struct [EventListResponseEventMessagePartUpdatedProperties] type eventListResponseEventMessagePartUpdatedPropertiesJSON struct { Part apijson.Field + Delta apijson.Field raw string ExtraFields map[string]apijson.Field } @@ -1034,6 +1043,66 @@ func (r EventListResponseEventSessionIdleType) IsKnown() bool { return false } +type EventListResponseEventSessionCreated struct { + Properties EventListResponseEventSessionCreatedProperties `json:"properties,required"` + Type EventListResponseEventSessionCreatedType `json:"type,required"` + JSON eventListResponseEventSessionCreatedJSON `json:"-"` +} + +// eventListResponseEventSessionCreatedJSON contains the JSON metadata for the +// struct [EventListResponseEventSessionCreated] +type eventListResponseEventSessionCreatedJSON struct { + Properties apijson.Field + Type apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *EventListResponseEventSessionCreated) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r eventListResponseEventSessionCreatedJSON) RawJSON() string { + return r.raw +} + +func (r EventListResponseEventSessionCreated) implementsEventListResponse() {} + +type EventListResponseEventSessionCreatedProperties struct { + Info Session `json:"info,required"` + JSON eventListResponseEventSessionCreatedPropertiesJSON `json:"-"` +} + +// eventListResponseEventSessionCreatedPropertiesJSON contains the JSON metadata +// for the struct [EventListResponseEventSessionCreatedProperties] +type eventListResponseEventSessionCreatedPropertiesJSON struct { + Info apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *EventListResponseEventSessionCreatedProperties) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r eventListResponseEventSessionCreatedPropertiesJSON) RawJSON() string { + return r.raw +} + +type EventListResponseEventSessionCreatedType string + +const ( + EventListResponseEventSessionCreatedTypeSessionCreated EventListResponseEventSessionCreatedType = "session.created" +) + +func (r EventListResponseEventSessionCreatedType) IsKnown() bool { + switch r { + case EventListResponseEventSessionCreatedTypeSessionCreated: + return true + } + return false +} + type EventListResponseEventSessionUpdated struct { Properties EventListResponseEventSessionUpdatedProperties `json:"properties,required"` Type EventListResponseEventSessionUpdatedType `json:"type,required"` @@ -1204,7 +1273,8 @@ func (r eventListResponseEventSessionErrorPropertiesJSON) RawJSON() string { type EventListResponseEventSessionErrorPropertiesError struct { // This field can have the runtime type of [shared.ProviderAuthErrorData], - // [shared.UnknownErrorData], [interface{}], [shared.MessageAbortedErrorData]. + // [shared.UnknownErrorData], [interface{}], [shared.MessageAbortedErrorData], + // [EventListResponseEventSessionErrorPropertiesErrorAPIErrorData]. Data interface{} `json:"data,required"` Name EventListResponseEventSessionErrorPropertiesErrorName `json:"name,required"` JSON eventListResponseEventSessionErrorPropertiesErrorJSON `json:"-"` @@ -1239,14 +1309,16 @@ func (r *EventListResponseEventSessionErrorPropertiesError) UnmarshalJSON(data [ // Possible runtime types of the union are [shared.ProviderAuthError], // [shared.UnknownError], // [EventListResponseEventSessionErrorPropertiesErrorMessageOutputLengthError], -// [shared.MessageAbortedError]. +// [shared.MessageAbortedError], +// [EventListResponseEventSessionErrorPropertiesErrorAPIError]. func (r EventListResponseEventSessionErrorPropertiesError) AsUnion() EventListResponseEventSessionErrorPropertiesErrorUnion { return r.union } // Union satisfied by [shared.ProviderAuthError], [shared.UnknownError], -// [EventListResponseEventSessionErrorPropertiesErrorMessageOutputLengthError] or -// [shared.MessageAbortedError]. +// [EventListResponseEventSessionErrorPropertiesErrorMessageOutputLengthError], +// [shared.MessageAbortedError] or +// [EventListResponseEventSessionErrorPropertiesErrorAPIError]. type EventListResponseEventSessionErrorPropertiesErrorUnion interface { ImplementsEventListResponseEventSessionErrorPropertiesError() } @@ -1271,6 +1343,10 @@ func init() { TypeFilter: gjson.JSON, Type: reflect.TypeOf(shared.MessageAbortedError{}), }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(EventListResponseEventSessionErrorPropertiesErrorAPIError{}), + }, ) } @@ -1315,6 +1391,77 @@ func (r EventListResponseEventSessionErrorPropertiesErrorMessageOutputLengthErro return false } +type EventListResponseEventSessionErrorPropertiesErrorAPIError struct { + Data EventListResponseEventSessionErrorPropertiesErrorAPIErrorData `json:"data,required"` + Name EventListResponseEventSessionErrorPropertiesErrorAPIErrorName `json:"name,required"` + JSON eventListResponseEventSessionErrorPropertiesErrorAPIErrorJSON `json:"-"` +} + +// eventListResponseEventSessionErrorPropertiesErrorAPIErrorJSON contains the JSON +// metadata for the struct +// [EventListResponseEventSessionErrorPropertiesErrorAPIError] +type eventListResponseEventSessionErrorPropertiesErrorAPIErrorJSON struct { + Data apijson.Field + Name apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *EventListResponseEventSessionErrorPropertiesErrorAPIError) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r eventListResponseEventSessionErrorPropertiesErrorAPIErrorJSON) RawJSON() string { + return r.raw +} + +func (r EventListResponseEventSessionErrorPropertiesErrorAPIError) ImplementsEventListResponseEventSessionErrorPropertiesError() { +} + +type EventListResponseEventSessionErrorPropertiesErrorAPIErrorData 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 eventListResponseEventSessionErrorPropertiesErrorAPIErrorDataJSON `json:"-"` +} + +// eventListResponseEventSessionErrorPropertiesErrorAPIErrorDataJSON contains the +// JSON metadata for the struct +// [EventListResponseEventSessionErrorPropertiesErrorAPIErrorData] +type eventListResponseEventSessionErrorPropertiesErrorAPIErrorDataJSON 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 *EventListResponseEventSessionErrorPropertiesErrorAPIErrorData) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r eventListResponseEventSessionErrorPropertiesErrorAPIErrorDataJSON) RawJSON() string { + return r.raw +} + +type EventListResponseEventSessionErrorPropertiesErrorAPIErrorName string + +const ( + EventListResponseEventSessionErrorPropertiesErrorAPIErrorNameAPIError EventListResponseEventSessionErrorPropertiesErrorAPIErrorName = "APIError" +) + +func (r EventListResponseEventSessionErrorPropertiesErrorAPIErrorName) IsKnown() bool { + switch r { + case EventListResponseEventSessionErrorPropertiesErrorAPIErrorNameAPIError: + return true + } + return false +} + type EventListResponseEventSessionErrorPropertiesErrorName string const ( @@ -1322,11 +1469,12 @@ const ( EventListResponseEventSessionErrorPropertiesErrorNameUnknownError EventListResponseEventSessionErrorPropertiesErrorName = "UnknownError" EventListResponseEventSessionErrorPropertiesErrorNameMessageOutputLengthError EventListResponseEventSessionErrorPropertiesErrorName = "MessageOutputLengthError" EventListResponseEventSessionErrorPropertiesErrorNameMessageAbortedError EventListResponseEventSessionErrorPropertiesErrorName = "MessageAbortedError" + EventListResponseEventSessionErrorPropertiesErrorNameAPIError EventListResponseEventSessionErrorPropertiesErrorName = "APIError" ) func (r EventListResponseEventSessionErrorPropertiesErrorName) IsKnown() bool { switch r { - case EventListResponseEventSessionErrorPropertiesErrorNameProviderAuthError, EventListResponseEventSessionErrorPropertiesErrorNameUnknownError, EventListResponseEventSessionErrorPropertiesErrorNameMessageOutputLengthError, EventListResponseEventSessionErrorPropertiesErrorNameMessageAbortedError: + case EventListResponseEventSessionErrorPropertiesErrorNameProviderAuthError, EventListResponseEventSessionErrorPropertiesErrorNameUnknownError, EventListResponseEventSessionErrorPropertiesErrorNameMessageOutputLengthError, EventListResponseEventSessionErrorPropertiesErrorNameMessageAbortedError, EventListResponseEventSessionErrorPropertiesErrorNameAPIError: return true } return false @@ -1461,6 +1609,7 @@ const ( EventListResponseTypeFileWatcherUpdated EventListResponseType = "file.watcher.updated" EventListResponseTypeTodoUpdated EventListResponseType = "todo.updated" EventListResponseTypeSessionIdle EventListResponseType = "session.idle" + EventListResponseTypeSessionCreated EventListResponseType = "session.created" EventListResponseTypeSessionUpdated EventListResponseType = "session.updated" EventListResponseTypeSessionDeleted EventListResponseType = "session.deleted" EventListResponseTypeSessionError EventListResponseType = "session.error" @@ -1470,7 +1619,7 @@ const ( func (r EventListResponseType) IsKnown() bool { switch r { - case EventListResponseTypeInstallationUpdated, EventListResponseTypeLspClientDiagnostics, EventListResponseTypeMessageUpdated, EventListResponseTypeMessageRemoved, EventListResponseTypeMessagePartUpdated, EventListResponseTypeMessagePartRemoved, EventListResponseTypeSessionCompacted, EventListResponseTypePermissionUpdated, EventListResponseTypePermissionReplied, EventListResponseTypeFileEdited, EventListResponseTypeFileWatcherUpdated, EventListResponseTypeTodoUpdated, EventListResponseTypeSessionIdle, EventListResponseTypeSessionUpdated, EventListResponseTypeSessionDeleted, EventListResponseTypeSessionError, EventListResponseTypeServerConnected, EventListResponseTypeIdeInstalled: + case EventListResponseTypeInstallationUpdated, EventListResponseTypeLspClientDiagnostics, EventListResponseTypeMessageUpdated, EventListResponseTypeMessageRemoved, EventListResponseTypeMessagePartUpdated, EventListResponseTypeMessagePartRemoved, EventListResponseTypeSessionCompacted, EventListResponseTypePermissionUpdated, EventListResponseTypePermissionReplied, EventListResponseTypeFileEdited, EventListResponseTypeFileWatcherUpdated, EventListResponseTypeTodoUpdated, EventListResponseTypeSessionIdle, EventListResponseTypeSessionCreated, EventListResponseTypeSessionUpdated, EventListResponseTypeSessionDeleted, EventListResponseTypeSessionError, EventListResponseTypeServerConnected, EventListResponseTypeIdeInstalled: return true } return false diff --git a/packages/sdk/go/file.go b/packages/sdk/go/file.go index 8833f425..34a9c57d 100644 --- a/packages/sdk/go/file.go +++ b/packages/sdk/go/file.go @@ -144,17 +144,23 @@ func (r FileNodeType) IsKnown() bool { } type FileReadResponse struct { - Content string `json:"content,required"` - Diff string `json:"diff"` - Patch FileReadResponsePatch `json:"patch"` - JSON fileReadResponseJSON `json:"-"` + Content string `json:"content,required"` + Type FileReadResponseType `json:"type,required"` + Diff string `json:"diff"` + Encoding FileReadResponseEncoding `json:"encoding"` + MimeType string `json:"mimeType"` + Patch FileReadResponsePatch `json:"patch"` + JSON fileReadResponseJSON `json:"-"` } // fileReadResponseJSON contains the JSON metadata for the struct // [FileReadResponse] type fileReadResponseJSON struct { Content apijson.Field + Type apijson.Field Diff apijson.Field + Encoding apijson.Field + MimeType apijson.Field Patch apijson.Field raw string ExtraFields map[string]apijson.Field @@ -168,6 +174,34 @@ func (r fileReadResponseJSON) RawJSON() string { return r.raw } +type FileReadResponseType string + +const ( + FileReadResponseTypeText FileReadResponseType = "text" +) + +func (r FileReadResponseType) IsKnown() bool { + switch r { + case FileReadResponseTypeText: + return true + } + return false +} + +type FileReadResponseEncoding string + +const ( + FileReadResponseEncodingBase64 FileReadResponseEncoding = "base64" +) + +func (r FileReadResponseEncoding) IsKnown() bool { + switch r { + case FileReadResponseEncodingBase64: + return true + } + return false +} + type FileReadResponsePatch struct { Hunks []FileReadResponsePatchHunk `json:"hunks,required"` NewFileName string `json:"newFileName,required"` diff --git a/packages/sdk/go/internal/version.go b/packages/sdk/go/internal/version.go index 93a271b9..8dc40e74 100644 --- a/packages/sdk/go/internal/version.go +++ b/packages/sdk/go/internal/version.go @@ -2,4 +2,4 @@ package internal -const PackageVersion = "0.16.2" // x-release-please-version +const PackageVersion = "0.18.0" // x-release-please-version diff --git a/packages/sdk/go/session.go b/packages/sdk/go/session.go index 0ee81faa..afd64cb9 100644 --- a/packages/sdk/go/session.go +++ b/packages/sdk/go/session.go @@ -365,6 +365,7 @@ type AssistantMessage struct { 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"` @@ -384,6 +385,7 @@ type assistantMessageJSON struct { Cost apijson.Field Mode apijson.Field ModelID apijson.Field + ParentID apijson.Field Path apijson.Field ProviderID apijson.Field Role apijson.Field @@ -519,7 +521,8 @@ func (r assistantMessageTokensCacheJSON) RawJSON() string { type AssistantMessageError struct { // This field can have the runtime type of [shared.ProviderAuthErrorData], - // [shared.UnknownErrorData], [interface{}], [shared.MessageAbortedErrorData]. + // [shared.UnknownErrorData], [interface{}], [shared.MessageAbortedErrorData], + // [AssistantMessageErrorAPIErrorData]. Data interface{} `json:"data,required"` Name AssistantMessageErrorName `json:"name,required"` JSON assistantMessageErrorJSON `json:"-"` @@ -553,13 +556,14 @@ func (r *AssistantMessageError) UnmarshalJSON(data []byte) (err error) { // // Possible runtime types of the union are [shared.ProviderAuthError], // [shared.UnknownError], [AssistantMessageErrorMessageOutputLengthError], -// [shared.MessageAbortedError]. +// [shared.MessageAbortedError], [AssistantMessageErrorAPIError]. func (r AssistantMessageError) AsUnion() AssistantMessageErrorUnion { return r.union } // Union satisfied by [shared.ProviderAuthError], [shared.UnknownError], -// [AssistantMessageErrorMessageOutputLengthError] or [shared.MessageAbortedError]. +// [AssistantMessageErrorMessageOutputLengthError], [shared.MessageAbortedError] or +// [AssistantMessageErrorAPIError]. type AssistantMessageErrorUnion interface { ImplementsAssistantMessageError() } @@ -584,6 +588,10 @@ func init() { TypeFilter: gjson.JSON, Type: reflect.TypeOf(shared.MessageAbortedError{}), }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(AssistantMessageErrorAPIError{}), + }, ) } @@ -626,6 +634,74 @@ func (r AssistantMessageErrorMessageOutputLengthErrorName) IsKnown() bool { 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 ( @@ -633,11 +709,12 @@ const ( AssistantMessageErrorNameUnknownError AssistantMessageErrorName = "UnknownError" AssistantMessageErrorNameMessageOutputLengthError AssistantMessageErrorName = "MessageOutputLengthError" AssistantMessageErrorNameMessageAbortedError AssistantMessageErrorName = "MessageAbortedError" + AssistantMessageErrorNameAPIError AssistantMessageErrorName = "APIError" ) func (r AssistantMessageErrorName) IsKnown() bool { switch r { - case AssistantMessageErrorNameProviderAuthError, AssistantMessageErrorNameUnknownError, AssistantMessageErrorNameMessageOutputLengthError, AssistantMessageErrorNameMessageAbortedError: + case AssistantMessageErrorNameProviderAuthError, AssistantMessageErrorNameUnknownError, AssistantMessageErrorNameMessageOutputLengthError, AssistantMessageErrorNameMessageAbortedError, AssistantMessageErrorNameAPIError: return true } return false @@ -918,13 +995,15 @@ type Message struct { 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"` + 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"` - Summary bool `json:"summary"` + // 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]. @@ -943,6 +1022,7 @@ type messageJSON struct { Error apijson.Field Mode apijson.Field ModelID apijson.Field + ParentID apijson.Field Path apijson.Field ProviderID apijson.Field Summary apijson.Field @@ -1013,9 +1093,12 @@ type Part struct { 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"` - Filename string `json:"filename"` + // 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"` @@ -1023,6 +1106,7 @@ type Part struct { 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"` @@ -1030,7 +1114,8 @@ type Part struct { State interface{} `json:"state"` Synthetic bool `json:"synthetic"` Text string `json:"text"` - // This field can have the runtime type of [TextPartTime], [ReasoningPartTime]. + // 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"` @@ -1046,14 +1131,17 @@ type partJSON struct { 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 @@ -1085,14 +1173,14 @@ func (r *Part) UnmarshalJSON(data []byte) (err error) { // // Possible runtime types of the union are [TextPart], [ReasoningPart], [FilePart], // [ToolPart], [StepStartPart], [StepFinishPart], [SnapshotPart], [PartPatchPart], -// [AgentPart]. +// [AgentPart], [PartRetryPart]. func (r Part) AsUnion() PartUnion { return r.union } // Union satisfied by [TextPart], [ReasoningPart], [FilePart], [ToolPart], -// [StepStartPart], [StepFinishPart], [SnapshotPart], [PartPatchPart] or -// [AgentPart]. +// [StepStartPart], [StepFinishPart], [SnapshotPart], [PartPatchPart], [AgentPart] +// or [PartRetryPart]. type PartUnion interface { implementsPart() } @@ -1137,6 +1225,10 @@ func init() { TypeFilter: gjson.JSON, Type: reflect.TypeOf(AgentPart{}), }, + apijson.UnionVariant{ + TypeFilter: gjson.JSON, + Type: reflect.TypeOf(PartRetryPart{}), + }, ) } @@ -1186,6 +1278,141 @@ func (r PartPatchPartType) IsKnown() bool { 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 ( @@ -1198,11 +1425,12 @@ const ( 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: + case PartTypeText, PartTypeReasoning, PartTypeFile, PartTypeTool, PartTypeStepStart, PartTypeStepFinish, PartTypeSnapshot, PartTypePatch, PartTypeAgent, PartTypeRetry: return true } return false @@ -1280,16 +1508,17 @@ func (r ReasoningPartType) IsKnown() bool { } 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"` - JSON sessionJSON `json:"-"` + 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] @@ -1303,6 +1532,7 @@ type sessionJSON struct { ParentID apijson.Field Revert apijson.Field Share apijson.Field + Summary apijson.Field raw string ExtraFields map[string]apijson.Field } @@ -1385,6 +1615,55 @@ 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"` @@ -1433,9 +1712,11 @@ 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:"-"` } @@ -1444,9 +1725,11 @@ 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 } @@ -1530,6 +1813,7 @@ type StepStartPart struct { MessageID string `json:"messageID,required"` SessionID string `json:"sessionID,required"` Type StepStartPartType `json:"type,required"` + Snapshot string `json:"snapshot"` JSON stepStartPartJSON `json:"-"` } @@ -1539,6 +1823,7 @@ type stepStartPartJSON struct { MessageID apijson.Field SessionID apijson.Field Type apijson.Field + Snapshot apijson.Field raw string ExtraFields map[string]apijson.Field } @@ -1872,7 +2157,9 @@ func (r ToolPart) implementsPart() {} type ToolPartState struct { Status ToolPartStateStatus `json:"status,required"` - Error string `json:"error"` + // 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{}]. @@ -1889,6 +2176,7 @@ type ToolPartState struct { // 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 @@ -1982,13 +2270,14 @@ func (r ToolPartType) IsKnown() bool { } 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:"-"` + 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 @@ -2000,6 +2289,7 @@ type toolStateCompletedJSON struct { Status apijson.Field Time apijson.Field Title apijson.Field + Attachments apijson.Field raw string ExtraFields map[string]apijson.Field } @@ -2224,11 +2514,12 @@ func (r toolStateRunningTimeJSON) RawJSON() string { } 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:"-"` + 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] @@ -2237,6 +2528,7 @@ type userMessageJSON struct { Role apijson.Field SessionID apijson.Field Time apijson.Field + Summary apijson.Field raw string ExtraFields map[string]apijson.Field } @@ -2285,6 +2577,60 @@ 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"` @@ -2542,6 +2888,7 @@ type SessionPromptParams struct { 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"` } diff --git a/packages/sdk/go/session_test.go b/packages/sdk/go/session_test.go index f2263c7b..6f910caf 100644 --- a/packages/sdk/go/session_test.go +++ b/packages/sdk/go/session_test.go @@ -361,7 +361,8 @@ func TestSessionPromptWithOptionalParams(t *testing.T) { ModelID: opencode.F("modelID"), ProviderID: opencode.F("providerID"), }), - System: opencode.F("system"), + NoReply: opencode.F(true), + System: opencode.F("system"), Tools: opencode.F(map[string]bool{ "foo": true, }),