Files
oh-my-opencode/src/shared/session-utils.ts
T

26 lines
1.0 KiB
TypeScript
Raw Normal View History

import { findNearestMessageWithFields, findNearestMessageWithFieldsFromSDK } from "../features/hook-message-injector"
import { getMessageDir } from "./opencode-message-dir"
import { isSqliteBackend } from "./opencode-storage-detection"
2026-02-16 00:02:44 +09:00
import { log } from "./logger"
import { getAgentConfigKey } from "./agent-display-names"
import type { PluginInput } from "@opencode-ai/plugin"
export async function isCallerOrchestrator(sessionID?: string, client?: PluginInput["client"]): Promise<boolean> {
if (!sessionID) return false
if (isSqliteBackend() && client) {
try {
const nearest = await findNearestMessageWithFieldsFromSDK(client, sessionID)
return getAgentConfigKey(nearest?.agent ?? "") === "atlas"
2026-02-16 00:02:44 +09:00
} catch (error) {
log("[session-utils] SDK orchestrator check failed", { sessionID, error: String(error) })
return false
}
}
const messageDir = getMessageDir(sessionID)
if (!messageDir) return false
const nearest = findNearestMessageWithFields(messageDir)
return getAgentConfigKey(nearest?.agent ?? "") === "atlas"
}