< Summary

Information
Class: Elsa.AI.Abstractions.Models.CreateAISessionRequest
Assembly: Elsa.AI.Abstractions
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.AI.Abstractions/Models/AIConversation.cs
Line coverage
100%
Covered lines: 5
Uncovered lines: 0
Coverable lines: 5
Total lines: 124
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_ConversationId()100%11100%
get_Agent()100%11100%
get_TenantId()100%11100%
get_ProviderConfiguration()100%11100%
get_Metadata()100%11100%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.AI.Abstractions/Models/AIConversation.cs

#LineLine coverage
 1namespace Elsa.AI.Abstractions.Models;
 2
 3public record AIConversation
 4{
 5    public string Id { get; init; } = default!;
 6    public string? TenantId { get; init; }
 7    public string UserId { get; init; } = default!;
 8    public string? Title { get; init; }
 9    public AIConversationStatus Status { get; init; } = AIConversationStatus.Active;
 10    public DateTimeOffset CreatedAt { get; init; }
 11    public DateTimeOffset UpdatedAt { get; init; }
 12    public string? ProviderSessionId { get; init; }
 13    public AIRetentionMode RetentionMode { get; init; } = AIRetentionMode.Configured;
 14    public DateTimeOffset? RetentionExpiresAt { get; init; }
 15    public IReadOnlyCollection<AIMessage> Messages { get; init; } = [];
 16}
 17
 18public record AIMessage
 19{
 20    public string Id { get; init; } = default!;
 21    public string ConversationId { get; init; } = default!;
 22    public AIMessageRole Role { get; init; }
 23    public string Content { get; init; } = "";
 24    public DateTimeOffset CreatedAt { get; init; }
 25    public long StreamSequence { get; init; }
 26    public JsonObject Metadata { get; init; } = [];
 27}
 28
 29public record AIChatRequest
 30{
 31    public string? ConversationId { get; init; }
 32    public string Message { get; init; } = "";
 33    public string? Agent { get; init; }
 34    public string? ProviderName { get; init; }
 35    public ICollection<AIContextAttachment> Attachments { get; init; } = [];
 36    public string? TenantId { get; init; }
 37    public string UserId { get; init; } = default!;
 38    public ICollection<string> UserPermissions { get; init; } = [];
 39    public bool IsReconnect { get; init; }
 40}
 41
 42public record AIStreamEvent
 43{
 44    public string Type { get; init; } = default!;
 45    public string ConversationId { get; init; } = default!;
 46    public long Sequence { get; init; }
 47    public DateTimeOffset Timestamp { get; init; }
 48    public JsonObject Data { get; init; } = [];
 49}
 50
 51public record AISessionHandle
 52{
 53    public string Id { get; init; } = Guid.NewGuid().ToString("N");
 54    public string? ProviderSessionId { get; init; }
 55}
 56
 57public record CreateAISessionRequest
 58{
 6359    public string ConversationId { get; init; } = default!;
 2560    public string? Agent { get; init; }
 2561    public string? TenantId { get; init; }
 2662    public AIProviderConfiguration? ProviderConfiguration { get; init; }
 2563    public JsonObject Metadata { get; init; } = [];
 64}
 65
 66public record AITurnRequest
 67{
 68    public string ConversationId { get; init; } = default!;
 69    public string? ProviderSessionId { get; init; }
 70    public string Message { get; init; } = "";
 71    public IReadOnlyCollection<AIMessage> Messages { get; init; } = [];
 72    public IReadOnlyCollection<AIResolvedContext> Context { get; init; } = [];
 73    public IReadOnlyCollection<AIToolDefinition> Tools { get; init; } = [];
 74    public IReadOnlyCollection<AIToolTurnResult> ToolResults { get; init; } = [];
 75    public string? Agent { get; init; }
 76    public AIProviderConfiguration? ProviderConfiguration { get; init; }
 77}
 78
 79public record AIProviderConfiguration
 80{
 81    public string Name { get; init; } = default!;
 82    public string Provider { get; init; } = default!;
 83    public string? Model { get; init; }
 84    public string? ApiKeySecretName { get; init; }
 85    public string? Endpoint { get; init; }
 86}
 87
 88public record AIToolTurnResult
 89{
 90    public string ToolCallId { get; init; } = default!;
 91    public string ToolName { get; init; } = default!;
 92    public AIToolResult Result { get; init; } = new();
 93}
 94
 95public record AIProviderEvent
 96{
 97    public string Type { get; init; } = default!;
 98    public long Sequence { get; init; }
 99    public DateTimeOffset Timestamp { get; init; }
 100    public JsonObject Data { get; init; } = [];
 101}
 102
 103public enum AIConversationStatus
 104{
 105    Active,
 106    Completed,
 107    Failed,
 108    Expired
 109}
 110
 111public enum AIRetentionMode
 112{
 113    Configured,
 114    Ephemeral,
 115    Durable
 116}
 117
 118public enum AIMessageRole
 119{
 120    User,
 121    Assistant,
 122    System,
 123    Tool
 124}