overseer configurables

This commit is contained in:
legop3
2026-05-28 03:03:10 -04:00
parent c84724c1b6
commit 6dfc30d1f6
2 changed files with 14 additions and 1 deletions
+2
View File
@@ -18,6 +18,8 @@ overseerControl:
observeOnly: true observeOnly: true
alwaysRunModel: false alwaysRunModel: false
postToolsOnlyMessages: false postToolsOnlyMessages: false
tiebreakerEnable: false
runWhileNoPeopleOnline: false
name: "The Overseer" name: "The Overseer"
model: "qwen2.5:7b-instruct" model: "qwen2.5:7b-instruct"
ollamaServer: "http://127.0.0.1:11434" ollamaServer: "http://127.0.0.1:11434"
@@ -44,6 +44,8 @@ const heartbeatMs = normalizeMs(Number(overseerConfig.heartbeatMs), DEFAULT_HEAR
const postChatDelayMs = normalizeMs(Number(overseerConfig.postChatDelayMs), DEFAULT_POST_CHAT_DELAY_MS); const postChatDelayMs = normalizeMs(Number(overseerConfig.postChatDelayMs), DEFAULT_POST_CHAT_DELAY_MS);
const alwaysRunModel = Boolean(overseerConfig.alwaysRunModel); const alwaysRunModel = Boolean(overseerConfig.alwaysRunModel);
const postToolsOnlyMessages = Boolean(overseerConfig.postToolsOnlyMessages); const postToolsOnlyMessages = Boolean(overseerConfig.postToolsOnlyMessages);
const tiebreakerEnable = Boolean(overseerConfig.tiebreakerEnable);
const runWhileNoPeopleOnline = Boolean(overseerConfig.runWhileNoPeopleOnline);
const profileImageUrl = String(overseerConfig.profileImageUrl || '').trim() || null; const profileImageUrl = String(overseerConfig.profileImageUrl || '').trim() || null;
const ollamaClient = ollamaUrl ? new Ollama({ host: ollamaUrl }) : null; const ollamaClient = ollamaUrl ? new Ollama({ host: ollamaUrl }) : null;
@@ -72,6 +74,8 @@ let status = {
postChatDelayMs, postChatDelayMs,
alwaysRunModel, alwaysRunModel,
postToolsOnlyMessages, postToolsOnlyMessages,
tiebreakerEnable,
runWhileNoPeopleOnline,
running: false, running: false,
inFlight: false, inFlight: false,
phase: 'idle', phase: 'idle',
@@ -134,7 +138,14 @@ function buildVoteStatus() {
const eligibleCount = votesByIdentity.size; const eligibleCount = votesByIdentity.size;
const onlineCount = yesCount + noCount; const onlineCount = yesCount + noCount;
const gatePassed = eligibleCount > 0 && yesCount > noCount; let gatePassed = false;
if (eligibleCount === 0) {
gatePassed = runWhileNoPeopleOnline;
} else if (yesCount === noCount) {
gatePassed = tiebreakerEnable;
} else {
gatePassed = yesCount > noCount;
}
return { return {
yesCount, yesCount,
noCount, noCount,