feat(assist): режим 'редактор файла' POST /<stand>/_api/file (terraform.tfvars)
This commit is contained in:
@@ -83,6 +83,15 @@ try {
|
||||
assistShared = null;
|
||||
}
|
||||
|
||||
// Режим «редактор файла» (terraform.tfvars): лениво грузим, не роняем статику.
|
||||
let fileHandler = null;
|
||||
try {
|
||||
const filemode = require('./filemode.js');
|
||||
fileHandler = filemode.handleFile;
|
||||
} catch (_) {
|
||||
fileHandler = null;
|
||||
}
|
||||
|
||||
const server = http.createServer((req, res) => {
|
||||
// POST /<stand>/_api/assist — ветка AI-ассистента (до проверки 405).
|
||||
if (req.method === 'POST') {
|
||||
@@ -101,6 +110,21 @@ const server = http.createServer((req, res) => {
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
const fileMatch = path.match(/^\/([A-Za-z0-9._-]+)\/_api\/file$/);
|
||||
if (fileMatch && fileHandler && assistShared) {
|
||||
const stand = fileMatch[1];
|
||||
fileHandler(req, res, { stand, vmDocsBaseUrl: VM_DOCS_BASE_URL, shared: assistShared })
|
||||
.catch(() => {
|
||||
try {
|
||||
if (!res.headersSent) {
|
||||
res.writeHead(500, { 'Content-Type': 'application/json; charset=utf-8' });
|
||||
res.end(JSON.stringify({ error: 'internal_error', message: 'file mode failed' }));
|
||||
}
|
||||
} catch (_) { }
|
||||
});
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (req.method !== 'GET' && req.method !== 'HEAD') {
|
||||
|
||||
Reference in New Issue
Block a user