fix(run): inherit main-session tool permissions for continuation prompts

This commit is contained in:
YeonGyu-Kim
2026-02-18 18:02:42 +09:00
parent 80bb262066
commit dba7a1e07c
17 changed files with 297 additions and 28 deletions
+35
View File
@@ -0,0 +1,35 @@
import { getSessionTools } from "./session-tools-store"
export type PromptToolPermission = boolean | "allow" | "deny" | "ask"
export function normalizePromptTools(
tools: Record<string, PromptToolPermission> | undefined
): Record<string, boolean> | undefined {
if (!tools) {
return undefined
}
const normalized: Record<string, boolean> = {}
for (const [toolName, permission] of Object.entries(tools)) {
if (permission === false || permission === "deny") {
normalized[toolName] = false
continue
}
if (permission === true || permission === "allow" || permission === "ask") {
normalized[toolName] = true
}
}
return Object.keys(normalized).length > 0 ? normalized : undefined
}
export function resolveInheritedPromptTools(
sessionID: string,
fallbackTools?: Record<string, PromptToolPermission>
): Record<string, boolean> | undefined {
const sessionTools = getSessionTools(sessionID)
if (sessionTools && Object.keys(sessionTools).length > 0) {
return { ...sessionTools }
}
return normalizePromptTools(fallbackTools)
}