Add ActiveDevice + DeviceRegistry + HubEnvelopes + IDeviceClient/Channel implementations
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
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);
|
||||
Reference in New Issue
Block a user