Files
tutti/services/tuttid/api/daemon_agent_session_updates.go
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

132 lines
4.9 KiB
Go

package api
import (
"context"
tuttigenerated "github.com/tutti-os/tutti/services/tuttid/api/generated"
"github.com/tutti-os/tutti/services/tuttid/apierrors"
)
func (api DaemonAPI) UpdateWorkspaceAgentSessionSettings(ctx context.Context, request tuttigenerated.UpdateWorkspaceAgentSessionSettingsRequestObject) (tuttigenerated.UpdateWorkspaceAgentSessionSettingsResponseObject, error) {
if api.AgentSessionService == nil {
return tuttigenerated.UpdateWorkspaceAgentSessionSettings503JSONResponse{
ServiceUnavailableErrorJSONResponse: agentSessionServiceUnavailableError(),
}, nil
}
if request.Body == nil {
return tuttigenerated.UpdateWorkspaceAgentSessionSettings400JSONResponse{
InvalidRequestErrorJSONResponse: invalidRequestError(apierrors.EmptyBody(apierrors.WithDeveloperMessage("empty body"))),
}, nil
}
session, err := api.AgentSessionService.UpdateSettings(
ctx,
string(request.WorkspaceID),
string(request.AgentSessionID),
composerSettingsPatchFromGenerated(*request.Body),
)
if err != nil {
return writeUpdateWorkspaceAgentSessionSettingsError(err), nil
}
generatedSession, err := generatedAgentSession(session)
if err != nil {
return writeUpdateWorkspaceAgentSessionSettingsError(err), nil
}
if !isRendererEngineCommandOrigin(
request.Params.XTuttiAgentCommandOrigin,
) {
api.recordAgentStimulus(ctx, "session.settings.update", string(request.WorkspaceID), string(request.AgentSessionID), map[string]any{
"settings": *request.Body,
})
}
return tuttigenerated.UpdateWorkspaceAgentSessionSettings200JSONResponse{
Session: generatedSession,
}, nil
}
func (api DaemonAPI) UpdateWorkspaceAgentSessionPin(ctx context.Context, request tuttigenerated.UpdateWorkspaceAgentSessionPinRequestObject) (tuttigenerated.UpdateWorkspaceAgentSessionPinResponseObject, error) {
if api.AgentSessionService == nil {
return tuttigenerated.UpdateWorkspaceAgentSessionPin503JSONResponse{
ServiceUnavailableErrorJSONResponse: agentSessionServiceUnavailableError(),
}, nil
}
if request.Body == nil {
return tuttigenerated.UpdateWorkspaceAgentSessionPin400JSONResponse{
InvalidRequestErrorJSONResponse: invalidRequestError(apierrors.EmptyBody(apierrors.WithDeveloperMessage("empty body"))),
}, nil
}
session, err := api.AgentSessionService.UpdatePin(
ctx,
string(request.WorkspaceID),
string(request.AgentSessionID),
request.Body.Pinned,
)
if err != nil {
return writeUpdateWorkspaceAgentSessionPinError(err), nil
}
generatedSession, err := generatedAgentSession(session)
if err != nil {
return writeUpdateWorkspaceAgentSessionPinError(err), nil
}
return tuttigenerated.UpdateWorkspaceAgentSessionPin200JSONResponse{
Session: generatedSession,
}, nil
}
func (api DaemonAPI) UpdateWorkspaceAgentSessionTitle(ctx context.Context, request tuttigenerated.UpdateWorkspaceAgentSessionTitleRequestObject) (tuttigenerated.UpdateWorkspaceAgentSessionTitleResponseObject, error) {
if api.AgentSessionService == nil {
return tuttigenerated.UpdateWorkspaceAgentSessionTitle503JSONResponse{
ServiceUnavailableErrorJSONResponse: agentSessionServiceUnavailableError(),
}, nil
}
if request.Body == nil {
return tuttigenerated.UpdateWorkspaceAgentSessionTitle400JSONResponse{
InvalidRequestErrorJSONResponse: invalidRequestError(apierrors.EmptyBody(apierrors.WithDeveloperMessage("empty body"))),
}, nil
}
session, err := api.AgentSessionService.UpdateTitle(
ctx,
string(request.WorkspaceID),
string(request.AgentSessionID),
request.Body.Title,
)
if err != nil {
return writeUpdateWorkspaceAgentSessionTitleError(err), nil
}
generatedSession, err := generatedAgentSession(session)
if err != nil {
return writeUpdateWorkspaceAgentSessionTitleError(err), nil
}
return tuttigenerated.UpdateWorkspaceAgentSessionTitle200JSONResponse{
Session: generatedSession,
}, nil
}
func (api DaemonAPI) UpdateWorkspaceAgentSessionVisibility(ctx context.Context, request tuttigenerated.UpdateWorkspaceAgentSessionVisibilityRequestObject) (tuttigenerated.UpdateWorkspaceAgentSessionVisibilityResponseObject, error) {
if api.AgentSessionService == nil {
return tuttigenerated.UpdateWorkspaceAgentSessionVisibility503JSONResponse{
ServiceUnavailableErrorJSONResponse: agentSessionServiceUnavailableError(),
}, nil
}
if request.Body == nil {
return tuttigenerated.UpdateWorkspaceAgentSessionVisibility400JSONResponse{
InvalidRequestErrorJSONResponse: invalidRequestError(apierrors.EmptyBody(apierrors.WithDeveloperMessage("empty body"))),
}, nil
}
session, err := api.AgentSessionService.UpdateVisible(
ctx,
string(request.WorkspaceID),
string(request.AgentSessionID),
request.Body.Visible,
)
if err != nil {
return writeUpdateWorkspaceAgentSessionVisibilityError(err), nil
}
generatedSession, err := generatedAgentSession(session)
if err != nil {
return writeUpdateWorkspaceAgentSessionVisibilityError(err), nil
}
return tuttigenerated.UpdateWorkspaceAgentSessionVisibility200JSONResponse{
Session: generatedSession,
}, nil
}