summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk/go/session.go
diff options
context:
space:
mode:
Diffstat (limited to 'packages/sdk/go/session.go')
-rw-r--r--packages/sdk/go/session.go47
1 files changed, 47 insertions, 0 deletions
diff --git a/packages/sdk/go/session.go b/packages/sdk/go/session.go
index a4ad09e25..237b490d7 100644
--- a/packages/sdk/go/session.go
+++ b/packages/sdk/go/session.go
@@ -114,6 +114,18 @@ func (r *SessionService) Children(ctx context.Context, id string, opts ...option
return
}
+// Send a new command to a session
+func (r *SessionService) Command(ctx context.Context, id string, body SessionCommandParams, opts ...option.RequestOption) (res *SessionCommandResponse, err error) {
+ opts = append(r.Options[:], opts...)
+ if id == "" {
+ err = errors.New("missing required id parameter")
+ return
+ }
+ path := fmt.Sprintf("session/%s/command", id)
+ err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...)
+ return
+}
+
// Get session
func (r *SessionService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *Session, err error) {
opts = append(r.Options[:], opts...)
@@ -2301,6 +2313,29 @@ func (r sessionChatResponseJSON) RawJSON() string {
return r.raw
}
+type SessionCommandResponse struct {
+ Info AssistantMessage `json:"info,required"`
+ Parts []Part `json:"parts,required"`
+ JSON sessionCommandResponseJSON `json:"-"`
+}
+
+// sessionCommandResponseJSON contains the JSON metadata for the struct
+// [SessionCommandResponse]
+type sessionCommandResponseJSON struct {
+ Info apijson.Field
+ Parts apijson.Field
+ raw string
+ ExtraFields map[string]apijson.Field
+}
+
+func (r *SessionCommandResponse) UnmarshalJSON(data []byte) (err error) {
+ return apijson.UnmarshalRoot(data, r)
+}
+
+func (r sessionCommandResponseJSON) RawJSON() string {
+ return r.raw
+}
+
type SessionMessageResponse struct {
Info Message `json:"info,required"`
Parts []Part `json:"parts,required"`
@@ -2419,6 +2454,18 @@ func (r SessionChatParamsPartsType) IsKnown() bool {
return false
}
+type SessionCommandParams struct {
+ Arguments param.Field[string] `json:"arguments,required"`
+ Command param.Field[string] `json:"command,required"`
+ Agent param.Field[string] `json:"agent"`
+ MessageID param.Field[string] `json:"messageID"`
+ Model param.Field[string] `json:"model"`
+}
+
+func (r SessionCommandParams) MarshalJSON() (data []byte, err error) {
+ return apijson.MarshalRoot(r)
+}
+
type SessionInitParams struct {
MessageID param.Field[string] `json:"messageID,required"`
ModelID param.Field[string] `json:"modelID,required"`