50 lines
1.9 KiB
JavaScript
50 lines
1.9 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.buildPresetsRouter = buildPresetsRouter;
|
|
const express_1 = require("express");
|
|
const nanoid_1 = require("nanoid");
|
|
const config_1 = require("../config");
|
|
const promptBuilder_1 = require("../services/promptBuilder");
|
|
const traceLogger_1 = require("../services/traceLogger");
|
|
const http_1 = require("../utils/http");
|
|
function buildPresetsRouter() {
|
|
const router = (0, express_1.Router)();
|
|
router.get("/api/presets", (_req, res) => {
|
|
const stored = (0, traceLogger_1.listPresets)();
|
|
const builtin = (0, promptBuilder_1.listBuiltinPromptPresets)();
|
|
const combined = [...builtin, ...stored];
|
|
(0, http_1.ok)(res, {
|
|
ok: true,
|
|
default_prompt_version: config_1.DEFAULT_PROMPT_VERSION,
|
|
presets: combined
|
|
});
|
|
});
|
|
router.post("/api/presets/save", (req, res, next) => {
|
|
try {
|
|
const body = (req.body ?? {});
|
|
const now = new Date().toISOString();
|
|
const preset = {
|
|
id: body.id ?? `preset-${(0, nanoid_1.nanoid)(8)}`,
|
|
name: body.name ?? "Пользовательский пресет",
|
|
createdAt: body.createdAt ?? now,
|
|
updatedAt: now,
|
|
prompt_version: body.prompt_version ?? config_1.DEFAULT_PROMPT_VERSION,
|
|
systemPrompt: body.systemPrompt ?? "",
|
|
developerPrompt: body.developerPrompt ?? "",
|
|
domainPrompt: body.domainPrompt ?? "",
|
|
schemaNotes: body.schemaNotes ?? "",
|
|
fewShotExamples: body.fewShotExamples ?? ""
|
|
};
|
|
(0, traceLogger_1.savePreset)(preset);
|
|
(0, http_1.created)(res, {
|
|
ok: true,
|
|
preset
|
|
});
|
|
}
|
|
catch (error) {
|
|
next(error);
|
|
}
|
|
});
|
|
return router;
|
|
}
|