opencode / packages /session-ui /src /components /part-default-open.ts
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
3e05655 verified
Raw
History Blame Contribute Delete
1.07 kB
import type { Part as PartType, ToolPart } from "@opencode-ai/sdk/v2"
function deletionOnly(part: ToolPart) {
if (!("metadata" in part.state)) return false
const metadata = part.state.metadata
if (!metadata) return false
const files = metadata.files
if (Array.isArray(files) && files.length > 0) {
return files.every((file) => !!file && typeof file === "object" && "type" in file && file.type === "delete")
}
const filediff = metadata.filediff
if (!filediff || typeof filediff !== "object") return false
if (!("additions" in filediff) || !("deletions" in filediff)) return false
return filediff.additions === 0 && typeof filediff.deletions === "number" && filediff.deletions > 0
}
export function partDefaultOpen(part: PartType, shell = false, edit = false) {
if (part.type !== "tool") return
if (part.tool === "bash" || part.tool === "shell") return shell
if (part.tool === "edit" || part.tool === "write" || part.tool === "patch" || part.tool === "apply_patch") {
if (!edit) return false
return !deletionOnly(part)
}
}