Skip to content

Commit 379c8e0

Browse files
feat(api): api update
1 parent 90901a1 commit 379c8e0

File tree

5 files changed

+294
-6
lines changed

5 files changed

+294
-6
lines changed

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 23
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/opencode%2Fopencode-36685e6c811d5fcefdf3a2850a6c198417f6ae822ceddc77cac73625d2cc93ce.yml
3-
openapi_spec_hash: fb6cbcb766a009845ff5c10fbdea8e38
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/opencode%2Fopencode-04eaffcca7fcec3eba3c34ba4e91ba830867173c552015a0abfd65e25084d9b5.yml
3+
openapi_spec_hash: 4dfbcc2ce25451592f610e372ecad0cb
44
config_hash: 0032a76356d31c6b4c218b39fff635bb

api.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,23 @@ Methods:
7575

7676
Params Types:
7777

78+
- <a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go">opencode</a>.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#FilePartParam">FilePartParam</a>
7879
- <a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go">opencode</a>.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#FilePartInputParam">FilePartInputParam</a>
7980
- <a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go">opencode</a>.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#FilePartSourceUnionParam">FilePartSourceUnionParam</a>
8081
- <a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go">opencode</a>.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#FilePartSourceTextParam">FilePartSourceTextParam</a>
8182
- <a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go">opencode</a>.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#FileSourceParam">FileSourceParam</a>
83+
- <a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go">opencode</a>.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#PartUnionParam">PartUnionParam</a>
84+
- <a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go">opencode</a>.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#SnapshotPartParam">SnapshotPartParam</a>
85+
- <a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go">opencode</a>.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#StepFinishPartParam">StepFinishPartParam</a>
86+
- <a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go">opencode</a>.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#StepStartPartParam">StepStartPartParam</a>
8287
- <a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go">opencode</a>.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#SymbolSourceParam">SymbolSourceParam</a>
88+
- <a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go">opencode</a>.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#TextPartParam">TextPartParam</a>
8389
- <a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go">opencode</a>.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#TextPartInputParam">TextPartInputParam</a>
90+
- <a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go">opencode</a>.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#ToolPartParam">ToolPartParam</a>
91+
- <a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go">opencode</a>.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#ToolStateCompletedParam">ToolStateCompletedParam</a>
92+
- <a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go">opencode</a>.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#ToolStateErrorParam">ToolStateErrorParam</a>
93+
- <a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go">opencode</a>.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#ToolStatePendingParam">ToolStatePendingParam</a>
94+
- <a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go">opencode</a>.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#ToolStateRunningParam">ToolStateRunningParam</a>
8495

8596
Response Types:
8697

@@ -122,4 +133,4 @@ Methods:
122133

123134
Methods:
124135

125-
- <code title="post /tui/prompt">client.Tui.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#TuiService.Prompt">Prompt</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>) (<a href="https://pkg.go.dev/builtin#bool">bool</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>
136+
- <code title="post /tui/prompt">client.Tui.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#TuiService.Prompt">Prompt</a>(ctx <a href="https://pkg.go.dev/context">context</a>.<a href="https://pkg.go.dev/context#Context">Context</a>, body <a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go">opencode</a>.<a href="https://pkg.go.dev/github.com/sst/opencode-sdk-go#TuiPromptParams">TuiPromptParams</a>) (<a href="https://pkg.go.dev/builtin#bool">bool</a>, <a href="https://pkg.go.dev/builtin#error">error</a>)</code>

session.go

Lines changed: 252 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,23 @@ func (r FilePartType) IsKnown() bool {
483483
return false
484484
}
485485

