feat: integrate Pi backend and Pi Web

This commit is contained in:
luckyyzh
2026-07-30 19:37:53 +08:00
commit 7392ab9dd7
1390 changed files with 337197 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
import { NextRequest, NextResponse } from "next/server";
import { stat } from "fs/promises";
import {
getBrowseStartDirectory,
getParentDirectory,
listDirectories,
resolveDirectory,
} from "@/lib/directory-browser";
// GET /api/cwd/browse?path=...:列出文件系统中的可读子目录。
export async function GET(request: NextRequest) {
try {
const requested = request.nextUrl.searchParams.get("path")?.trim();
const candidate = getBrowseStartDirectory(requested);
let resolved: string;
try {
resolved = await resolveDirectory(candidate);
} catch {
return NextResponse.json({ error: "Directory does not exist" }, { status: 404 });
}
const directoryStat = await stat(resolved);
if (!directoryStat.isDirectory()) {
return NextResponse.json({ error: "Path is not a directory" }, { status: 400 });
}
const directories = await listDirectories(resolved);
return NextResponse.json({
path: resolved,
parentPath: getParentDirectory(resolved),
directories,
});
} catch (error) {
return NextResponse.json({ error: String(error) }, { status: 500 });
}
}