Sort top level files based on directory or not; fix task header styles

This commit is contained in:
Saoud Rizwan 2024-07-31 13:28:00 -04:00
parent 1ee733103a
commit fd13081109
2 changed files with 34 additions and 15 deletions

View File

@ -449,7 +449,20 @@ export class ClaudeDev {
async listFilesTopLevel(dirPath: string): Promise<string> {
try {
const files = await listFiles(dirPath, false)
const result = files.map((file) => path.relative(dirPath, file)).join("\n")
const result = files
.map((file) => {
const relativePath = path.relative(dirPath, file)
return file.endsWith("/") ? relativePath + "/" : relativePath
})
.sort((a, b) => {
const aIsDir = a.endsWith("/")
const bIsDir = b.endsWith("/")
if (aIsDir !== bIsDir) {
return aIsDir ? -1 : 1
}
return a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" })
})
.join("\n")
const { response, text } = await this.ask(
"tool",
JSON.stringify({ tool: "listFilesTopLevel", path: dirPath, content: result } as ClaudeSayTool)

View File

@ -141,7 +141,7 @@ const TaskHeader: React.FC<TaskHeaderProps> = ({ taskText, tokensIn, tokensOut,
)}
</div>
<div style={{ display: "flex", flexDirection: "column", gap: "4px" }}>
<div style={{ display: "flex", alignItems: "center", gap: "5px" }}>
<div style={{ display: "flex", alignItems: "center", gap: "4px" }}>
<span style={{ fontWeight: "bold" }}>Tokens:</span>
<span style={{ display: "flex", alignItems: "center", gap: "3px" }}>
<i
@ -158,21 +158,27 @@ const TaskHeader: React.FC<TaskHeaderProps> = ({ taskText, tokensIn, tokensOut,
{tokensIn.toLocaleString()}
</span>
</div>
<div style={{ display: "flex", alignItems: "center", gap: "4px" }}>
<span style={{ fontWeight: "bold" }}>API Cost:</span>
<span>${totalCost.toFixed(4)}</span>
<div
style={{
display: "flex",
justifyContent: "space-between",
alignItems: "center",
}}>
<div style={{ display: "flex", alignItems: "center", gap: "4px" }}>
<span style={{ fontWeight: "bold" }}>API Cost:</span>
<span>${totalCost.toFixed(4)}</span>
</div>
<VSCodeButton
appearance="icon"
onClick={handleDownload}
style={{
marginBottom: "-2px",
marginRight: "-2.5px",
}}>
<div style={{ fontSize: "10.5px", fontWeight: "bold", opacity: 0.6 }}>EXPORT .MD</div>
</VSCodeButton>
</div>
</div>
<VSCodeButton
appearance="icon"
onClick={handleDownload}
style={{
position: "absolute",
bottom: "9.5px",
right: "9px",
}}>
<div style={{ fontSize: "10.5px", fontWeight: "bold", opacity: 0.6 }}>EXPORT .MD</div>
</VSCodeButton>
</div>
</div>
)