Add commute report support to interaction service

This commit is contained in:
Jacob Dubin
2026-05-18 06:33:35 -05:00
parent b25793443f
commit d3f9de9503
7 changed files with 144 additions and 8 deletions

View File

@@ -3974,6 +3974,7 @@ public sealed class JiboInteractionServiceTests
private static JiboInteractionService CreateService(
IPersonalMemoryStore? personalMemoryStore = null,
IWeatherReportProvider? weatherReportProvider = null,
ICommuteReportProvider? commuteReportProvider = null,
INewsBriefingProvider? newsBriefingProvider = null,
IJiboExperienceContentRepository? contentRepository = null,
IJiboRandomizer? randomizer = null)
@@ -3983,6 +3984,7 @@ public sealed class JiboInteractionServiceTests
randomizer ?? new FirstItemRandomizer(),
personalMemoryStore ?? new InMemoryPersonalMemoryStore(),
weatherReportProvider,
commuteReportProvider,
newsBriefingProvider);
}
@@ -4076,4 +4078,16 @@ public sealed class JiboInteractionServiceTests
return Task.FromResult(catalog);
}
}
private sealed class CapturingCommuteReportProvider : ICommuteReportProvider
{
public CommuteReportSnapshot? Snapshot { get; init; }
public Task<CommuteReportSnapshot?> GetReportAsync(
TurnContext turn,
CancellationToken cancellationToken = default)
{
return Task.FromResult(Snapshot);
}
}
}

View File

@@ -21,7 +21,7 @@ public sealed class JiboWebSocketServiceTests
var contentRepository = new InMemoryJiboExperienceContentRepository();
var contentCache = new JiboExperienceContentCache(contentRepository);
var conversationBroker = new DemoConversationBroker(new JiboInteractionService(contentCache,
new LastItemRandomizer(), new InMemoryPersonalMemoryStore()));
new LastItemRandomizer(), new InMemoryPersonalMemoryStore(), null, null, null));
var sttSelector = new DefaultSttStrategySelector(
[
new SyntheticBufferedAudioSttStrategy()
@@ -4732,6 +4732,7 @@ public sealed class JiboWebSocketServiceTests
customStore,
new StubWeatherReportProvider(
new WeatherReportSnapshot("Lone Jack, US", "overcast clouds", 79, 82, 78, "clouds", false)),
null,
new StubNewsBriefingProvider(
new NewsBriefingSnapshot(
[
@@ -5122,6 +5123,7 @@ public sealed class JiboWebSocketServiceTests
private static JiboWebSocketService CreateService(
InMemoryCloudStateStore stateStore,
IWeatherReportProvider? weatherReportProvider = null,
ICommuteReportProvider? commuteReportProvider = null,
INewsBriefingProvider? newsBriefingProvider = null)
{
var contentRepository = new InMemoryJiboExperienceContentRepository();
@@ -5131,6 +5133,7 @@ public sealed class JiboWebSocketServiceTests
new DefaultJiboRandomizer(),
new InMemoryPersonalMemoryStore(),
weatherReportProvider,
commuteReportProvider,
newsBriefingProvider);
var conversationBroker = new DemoConversationBroker(interactionService);
var sttSelector = new DefaultSttStrategySelector(