Luigit
repositories / pi-ext

pi-ext

bugabingas pi extensions

owned by admin

extensions/prompt-autopsy/src/debug.ts

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

type PromptAutopsyEvent = "session.start" | "session.shutdown" | "prompt.skip";
type PromptAutopsySpan = "prompt.open";
type PromptAutopsyDetails = Partial<{
	reason: "not_captured";
	outcome: "opened" | "editor_failed" | "failed";
}>;

export const {
	dbg,
	span,
	closeDebug,
}: {
	dbg:
		| ((event: PromptAutopsyEvent, details?: PromptAutopsyDetails) => void)
		| undefined;
	span:
		| ((
				event: PromptAutopsySpan,
				details?: PromptAutopsyDetails,
		  ) => (
				outcome?: "finish" | "error",
				details?: PromptAutopsyDetails,
		  ) => void)
		| undefined;
	closeDebug: () => void;
} = defineDebug({
	events: ["session.start", "session.shutdown", "prompt.skip"],
	spans: ["prompt.open"],
	fields: {
		reason: ["not_captured"],
		outcome: ["opened", "editor_failed", "failed"],
	},
} as const);