43 lines
1.7 KiB
C#
43 lines
1.7 KiB
C#
using System.Text.Json;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace backend.DeviceHub;
|
|
|
|
public record HubEnvelope([property: JsonPropertyName("type")] string Type);
|
|
|
|
public record HelloEnvelope(string Type,
|
|
[property: JsonPropertyName("device_id")] Guid DeviceId,
|
|
[property: JsonPropertyName("client_version")] string ClientVersion) : HubEnvelope(Type);
|
|
|
|
public record HelloAckEnvelope(string Type,
|
|
[property: JsonPropertyName("config")] JsonElement Config) : HubEnvelope(Type);
|
|
|
|
public record PongEnvelope(string Type) : HubEnvelope(Type);
|
|
|
|
public record WakeEnvelope(string Type,
|
|
[property: JsonPropertyName("at")] long? At) : HubEnvelope(Type);
|
|
|
|
public record SessionStartedEnvelope(string Type,
|
|
[property: JsonPropertyName("conversation_id")] Guid ConversationId) : HubEnvelope(Type);
|
|
|
|
public record SessionEndedEnvelope(string Type,
|
|
[property: JsonPropertyName("reason")] string Reason) : HubEnvelope(Type);
|
|
|
|
public record AssistantDoneEnvelope(string Type) : HubEnvelope(Type);
|
|
|
|
public record ToolCallEnvelope(string Type,
|
|
[property: JsonPropertyName("call_id")] string CallId,
|
|
[property: JsonPropertyName("name")] string Name,
|
|
[property: JsonPropertyName("arguments")] JsonElement Arguments) : HubEnvelope(Type);
|
|
|
|
public record ToolResultEnvelope(string Type,
|
|
[property: JsonPropertyName("call_id")] string CallId,
|
|
[property: JsonPropertyName("ok")] bool Ok,
|
|
[property: JsonPropertyName("result")] JsonElement? Result,
|
|
[property: JsonPropertyName("error")] string? Error) : HubEnvelope(Type);
|
|
|
|
public record ErrorEnvelope(string Type,
|
|
[property: JsonPropertyName("code")] string Code,
|
|
[property: JsonPropertyName("message")] string Message,
|
|
[property: JsonPropertyName("fatal")] bool? Fatal) : HubEnvelope(Type);
|