refactor: complete config unification and split db helpers
This commit is contained in:
86
src/config/schema.ts
Normal file
86
src/config/schema.ts
Normal file
@@ -0,0 +1,86 @@
|
||||
import type { MoaConfig } from '../moa.js';
|
||||
import type { AgentType } from '../types.js';
|
||||
|
||||
export interface RoleModelConfig {
|
||||
model?: string;
|
||||
effort?: string;
|
||||
fallbackEnabled: boolean;
|
||||
}
|
||||
|
||||
export interface AppConfig {
|
||||
assistant: {
|
||||
name: string;
|
||||
hasOwnNumber: boolean;
|
||||
slug: string;
|
||||
triggerPattern: RegExp;
|
||||
};
|
||||
service: {
|
||||
id: string;
|
||||
sessionScope: string;
|
||||
claudeId: string;
|
||||
codexMainId: string;
|
||||
codexReviewId: string;
|
||||
};
|
||||
paths: {
|
||||
projectRoot: string;
|
||||
homeDir: string;
|
||||
senderAllowlistPath: string;
|
||||
storeDir: string;
|
||||
groupsDir: string;
|
||||
dataDir: string;
|
||||
cacheDir: string;
|
||||
};
|
||||
runtime: {
|
||||
pollInterval: number;
|
||||
schedulerPollInterval: number;
|
||||
failoverMinDurationMs: number;
|
||||
agentTimeout: number;
|
||||
agentMaxOutputSize: number;
|
||||
ipcPollInterval: number;
|
||||
idleTimeout: number;
|
||||
maxConcurrentAgents: number;
|
||||
recoveryConcurrentAgents: number;
|
||||
recoveryStaggerMs: number;
|
||||
recoveryDurationMs: number;
|
||||
};
|
||||
logging: {
|
||||
level: string;
|
||||
isTestEnv: boolean;
|
||||
};
|
||||
paired: {
|
||||
ownerAgentType: AgentType;
|
||||
reviewerAgentType: AgentType;
|
||||
reviewerServiceIdForType: string;
|
||||
arbiterAgentType?: AgentType;
|
||||
arbiterServiceId: string | null;
|
||||
agentLanguage: string;
|
||||
arbiterDeadlockThreshold: number;
|
||||
maxRoundTrips: number;
|
||||
};
|
||||
models: {
|
||||
owner: RoleModelConfig;
|
||||
reviewer: RoleModelConfig;
|
||||
arbiter: RoleModelConfig;
|
||||
};
|
||||
providers: {
|
||||
claudeDefaultModel: string;
|
||||
codexDefaultModel: string;
|
||||
};
|
||||
moa: MoaConfig;
|
||||
status: {
|
||||
channelId: string;
|
||||
updateInterval: number;
|
||||
usageUpdateInterval: number;
|
||||
showRooms: boolean;
|
||||
showRoomDetails: boolean;
|
||||
usageDashboardEnabled: boolean;
|
||||
timezone: string;
|
||||
};
|
||||
sessionCommands: {
|
||||
allowedSenders: Set<string>;
|
||||
};
|
||||
deltaHandoff: {
|
||||
enabled: boolean;
|
||||
canaryGroups: Set<string>;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user