Luigit
repositories / pi-ext

pi-ext

bugabingas pi extensions

owned by admin

extensions/context-size/src/pi-ext-footer-segment.ts

Raw
// Generated by scripts/codegen.mjs. DO NOT EDIT.
// ============================================================================
// THIS FILE IS GENERATED. DO NOT EDIT IT DIRECTLY.
// Instead, edit scripts/codegen/templates/pi-ext-footer-segment.ts.
// Then run: mise run //:codegen
// ============================================================================
import type { ExtensionAPI, ThemeColor } from "@earendil-works/pi-coding-agent";

export type FooterSegment = {
	id: string;
	text: string;
	variants?: string[];
	icon?: string;
	color?: ThemeColor;
	bar?: number;
	suffix?: string;
	zone: "workspace" | "llm";
	group?: string;
	separator?: string;
	gap?: number;
	order?: number;
};

type FooterSegmentEvent = FooterSegment | { id: string; text: undefined };

function emitFooterSegment(
	pi: ExtensionAPI,
	segment: FooterSegmentEvent,
): boolean {
	let accepted = false;
	pi.events.emit("footer:segment", {
		...segment,
		accept: () => {
			accepted = true;
		},
	});
	return accepted;
}

/** Offer a footer segment and report its synchronous acceptance. */
export function offerFooterSegment(
	pi: ExtensionAPI,
	segment: FooterSegment,
): boolean {
	return emitFooterSegment(pi, segment);
}

/** Remove a footer segment and report its synchronous acceptance. */
export function removeFooterSegment(pi: ExtensionAPI, id: string): boolean {
	return emitFooterSegment(pi, { id, text: undefined });
}