morphbox
Version:
Docker-based AI sandbox for development with Claude integration
53 lines (50 loc) • 1.75 kB
JavaScript
import { j as json } from './index-3BbzJtgI.js';
import { readFile, writeFile } from 'fs/promises';
import { join } from 'path';
import { homedir } from 'os';
const PANELS_DIR = join(homedir(), "morphbox", "panels");
const POST = async ({ request }) => {
try {
const { panelId, code } = await request.json();
if (!panelId || !code) {
return json({ error: "Panel ID and code are required" }, { status: 400 });
}
const filepath = join(PANELS_DIR, `${panelId}.morph`);
const fileContent = await readFile(filepath, "utf-8");
const morphFile = JSON.parse(fileContent);
if ("code" in morphFile) {
morphFile.code = code;
} else if ("content" in morphFile) {
morphFile.content = code;
} else {
morphFile.code = code;
}
if (morphFile.metadata) {
morphFile.metadata.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
if (!morphFile.metadata.promptHistory) {
morphFile.metadata.promptHistory = [];
}
morphFile.metadata.promptHistory.push({
prompt: "Manual code edit",
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
type: "morph"
});
}
await writeFile(filepath, JSON.stringify(morphFile, null, 2), "utf-8");
return json({
success: true,
metadata: morphFile.metadata
});
} catch (error) {
console.error("Failed to update panel code:", error);
if (error.code === "ENOENT") {
return json({ error: "Panel not found" }, { status: 404 });
}
return json({
error: "Failed to update panel code",
details: error instanceof Error ? error.message : "Unknown error"
}, { status: 500 });
}
};
export { POST };
//# sourceMappingURL=_server.ts-CzlVWd0i.js.map