Table of Contents

Interface ISupportResponder

Namespace
Tharga.Team
Assembly
Tharga.Team.dll

Answers a support case on behalf of an assistant.

public interface ISupportResponder

Remarks

A port, in the domain's language. It names cases and answers; it knows nothing of models, prompts, tokens or chat completions. That is what keeps the choice of provider — a local model, a self-hosted one, or a hosted API — entirely the host's, and keeps every one of those words out of this package.

It answers; it does not act. An implementation reads to answer well, but closing, assigning and reopening a case stay with people. An assistant that can close its own cases can close the ones it answered badly.

Declining is an answer. A responder that cannot help says so and the case goes to a person, which is an ordinary outcome rather than a failure — so it is a returned value and not an exception.

Methods

AnswerAsync(SupportCase, IReadOnlyList<SupportMessage>, CancellationToken)

Answers the newest message on a case, or declines to.

Task<SupportAnswer> AnswerAsync(SupportCase supportCase, IReadOnlyList<SupportMessage> transcript, CancellationToken cancellationToken = default)

Parameters

supportCase SupportCase
transcript IReadOnlyList<SupportMessage>
cancellationToken CancellationToken

Returns

Task<SupportAnswer>

Remarks

The case and its transcript are handed in, not fetched. The responder is given exactly what the authorized caller had already read, so it cannot reach further even if it tried — an assistant with a wider view than its user would be a data leak wearing a helpful face. It also keeps the port free of the service that calls it, which would otherwise be a dependency cycle.