Files
ycode/src/main/subagents/transcripts.ts
T

15 lines
844 B
TypeScript

import { rm } from 'node:fs/promises'
import { join, relative, resolve, sep } from 'node:path'
/** Encoded identity is one path component even for imported/untrusted session identifiers. */
export function subagentSessionDirectory(userData: string, sessionId: string): string {
return join(userData, 'subagent-sessions', 'session-' + Buffer.from(sessionId).toString('base64url'))
}
export async function removeSubagentTranscripts(userData: string, sessionId: string): Promise<void> {
const base = resolve(userData, 'subagent-sessions')
const target = resolve(subagentSessionDirectory(userData, sessionId))
const child = relative(base, target)
if (!child.startsWith('session-') || child.includes(sep) || child === 'session-') throw new Error('无效的子智能体记录目录')
await rm(target, { recursive: true, force: true })
}