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
+28
View File
@@ -0,0 +1,28 @@
// Client-side helper for POST /api/agent/[id].
//
// Every /api/agent/[id] route returns one of:
// { success: true, data: <result> }
// { error: string } (non-2xx)
//
// Call sites previously repeated the same 5-line fetch block 13× in
// hooks/useAgentSession.ts. This helper collapses that down to one line.
export async function sendAgentCommand<T = unknown>(
sessionId: string,
command: Record<string, unknown>,
): Promise<T> {
const res = await fetch(`/api/agent/${encodeURIComponent(sessionId)}`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(command),
});
const body = (await res.json().catch(() => ({}))) as {
success?: boolean;
data?: T;
error?: string;
};
if (!res.ok || body.error) {
throw new Error(body.error ?? `HTTP ${res.status}`);
}
return body.data as T;
}