@@ -50,6 +50,7 @@ type Service interface {
5050 Model() models.Model
5151 Run(ctx context.Context, sessionID string, content string, attachments ...message.Attachment) (<-chan AgentEvent, error)
5252 Cancel(sessionID string)
53+ CancelAll()
5354 IsSessionBusy(sessionID string) bool
5455 IsBusy() bool
5556 Update(agentName config.AgentName, modelID models.ModelID) (models.Model, error)
@@ -698,6 +699,13 @@ func (a *agent) Summarize(ctx context.Context, sessionID string) error {
698699 return nil
699700}
700701
702+func (a *agent) CancelAll() {
703+ a.activeRequests.Range(func(key, value any) bool {
704+ a.Cancel(key.(string)) // key is sessionID
705+ return true
706+ })
707+}
708+
701709func createAgentProvider(agentName config.AgentName) (provider.Provider, error) {
702710 cfg := config.Get()
703711 agentConfig, ok := cfg.Agents[agentName]