- Add Journal.AI project with LLamaSharp-based AI service (Phi-3 model) - Implement coach sessions (daily check-in, evening review, weekly review) - Add conversation CRUD with SQLCipher persistence - AI chat with full conversation history for context-aware replies - Frontend: CoachPanel, AI stores, conversation stores, side panel UI - Conversation list with create, rename, and delete support - Fix Phi-3 output quality (system prompt leaking, token cleanup, JSON filtering) - Fix CREATEDRAFT kind override in coach sessions Co-Authored-By: Oz <oz-agent@warp.dev>
27 lines
1.0 KiB
C#
27 lines
1.0 KiB
C#
using Journal.Core.Dtos;
|
|
|
|
namespace Journal.Core.Services.Ai;
|
|
|
|
public sealed class DisabledCoachService(string message = "Coach is not available. Set JOURNAL_AI_PROVIDER to enable.") : ICoachService
|
|
{
|
|
private readonly string _message = message;
|
|
|
|
public Task<CoachPlanDto> DailyCheckInAsync(CoachContextDto context, CancellationToken cancellationToken = default)
|
|
=> Task.FromResult(Disabled("daily_checkin"));
|
|
|
|
public Task<CoachPlanDto> EveningReviewAsync(CoachContextDto context, CancellationToken cancellationToken = default)
|
|
=> Task.FromResult(Disabled("evening_review"));
|
|
|
|
public Task<CoachPlanDto> WeeklyReviewAsync(CoachContextDto context, CancellationToken cancellationToken = default)
|
|
=> Task.FromResult(Disabled("weekly_review"));
|
|
|
|
private CoachPlanDto Disabled(string kind) => new(
|
|
Kind: kind,
|
|
Title: "Coach Disabled",
|
|
Summary: _message,
|
|
Questions: [],
|
|
SuggestedNextActions: [],
|
|
SuggestedTags: [],
|
|
Evidence: []);
|
|
}
|