feat: add group activation command

This commit is contained in:
Peter Steinberger
2025-12-22 20:36:29 +01:00
parent 5d2d701e1e
commit f10c8f2b4c
13 changed files with 356 additions and 47 deletions

View File

@@ -73,10 +73,7 @@ export type TelegramConfig = {
webhookPath?: string;
};
export type GroupChatActivationMode = "mention" | "always";
export type GroupChatConfig = {
activation?: GroupChatActivationMode;
requireMention?: boolean;
mentionPatterns?: string[];
historyLimit?: number;
@@ -292,9 +289,6 @@ const ClawdisSchema = z.object({
timestampPrefix: z.union([z.boolean(), z.string()]).optional(),
groupChat: z
.object({
activation: z
.union([z.literal("mention"), z.literal("always")])
.optional(),
requireMention: z.boolean().optional(),
mentionPatterns: z.array(z.string()).optional(),
historyLimit: z.number().int().positive().optional(),

View File

@@ -1,11 +0,0 @@
import type { ClawdisConfig, GroupChatActivationMode } from "./config.js";
export function resolveGroupChatActivation(
cfg?: ClawdisConfig,
): GroupChatActivationMode {
const groupChat = cfg?.inbound?.groupChat;
if (groupChat?.activation === "always") return "always";
if (groupChat?.activation === "mention") return "mention";
if (groupChat?.requireMention === false) return "always";
return "mention";
}

View File

@@ -17,6 +17,7 @@ export type SessionEntry = {
abortedLastRun?: boolean;
thinkingLevel?: string;
verboseLevel?: string;
groupActivation?: "mention" | "always";
inputTokens?: number;
outputTokens?: number;
totalTokens?: number;
@@ -43,6 +44,7 @@ export function resolveDefaultSessionStorePath(): string {
return path.join(resolveSessionTranscriptsDir(), "sessions.json");
}
export const DEFAULT_RESET_TRIGGER = "/new";
export const DEFAULT_RESET_TRIGGERS = ["/new", "/reset"];
export const DEFAULT_IDLE_MINUTES = 60;
export function resolveSessionTranscriptPath(sessionId: string): string {