Shaheer Sarfaraz 3fee6e0bef
Add shared writing style preferences (#240)
* Add shared writing style preferences

* Address PR review feedback

* Add scoring instructions settings

* Polish writing style inputs

* Clarify do-not-use terms guidance

* Normalize blank writing style overrides

* Refactor writing style resolution to use effective values and enhance blank value handling
2026-03-06 17:31:11 +00:00

36 lines
1.2 KiB
TypeScript

import * as settingsRepo from "@server/repositories/settings";
import { settingsRegistry } from "@shared/settings-registry";
export type WritingStyle = {
tone: string;
formality: string;
constraints: string;
doNotUse: string;
};
export async function getWritingStyle(): Promise<WritingStyle> {
const [toneRaw, formalityRaw, constraintsRaw, doNotUseRaw] =
await Promise.all([
settingsRepo.getSetting("chatStyleTone"),
settingsRepo.getSetting("chatStyleFormality"),
settingsRepo.getSetting("chatStyleConstraints"),
settingsRepo.getSetting("chatStyleDoNotUse"),
]);
return {
tone:
settingsRegistry.chatStyleTone.parse(toneRaw ?? undefined) ??
settingsRegistry.chatStyleTone.default(),
formality:
settingsRegistry.chatStyleFormality.parse(formalityRaw ?? undefined) ??
settingsRegistry.chatStyleFormality.default(),
constraints:
settingsRegistry.chatStyleConstraints.parse(
constraintsRaw ?? undefined,
) ?? settingsRegistry.chatStyleConstraints.default(),
doNotUse:
settingsRegistry.chatStyleDoNotUse.parse(doNotUseRaw ?? undefined) ??
settingsRegistry.chatStyleDoNotUse.default(),
};
}