TimelineFix.h header

#include <ew/app/TimelineFix.h>

Namespace ew::app

Functions

app::ai::AiRequest ew::app::ai::knowledge::buildTimelineFixRequest(const QString &conflictDescription, const QString &eventContext)

Builds an AI request that asks a continuity editor to propose concrete ways to resolve a detected timeline conflict. conflictDescription is the validator's explanation (see TimelineConflict); eventContext describes the events it involves (their titles, dates, participants, and locations, assembled by the caller). The model is told to suggest one or two specific fixes – adjust a date, change a location, split an event, or correct a lifespan – briefly and without inventing facts beyond what is given. Backs DESIGN §4.8 "propose timeline-conflict fixes".

Pure (assembles the prompt only); the caller fills the model from settings, sends it via an AiProvider, and shows the reply as advice. The model name is left empty for the caller to set.

QString ew::app::ai::knowledge::describeConflictEvents(const ew::core::project::Project &project, const ew::app::timeline::TimelineConflict &conflict)

Describes the events a timeline conflict involves – each event's title, start minute, duration, location and participants – as the grounding facts for buildTimelineFixRequest, so the model reasons about the actual events rather than the one-line conflict summary.

Honours the per-object AI opt-out at every level: an event the writer excluded is left out entirely, and an excluded location or participant contributes no name. That opt-out is a different thing from redaction – redaction masks names, and this request deliberately does not use it because the model needs real names to reason; being excluded means the object is not sent at all (F-0111).

English, because it is read by a model rather than by the writer, and the system prompt it travels with is English.