新增每 bot 回覆規範(promptRules)、可讀寫成員(writeUsers,其他人唯讀)、PDF/文字附件;cluemarket-tg-bot 搬入控制台
This commit is contained in:
+8
-2
@@ -6,7 +6,7 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const { TGBOT_HOME, BOT_SCRIPT, jlist, botConfigPathOf } = require('./pm2util');
|
||||
const { loadConfig, SANDBOX_MODES, ENGINE_IDS, SESSION_MODES, CONFIG_BASENAME } = require('./config');
|
||||
const { loadConfig, SANDBOX_MODES, ENGINE_IDS, SESSION_MODES, CONFIG_BASENAME, normalizeUsers } = require('./config');
|
||||
|
||||
const REG_FILE = path.join(TGBOT_HOME, 'registry.json');
|
||||
const BOTS_DIR = path.join(TGBOT_HOME, 'bots');
|
||||
@@ -80,6 +80,8 @@ async function listBots() {
|
||||
sessionMode: cfg?.sessionMode || 'per-chat',
|
||||
networkAccess: !!cfg?.networkAccess,
|
||||
serviceTier: cfg?.serviceTier || '',
|
||||
promptRules: cfg?.promptRules || '',
|
||||
writeUsers: cfg?.writeUsers || [],
|
||||
timeoutMinutes: cfg?.timeoutMinutes || null,
|
||||
tokenMasked: maskToken(cfg?.telegramToken),
|
||||
hasToken: !!cfg?.telegramToken,
|
||||
@@ -116,7 +118,7 @@ function validateBotInput({ name, token, workDir, sandbox, engine }, { isCreate
|
||||
}
|
||||
}
|
||||
|
||||
async function createBot({ name, token, workDir, engine, sandbox, model, reasoningEffort, sessionMode, networkAccess, timeoutMinutes }) {
|
||||
async function createBot({ name, token, workDir, engine, sandbox, model, reasoningEffort, sessionMode, networkAccess, promptRules, writeUsers, timeoutMinutes }) {
|
||||
validateBotInput({ name, token, workDir, sandbox, engine }, { isCreate: true });
|
||||
const reg = loadRegistry();
|
||||
if (reg.bots[name]) throw new Error(`已有同名 bot:${name}`);
|
||||
@@ -135,6 +137,8 @@ async function createBot({ name, token, workDir, engine, sandbox, model, reasoni
|
||||
reasoningEffort: reasoningEffort || '',
|
||||
sessionMode: SESSION_MODES.includes(sessionMode) ? sessionMode : 'per-chat',
|
||||
networkAccess: !!networkAccess,
|
||||
promptRules: typeof promptRules === 'string' ? promptRules.trim() : '',
|
||||
writeUsers: normalizeUsers(writeUsers),
|
||||
serviceTier: 'priority', // codex 速度固定 Fast 1.5x
|
||||
timeoutMinutes: Number(timeoutMinutes) || 30,
|
||||
pm2Name: name,
|
||||
@@ -172,6 +176,8 @@ async function updateBot(name, patch) {
|
||||
if (patch.reasoningEffort !== undefined) raw.reasoningEffort = patch.reasoningEffort;
|
||||
if (SESSION_MODES.includes(patch.sessionMode)) { raw.sessionMode = patch.sessionMode; delete raw.sharedSession; }
|
||||
if (patch.networkAccess !== undefined) raw.networkAccess = !!patch.networkAccess;
|
||||
if (patch.promptRules !== undefined) raw.promptRules = String(patch.promptRules || '').trim();
|
||||
if (patch.writeUsers !== undefined) raw.writeUsers = normalizeUsers(patch.writeUsers);
|
||||
if (patch.timeoutMinutes !== undefined && Number(patch.timeoutMinutes) > 0) {
|
||||
raw.timeoutMinutes = Number(patch.timeoutMinutes);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user