Seed type-only Logger surface for HostContract dependency

This commit is contained in:
2026-04-14 22:02:41 +03:00
parent 9c5f834334
commit 9acccffe8c
+27
View File
@@ -0,0 +1,27 @@
// Ownership: src/observability/logger/ is owned by Phase 1 sub-plan 1G-logger.
// This type-only seed exists because Phase 1A-1's HostContract depends on Logger.
// Sub-plan 1G-logger extends this file with runtime transports.
export type LogLevel = "debug" | "info" | "warn" | "error";
export type LogFields = Record<string, string | number | boolean | null | undefined>;
export interface Logger {
debug(msg: string, fields?: LogFields): void;
info(msg: string, fields?: LogFields): void;
warn(msg: string, fields?: LogFields): void;
error(msg: string, fields?: LogFields & { err?: Error }): void;
child(context: LogFields): Logger;
}
export interface LogRecord {
ts: string;
level: LogLevel;
msg: string;
fields: LogFields;
}
export interface LogTransport {
write(record: LogRecord): void;
flush(): Promise<void>;
}