Files
oh-my-opencode/src/features/claude-code-session-state/state.ts
T
2026-03-26 12:59:36 +09:00

44 lines
1.2 KiB
TypeScript

import { resetPendingSessionAgentSwitchesForTesting } from "./switch-agent-state"
export const subagentSessions = new Set<string>()
export const syncSubagentSessions = new Set<string>()
let _mainSessionID: string | undefined
export function setMainSession(id: string | undefined) {
_mainSessionID = id
}
export function getMainSessionID(): string | undefined {
return _mainSessionID
}
/** @internal For testing only */
export function _resetForTesting(): void {
_mainSessionID = undefined
subagentSessions.clear()
syncSubagentSessions.clear()
sessionAgentMap.clear()
resetPendingSessionAgentSwitchesForTesting()
}
const sessionAgentMap = new Map<string, string>()
export function setSessionAgent(sessionID: string, agent: string): void {
if (!sessionAgentMap.has(sessionID)) {
sessionAgentMap.set(sessionID, agent)
}
}
export function updateSessionAgent(sessionID: string, agent: string): void {
sessionAgentMap.set(sessionID, agent)
}
export function getSessionAgent(sessionID: string): string | undefined {
return sessionAgentMap.get(sessionID)
}
export function clearSessionAgent(sessionID: string): void {
sessionAgentMap.delete(sessionID)
}