Files
tutti/services/tuttid/api/daemon_agent_maintenance.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

46 lines
1.6 KiB
Go

package api
import (
"context"
"errors"
tuttigenerated "github.com/tutti-os/tutti/services/tuttid/api/generated"
"github.com/tutti-os/tutti/services/tuttid/apierrors"
agentmaintenance "github.com/tutti-os/tutti/services/tuttid/service/agentmaintenance"
)
func (api DaemonAPI) PurgeDeletedAgentConversations(
ctx context.Context,
_ tuttigenerated.PurgeDeletedAgentConversationsRequestObject,
) (tuttigenerated.PurgeDeletedAgentConversationsResponseObject, error) {
if api.AgentMaintenanceService == nil {
return tuttigenerated.PurgeDeletedAgentConversations503JSONResponse{
ServiceUnavailableErrorJSONResponse: serviceUnavailableError(
apierrors.WorkspaceServiceUnavailable(apierrors.WithDeveloperMessage("agent data maintenance service is unavailable")),
),
}, nil
}
result, err := api.AgentMaintenanceService.PurgeNow(ctx)
if errors.Is(err, agentmaintenance.ErrBusy) {
return tuttigenerated.PurgeDeletedAgentConversations503JSONResponse{
ServiceUnavailableErrorJSONResponse: serviceUnavailableError(
apierrors.WorkspaceServiceUnavailable(
apierrors.WithDeveloperMessage("agent data maintenance is waiting for active work to finish"),
),
),
}, nil
}
if err != nil {
return tuttigenerated.PurgeDeletedAgentConversations502JSONResponse{
WorkspaceOperationErrorJSONResponse: workspaceOperationError(
apierrors.WorkspaceOperationFailed(apierrors.WithCause(err)),
),
}, nil
}
return tuttigenerated.PurgeDeletedAgentConversations200JSONResponse{
RemovedSessions: result.RemovedSessions,
RemovedMessages: result.RemovedMessages,
PayloadBytes: result.PayloadBytes,
}, nil
}