summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk
diff options
context:
space:
mode:
authorDax <[email protected]>2025-09-15 03:12:07 -0400
committerGitHub <[email protected]>2025-09-15 03:12:07 -0400
commitc1b4e1f19dd45eeea791354cb041c520f55e1cdb (patch)
treecc238910a99092592bc4baf926d5c5509128f29f /packages/sdk
parent89d820b1c44028e673f2b4317a2104abb2be2e67 (diff)
downloadopencode-c1b4e1f19dd45eeea791354cb041c520f55e1cdb.tar.gz
opencode-c1b4e1f19dd45eeea791354cb041c520f55e1cdb.zip
Upgrade to Zod v4 (#2605)
Co-authored-by: GitHub Action <[email protected]>
Diffstat (limited to 'packages/sdk')
-rw-r--r--packages/sdk/go/.release-please-manifest.json2
-rw-r--r--packages/sdk/go/.stats.yml4
-rw-r--r--packages/sdk/go/CHANGELOG.md32
-rw-r--r--packages/sdk/go/README.md2
-rw-r--r--packages/sdk/go/aliases.go3
-rw-r--r--packages/sdk/go/command.go2
-rw-r--r--packages/sdk/go/config.go133
-rw-r--r--packages/sdk/go/event.go367
-rw-r--r--packages/sdk/go/internal/version.go2
-rw-r--r--packages/sdk/go/session.go129
-rw-r--r--packages/sdk/go/session_test.go8
-rw-r--r--packages/sdk/go/shared/shared.go23
-rw-r--r--packages/sdk/js/src/gen/sdk.gen.ts14
-rw-r--r--packages/sdk/js/src/gen/types.gen.ts967
14 files changed, 792 insertions, 896 deletions
diff --git a/packages/sdk/go/.release-please-manifest.json b/packages/sdk/go/.release-please-manifest.json
index 76d5538a4..ed21d28cb 100644
--- a/packages/sdk/go/.release-please-manifest.json
+++ b/packages/sdk/go/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.9.0"
+ ".": "0.13.0"
}
diff --git a/packages/sdk/go/.stats.yml b/packages/sdk/go/.stats.yml
index db9407052..7f4a9c119 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-46826ba8640557721614b0c9a3f1860681d825ca8d8b12869652fa25aacb0b4c.yml
-openapi_spec_hash: 33b8db6fde3021579b21325ce910197d
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/opencode%2Fopencode-2e754dafcad0636137256cef499b2bcd72cf17de08f44ec03c3589b2a05341a2.yml
+openapi_spec_hash: 2d3cf84d3033068ce6c07386411527ef
config_hash: 026ef000d34bf2f930e7b41e77d2d3ff
diff --git a/packages/sdk/go/CHANGELOG.md b/packages/sdk/go/CHANGELOG.md
index fad7e6837..018017066 100644
--- a/packages/sdk/go/CHANGELOG.md
+++ b/packages/sdk/go/CHANGELOG.md
@@ -1,5 +1,37 @@
# Changelog
+## 0.13.0 (2025-09-14)
+
+Full Changelog: [v0.12.0...v0.13.0](https://github.com/sst/opencode-sdk-go/compare/v0.12.0...v0.13.0)
+
+### Features
+
+- **api:** api update ([80da4fb](https://github.com/sst/opencode-sdk-go/commit/80da4fb4ea9c6afb51a7e7135d9f5560ce6f2a6c))
+
+## 0.12.0 (2025-09-14)
+
+Full Changelog: [v0.11.0...v0.12.0](https://github.com/sst/opencode-sdk-go/compare/v0.11.0...v0.12.0)
+
+### Features
+
+- **api:** api update ([7e3808b](https://github.com/sst/opencode-sdk-go/commit/7e3808ba349dc653174b32b48a1120c18d2975c2))
+
+## 0.11.0 (2025-09-14)
+
+Full Changelog: [v0.10.0...v0.11.0](https://github.com/sst/opencode-sdk-go/compare/v0.10.0...v0.11.0)
+
+### Features
+
+- **api:** api update ([a3d37f5](https://github.com/sst/opencode-sdk-go/commit/a3d37f5671545866547d351fc21b49809cc8b3c2))
+
+## 0.10.0 (2025-09-11)
+
+Full Changelog: [v0.9.0...v0.10.0](https://github.com/sst/opencode-sdk-go/compare/v0.9.0...v0.10.0)
+
+### Features
+
+- **api:** api update ([0dc01f6](https://github.com/sst/opencode-sdk-go/commit/0dc01f6695c9b8400a4dc92166c5002bb120cf50))
+
## 0.9.0 (2025-09-10)
Full Changelog: [v0.8.0...v0.9.0](https://github.com/sst/opencode-sdk-go/compare/v0.8.0...v0.9.0)
diff --git a/packages/sdk/go/README.md b/packages/sdk/go/README.md
index 0fe3d32bf..2c48f53ce 100644
--- a/packages/sdk/go/README.md
+++ b/packages/sdk/go/README.md
@@ -24,7 +24,7 @@ Or to pin the version:
<!-- x-release-please-start-version -->
```sh
-go get -u 'github.com/sst/[email protected]'
+go get -u 'github.com/sst/[email protected]'
```
<!-- x-release-please-end -->
diff --git a/packages/sdk/go/aliases.go b/packages/sdk/go/aliases.go
index 6ab36d04c..50beeae91 100644
--- a/packages/sdk/go/aliases.go
+++ b/packages/sdk/go/aliases.go
@@ -13,6 +13,9 @@ type Error = apierror.Error
type MessageAbortedError = shared.MessageAbortedError
// This is an alias to an internal type.
+type MessageAbortedErrorData = shared.MessageAbortedErrorData
+
+// This is an alias to an internal type.
type MessageAbortedErrorName = shared.MessageAbortedErrorName
// This is an alias to an internal value.
diff --git a/packages/sdk/go/command.go b/packages/sdk/go/command.go
index 2638fc607..44e3beb1c 100644
--- a/packages/sdk/go/command.go
+++ b/packages/sdk/go/command.go
@@ -47,6 +47,7 @@ type Command struct {
Agent string `json:"agent"`
Description string `json:"description"`
Model string `json:"model"`
+ Subtask bool `json:"subtask"`
JSON commandJSON `json:"-"`
}
@@ -57,6 +58,7 @@ type commandJSON struct {
Agent apijson.Field
Description apijson.Field
Model apijson.Field
+ Subtask apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
diff --git a/packages/sdk/go/config.go b/packages/sdk/go/config.go
index b79bcb2ef..d469bdff1 100644
--- a/packages/sdk/go/config.go
+++ b/packages/sdk/go/config.go
@@ -676,6 +676,7 @@ type ConfigCommand struct {
Agent string `json:"agent"`
Description string `json:"description"`
Model string `json:"model"`
+ Subtask bool `json:"subtask"`
JSON configCommandJSON `json:"-"`
}
@@ -685,6 +686,7 @@ type configCommandJSON struct {
Agent apijson.Field
Description apijson.Field
Model apijson.Field
+ Subtask apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
@@ -698,18 +700,18 @@ func (r configCommandJSON) RawJSON() string {
}
type ConfigExperimental struct {
- Hook ConfigExperimentalHook `json:"hook"`
DisablePasteSummary bool `json:"disable_paste_summary"`
+ Hook ConfigExperimentalHook `json:"hook"`
JSON configExperimentalJSON `json:"-"`
}
// configExperimentalJSON contains the JSON metadata for the struct
// [ConfigExperimental]
type configExperimentalJSON struct {
- Hook apijson.Field
- SummarizePaste apijson.Field
- raw string
- ExtraFields map[string]apijson.Field
+ DisablePasteSummary apijson.Field
+ Hook apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
}
func (r *ConfigExperimental) UnmarshalJSON(data []byte) (err error) {
@@ -1022,16 +1024,14 @@ type ConfigMcpUnion interface {
func init() {
apijson.RegisterUnion(
reflect.TypeOf((*ConfigMcpUnion)(nil)).Elem(),
- "type",
+ "",
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(McpLocalConfig{}),
- DiscriminatorValue: "local",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(McpLocalConfig{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(McpRemoteConfig{}),
- DiscriminatorValue: "remote",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(McpRemoteConfig{}),
},
)
}
@@ -1753,15 +1753,15 @@ func (r ConfigShare) IsKnown() bool {
// TUI specific settings
type ConfigTui struct {
// TUI scroll speed
- ScrollSpeed float64 `json:"scroll_speed,required"`
- JSON configTuiJSON `json:"-"`
+ ScrollSpeed float64 `json:"scroll_speed"`
+ JSON configTuiJSON `json:"-"`
}
// configTuiJSON contains the JSON metadata for the struct [ConfigTui]
type configTuiJSON struct {
- ScrollSpeed apijson.Field
- raw string
- ExtraFields map[string]apijson.Field
+ ScrollSpeed apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
}
func (r *ConfigTui) UnmarshalJSON(data []byte) (err error) {
@@ -1772,105 +1772,106 @@ func (r configTuiJSON) RawJSON() string {
return r.raw
}
+// Custom keybind configurations
type KeybindsConfig struct {
// Next agent
- AgentCycle string `json:"agent_cycle,required"`
+ AgentCycle string `json:"agent_cycle"`
// Previous agent
- AgentCycleReverse string `json:"agent_cycle_reverse,required"`
+ AgentCycleReverse string `json:"agent_cycle_reverse"`
// List agents
- AgentList string `json:"agent_list,required"`
+ AgentList string `json:"agent_list"`
// Exit the application
- AppExit string `json:"app_exit,required"`
+ AppExit string `json:"app_exit"`
// Show help dialog
- AppHelp string `json:"app_help,required"`
+ AppHelp string `json:"app_help"`
// Open external editor
- EditorOpen string `json:"editor_open,required"`
+ EditorOpen string `json:"editor_open"`
// @deprecated Close file
- FileClose string `json:"file_close,required"`
+ FileClose string `json:"file_close"`
// @deprecated Split/unified diff
- FileDiffToggle string `json:"file_diff_toggle,required"`
+ FileDiffToggle string `json:"file_diff_toggle"`
// @deprecated Currently not available. List files
- FileList string `json:"file_list,required"`
+ FileList string `json:"file_list"`
// @deprecated Search file
- FileSearch string `json:"file_search,required"`
+ FileSearch string `json:"file_search"`
// Clear input field
- InputClear string `json:"input_clear,required"`
+ InputClear string `json:"input_clear"`
// Insert newline in input
- InputNewline string `json:"input_newline,required"`
+ InputNewline string `json:"input_newline"`
// Paste from clipboard
- InputPaste string `json:"input_paste,required"`
+ InputPaste string `json:"input_paste"`
// Submit input
- InputSubmit string `json:"input_submit,required"`
+ InputSubmit string `json:"input_submit"`
// Leader key for keybind combinations
- Leader string `json:"leader,required"`
+ Leader string `json:"leader"`
// Copy message
- MessagesCopy string `json:"messages_copy,required"`
+ MessagesCopy string `json:"messages_copy"`
// Navigate to first message
- MessagesFirst string `json:"messages_first,required"`
+ MessagesFirst string `json:"messages_first"`
// Scroll messages down by half page
- MessagesHalfPageDown string `json:"messages_half_page_down,required"`
+ MessagesHalfPageDown string `json:"messages_half_page_down"`
// Scroll messages up by half page
- MessagesHalfPageUp string `json:"messages_half_page_up,required"`
+ MessagesHalfPageUp string `json:"messages_half_page_up"`
// Navigate to last message
- MessagesLast string `json:"messages_last,required"`
+ MessagesLast string `json:"messages_last"`
// @deprecated Toggle layout
- MessagesLayoutToggle string `json:"messages_layout_toggle,required"`
+ MessagesLayoutToggle string `json:"messages_layout_toggle"`
// @deprecated Navigate to next message
- MessagesNext string `json:"messages_next,required"`
+ MessagesNext string `json:"messages_next"`
// Scroll messages down by one page
- MessagesPageDown string `json:"messages_page_down,required"`
+ MessagesPageDown string `json:"messages_page_down"`
// Scroll messages up by one page
- MessagesPageUp string `json:"messages_page_up,required"`
+ MessagesPageUp string `json:"messages_page_up"`
// @deprecated Navigate to previous message
- MessagesPrevious string `json:"messages_previous,required"`
+ MessagesPrevious string `json:"messages_previous"`
// Redo message
- MessagesRedo string `json:"messages_redo,required"`
+ MessagesRedo string `json:"messages_redo"`
// @deprecated use messages_undo. Revert message
- MessagesRevert string `json:"messages_revert,required"`
+ MessagesRevert string `json:"messages_revert"`
// Undo message
- MessagesUndo string `json:"messages_undo,required"`
+ MessagesUndo string `json:"messages_undo"`
// Next recent model
- ModelCycleRecent string `json:"model_cycle_recent,required"`
+ ModelCycleRecent string `json:"model_cycle_recent"`
// Previous recent model
- ModelCycleRecentReverse string `json:"model_cycle_recent_reverse,required"`
+ ModelCycleRecentReverse string `json:"model_cycle_recent_reverse"`
// List available models
- ModelList string `json:"model_list,required"`
+ ModelList string `json:"model_list"`
// Create/update AGENTS.md
- ProjectInit string `json:"project_init,required"`
+ ProjectInit string `json:"project_init"`
// Cycle to next child session
- SessionChildCycle string `json:"session_child_cycle,required"`
+ SessionChildCycle string `json:"session_child_cycle"`
// Cycle to previous child session
- SessionChildCycleReverse string `json:"session_child_cycle_reverse,required"`
+ SessionChildCycleReverse string `json:"session_child_cycle_reverse"`
// Compact the session
- SessionCompact string `json:"session_compact,required"`
+ SessionCompact string `json:"session_compact"`
// Export session to editor
- SessionExport string `json:"session_export,required"`
+ SessionExport string `json:"session_export"`
// Interrupt current session
- SessionInterrupt string `json:"session_interrupt,required"`
+ SessionInterrupt string `json:"session_interrupt"`
// List all sessions
- SessionList string `json:"session_list,required"`
+ SessionList string `json:"session_list"`
// Create a new session
- SessionNew string `json:"session_new,required"`
+ SessionNew string `json:"session_new"`
// Share current session
- SessionShare string `json:"session_share,required"`
+ SessionShare string `json:"session_share"`
// Show session timeline
- SessionTimeline string `json:"session_timeline,required"`
+ SessionTimeline string `json:"session_timeline"`
// Unshare current session
- SessionUnshare string `json:"session_unshare,required"`
+ SessionUnshare string `json:"session_unshare"`
// @deprecated use agent_cycle. Next agent
- SwitchAgent string `json:"switch_agent,required"`
+ SwitchAgent string `json:"switch_agent"`
// @deprecated use agent_cycle_reverse. Previous agent
- SwitchAgentReverse string `json:"switch_agent_reverse,required"`
+ SwitchAgentReverse string `json:"switch_agent_reverse"`
// @deprecated use agent_cycle. Next mode
- SwitchMode string `json:"switch_mode,required"`
+ SwitchMode string `json:"switch_mode"`
// @deprecated use agent_cycle_reverse. Previous mode
- SwitchModeReverse string `json:"switch_mode_reverse,required"`
+ SwitchModeReverse string `json:"switch_mode_reverse"`
// List available themes
- ThemeList string `json:"theme_list,required"`
+ ThemeList string `json:"theme_list"`
// Toggle thinking blocks
- ThinkingBlocks string `json:"thinking_blocks,required"`
+ ThinkingBlocks string `json:"thinking_blocks"`
// Toggle tool details
- ToolDetails string `json:"tool_details,required"`
+ ToolDetails string `json:"tool_details"`
JSON keybindsConfigJSON `json:"-"`
}
diff --git a/packages/sdk/go/event.go b/packages/sdk/go/event.go
index 00ba202cc..5d3bffcc2 100644
--- a/packages/sdk/go/event.go
+++ b/packages/sdk/go/event.go
@@ -57,14 +57,14 @@ type EventListResponse struct {
// [EventListResponseEventMessageUpdatedProperties],
// [EventListResponseEventMessageRemovedProperties],
// [EventListResponseEventMessagePartUpdatedProperties],
- // [EventListResponseEventMessagePartRemovedProperties], [Permission],
+ // [EventListResponseEventMessagePartRemovedProperties],
+ // [EventListResponseEventSessionCompactedProperties], [Permission],
// [EventListResponseEventPermissionRepliedProperties],
// [EventListResponseEventFileEditedProperties],
+ // [EventListResponseEventSessionIdleProperties],
// [EventListResponseEventSessionUpdatedProperties],
// [EventListResponseEventSessionDeletedProperties],
- // [EventListResponseEventSessionIdleProperties],
- // [EventListResponseEventSessionErrorProperties],
- // [EventListResponseEventSessionCompactedProperties], [interface{}].
+ // [EventListResponseEventSessionErrorProperties], [interface{}].
Properties interface{} `json:"properties,required"`
Type EventListResponseType `json:"type,required"`
JSON eventListResponseJSON `json:"-"`
@@ -102,11 +102,11 @@ func (r *EventListResponse) UnmarshalJSON(data []byte) (err error) {
// [EventListResponseEventMessageUpdated], [EventListResponseEventMessageRemoved],
// [EventListResponseEventMessagePartUpdated],
// [EventListResponseEventMessagePartRemoved],
+// [EventListResponseEventSessionCompacted],
// [EventListResponseEventPermissionUpdated],
// [EventListResponseEventPermissionReplied], [EventListResponseEventFileEdited],
-// [EventListResponseEventSessionUpdated], [EventListResponseEventSessionDeleted],
-// [EventListResponseEventSessionIdle], [EventListResponseEventSessionError],
-// [EventListResponseEventSessionCompacted],
+// [EventListResponseEventSessionIdle], [EventListResponseEventSessionUpdated],
+// [EventListResponseEventSessionDeleted], [EventListResponseEventSessionError],
// [EventListResponseEventServerConnected].
func (r EventListResponse) AsUnion() EventListResponseUnion {
return r.union
@@ -117,11 +117,11 @@ func (r EventListResponse) AsUnion() EventListResponseUnion {
// [EventListResponseEventMessageUpdated], [EventListResponseEventMessageRemoved],
// [EventListResponseEventMessagePartUpdated],
// [EventListResponseEventMessagePartRemoved],
+// [EventListResponseEventSessionCompacted],
// [EventListResponseEventPermissionUpdated],
// [EventListResponseEventPermissionReplied], [EventListResponseEventFileEdited],
-// [EventListResponseEventSessionUpdated], [EventListResponseEventSessionDeleted],
-// [EventListResponseEventSessionIdle], [EventListResponseEventSessionError],
-// [EventListResponseEventSessionCompacted] or
+// [EventListResponseEventSessionIdle], [EventListResponseEventSessionUpdated],
+// [EventListResponseEventSessionDeleted], [EventListResponseEventSessionError] or
// [EventListResponseEventServerConnected].
type EventListResponseUnion interface {
implementsEventListResponse()
@@ -130,81 +130,66 @@ type EventListResponseUnion interface {
func init() {
apijson.RegisterUnion(
reflect.TypeOf((*EventListResponseUnion)(nil)).Elem(),
- "type",
+ "",
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(EventListResponseEventInstallationUpdated{}),
- DiscriminatorValue: "installation.updated",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(EventListResponseEventInstallationUpdated{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(EventListResponseEventLspClientDiagnostics{}),
- DiscriminatorValue: "lsp.client.diagnostics",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(EventListResponseEventLspClientDiagnostics{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(EventListResponseEventMessageUpdated{}),
- DiscriminatorValue: "message.updated",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(EventListResponseEventMessageUpdated{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(EventListResponseEventMessageRemoved{}),
- DiscriminatorValue: "message.removed",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(EventListResponseEventMessageRemoved{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(EventListResponseEventMessagePartUpdated{}),
- DiscriminatorValue: "message.part.updated",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(EventListResponseEventMessagePartUpdated{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(EventListResponseEventMessagePartRemoved{}),
- DiscriminatorValue: "message.part.removed",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(EventListResponseEventMessagePartRemoved{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(EventListResponseEventPermissionUpdated{}),
- DiscriminatorValue: "permission.updated",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(EventListResponseEventSessionCompacted{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(EventListResponseEventPermissionReplied{}),
- DiscriminatorValue: "permission.replied",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(EventListResponseEventPermissionUpdated{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(EventListResponseEventFileEdited{}),
- DiscriminatorValue: "file.edited",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(EventListResponseEventPermissionReplied{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(EventListResponseEventSessionUpdated{}),
- DiscriminatorValue: "session.updated",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(EventListResponseEventFileEdited{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(EventListResponseEventSessionDeleted{}),
- DiscriminatorValue: "session.deleted",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(EventListResponseEventSessionIdle{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(EventListResponseEventSessionIdle{}),
- DiscriminatorValue: "session.idle",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(EventListResponseEventSessionUpdated{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(EventListResponseEventSessionError{}),
- DiscriminatorValue: "session.error",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(EventListResponseEventSessionDeleted{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(EventListResponseEventSessionCompacted{}),
- DiscriminatorValue: "session.compacted",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(EventListResponseEventSessionError{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(EventListResponseEventServerConnected{}),
- DiscriminatorValue: "server.connected",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(EventListResponseEventServerConnected{}),
},
)
}
@@ -577,6 +562,66 @@ func (r EventListResponseEventMessagePartRemovedType) IsKnown() bool {
return false
}
+type EventListResponseEventSessionCompacted struct {
+ Properties EventListResponseEventSessionCompactedProperties `json:"properties,required"`
+ Type EventListResponseEventSessionCompactedType `json:"type,required"`
+ JSON eventListResponseEventSessionCompactedJSON `json:"-"`
+}
+
+// eventListResponseEventSessionCompactedJSON contains the JSON metadata for the
+// struct [EventListResponseEventSessionCompacted]
+type eventListResponseEventSessionCompactedJSON struct {
+ Properties apijson.Field
+ Type apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *EventListResponseEventSessionCompacted) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+func (r eventListResponseEventSessionCompactedJSON) RawJSON() string {
+ return r.raw
+}
+
+func (r EventListResponseEventSessionCompacted) implementsEventListResponse() {}
+
+type EventListResponseEventSessionCompactedProperties struct {
+ SessionID string `json:"sessionID,required"`
+ JSON eventListResponseEventSessionCompactedPropertiesJSON `json:"-"`
+}
+
+// eventListResponseEventSessionCompactedPropertiesJSON contains the JSON metadata
+// for the struct [EventListResponseEventSessionCompactedProperties]
+type eventListResponseEventSessionCompactedPropertiesJSON struct {
+ SessionID apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *EventListResponseEventSessionCompactedProperties) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+func (r eventListResponseEventSessionCompactedPropertiesJSON) RawJSON() string {
+ return r.raw
+}
+
+type EventListResponseEventSessionCompactedType string
+
+const (
+ EventListResponseEventSessionCompactedTypeSessionCompacted EventListResponseEventSessionCompactedType = "session.compacted"
+)
+
+func (r EventListResponseEventSessionCompactedType) IsKnown() bool {
+ switch r {
+ case EventListResponseEventSessionCompactedTypeSessionCompacted:
+ return true
+ }
+ return false
+}
+
type EventListResponseEventPermissionUpdated struct {
Properties Permission `json:"properties,required"`
Type EventListResponseEventPermissionUpdatedType `json:"type,required"`
@@ -740,6 +785,66 @@ func (r EventListResponseEventFileEditedType) IsKnown() bool {
return false
}
+type EventListResponseEventSessionIdle struct {
+ Properties EventListResponseEventSessionIdleProperties `json:"properties,required"`
+ Type EventListResponseEventSessionIdleType `json:"type,required"`
+ JSON eventListResponseEventSessionIdleJSON `json:"-"`
+}
+
+// eventListResponseEventSessionIdleJSON contains the JSON metadata for the struct
+// [EventListResponseEventSessionIdle]
+type eventListResponseEventSessionIdleJSON struct {
+ Properties apijson.Field
+ Type apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *EventListResponseEventSessionIdle) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+func (r eventListResponseEventSessionIdleJSON) RawJSON() string {
+ return r.raw
+}
+
+func (r EventListResponseEventSessionIdle) implementsEventListResponse() {}
+
+type EventListResponseEventSessionIdleProperties struct {
+ SessionID string `json:"sessionID,required"`
+ JSON eventListResponseEventSessionIdlePropertiesJSON `json:"-"`
+}
+
+// eventListResponseEventSessionIdlePropertiesJSON contains the JSON metadata for
+// the struct [EventListResponseEventSessionIdleProperties]
+type eventListResponseEventSessionIdlePropertiesJSON struct {
+ SessionID apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *EventListResponseEventSessionIdleProperties) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+func (r eventListResponseEventSessionIdlePropertiesJSON) RawJSON() string {
+ return r.raw
+}
+
+type EventListResponseEventSessionIdleType string
+
+const (
+ EventListResponseEventSessionIdleTypeSessionIdle EventListResponseEventSessionIdleType = "session.idle"
+)
+
+func (r EventListResponseEventSessionIdleType) IsKnown() bool {
+ switch r {
+ case EventListResponseEventSessionIdleTypeSessionIdle:
+ return true
+ }
+ return false
+}
+
type EventListResponseEventSessionUpdated struct {
Properties EventListResponseEventSessionUpdatedProperties `json:"properties,required"`
Type EventListResponseEventSessionUpdatedType `json:"type,required"`
@@ -860,66 +965,6 @@ func (r EventListResponseEventSessionDeletedType) IsKnown() bool {
return false
}
-type EventListResponseEventSessionIdle struct {
- Properties EventListResponseEventSessionIdleProperties `json:"properties,required"`
- Type EventListResponseEventSessionIdleType `json:"type,required"`
- JSON eventListResponseEventSessionIdleJSON `json:"-"`
-}
-
-// eventListResponseEventSessionIdleJSON contains the JSON metadata for the struct
-// [EventListResponseEventSessionIdle]
-type eventListResponseEventSessionIdleJSON struct {
- Properties apijson.Field
- Type apijson.Field
- raw string
- ExtraFields map[string]apijson.Field
-}
-
-func (r *EventListResponseEventSessionIdle) UnmarshalJSON(data []byte) (err error) {
- return apijson.UnmarshalRoot(data, r)
-}
-
-func (r eventListResponseEventSessionIdleJSON) RawJSON() string {
- return r.raw
-}
-
-func (r EventListResponseEventSessionIdle) implementsEventListResponse() {}
-
-type EventListResponseEventSessionIdleProperties struct {
- SessionID string `json:"sessionID,required"`
- JSON eventListResponseEventSessionIdlePropertiesJSON `json:"-"`
-}
-
-// eventListResponseEventSessionIdlePropertiesJSON contains the JSON metadata for
-// the struct [EventListResponseEventSessionIdleProperties]
-type eventListResponseEventSessionIdlePropertiesJSON struct {
- SessionID apijson.Field
- raw string
- ExtraFields map[string]apijson.Field
-}
-
-func (r *EventListResponseEventSessionIdleProperties) UnmarshalJSON(data []byte) (err error) {
- return apijson.UnmarshalRoot(data, r)
-}
-
-func (r eventListResponseEventSessionIdlePropertiesJSON) RawJSON() string {
- return r.raw
-}
-
-type EventListResponseEventSessionIdleType string
-
-const (
- EventListResponseEventSessionIdleTypeSessionIdle EventListResponseEventSessionIdleType = "session.idle"
-)
-
-func (r EventListResponseEventSessionIdleType) IsKnown() bool {
- switch r {
- case EventListResponseEventSessionIdleTypeSessionIdle:
- return true
- }
- return false
-}
-
type EventListResponseEventSessionError struct {
Properties EventListResponseEventSessionErrorProperties `json:"properties,required"`
Type EventListResponseEventSessionErrorType `json:"type,required"`
@@ -970,7 +1015,7 @@ func (r eventListResponseEventSessionErrorPropertiesJSON) RawJSON() string {
type EventListResponseEventSessionErrorPropertiesError struct {
// This field can have the runtime type of [shared.ProviderAuthErrorData],
- // [shared.UnknownErrorData], [interface{}].
+ // [shared.UnknownErrorData], [interface{}], [shared.MessageAbortedErrorData].
Data interface{} `json:"data,required"`
Name EventListResponseEventSessionErrorPropertiesErrorName `json:"name,required"`
JSON eventListResponseEventSessionErrorPropertiesErrorJSON `json:"-"`
@@ -1020,26 +1065,22 @@ type EventListResponseEventSessionErrorPropertiesErrorUnion interface {
func init() {
apijson.RegisterUnion(
reflect.TypeOf((*EventListResponseEventSessionErrorPropertiesErrorUnion)(nil)).Elem(),
- "name",
+ "",
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(shared.ProviderAuthError{}),
- DiscriminatorValue: "ProviderAuthError",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(shared.ProviderAuthError{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(shared.UnknownError{}),
- DiscriminatorValue: "UnknownError",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(shared.UnknownError{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(EventListResponseEventSessionErrorPropertiesErrorMessageOutputLengthError{}),
- DiscriminatorValue: "MessageOutputLengthError",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(EventListResponseEventSessionErrorPropertiesErrorMessageOutputLengthError{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(shared.MessageAbortedError{}),
- DiscriminatorValue: "MessageAbortedError",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(shared.MessageAbortedError{}),
},
)
}
@@ -1116,66 +1157,6 @@ func (r EventListResponseEventSessionErrorType) IsKnown() bool {
return false
}
-type EventListResponseEventSessionCompacted struct {
- Properties EventListResponseEventSessionCompactedProperties `json:"properties,required"`
- Type EventListResponseEventSessionCompactedType `json:"type,required"`
- JSON eventListResponseEventSessionCompactedJSON `json:"-"`
-}
-
-// eventListResponseEventSessionCompactedJSON contains the JSON metadata for the
-// struct [EventListResponseEventSessionCompacted]
-type eventListResponseEventSessionCompactedJSON struct {
- Properties apijson.Field
- Type apijson.Field
- raw string
- ExtraFields map[string]apijson.Field
-}
-
-func (r *EventListResponseEventSessionCompacted) UnmarshalJSON(data []byte) (err error) {
- return apijson.UnmarshalRoot(data, r)
-}
-
-func (r eventListResponseEventSessionCompactedJSON) RawJSON() string {
- return r.raw
-}
-
-func (r EventListResponseEventSessionCompacted) implementsEventListResponse() {}
-
-type EventListResponseEventSessionCompactedProperties struct {
- SessionID string `json:"sessionID,required"`
- JSON eventListResponseEventSessionCompactedPropertiesJSON `json:"-"`
-}
-
-// eventListResponseEventSessionCompactedPropertiesJSON contains the JSON metadata
-// for the struct [EventListResponseEventSessionCompactedProperties]
-type eventListResponseEventSessionCompactedPropertiesJSON struct {
- SessionID apijson.Field
- raw string
- ExtraFields map[string]apijson.Field
-}
-
-func (r *EventListResponseEventSessionCompactedProperties) UnmarshalJSON(data []byte) (err error) {
- return apijson.UnmarshalRoot(data, r)
-}
-
-func (r eventListResponseEventSessionCompactedPropertiesJSON) RawJSON() string {
- return r.raw
-}
-
-type EventListResponseEventSessionCompactedType string
-
-const (
- EventListResponseEventSessionCompactedTypeSessionCompacted EventListResponseEventSessionCompactedType = "session.compacted"
-)
-
-func (r EventListResponseEventSessionCompactedType) IsKnown() bool {
- switch r {
- case EventListResponseEventSessionCompactedTypeSessionCompacted:
- return true
- }
- return false
-}
-
type EventListResponseEventServerConnected struct {
Properties interface{} `json:"properties,required"`
Type EventListResponseEventServerConnectedType `json:"type,required"`
@@ -1224,20 +1205,20 @@ const (
EventListResponseTypeMessageRemoved EventListResponseType = "message.removed"
EventListResponseTypeMessagePartUpdated EventListResponseType = "message.part.updated"
EventListResponseTypeMessagePartRemoved EventListResponseType = "message.part.removed"
+ EventListResponseTypeSessionCompacted EventListResponseType = "session.compacted"
EventListResponseTypePermissionUpdated EventListResponseType = "permission.updated"
EventListResponseTypePermissionReplied EventListResponseType = "permission.replied"
EventListResponseTypeFileEdited EventListResponseType = "file.edited"
+ EventListResponseTypeSessionIdle EventListResponseType = "session.idle"
EventListResponseTypeSessionUpdated EventListResponseType = "session.updated"
EventListResponseTypeSessionDeleted EventListResponseType = "session.deleted"
- EventListResponseTypeSessionIdle EventListResponseType = "session.idle"
EventListResponseTypeSessionError EventListResponseType = "session.error"
- EventListResponseTypeSessionCompacted EventListResponseType = "session.compacted"
EventListResponseTypeServerConnected EventListResponseType = "server.connected"
)
func (r EventListResponseType) IsKnown() bool {
switch r {
- case EventListResponseTypeInstallationUpdated, EventListResponseTypeLspClientDiagnostics, EventListResponseTypeMessageUpdated, EventListResponseTypeMessageRemoved, EventListResponseTypeMessagePartUpdated, EventListResponseTypeMessagePartRemoved, EventListResponseTypePermissionUpdated, EventListResponseTypePermissionReplied, EventListResponseTypeFileEdited, EventListResponseTypeSessionUpdated, EventListResponseTypeSessionDeleted, EventListResponseTypeSessionIdle, EventListResponseTypeSessionError, EventListResponseTypeSessionCompacted, EventListResponseTypeServerConnected:
+ case EventListResponseTypeInstallationUpdated, EventListResponseTypeLspClientDiagnostics, EventListResponseTypeMessageUpdated, EventListResponseTypeMessageRemoved, EventListResponseTypeMessagePartUpdated, EventListResponseTypeMessagePartRemoved, EventListResponseTypeSessionCompacted, EventListResponseTypePermissionUpdated, EventListResponseTypePermissionReplied, EventListResponseTypeFileEdited, EventListResponseTypeSessionIdle, EventListResponseTypeSessionUpdated, EventListResponseTypeSessionDeleted, EventListResponseTypeSessionError, EventListResponseTypeServerConnected:
return true
}
return false
diff --git a/packages/sdk/go/internal/version.go b/packages/sdk/go/internal/version.go
index 0e818c5b2..871f0965d 100644
--- a/packages/sdk/go/internal/version.go
+++ b/packages/sdk/go/internal/version.go
@@ -2,4 +2,4 @@
package internal
-const PackageVersion = "0.9.0" // x-release-please-version
+const PackageVersion = "0.13.0" // x-release-please-version
diff --git a/packages/sdk/go/session.go b/packages/sdk/go/session.go
index 6696e0faf..260724e9a 100644
--- a/packages/sdk/go/session.go
+++ b/packages/sdk/go/session.go
@@ -518,7 +518,7 @@ func (r assistantMessageTokensCacheJSON) RawJSON() string {
type AssistantMessageError struct {
// This field can have the runtime type of [shared.ProviderAuthErrorData],
- // [shared.UnknownErrorData], [interface{}].
+ // [shared.UnknownErrorData], [interface{}], [shared.MessageAbortedErrorData].
Data interface{} `json:"data,required"`
Name AssistantMessageErrorName `json:"name,required"`
JSON assistantMessageErrorJSON `json:"-"`
@@ -566,26 +566,22 @@ type AssistantMessageErrorUnion interface {
func init() {
apijson.RegisterUnion(
reflect.TypeOf((*AssistantMessageErrorUnion)(nil)).Elem(),
- "name",
+ "",
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(shared.ProviderAuthError{}),
- DiscriminatorValue: "ProviderAuthError",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(shared.ProviderAuthError{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(shared.UnknownError{}),
- DiscriminatorValue: "UnknownError",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(shared.UnknownError{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(AssistantMessageErrorMessageOutputLengthError{}),
- DiscriminatorValue: "MessageOutputLengthError",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(AssistantMessageErrorMessageOutputLengthError{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(shared.MessageAbortedError{}),
- DiscriminatorValue: "MessageAbortedError",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(shared.MessageAbortedError{}),
},
)
}
@@ -778,16 +774,14 @@ type FilePartSourceUnion interface {
func init() {
apijson.RegisterUnion(
reflect.TypeOf((*FilePartSourceUnion)(nil)).Elem(),
- "type",
+ "",
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(FileSource{}),
- DiscriminatorValue: "file",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(FileSource{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(SymbolSource{}),
- DiscriminatorValue: "symbol",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(SymbolSource{}),
},
)
}
@@ -986,16 +980,14 @@ type MessageUnion interface {
func init() {
apijson.RegisterUnion(
reflect.TypeOf((*MessageUnion)(nil)).Elem(),
- "role",
+ "",
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(UserMessage{}),
- DiscriminatorValue: "user",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(UserMessage{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(AssistantMessage{}),
- DiscriminatorValue: "assistant",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(AssistantMessage{}),
},
)
}
@@ -1107,51 +1099,42 @@ type PartUnion interface {
func init() {
apijson.RegisterUnion(
reflect.TypeOf((*PartUnion)(nil)).Elem(),
- "type",
+ "",
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(TextPart{}),
- DiscriminatorValue: "text",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(TextPart{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(ReasoningPart{}),
- DiscriminatorValue: "reasoning",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(ReasoningPart{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(FilePart{}),
- DiscriminatorValue: "file",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(FilePart{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(ToolPart{}),
- DiscriminatorValue: "tool",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(ToolPart{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(StepStartPart{}),
- DiscriminatorValue: "step-start",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(StepStartPart{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(StepFinishPart{}),
- DiscriminatorValue: "step-finish",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(StepFinishPart{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(SnapshotPart{}),
- DiscriminatorValue: "snapshot",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(SnapshotPart{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(PartPatchPart{}),
- DiscriminatorValue: "patch",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(PartPatchPart{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(AgentPart{}),
- DiscriminatorValue: "agent",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(AgentPart{}),
},
)
}
@@ -1941,26 +1924,22 @@ type ToolPartStateUnion interface {
func init() {
apijson.RegisterUnion(
reflect.TypeOf((*ToolPartStateUnion)(nil)).Elem(),
- "status",
+ "",
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(ToolStatePending{}),
- DiscriminatorValue: "pending",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(ToolStatePending{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(ToolStateRunning{}),
- DiscriminatorValue: "running",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(ToolStateRunning{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(ToolStateCompleted{}),
- DiscriminatorValue: "completed",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(ToolStateCompleted{}),
},
apijson.UnionVariant{
- TypeFilter: gjson.JSON,
- Type: reflect.TypeOf(ToolStateError{}),
- DiscriminatorValue: "error",
+ TypeFilter: gjson.JSON,
+ Type: reflect.TypeOf(ToolStateError{}),
},
)
}
@@ -2044,9 +2023,10 @@ func (r ToolStateCompletedStatus) IsKnown() bool {
}
type ToolStateCompletedTime struct {
- End float64 `json:"end,required"`
- Start float64 `json:"start,required"`
- JSON toolStateCompletedTimeJSON `json:"-"`
+ End float64 `json:"end,required"`
+ Start float64 `json:"start,required"`
+ Compacted float64 `json:"compacted"`
+ JSON toolStateCompletedTimeJSON `json:"-"`
}
// toolStateCompletedTimeJSON contains the JSON metadata for the struct
@@ -2054,6 +2034,7 @@ type ToolStateCompletedTime struct {
type toolStateCompletedTimeJSON struct {
End apijson.Field
Start apijson.Field
+ Compacted apijson.Field
raw string
ExtraFields map[string]apijson.Field
}
@@ -2171,9 +2152,9 @@ func (r ToolStatePendingStatus) IsKnown() bool {
}
type ToolStateRunning struct {
+ Input interface{} `json:"input,required"`
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:"-"`
@@ -2182,9 +2163,9 @@ type ToolStateRunning struct {
// toolStateRunningJSON contains the JSON metadata for the struct
// [ToolStateRunning]
type toolStateRunningJSON struct {
+ Input apijson.Field
Status apijson.Field
Time apijson.Field
- Input apijson.Field
Metadata apijson.Field
Title apijson.Field
raw string
diff --git a/packages/sdk/go/session_test.go b/packages/sdk/go/session_test.go
index f4cbc04b1..61404d8b5 100644
--- a/packages/sdk/go/session_test.go
+++ b/packages/sdk/go/session_test.go
@@ -196,7 +196,7 @@ func TestSessionCommandWithOptionalParams(t *testing.T) {
Command: opencode.F("command"),
Directory: opencode.F("directory"),
Agent: opencode.F("agent"),
- MessageID: opencode.F("msg"),
+ MessageID: opencode.F("msgJ!"),
Model: opencode.F("model"),
},
)
@@ -353,7 +353,7 @@ func TestSessionPromptWithOptionalParams(t *testing.T) {
}}),
Directory: opencode.F("directory"),
Agent: opencode.F("agent"),
- MessageID: opencode.F("msg"),
+ MessageID: opencode.F("msgJ!"),
Model: opencode.F(opencode.SessionPromptParamsModel{
ModelID: opencode.F("modelID"),
ProviderID: opencode.F("providerID"),
@@ -389,9 +389,9 @@ func TestSessionRevertWithOptionalParams(t *testing.T) {
context.TODO(),
"id",
opencode.SessionRevertParams{
- MessageID: opencode.F("msg"),
+ MessageID: opencode.F("msgJ!"),
Directory: opencode.F("directory"),
- PartID: opencode.F("prt"),
+ PartID: opencode.F("prtJ!"),
},
)
if err != nil {
diff --git a/packages/sdk/go/shared/shared.go b/packages/sdk/go/shared/shared.go
index 58baf3d9c..f2c6db0d1 100644
--- a/packages/sdk/go/shared/shared.go
+++ b/packages/sdk/go/shared/shared.go
@@ -7,7 +7,7 @@ import (
)
type MessageAbortedError struct {
- Data interface{} `json:"data,required"`
+ Data MessageAbortedErrorData `json:"data,required"`
Name MessageAbortedErrorName `json:"name,required"`
JSON messageAbortedErrorJSON `json:"-"`
}
@@ -33,6 +33,27 @@ func (r MessageAbortedError) ImplementsEventListResponseEventSessionErrorPropert
func (r MessageAbortedError) ImplementsAssistantMessageError() {}
+type MessageAbortedErrorData struct {
+ Message string `json:"message,required"`
+ JSON messageAbortedErrorDataJSON `json:"-"`
+}
+
+// messageAbortedErrorDataJSON contains the JSON metadata for the struct
+// [MessageAbortedErrorData]
+type messageAbortedErrorDataJSON struct {
+ Message apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *MessageAbortedErrorData) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+func (r messageAbortedErrorDataJSON) RawJSON() string {
+ return r.raw
+}
+
type MessageAbortedErrorName string
const (
diff --git a/packages/sdk/js/src/gen/sdk.gen.ts b/packages/sdk/js/src/gen/sdk.gen.ts
index ea9cfe9a1..7e0f0dc8b 100644
--- a/packages/sdk/js/src/gen/sdk.gen.ts
+++ b/packages/sdk/js/src/gen/sdk.gen.ts
@@ -58,8 +58,8 @@ import type {
SessionRevertResponses,
SessionUnrevertData,
SessionUnrevertResponses,
- PostSessionByIdPermissionsByPermissionIdData,
- PostSessionByIdPermissionsByPermissionIdResponses,
+ PostSessionIdPermissionsPermissionIdData,
+ PostSessionIdPermissionsPermissionIdResponses,
CommandListData,
CommandListResponses,
ConfigProvidersData,
@@ -675,14 +675,10 @@ export class OpencodeClient extends _HeyApiClient {
/**
* Respond to a permission request
*/
- public postSessionByIdPermissionsByPermissionId<ThrowOnError extends boolean = false>(
- options: Options<PostSessionByIdPermissionsByPermissionIdData, ThrowOnError>,
+ public postSessionIdPermissionsPermissionId<ThrowOnError extends boolean = false>(
+ options: Options<PostSessionIdPermissionsPermissionIdData, ThrowOnError>,
) {
- return (options.client ?? this._client).post<
- PostSessionByIdPermissionsByPermissionIdResponses,
- unknown,
- ThrowOnError
- >({
+ return (options.client ?? this._client).post<PostSessionIdPermissionsPermissionIdResponses, unknown, ThrowOnError>({
url: "/session/{id}/permissions/{permissionID}",
...options,
headers: {
diff --git a/packages/sdk/js/src/gen/types.gen.ts b/packages/sdk/js/src/gen/types.gen.ts
index 864afa39f..47668750e 100644
--- a/packages/sdk/js/src/gen/types.gen.ts
+++ b/packages/sdk/js/src/gen/types.gen.ts
@@ -10,53 +10,6 @@ export type Project = {
}
}
-export type Event =
- | ({
- type: "installation.updated"
- } & EventInstallationUpdated)
- | ({
- type: "lsp.client.diagnostics"
- } & EventLspClientDiagnostics)
- | ({
- type: "message.updated"
- } & EventMessageUpdated)
- | ({
- type: "message.removed"
- } & EventMessageRemoved)
- | ({
- type: "message.part.updated"
- } & EventMessagePartUpdated)
- | ({
- type: "message.part.removed"
- } & EventMessagePartRemoved)
- | ({
- type: "session.compacted"
- } & EventSessionCompacted)
- | ({
- type: "permission.updated"
- } & EventPermissionUpdated)
- | ({
- type: "permission.replied"
- } & EventPermissionReplied)
- | ({
- type: "file.edited"
- } & EventFileEdited)
- | ({
- type: "session.idle"
- } & EventSessionIdle)
- | ({
- type: "session.updated"
- } & EventSessionUpdated)
- | ({
- type: "session.deleted"
- } & EventSessionDeleted)
- | ({
- type: "session.error"
- } & EventSessionError)
- | ({
- type: "server.connected"
- } & EventServerConnected)
-
export type EventInstallationUpdated = {
type: "installation.updated"
properties: {
@@ -72,21 +25,6 @@ export type EventLspClientDiagnostics = {
}
}
-export type EventMessageUpdated = {
- type: "message.updated"
- properties: {
- info: Message
- }
-}
-
-export type Message =
- | ({
- role: "user"
- } & UserMessage)
- | ({
- role: "assistant"
- } & AssistantMessage)
-
export type UserMessage = {
id: string
sessionID: string
@@ -96,6 +34,35 @@ export type UserMessage = {
}
}
+export type ProviderAuthError = {
+ name: "ProviderAuthError"
+ data: {
+ providerID: string
+ message: string
+ }
+}
+
+export type UnknownError = {
+ name: "UnknownError"
+ data: {
+ message: string
+ }
+}
+
+export type MessageOutputLengthError = {
+ name: "MessageOutputLengthError"
+ data: {
+ [key: string]: unknown
+ }
+}
+
+export type MessageAbortedError = {
+ name: "MessageAbortedError"
+ data: {
+ message: string
+ }
+}
+
export type AssistantMessage = {
id: string
sessionID: string
@@ -104,19 +71,7 @@ export type AssistantMessage = {
created: number
completed?: number
}
- error?:
- | ({
- name: "ProviderAuthError"
- } & ProviderAuthError)
- | ({
- name: "UnknownError"
- } & UnknownError)
- | ({
- name: "MessageOutputLengthError"
- } & MessageOutputLengthError)
- | ({
- name: "MessageAbortedError"
- } & MessageAbortedError)
+ error?: ProviderAuthError | UnknownError | MessageOutputLengthError | MessageAbortedError
system: Array<string>
modelID: string
providerID: string
@@ -138,32 +93,12 @@ export type AssistantMessage = {
}
}
-export type ProviderAuthError = {
- name: "ProviderAuthError"
- data: {
- providerID: string
- message: string
- }
-}
-
-export type UnknownError = {
- name: "UnknownError"
- data: {
- message: string
- }
-}
+export type Message = UserMessage | AssistantMessage
-export type MessageOutputLengthError = {
- name: "MessageOutputLengthError"
- data: {
- [key: string]: unknown
- }
-}
-
-export type MessageAbortedError = {
- name: "MessageAbortedError"
- data: {
- [key: string]: unknown
+export type EventMessageUpdated = {
+ type: "message.updated"
+ properties: {
+ info: Message
}
}
@@ -175,42 +110,6 @@ export type EventMessageRemoved = {
}
}
-export type EventMessagePartUpdated = {
- type: "message.part.updated"
- properties: {
- part: Part
- }
-}
-
-export type Part =
- | ({
- type: "text"
- } & TextPart)
- | ({
- type: "reasoning"
- } & ReasoningPart)
- | ({
- type: "file"
- } & FilePart)
- | ({
- type: "tool"
- } & ToolPart)
- | ({
- type: "step-start"
- } & StepStartPart)
- | ({
- type: "step-finish"
- } & StepFinishPart)
- | ({
- type: "snapshot"
- } & SnapshotPart)
- | ({
- type: "patch"
- } & PatchPart)
- | ({
- type: "agent"
- } & AgentPart)
-
export type TextPart = {
id: string
sessionID: string
@@ -239,44 +138,16 @@ export type ReasoningPart = {
}
}
-export type FilePart = {
- id: string
- sessionID: string
- messageID: string
- type: "file"
- mime: string
- filename?: string
- url: string
- source?: FilePartSource
-}
-
-export type FilePartSource =
- | ({
- type: "file"
- } & FileSource)
- | ({
- type: "symbol"
- } & SymbolSource)
-
-export type FileSource = {
- text: FilePartSourceText
- type: "file"
- path: string
-}
-
export type FilePartSourceText = {
value: string
start: number
end: number
}
-export type SymbolSource = {
+export type FileSource = {
text: FilePartSourceText
- type: "symbol"
+ type: "file"
path: string
- range: Range
- name: string
- kind: number
}
export type Range = {
@@ -290,37 +161,35 @@ export type Range = {
}
}
-export type ToolPart = {
+export type SymbolSource = {
+ text: FilePartSourceText
+ type: "symbol"
+ path: string
+ range: Range
+ name: string
+ kind: number
+}
+
+export type FilePartSource = FileSource | SymbolSource
+
+export type FilePart = {
id: string
sessionID: string
messageID: string
- type: "tool"
- callID: string
- tool: string
- state: ToolState
+ type: "file"
+ mime: string
+ filename?: string
+ url: string
+ source?: FilePartSource
}
-export type ToolState =
- | ({
- status: "pending"
- } & ToolStatePending)
- | ({
- status: "running"
- } & ToolStateRunning)
- | ({
- status: "completed"
- } & ToolStateCompleted)
- | ({
- status: "error"
- } & ToolStateError)
-
export type ToolStatePending = {
status: "pending"
}
export type ToolStateRunning = {
status: "running"
- input?: unknown
+ input: unknown
title?: string
metadata?: {
[key: string]: unknown
@@ -362,6 +231,18 @@ export type ToolStateError = {
}
}
+export type ToolState = ToolStatePending | ToolStateRunning | ToolStateCompleted | ToolStateError
+
+export type ToolPart = {
+ id: string
+ sessionID: string
+ messageID: string
+ type: "tool"
+ callID: string
+ tool: string
+ state: ToolState
+}
+
export type StepStartPart = {
id: string
sessionID: string
@@ -416,6 +297,24 @@ export type AgentPart = {
}
}
+export type Part =
+ | TextPart
+ | ReasoningPart
+ | FilePart
+ | ToolPart
+ | StepStartPart
+ | StepFinishPart
+ | SnapshotPart
+ | PatchPart
+ | AgentPart
+
+export type EventMessagePartUpdated = {
+ type: "message.part.updated"
+ properties: {
+ part: Part
+ }
+}
+
export type EventMessagePartRemoved = {
type: "message.part.removed"
properties: {
@@ -432,11 +331,6 @@ export type EventSessionCompacted = {
}
}
-export type EventPermissionUpdated = {
- type: "permission.updated"
- properties: Permission
-}
-
export type Permission = {
id: string
type: string
@@ -453,6 +347,11 @@ export type Permission = {
}
}
+export type EventPermissionUpdated = {
+ type: "permission.updated"
+ properties: Permission
+}
+
export type EventPermissionReplied = {
type: "permission.replied"
properties: {
@@ -476,13 +375,6 @@ export type EventSessionIdle = {
}
}
-export type EventSessionUpdated = {
- type: "session.updated"
- properties: {
- info: Session
- }
-}
-
export type Session = {
id: string
projectID: string
@@ -506,6 +398,13 @@ export type Session = {
}
}
+export type EventSessionUpdated = {
+ type: "session.updated"
+ properties: {
+ info: Session
+ }
+}
+
export type EventSessionDeleted = {
type: "session.deleted"
properties: {
@@ -517,19 +416,7 @@ export type EventSessionError = {
type: "session.error"
properties: {
sessionID?: string
- error?:
- | ({
- name: "ProviderAuthError"
- } & ProviderAuthError)
- | ({
- name: "UnknownError"
- } & UnknownError)
- | ({
- name: "MessageOutputLengthError"
- } & MessageOutputLengthError)
- | ({
- name: "MessageAbortedError"
- } & MessageAbortedError)
+ error?: ProviderAuthError | UnknownError | MessageOutputLengthError | MessageAbortedError
}
}
@@ -540,413 +427,223 @@ export type EventServerConnected = {
}
}
-export type Config = {
- /**
- * JSON schema reference for configuration validation
- */
- $schema?: string
- /**
- * Theme name to use for the interface
- */
- theme?: string
- /**
- * Custom keybind configurations
- */
- keybinds?: KeybindsConfig
- /**
- * TUI specific settings
- */
- tui?: {
- /**
- * TUI scroll speed
- */
- scroll_speed: number
- }
- /**
- * Command configuration, see https://opencode.ai/docs/commands
- */
- command?: {
- [key: string]: {
- template: string
- description?: string
- agent?: string
- model?: string
- subtask?: boolean
- }
- }
- plugin?: Array<string>
- snapshot?: boolean
- /**
- * Control sharing behavior:'manual' allows manual sharing via commands, 'auto' enables automatic sharing, 'disabled' disables all sharing
- */
- share?: "manual" | "auto" | "disabled"
- /**
- * @deprecated Use 'share' field instead. Share newly created sessions automatically
- */
- autoshare?: boolean
- /**
- * Automatically update to the latest version
- */
- autoupdate?: boolean
- /**
- * Disable providers that are loaded automatically
- */
- disabled_providers?: Array<string>
- /**
- * Model to use in the format of provider/model, eg anthropic/claude-2
- */
- model?: string
- /**
- * Small model to use for tasks like title generation in the format of provider/model
- */
- small_model?: string
- /**
- * Custom username to display in conversations instead of system username
- */
- username?: string
- /**
- * @deprecated Use `agent` field instead.
- */
- mode?: {
- build?: AgentConfig
- plan?: AgentConfig
- [key: string]: AgentConfig | undefined
- }
- /**
- * Agent configuration, see https://opencode.ai/docs/agent
- */
- agent?: {
- plan?: AgentConfig
- build?: AgentConfig
- general?: AgentConfig
- [key: string]: AgentConfig | undefined
- }
- /**
- * Custom provider configurations and model overrides
- */
- provider?: {
- [key: string]: {
- api?: string
- name?: string
- env?: Array<string>
- id?: string
- npm?: string
- models?: {
- [key: string]: {
- id?: string
- name?: string
- release_date?: string
- attachment?: boolean
- reasoning?: boolean
- temperature?: boolean
- tool_call?: boolean
- cost?: {
- input: number
- output: number
- cache_read?: number
- cache_write?: number
- }
- limit?: {
- context: number
- output: number
- }
- experimental?: boolean
- options?: {
- [key: string]: unknown
- }
- provider?: {
- npm: string
- }
- }
- }
- options?: {
- apiKey?: string
- baseURL?: string
- /**
- * Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.
- */
- timeout?: number | false
- [key: string]: unknown | string | (number | false) | undefined
- }
- }
- }
- /**
- * MCP (Model Context Protocol) server configurations
- */
- mcp?: {
- [key: string]:
- | ({
- type: "local"
- } & McpLocalConfig)
- | ({
- type: "remote"
- } & McpRemoteConfig)
- }
- formatter?: {
- [key: string]: {
- disabled?: boolean
- command?: Array<string>
- environment?: {
- [key: string]: string
- }
- extensions?: Array<string>
- }
- }
- lsp?: {
- [key: string]:
- | {
- disabled: true
- }
- | {
- command: Array<string>
- extensions?: Array<string>
- disabled?: boolean
- env?: {
- [key: string]: string
- }
- initialization?: {
- [key: string]: unknown
- }
- }
- }
- /**
- * Additional instruction files or patterns to include
- */
- instructions?: Array<string>
- /**
- * @deprecated Always uses stretch layout.
- */
- layout?: LayoutConfig
- permission?: {
- edit?: "ask" | "allow" | "deny"
- bash?:
- | ("ask" | "allow" | "deny")
- | {
- [key: string]: "ask" | "allow" | "deny"
- }
- webfetch?: "ask" | "allow" | "deny"
- }
- tools?: {
- [key: string]: boolean
- }
- experimental?: {
- hook?: {
- file_edited?: {
- [key: string]: Array<{
- command: Array<string>
- environment?: {
- [key: string]: string
- }
- }>
- }
- session_completed?: Array<{
- command: Array<string>
- environment?: {
- [key: string]: string
- }
- }>
- }
- disable_paste_summary?: boolean
- }
-}
-
+export type Event =
+ | EventInstallationUpdated
+ | EventLspClientDiagnostics
+ | EventMessageUpdated
+ | EventMessageRemoved
+ | EventMessagePartUpdated
+ | EventMessagePartRemoved
+ | EventSessionCompacted
+ | EventPermissionUpdated
+ | EventPermissionReplied
+ | EventFileEdited
+ | EventSessionIdle
+ | EventSessionUpdated
+ | EventSessionDeleted
+ | EventSessionError
+ | EventServerConnected
+
+/**
+ * Custom keybind configurations
+ */
export type KeybindsConfig = {
/**
* Leader key for keybind combinations
*/
- leader: string
+ leader?: string
/**
* Show help dialog
*/
- app_help: string
+ app_help?: string
/**
* Exit the application
*/
- app_exit: string
+ app_exit?: string
/**
* Open external editor
*/
- editor_open: string
+ editor_open?: string
/**
* List available themes
*/
- theme_list: string
+ theme_list?: string
/**
* Create/update AGENTS.md
*/
- project_init: string
+ project_init?: string
/**
* Toggle tool details
*/
- tool_details: string
+ tool_details?: string
/**
* Toggle thinking blocks
*/
- thinking_blocks: string
+ thinking_blocks?: string
/**
* Export session to editor
*/
- session_export: string
+ session_export?: string
/**
* Create a new session
*/
- session_new: string
+ session_new?: string
/**
* List all sessions
*/
- session_list: string
+ session_list?: string
/**
* Show session timeline
*/
- session_timeline: string
+ session_timeline?: string
/**
* Share current session
*/
- session_share: string
+ session_share?: string
/**
* Unshare current session
*/
- session_unshare: string
+ session_unshare?: string
/**
* Interrupt current session
*/
- session_interrupt: string
+ session_interrupt?: string
/**
* Compact the session
*/
- session_compact: string
+ session_compact?: string
/**
* Cycle to next child session
*/
- session_child_cycle: string
+ session_child_cycle?: string
/**
* Cycle to previous child session
*/
- session_child_cycle_reverse: string
+ session_child_cycle_reverse?: string
/**
* Scroll messages up by one page
*/
- messages_page_up: string
+ messages_page_up?: string
/**
* Scroll messages down by one page
*/
- messages_page_down: string
+ messages_page_down?: string
/**
* Scroll messages up by half page
*/
- messages_half_page_up: string
+ messages_half_page_up?: string
/**
* Scroll messages down by half page
*/
- messages_half_page_down: string
+ messages_half_page_down?: string
/**
* Navigate to first message
*/
- messages_first: string
+ messages_first?: string
/**
* Navigate to last message
*/
- messages_last: string
+ messages_last?: string
/**
* Copy message
*/
- messages_copy: string
+ messages_copy?: string
/**
* Undo message
*/
- messages_undo: string
+ messages_undo?: string
/**
* Redo message
*/
- messages_redo: string
+ messages_redo?: string
/**
* List available models
*/
- model_list: string
+ model_list?: string
/**
* Next recent model
*/
- model_cycle_recent: string
+ model_cycle_recent?: string
/**
* Previous recent model
*/
- model_cycle_recent_reverse: string
+ model_cycle_recent_reverse?: string
/**
* List agents
*/
- agent_list: string
+ agent_list?: string
/**
* Next agent
*/
- agent_cycle: string
+ agent_cycle?: string
/**
* Previous agent
*/
- agent_cycle_reverse: string
+ agent_cycle_reverse?: string
/**
* Clear input field
*/
- input_clear: string
+ input_clear?: string
/**
* Paste from clipboard
*/
- input_paste: string
+ input_paste?: string
/**
* Submit input
*/
- input_submit: string
+ input_submit?: string
/**
* Insert newline in input
*/
- input_newline: string
+ input_newline?: string
/**
* @deprecated use agent_cycle. Next mode
*/
- switch_mode: string
+ switch_mode?: string
/**
* @deprecated use agent_cycle_reverse. Previous mode
*/
- switch_mode_reverse: string
+ switch_mode_reverse?: string
/**
* @deprecated use agent_cycle. Next agent
*/
- switch_agent: string
+ switch_agent?: string
/**
* @deprecated use agent_cycle_reverse. Previous agent
*/
- switch_agent_reverse: string
+ switch_agent_reverse?: string
/**
* @deprecated Currently not available. List files
*/
- file_list: string
+ file_list?: string
/**
* @deprecated Close file
*/
- file_close: string
+ file_close?: string
/**
* @deprecated Search file
*/
- file_search: string
+ file_search?: string
/**
* @deprecated Split/unified diff
*/
- file_diff_toggle: string
+ file_diff_toggle?: string
/**
* @deprecated Navigate to previous message
*/
- messages_previous: string
+ messages_previous?: string
/**
* @deprecated Navigate to next message
*/
- messages_next: string
+ messages_next?: string
/**
* @deprecated Toggle layout
*/
- messages_layout_toggle: string
+ messages_layout_toggle?: string
/**
* @deprecated use messages_undo. Revert message
*/
- messages_revert: string
+ messages_revert?: string
}
export type AgentConfig = {
@@ -993,44 +690,6 @@ export type AgentConfig = {
| undefined
}
-export type Provider = {
- api?: string
- name: string
- env: Array<string>
- id: string
- npm?: string
- models: {
- [key: string]: Model
- }
-}
-
-export type Model = {
- id: string
- name: string
- release_date: string
- attachment: boolean
- reasoning: boolean
- temperature: boolean
- tool_call: boolean
- cost: {
- input: number
- output: number
- cache_read?: number
- cache_write?: number
- }
- limit: {
- context: number
- output: number
- }
- experimental?: boolean
- options: {
- [key: string]: unknown
- }
- provider?: {
- npm: string
- }
-}
-
export type McpLocalConfig = {
/**
* Type of MCP server connection
@@ -1073,14 +732,222 @@ export type McpRemoteConfig = {
}
}
+/**
+ * @deprecated Always uses stretch layout.
+ */
export type LayoutConfig = "auto" | "stretch"
+export type Config = {
+ /**
+ * JSON schema reference for configuration validation
+ */
+ $schema?: string
+ /**
+ * Theme name to use for the interface
+ */
+ theme?: string
+ keybinds?: KeybindsConfig
+ /**
+ * TUI specific settings
+ */
+ tui?: {
+ /**
+ * TUI scroll speed
+ */
+ scroll_speed?: number
+ }
+ /**
+ * Command configuration, see https://opencode.ai/docs/commands
+ */
+ command?: {
+ [key: string]: {
+ template: string
+ description?: string
+ agent?: string
+ model?: string
+ subtask?: boolean
+ }
+ }
+ plugin?: Array<string>
+ snapshot?: boolean
+ /**
+ * Control sharing behavior:'manual' allows manual sharing via commands, 'auto' enables automatic sharing, 'disabled' disables all sharing
+ */
+ share?: "manual" | "auto" | "disabled"
+ /**
+ * @deprecated Use 'share' field instead. Share newly created sessions automatically
+ */
+ autoshare?: boolean
+ /**
+ * Automatically update to the latest version
+ */
+ autoupdate?: boolean
+ /**
+ * Disable providers that are loaded automatically
+ */
+ disabled_providers?: Array<string>
+ /**
+ * Model to use in the format of provider/model, eg anthropic/claude-2
+ */
+ model?: string
+ /**
+ * Small model to use for tasks like title generation in the format of provider/model
+ */
+ small_model?: string
+ /**
+ * Custom username to display in conversations instead of system username
+ */
+ username?: string
+ /**
+ * @deprecated Use `agent` field instead.
+ */
+ mode?: {
+ build?: AgentConfig
+ plan?: AgentConfig
+ [key: string]: AgentConfig | undefined
+ }
+ /**
+ * Agent configuration, see https://opencode.ai/docs/agent
+ */
+ agent?: {
+ plan?: AgentConfig
+ build?: AgentConfig
+ general?: AgentConfig
+ [key: string]: AgentConfig | undefined
+ }
+ /**
+ * Custom provider configurations and model overrides
+ */
+ provider?: {
+ [key: string]: {
+ api?: string
+ name?: string
+ env?: Array<string>
+ id?: string
+ npm?: string
+ models?: {
+ [key: string]: {
+ id?: string
+ name?: string
+ release_date?: string
+ attachment?: boolean
+ reasoning?: boolean
+ temperature?: boolean
+ tool_call?: boolean
+ cost?: {
+ input: number
+ output: number
+ cache_read?: number
+ cache_write?: number
+ }
+ limit?: {
+ context: number
+ output: number
+ }
+ experimental?: boolean
+ options?: {
+ [key: string]: unknown
+ }
+ provider?: {
+ npm: string
+ }
+ }
+ }
+ options?: {
+ apiKey?: string
+ baseURL?: string
+ /**
+ * Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.
+ */
+ timeout?: number | false
+ [key: string]: unknown | string | (number | false) | undefined
+ }
+ }
+ }
+ /**
+ * MCP (Model Context Protocol) server configurations
+ */
+ mcp?: {
+ [key: string]: McpLocalConfig | McpRemoteConfig
+ }
+ formatter?: {
+ [key: string]: {
+ disabled?: boolean
+ command?: Array<string>
+ environment?: {
+ [key: string]: string
+ }
+ extensions?: Array<string>
+ }
+ }
+ lsp?: {
+ [key: string]:
+ | {
+ disabled: true
+ }
+ | {
+ command: Array<string>
+ extensions?: Array<string>
+ disabled?: boolean
+ env?: {
+ [key: string]: string
+ }
+ initialization?: {
+ [key: string]: unknown
+ }
+ }
+ }
+ /**
+ * Additional instruction files or patterns to include
+ */
+ instructions?: Array<string>
+ layout?: LayoutConfig
+ permission?: {
+ edit?: "ask" | "allow" | "deny"
+ bash?:
+ | ("ask" | "allow" | "deny")
+ | {
+ [key: string]: "ask" | "allow" | "deny"
+ }
+ webfetch?: "ask" | "allow" | "deny"
+ }
+ tools?: {
+ [key: string]: boolean
+ }
+ experimental?: {
+ hook?: {
+ file_edited?: {
+ [key: string]: Array<{
+ command: Array<string>
+ environment?: {
+ [key: string]: string
+ }
+ }>
+ }
+ session_completed?: Array<{
+ command: Array<string>
+ environment?: {
+ [key: string]: string
+ }
+ }>
+ }
+ disable_paste_summary?: boolean
+ }
+}
+
export type _Error = {
data: {
[key: string]: unknown
}
}
+export type HttpParamSpec = {
+ type: "string" | "number" | "boolean" | "array"
+ description?: string
+ optional?: boolean
+ items?: "string" | "number" | "boolean"
+}
+
export type HttpToolRegistration = {
id: string
description: string
@@ -1096,23 +963,16 @@ export type HttpToolRegistration = {
}
}
-export type HttpParamSpec = {
- type: "string" | "number" | "boolean" | "array"
- description?: string
- optional?: boolean
- items?: "string" | "number" | "boolean"
-}
-
export type ToolIds = Array<string>
-export type ToolList = Array<ToolListItem>
-
export type ToolListItem = {
id: string
description: string
- parameters?: unknown
+ parameters: unknown
}
+export type ToolList = Array<ToolListItem>
+
export type Path = {
state: string
config: string
@@ -1160,6 +1020,44 @@ export type Command = {
subtask?: boolean
}
+export type Model = {
+ id: string
+ name: string
+ release_date: string
+ attachment: boolean
+ reasoning: boolean
+ temperature: boolean
+ tool_call: boolean
+ cost: {
+ input: number
+ output: number
+ cache_read?: number
+ cache_write?: number
+ }
+ limit: {
+ context: number
+ output: number
+ }
+ experimental?: boolean
+ options: {
+ [key: string]: unknown
+ }
+ provider?: {
+ npm: string
+ }
+}
+
+export type Provider = {
+ api?: string
+ name: string
+ env: Array<string>
+ id: string
+ npm?: string
+ models: {
+ [key: string]: Model
+ }
+}
+
export type Symbol = {
name: string
kind: number
@@ -1230,17 +1128,6 @@ export type Agent = {
}
}
-export type Auth =
- | ({
- type: "oauth"
- } & OAuth)
- | ({
- type: "api"
- } & ApiAuth)
- | ({
- type: "wellknown"
- } & WellKnownAuth)
-
export type OAuth = {
type: "oauth"
refresh: string
@@ -1259,6 +1146,8 @@ export type WellKnownAuth = {
token: string
}
+export type Auth = OAuth | ApiAuth | WellKnownAuth
+
export type ProjectListData = {
body?: never
path?: never
@@ -1713,17 +1602,7 @@ export type SessionPromptData = {
tools?: {
[key: string]: boolean
}
- parts: Array<
- | ({
- type: "text"
- } & TextPartInput)
- | ({
- type: "file"
- } & FilePartInput)
- | ({
- type: "agent"
- } & AgentPartInput)
- >
+ parts: Array<TextPartInput | FilePartInput | AgentPartInput>
}
path: {
/**
@@ -1880,7 +1759,7 @@ export type SessionUnrevertResponses = {
export type SessionUnrevertResponse = SessionUnrevertResponses[keyof SessionUnrevertResponses]
-export type PostSessionByIdPermissionsByPermissionIdData = {
+export type PostSessionIdPermissionsPermissionIdData = {
body?: {
response: "once" | "always" | "reject"
}
@@ -1894,15 +1773,15 @@ export type PostSessionByIdPermissionsByPermissionIdData = {
url: "/session/{id}/permissions/{permissionID}"
}
-export type PostSessionByIdPermissionsByPermissionIdResponses = {
+export type PostSessionIdPermissionsPermissionIdResponses = {
/**
* Permission processed successfully
*/
200: boolean
}
-export type PostSessionByIdPermissionsByPermissionIdResponse =
- PostSessionByIdPermissionsByPermissionIdResponses[keyof PostSessionByIdPermissionsByPermissionIdResponses]
+export type PostSessionIdPermissionsPermissionIdResponse =
+ PostSessionIdPermissionsPermissionIdResponses[keyof PostSessionIdPermissionsPermissionIdResponses]
export type CommandListData = {
body?: never