Luigit
repositories / pi-ext

pi-ext

bugabingas pi extensions

owned by admin

extensions/ultra/dynamic-types.ts

Raw
import type { ToolDefinition } from "@earendil-works/pi-coding-agent";

export interface ResolvedDynamicExtension {
	name: string;
	description: string;
	revision: string;
	selector: string;
	/** Immutable catalog source used for repair and attestation diagnostics. */
	canonicalPath: string;
	/** Exact run-local snapshot directory loaded by the child. */
	sourcePath: string;
	loadPath: string;
	overrides: string[];
}

export interface UsedDynamicExtension {
	name: string;
	description: string;
	selector: string;
	sourcePath: string;
	debugLogPaths: string[];
}

export interface DynamicExtensionResolver {
	resolve(
		names: string[],
		args: { phase: string; agentId: string; signal?: AbortSignal },
	): Promise<ResolvedDynamicExtension[]>;
	builder(
		agentId: string,
		signal?: AbortSignal,
	): Promise<{
		tools: ToolDefinition[];
		prompt: string;
		activeTools: string[];
	}>;
	loaded(
		extensions: ResolvedDynamicExtension[],
		sessionId: string,
	): UsedDynamicExtension[];
	complete(): Promise<void>;
}