Feat : Log recorder
This commit is contained in:
@@ -521,6 +521,54 @@ export function emptyStatus(): AgentStatus {
|
||||
|
||||
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
||||
|
||||
/**
|
||||
* Nature d'un évènement journalisé.
|
||||
*
|
||||
* Le message reste du texte libre, destiné à être lu ; ce champ le classe, pour
|
||||
* que l'historique d'une VM puisse être filtré et illustré sans avoir à faire
|
||||
* de l'analyse de chaîne. Il est facultatif : un agent d'une version antérieure
|
||||
* n'en envoie pas, et son entrée s'affiche simplement sans pictogramme.
|
||||
*
|
||||
* Le préfixe porte la catégorie — l'interface s'en sert pour ses filtres, donc
|
||||
* un nouvel évènement doit réutiliser un préfixe existant quand c'est possible.
|
||||
*/
|
||||
export const AGENT_EVENTS = [
|
||||
'agent.connected',
|
||||
'agent.disconnected',
|
||||
'agent.enrolled',
|
||||
'agent.updated',
|
||||
'obs.connected',
|
||||
'obs.disconnected',
|
||||
'record.started',
|
||||
'record.stopped',
|
||||
'record.paused',
|
||||
'record.resumed',
|
||||
'record.split',
|
||||
'stream.started',
|
||||
'stream.stopped',
|
||||
'capture.started',
|
||||
'capture.stopped',
|
||||
'watch.started',
|
||||
'watch.private',
|
||||
'watch.public',
|
||||
'watch.offline',
|
||||
'watch.failed',
|
||||
'fullscreen.restored',
|
||||
'fullscreen.failed',
|
||||
'browser.opened',
|
||||
'browser.closed',
|
||||
'preset.applied',
|
||||
'preset.failed',
|
||||
'config.changed',
|
||||
'command.failed',
|
||||
] as const;
|
||||
|
||||
export type AgentEvent = (typeof AGENT_EVENTS)[number];
|
||||
|
||||
export function isAgentEvent(value: unknown): value is AgentEvent {
|
||||
return typeof value === 'string' && (AGENT_EVENTS as readonly string[]).includes(value);
|
||||
}
|
||||
|
||||
export interface HelloMessage {
|
||||
type: 'hello';
|
||||
protocol: number;
|
||||
@@ -550,6 +598,7 @@ export interface LogMessage {
|
||||
level: LogLevel;
|
||||
message: string;
|
||||
ts: number;
|
||||
event?: AgentEvent;
|
||||
}
|
||||
|
||||
export interface PongMessage {
|
||||
@@ -635,6 +684,8 @@ export interface LogEntry {
|
||||
level: LogLevel;
|
||||
message: string;
|
||||
ts: number;
|
||||
/** Absent sur les entrées anciennes et sur celles des agents non mis à jour. */
|
||||
event: AgentEvent | null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user