Luigit
repositories / pi-ext

pi-ext

bugabingas pi extensions

owned by admin

extensions/session-rename/src/debug.ts

Raw
import { defineDebug } from "./pi-ext-debug.ts";

type DebugFields = Partial<{
	outcome:
		| "no_session"
		| "no_activity"
		| "manual_lock"
		| "cooldown"
		| "no_transcript"
		| "no_candidate"
		| "cancelled"
		| "stale_session"
		| "name_changed"
		| "unchanged"
		| "renamed"
		| "failed";
}>;
type DebugEvent = "session.start" | "session.shutdown" | "name.outcome";
type DebugSpan = "name.generate";

export const {
	dbg,
	span,
	closeDebug,
}: {
	dbg: ((event: DebugEvent, details?: DebugFields) => void) | undefined;
	span:
		| ((
				event: DebugSpan,
				details?: DebugFields,
		  ) => (outcome?: "finish" | "error", details?: DebugFields) => void)
		| undefined;
	closeDebug: () => void;
} = defineDebug({
	events: ["session.start", "session.shutdown", "name.outcome"],
	spans: ["name.generate"],
	fields: {
		outcome: [
			"no_session",
			"no_activity",
			"manual_lock",
			"cooldown",
			"no_transcript",
			"no_candidate",
			"cancelled",
			"stale_session",
			"name_changed",
			"unchanged",
			"renamed",
			"failed",
		],
	},
} as const);