package dispatcher

import (
	"strings"

	"github.com/tidbcloud/AgentTeam/desktop/internal/token"
)

var sessionMCPTokenManager = token.Default

func replaceSessionMCPToken(sess *interactiveSession, next string) {
	if sess == nil {
		return
	}
	next = strings.TrimSpace(next)
	sess.mu.Lock()
	previous := sess.mcpToken
	sess.mcpToken = next
	sess.mu.Unlock()

	if previous != "" && previous != next {
		sessionMCPTokenManager().RevokeAgentToken(previous)
	}
}

func revokeSessionMCPToken(sess *interactiveSession) {
	if sess == nil {
		return
	}
	sess.mu.Lock()
	current := sess.mcpToken
	sess.mcpToken = ""
	sess.mu.Unlock()

	if current != "" {
		sessionMCPTokenManager().RevokeAgentToken(current)
	}
}
