Pure `nix fmt` output from the commit before this one — no hand edits. 203 files: 52 md, 42 tsx, 32 js, 32 css, 21 ts, 13 html, 8 json, 3 mjs. Reproduce with `nix develop -c nix fmt` on the parent commit; the result should be byte-identical to this tree. None of the 13 `.prettierignore` entries appears here — verified by intersecting the changed-file list against the ignore file, with a control proving the intersection finds a match when one exists.
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
// Same-origin fetch POST helpers for the term-input slash commands —
|
|
// same shape as modelEffort.ts's `post()` ({ ok, detail } rather than
|
|
// throwing), reused by TermInput.tsx.
|
|
async function post(
|
|
path: string,
|
|
body?: URLSearchParams,
|
|
): Promise<{ ok: boolean; detail?: string }> {
|
|
try {
|
|
const resp = await fetch(path, {
|
|
method: "POST",
|
|
headers: body
|
|
? { "Content-Type": "application/x-www-form-urlencoded" }
|
|
: undefined,
|
|
body,
|
|
redirect: "manual",
|
|
});
|
|
const ok =
|
|
resp.ok ||
|
|
resp.type === "opaqueredirect" ||
|
|
(resp.status >= 200 && resp.status < 400);
|
|
if (ok) return { ok: true };
|
|
const detail = await resp.text().catch(() => "");
|
|
return {
|
|
ok: false,
|
|
detail: `http ${resp.status}${detail ? " — " + detail : ""}`,
|
|
};
|
|
} catch (err) {
|
|
return {
|
|
ok: false,
|
|
detail: err instanceof Error ? err.message : String(err),
|
|
};
|
|
}
|
|
}
|
|
|
|
export const postCancelTurn = () => post("api/cancel");
|
|
export const postCompact = () => post("api/compact");
|
|
export const postNewSession = () => post("api/new-session");
|
|
export const postLogout = () => post("api/logout");
|
|
export const postSend = (body: string) =>
|
|
post("send", new URLSearchParams({ body }));
|