Skip to content

Commit aa25120

Browse files
feat(api): api update
1 parent 3ba9a4c commit aa25120

File tree

5 files changed

+92
-39
lines changed

5 files changed

+92
-39
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: 26
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/opencode%2Fopencode-fb4caa8d0381531c44dd2d3c8c0b930b8c15a7bdde474d15bf7aeeb3b27aef56.yml
3-
openapi_spec_hash: 3a263e46f2369eeb2410430001c60d15
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/opencode%2Fopencode-5748199af356c3243a46a466e73b5d0bab7eaa0c56895e1d0f903d637f61d0bb.yml
3+
openapi_spec_hash: c04f6b6be54b05d9b1283c24e870163b
44
config_hash: 1ae82c93499b9f0b9ba828b8919f9cb3

api.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,6 @@ Methods:
1616

1717
# App
1818

19-
Params Types:
20-
21-
- <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#LogLevel">LogLevel</a>
22-
2319
Response Types:
2420

2521
- <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#App">App</a>

app.go

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -145,24 +145,6 @@ func (r appTimeJSON) RawJSON() string {
145145
return r.raw
146146
}
147147

148-
// Log level
149-
type LogLevel string
150-
151-
const (
152-
LogLevelDebug LogLevel = "debug"
153-
LogLevelInfo LogLevel = "info"
154-
LogLevelError LogLevel = "error"
155-
LogLevelWarn LogLevel = "warn"
156-
)
157-
158-
func (r LogLevel) IsKnown() bool {
159-
switch r {
160-
case LogLevelDebug, LogLevelInfo, LogLevelError, LogLevelWarn:
161-
return true
162-
}
163-
return false
164-
}
165-
166148
type Mode struct {
167149
Name string `json:"name,required"`
168150
Tools map[string]bool `json:"tools,required"`
@@ -352,7 +334,7 @@ func (r appProvidersResponseJSON) RawJSON() string {
352334

353335
type AppLogParams struct {
354336
// Log level
355-
Level param.Field[LogLevel] `json:"level,required"`
337+
Level param.Field[AppLogParamsLevel] `json:"level,required"`
356338
// Log message
357339
Message param.Field[string] `json:"message,required"`
358340
// Service name for the log entry
@@ -364,3 +346,21 @@ type AppLogParams struct {
364346
func (r AppLogParams) MarshalJSON() (data []byte, err error) {
365347
return apijson.MarshalRoot(r)
366348
}
349+
350+
// Log level
351+
type AppLogParamsLevel string
352+
353+
const (
354+
AppLogParamsLevelDebug AppLogParamsLevel = "debug"
355+
AppLogParamsLevelInfo AppLogParamsLevel = "info"
356+
AppLogParamsLevelError AppLogParamsLevel = "error"
357+
AppLogParamsLevelWarn AppLogParamsLevel = "warn"
358+
)
359+
360+
func (r AppLogParamsLevel) IsKnown() bool {
361+
switch r {
362+
case AppLogParamsLevelDebug, AppLogParamsLevelInfo, AppLogParamsLevelError, AppLogParamsLevelWarn:
363+
return true
364+
}
365+
return false
366+
}

app_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ func TestAppLogWithOptionalParams(t *testing.T) {
7070
option.WithBaseURL(baseURL),
7171
)
7272
_, err := client.App.Log(context.TODO(), opencode.AppLogParams{
73-
Level: opencode.F(opencode.LogLevelDebug),
73+
Level: opencode.F(opencode.AppLogParamsLevelDebug),
7474
Message: opencode.F("message"),
7575
Service: opencode.F("service"),
7676
Extra: opencode.F(map[string]interface{}{

session.go

Lines changed: 70 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -829,16 +829,19 @@ func (r MessageRole) IsKnown() bool {
829829
}
830830

831831
type Part struct {
832-
ID string `json:"id,required"`
833-
MessageID string `json:"messageID,required"`
834-
SessionID string `json:"sessionID,required"`
835-
Type PartType `json:"type,required"`
836-
CallID string `json:"callID"`
837-
Cost float64 `json:"cost"`
838-
Filename string `json:"filename"`
839-
Mime string `json:"mime"`
840-
Snapshot string `json:"snapshot"`
841-
Source FilePartSource `json:"source"`
832+
ID string `json:"id,required"`
833+
MessageID string `json:"messageID,required"`
834+
SessionID string `json:"sessionID,required"`
835+
Type PartType `json:"type,required"`
836+
CallID string `json:"callID"`
837+
Cost float64 `json:"cost"`
838+
Filename string `json:"filename"`
839+
// This field can have the runtime type of [[]string].
840+
Files interface{} `json:"files"`
841+
Hash string `json:"hash"`
842+
Mime string `json:"mime"`
843+
Snapshot string `json:"snapshot"`
844+
Source FilePartSource `json:"source"`
842845
// This field can have the runtime type of [ToolPartState].
843846
State interface{} `json:"state"`
844847
Synthetic bool `json:"synthetic"`
@@ -862,6 +865,8 @@ type partJSON struct {
862865
CallID apijson.Field
863866
Cost apijson.Field
864867
Filename apijson.Field
868+
Files apijson.Field
869+
Hash apijson.Field
865870
Mime apijson.Field
866871
Snapshot apijson.Field
867872
Source apijson.Field
@@ -893,13 +898,13 @@ func (r *Part) UnmarshalJSON(data []byte) (err error) {
893898
// for more type safety.
894899
//
895900
// Possible runtime types of the union are [TextPart], [FilePart], [ToolPart],
896-
// [StepStartPart], [StepFinishPart], [SnapshotPart].
901+
// [StepStartPart], [StepFinishPart], [SnapshotPart], [PartPatchPart].
897902
func (r Part) AsUnion() PartUnion {
898903
return r.union
899904
}
900905

901906
// Union satisfied by [TextPart], [FilePart], [ToolPart], [StepStartPart],
902-
// [StepFinishPart] or [SnapshotPart].
907+
// [StepFinishPart], [SnapshotPart] or [PartPatchPart].
903908
type PartUnion interface {
904909
implementsPart()
905910
}
@@ -938,9 +943,60 @@ func init() {
938943
Type: reflect.TypeOf(SnapshotPart{}),
939944
DiscriminatorValue: "snapshot",
940945
},
946+
apijson.UnionVariant{
947+
TypeFilter: gjson.JSON,
948+
Type: reflect.TypeOf(PartPatchPart{}),
949+
DiscriminatorValue: "patch",
950+
},
941951
)
942952
}
943953

954+
type PartPatchPart struct {
955+
ID string `json:"id,required"`
956+
Files []string `json:"files,required"`
957+
Hash string `json:"hash,required"`
958+
MessageID string `json:"messageID,required"`
959+
SessionID string `json:"sessionID,required"`
960+
Type PartPatchPartType `json:"type,required"`
961+
JSON partPatchPartJSON `json:"-"`
962+
}
963+
964+
// partPatchPartJSON contains the JSON metadata for the struct [PartPatchPart]
965+
type partPatchPartJSON struct {
966+
ID apijson.Field
967+
Files apijson.Field
968+
Hash apijson.Field
969+
MessageID apijson.Field
970+
SessionID apijson.Field
971+
Type apijson.Field
972+
raw string
973+
ExtraFields map[string]apijson.Field
974+
}
975+
976+
func (r *PartPatchPart) UnmarshalJSON(data []byte) (err error) {
977+
return apijson.UnmarshalRoot(data, r)
978+
}
979+
980+
func (r partPatchPartJSON) RawJSON() string {
981+
return r.raw
982+
}
983+
984+
func (r PartPatchPart) implementsPart() {}
985+
986+
type PartPatchPartType string
987+
988+
const (
989+
PartPatchPartTypePatch PartPatchPartType = "patch"
990+
)
991+
992+
func (r PartPatchPartType) IsKnown() bool {
993+
switch r {
994+
case PartPatchPartTypePatch:
995+
return true
996+
}
997+
return false
998+
}
999+
9441000
type PartType string
9451001

9461002
const (
@@ -950,11 +1006,12 @@ const (
9501006
PartTypeStepStart PartType = "step-start"
9511007
PartTypeStepFinish PartType = "step-finish"
9521008
PartTypeSnapshot PartType = "snapshot"
1009+
PartTypePatch PartType = "patch"
9531010
)
9541011

9551012
func (r PartType) IsKnown() bool {
9561013
switch r {
957-
case PartTypeText, PartTypeFile, PartTypeTool, PartTypeStepStart, PartTypeStepFinish, PartTypeSnapshot:
1014+
case PartTypeText, PartTypeFile, PartTypeTool, PartTypeStepStart, PartTypeStepFinish, PartTypeSnapshot, PartTypePatch:
9581015
return true
9591016
}
9601017
return false

0 commit comments

Comments
 (0)