486+
type FilePartParam struct {
487+
ID param.Field[string] `json:"id,required"`
488+
MessageID param.Field[string] `json:"messageID,required"`
489+
Mime param.Field[string] `json:"mime,required"`
490+
SessionID param.Field[string] `json:"sessionID,required"`
491+
Type param.Field[FilePartType] `json:"type,required"`
492+
URL param.Field[string] `json:"url,required"`
493+
Filename param.Field[string] `json:"filename"`
494+
Source param.Field[FilePartSourceUnionParam] `json:"source"`
495+
}
496+
497+
func (r FilePartParam) MarshalJSON() (data []byte, err error) {
498+
return apijson.MarshalRoot(r)
499+
}
500+
501+
func (r FilePartParam) implementsPartUnionParam() {}
502+
486503
type FilePartInputParam struct {
487504
Mime param.Field[string] `json:"mime,required"`
488505
Type param.Field[FilePartInputType] `json:"type,required"`
@@ -932,6 +949,38 @@ func (r PartType) IsKnown() bool {
932949
return false
933950
}
934951

952+
type PartParam struct {
953+
ID param.Field[string] `json:"id,required"`
954+
MessageID param.Field[string] `json:"messageID,required"`
955+
SessionID param.Field[string] `json:"sessionID,required"`
956+
Type param.Field[PartType] `json:"type,required"`
957+
CallID param.Field[string] `json:"callID"`
958+
Cost param.Field[float64] `json:"cost"`
959+
Filename param.Field[string] `json:"filename"`
960+
Mime param.Field[string] `json:"mime"`
961+
Snapshot param.Field[string] `json:"snapshot"`
962+
Source param.Field[FilePartSourceUnionParam] `json:"source"`
963+
State param.Field[interface{}] `json:"state"`
964+
Synthetic param.Field[bool] `json:"synthetic"`
965+
Text param.Field[string] `json:"text"`
966+
Time param.Field[interface{}] `json:"time"`
967+
Tokens param.Field[interface{}] `json:"tokens"`
968+
Tool param.Field[string] `json:"tool"`
969+
URL param.Field[string] `json:"url"`
970+
}
971+
972+
func (r PartParam) MarshalJSON() (data []byte, err error) {
973+
return apijson.MarshalRoot(r)
974+
}
975+
976+
func (r PartParam) implementsPartUnionParam() {}
977+
978+
// Satisfied by [TextPartParam], [FilePartParam], [ToolPartParam],
979+
// [StepStartPartParam], [StepFinishPartParam], [SnapshotPartParam], [PartParam].
980+
type PartUnionParam interface {
981+
implementsPartUnionParam()
982+
}
983+
935984
type Session struct {
936985
ID string `json:"id,required"`
937986
Time SessionTime `json:"time,required"`
@@ -1074,6 +1123,20 @@ func (r SnapshotPartType) IsKnown() bool {
10741123
return false
10751124
}
10761125

1126+
type SnapshotPartParam struct {
1127+
ID param.Field[string] `json:"id,required"`
1128+
MessageID param.Field[string] `json:"messageID,required"`
1129+
SessionID param.Field[string] `json:"sessionID,required"`
1130+
Snapshot param.Field[string] `json:"snapshot,required"`
1131+
Type param.Field[SnapshotPartType] `json:"type,required"`
1132+
}
1133+
1134+
func (r SnapshotPartParam) MarshalJSON() (data []byte, err error) {
1135+
return apijson.MarshalRoot(r)
1136+
}
1137+
1138+
func (r SnapshotPartParam) implementsPartUnionParam() {}
1139+
10771140
type StepFinishPart struct {
10781141
ID string `json:"id,required"`
10791142
Cost float64 `json:"cost,required"`
@@ -1170,6 +1233,41 @@ func (r StepFinishPartType) IsKnown() bool {
11701233
return false
11711234
}
11721235

1236+
type StepFinishPartParam struct {
1237+
ID param.Field[string] `json:"id,required"`
1238+
Cost param.Field[float64] `json:"cost,required"`
1239+
MessageID param.Field[string] `json:"messageID,required"`
1240+
SessionID param.Field[string] `json:"sessionID,required"`
1241+
Tokens param.Field[StepFinishPartTokensParam] `json:"tokens,required"`
1242+
Type param.Field[StepFinishPartType] `json:"type,required"`
1243+
}
1244+
1245+
func (r StepFinishPartParam) MarshalJSON() (data []byte, err error) {
1246+
return apijson.MarshalRoot(r)
1247+
}
1248+
1249+
func (r StepFinishPartParam) implementsPartUnionParam() {}
1250+
1251+
type StepFinishPartTokensParam struct {
1252+
Cache param.Field[StepFinishPartTokensCacheParam] `json:"cache,required"`
1253+
Input param.Field[float64] `json:"input,required"`
1254+
Output param.Field[float64] `json:"output,required"`
1255+
Reasoning param.Field[float64] `json:"reasoning,required"`
1256+
}
1257+
1258+
func (r StepFinishPartTokensParam) MarshalJSON() (data []byte, err error) {
1259+
return apijson.MarshalRoot(r)
1260+
}
1261+
1262+
type StepFinishPartTokensCacheParam struct {
1263+
Read param.Field[float64] `json:"read,required"`
1264+
Write param.Field[float64] `json:"write,required"`
1265+
}
1266+
1267+
func (r StepFinishPartTokensCacheParam) MarshalJSON() (data []byte, err error) {
1268+
return apijson.MarshalRoot(r)
1269+
}
1270+
11731271
type StepStartPart struct {
11741272
ID string `json:"id,required"`
11751273
MessageID string `json:"messageID,required"`
@@ -1212,6 +1310,19 @@ func (r StepStartPartType) IsKnown() bool {
12121310
return false
12131311
}
12141312

1313+
type StepStartPartParam struct {
1314+
ID param.Field[string] `json:"id,required"`
1315+
MessageID param.Field[string] `json:"messageID,required"`
1316+
SessionID param.Field[string] `json:"sessionID,required"`
1317+
Type param.Field[StepStartPartType] `json:"type,required"`
1318+
}
1319+
1320+
func (r StepStartPartParam) MarshalJSON() (data []byte, err error) {
1321+
return apijson.MarshalRoot(r)
1322+
}
1323+
1324+
func (r StepStartPartParam) implementsPartUnionParam() {}
1325+
12151326
type SymbolSource struct {
12161327
Kind int64 `json:"kind,required"`
12171328
Name string `json:"name,required"`
@@ -1439,6 +1550,31 @@ func (r textPartTimeJSON) RawJSON() string {
14391550
return r.raw
14401551
}
14411552

1553+
type TextPartParam struct {
1554+
ID param.Field[string] `json:"id,required"`
1555+
MessageID param.Field[string] `json:"messageID,required"`
1556+
SessionID param.Field[string] `json:"sessionID,required"`
1557+
Text param.Field[string] `json:"text,required"`
1558+
Type param.Field[TextPartType] `json:"type,required"`
1559+
Synthetic param.Field[bool] `json:"synthetic"`
1560+
Time param.Field[TextPartTimeParam] `json:"time"`
1561+
}
1562+
1563+
func (r TextPartParam) MarshalJSON() (data []byte, err error) {
1564+
return apijson.MarshalRoot(r)
1565+
}
1566+
1567+
func (r TextPartParam) implementsPartUnionParam() {}
1568+
1569+
type TextPartTimeParam struct {
1570+
Start param.Field[float64] `json:"start,required"`
1571+
End param.Field[float64] `json:"end"`
1572+
}
1573+
1574+
func (r TextPartTimeParam) MarshalJSON() (data []byte, err error) {
1575+
return apijson.MarshalRoot(r)
1576+
}
1577+
14421578
type TextPartInputParam struct {
14431579
Text param.Field[string] `json:"text,required"`
14441580
Type param.Field[TextPartInputType] `json:"type,required"`
@@ -1625,6 +1761,44 @@ func (r ToolPartType) IsKnown() bool {
16251761
return false
16261762
}
16271763

1764+
type ToolPartParam struct {
1765+
ID param.Field[string] `json:"id,required"`
1766+
CallID param.Field[string] `json:"callID,required"`
1767+
MessageID param.Field[string] `json:"messageID,required"`
1768+
SessionID param.Field[string] `json:"sessionID,required"`
1769+
State param.Field[ToolPartStateUnionParam] `json:"state,required"`
1770+
Tool param.Field[string] `json:"tool,required"`
1771+
Type param.Field[ToolPartType] `json:"type,required"`
1772+
}
1773+
1774+
func (r ToolPartParam) MarshalJSON() (data []byte, err error) {
1775+
return apijson.MarshalRoot(r)
1776+
}
1777+
1778+
func (r ToolPartParam) implementsPartUnionParam() {}
1779+
1780+
type ToolPartStateParam struct {
1781+
Status param.Field[ToolPartStateStatus] `json:"status,required"`
1782+
Error param.Field[string] `json:"error"`
1783+
Input param.Field[interface{}] `json:"input"`
1784+
Metadata param.Field[interface{}] `json:"metadata"`
1785+
Output param.Field[string] `json:"output"`
1786+
Time param.Field[interface{}] `json:"time"`
1787+
Title param.Field[string] `json:"title"`
1788+
}
1789+
1790+
func (r ToolPartStateParam) MarshalJSON() (data []byte, err error) {
1791+
return apijson.MarshalRoot(r)
1792+
}
1793+
1794+
func (r ToolPartStateParam) implementsToolPartStateUnionParam() {}
1795+
1796+
// Satisfied by [ToolStatePendingParam], [ToolStateRunningParam],
1797+
// [ToolStateCompletedParam], [ToolStateErrorParam], [ToolPartStateParam].
1798+
type ToolPartStateUnionParam interface {
1799+
implementsToolPartStateUnionParam()
1800+
}
1801+
16281802
type ToolStateCompleted struct {
16291803
Input map[string]interface{} `json:"input,required"`
16301804
Metadata map[string]interface{} `json:"metadata,required"`
@@ -1695,6 +1869,30 @@ func (r toolStateCompletedTimeJSON) RawJSON() string {
16951869
return r.raw
16961870
}
16971871

1872+
type ToolStateCompletedParam struct {
1873+
Input param.Field[map[string]interface{}] `json:"input,required"`
1874+
Metadata param.Field[map[string]interface{}] `json:"metadata,required"`
1875+
Output param.Field[string] `json:"output,required"`
1876+
Status param.Field[ToolStateCompletedStatus] `json:"status,required"`
1877+
Time param.Field[ToolStateCompletedTimeParam] `json:"time,required"`
1878+
Title param.Field[string] `json:"title,required"`
1879+
}
1880+
1881+
func (r ToolStateCompletedParam) MarshalJSON() (data []byte, err error) {
1882+
return apijson.MarshalRoot(r)
1883+
}
1884+
1885+
func (r ToolStateCompletedParam) implementsToolPartStateUnionParam() {}
1886+
1887+
type ToolStateCompletedTimeParam struct {
1888+
End param.Field[float64] `json:"end,required"`
1889+
Start param.Field[float64] `json:"start,required"`
1890+
}
1891+
1892+
func (r ToolStateCompletedTimeParam) MarshalJSON() (data []byte, err error) {
1893+
return apijson.MarshalRoot(r)
1894+
}
1895+
16981896
type ToolStateError struct {
16991897
Error string `json:"error,required"`
17001898
Input map[string]interface{} `json:"input,required"`
@@ -1760,6 +1958,28 @@ func (r toolStateErrorTimeJSON) RawJSON() string {
17601958
return r.raw
17611959
}
17621960

1961+
type ToolStateErrorParam struct {
1962+
Error param.Field[string] `json:"error,required"`
1963+
Input param.Field[map[string]interface{}] `json:"input,required"`
1964+
Status param.Field[ToolStateErrorStatus] `json:"status,required"`
1965+
Time param.Field[ToolStateErrorTimeParam] `json:"time,required"`
1966+
}
1967+
1968+
func (r ToolStateErrorParam) MarshalJSON() (data []byte, err error) {
1969+
return apijson.MarshalRoot(r)
1970+
}
1971+
1972+
func (r ToolStateErrorParam) implementsToolPartStateUnionParam() {}
1973+
1974+
type ToolStateErrorTimeParam struct {
1975+
End param.Field[float64] `json:"end,required"`
1976+
Start param.Field[float64] `json:"start,required"`
1977+
}
1978+
1979+
func (r ToolStateErrorTimeParam) MarshalJSON() (data []byte, err error) {
1980+
return apijson.MarshalRoot(r)
1981+
}
1982+
17631983
type ToolStatePending struct {
17641984
Status ToolStatePendingStatus `json:"status,required"`
17651985
JSON toolStatePendingJSON `json:"-"`
@@ -1797,6 +2017,16 @@ func (r ToolStatePendingStatus) IsKnown() bool {
17972017
return false
17982018
}
17992019

2020+
type ToolStatePendingParam struct {
2021+
Status param.Field[ToolStatePendingStatus] `json:"status,required"`
2022+
}
2023+
2024+
func (r ToolStatePendingParam) MarshalJSON() (data []byte, err error) {
2025+
return apijson.MarshalRoot(r)
2026+
}
2027+
2028+
func (r ToolStatePendingParam) implementsToolPartStateUnionParam() {}
2029+
18002030
type ToolStateRunning struct {
18012031
Status ToolStateRunningStatus `json:"status,required"`
18022032
Time ToolStateRunningTime `json:"time,required"`
@@ -1863,6 +2093,28 @@ func (r toolStateRunningTimeJSON) RawJSON() string {
18632093
return r.raw
18642094
}
18652095

2096+
type ToolStateRunningParam struct {
2097+
Status param.Field[ToolStateRunningStatus] `json:"status,required"`
2098+
Time param.Field[ToolStateRunningTimeParam] `json:"time,required"`
2099+
Input param.Field[interface{}] `json:"input"`
2100+
Metadata param.Field[map[string]interface{}] `json:"metadata"`
2101+
Title param.Field[string] `json:"title"`
2102+
}
2103+
2104+
func (r ToolStateRunningParam) MarshalJSON() (data []byte, err error) {
2105+
return apijson.MarshalRoot(r)
2106+
}
2107+
2108+
func (r ToolStateRunningParam) implementsToolPartStateUnionParam() {}
2109+
2110+
type ToolStateRunningTimeParam struct {
2111+
Start param.Field[float64] `json:"start,required"`
2112+
}
2113+
2114+
func (r ToolStateRunningTimeParam) MarshalJSON() (data []byte, err error) {
2115+
return apijson.MarshalRoot(r)
2116+
}
2117+
18662118
type UserMessage struct {
18672119
ID string `json:"id,required"`
18682120
Role UserMessageRole `json:"role,required"`

tui.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import (
66
"context"
77
"net/http"
88

9+
"github.com/sst/opencode-sdk-go/internal/apijson"
10+
"github.com/sst/opencode-sdk-go/internal/param"
911
"github.com/sst/opencode-sdk-go/internal/requestconfig"
1012
"github.com/sst/opencode-sdk-go/option"
1113
)
@@ -30,9 +32,18 @@ func NewTuiService(opts ...option.RequestOption) (r *TuiService) {
3032
}
3133

3234
// Send a prompt to the TUI
33-
func (r *TuiService) Prompt(ctx context.Context, opts ...option.RequestOption) (res *bool, err error) {
35+
func (r *TuiService) Prompt(ctx context.Context, body TuiPromptParams, opts ...option.RequestOption) (res *bool, err error) {
3436
opts = append(r.Options[:], opts...)
3537
path := "tui/prompt"
36-
err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, nil, &res, opts...)
38+
err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...)
3739
return
3840
}
41+
42+
type TuiPromptParams struct {
43+
Parts param.Field[[]PartUnionParam] `json:"parts,required"`
44+
Text param.Field[string] `json:"text,required"`
45+
}
46+
47+
func (r TuiPromptParams) MarshalJSON() (data []byte, err error) {
48+
return apijson.MarshalRoot(r)
49+
}

0 commit comments

Comments
 (0)