Add per-subreddit R4R conversation modes
This commit is contained in:
1 parent
23d4c3a320
commit
0f76bcf59a
14 files changed
+343
-24
No files matched your search
@@ -25,6 +25,10 @@ export const RuntimeConfigSchema = z.strictObject({
|
||||
browser: z.strictObject({ dryRun: z.boolean() }),
|
||||
reddit: RuntimeRedditConfigSchema,
|
||||
});
|
||||
export const ConversationBehaviourSchema = z.strictObject({
|
||||
mode: z.union([z.literal('legacy'), z.literal('r4r'), z.literal('manual')]).default('legacy'),
|
||||
maxAutomatedTurns: z.number().int().min(1).max(20).default(3),
|
||||
}).default({ mode: 'legacy', maxAutomatedTurns: 3 });
|
||||
export const SubredditConfigSchema = z.strictObject({
|
||||
name: z.string(),
|
||||
enabled: z.boolean().default(true),
|
||||
@@ -32,6 +36,7 @@ export const SubredditConfigSchema = z.strictObject({
|
||||
weight: z.number().optional(),
|
||||
tone: ToneKeySchema,
|
||||
scripted: z.string().optional(),
|
||||
conversation: ConversationBehaviourSchema,
|
||||
});
|
||||
export const ConfigResponseSchema = RuntimeConfigSchema.extend({
|
||||
subreddits: z.array(SubredditConfigSchema),
|
||||
|
||||
@@ -145,7 +145,13 @@ describe('dashboard endpoint contracts', () => {
|
||||
subreddits: [{ name: 'example', enabled: true, type: 'chat', weight: 2, tone: 'direct' }],
|
||||
tones: ['default', 'direct'],
|
||||
};
|
||||
expect(ConfigResponseSchema.parse(payload)).toEqual(payload);
|
||||
expect(ConfigResponseSchema.parse(payload)).toEqual({
|
||||
...payload,
|
||||
subreddits: [{
|
||||
...payload.subreddits[0],
|
||||
conversation: { mode: 'legacy', maxAutomatedTurns: 3 },
|
||||
}],
|
||||
});
|
||||
expect(ConfigResponseSchema.safeParse({ ...payload, tones: [1] }).success).toBe(false);
|
||||
expect(ConfigUpdateRequestSchema.safeParse({
|
||||
rateLimit: { maxMessagesPerHour: 10 }, browser: { dryRun: true }, advanced: { media: { syncEnabled: false } },
|
||||
|
||||
Reference in new issue
Block a user