Add hybrid R4R media conversation mode
This commit is contained in:
1 parent
927636ec8b
commit
b73e305cf3
15 files changed
+357
-35
No files matched your search
+17
-1
@@ -62,6 +62,7 @@ describe('ConfigSchema', () => {
|
||||
expect(result.data.reddit.subreddits[0].conversation).toEqual({
|
||||
mode: 'legacy',
|
||||
maxAutomatedTurns: 3,
|
||||
rapportTurnsBeforeMediaAsk: 3,
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -78,6 +79,21 @@ describe('ConfigSchema', () => {
|
||||
})).success).toBe(false);
|
||||
});
|
||||
|
||||
it('accepts the hybrid mode only when rapport completes before the turn limit', () => {
|
||||
expect(ConfigSchema.safeParse(minimalConfig({
|
||||
reddit: { subreddits: [{
|
||||
name: 'r4r',
|
||||
conversation: { mode: 'r4r-media', maxAutomatedTurns: 6, rapportTurnsBeforeMediaAsk: 3 },
|
||||
}] },
|
||||
})).success).toBe(true);
|
||||
expect(ConfigSchema.safeParse(minimalConfig({
|
||||
reddit: { subreddits: [{
|
||||
name: 'r4r',
|
||||
conversation: { mode: 'r4r-media', maxAutomatedTurns: 3, rapportTurnsBeforeMediaAsk: 3 },
|
||||
}] },
|
||||
})).success).toBe(false);
|
||||
});
|
||||
|
||||
it('accepts valid tone values', () => {
|
||||
for (const tone of ['default', 'dominant', 'submissive', 'playful', 'direct', 'gentle', 'kink-friendly', 'teasing']) {
|
||||
const result = ConfigSchema.safeParse({
|
||||
@@ -376,7 +392,7 @@ openrouter:
|
||||
const config = loadConfig();
|
||||
expect(config.reddit.subreddits).toEqual([{
|
||||
name: 'test-sub', enabled: true, type: 'image', tone: 'default',
|
||||
conversation: { mode: 'legacy', maxAutomatedTurns: 3 },
|
||||
conversation: { mode: 'legacy', maxAutomatedTurns: 3, rapportTurnsBeforeMediaAsk: 3 },
|
||||
}]);
|
||||
expect(config.reddit.pollIntervalMs).toBe(5000);
|
||||
expect(config.openrouter.apiKey).toBe('yaml-key');
|
||||
|
||||
Reference in new issue
Block a user