import { Authorizer, PermissionsService } from "@gotgenes/pi-permission-system"; import { z } from "zod"; import { ExtensionAPI, ModelRegistry, SessionManager } from "@earendil-works/pi-coding-agent"; //#region src/config.d.ts declare const EXTENSION_ID = "pi-permission-auto-review"; declare const AUTHORIZER_NAME = "auto-review"; declare const DEFAULT_PROVIDER = "openai-codex"; declare const DEFAULT_MODEL = "codex-auto-review"; declare const DEFAULT_TIMEOUT_MS = 9e4; declare const CONFIG_SCHEMA_URL = "https://raw.githubusercontent.com/mzwing/pi-packages/main/packages/pi-permission-auto-review/schemas/config.schema.json"; declare const REASONING_LEVELS: readonly ["off", "minimal", "low", "medium", "high", "xhigh", "max"]; type AutoReviewConfigSchema = z.ZodObject<{ $schema: z.ZodOptional; additionalPolicy: z.ZodOptional; provider: z.ZodDefault; model: z.ZodDefault; reasoning: z.ZodDefault>; timeoutMs: z.ZodDefault; includeBaselinePolicy: z.ZodDefault; }, z.core.$strict>; declare const autoReviewConfigSchema: AutoReviewConfigSchema; type AutoReviewConfig = z.infer; interface AutoReviewConfigFile { $schema?: string | undefined; provider?: string | undefined; model?: string | undefined; reasoning?: (typeof REASONING_LEVELS)[number] | undefined; timeoutMs?: number | undefined; includeBaselinePolicy?: boolean | undefined; additionalPolicy?: string | undefined; } interface ConfigIssue { sourcePath: string; message: string; } interface LoadConfigResult { config: AutoReviewConfig | undefined; issues: ConfigIssue[]; globalPath: string; projectPath: string; } interface LoadConfigOptions { cwd: string; agentDir?: string; readFile?: (path: string) => string | undefined; } interface AutoReviewConfigPaths { globalPath: string; projectPath: string; } declare function loadAutoReviewConfig(options: LoadConfigOptions): LoadConfigResult; declare function buildAutoReviewJsonSchema(): Record; //#endregion //#region src/circuit-breaker.d.ts declare class DenialCircuitBreaker { private consecutiveDenials; private recentDenials; isOpen(): boolean; recordDenied(): void; recordNonDenial(): void; resetTurn(): void; private recordRecent; } //#endregion //#region src/config-store.d.ts type AutoReviewConfigScope = "global" | "project"; interface ScopeSnapshotBase { scope: AutoReviewConfigScope; cwd: string; path: string; source: string | undefined; } type AutoReviewScopeSnapshot = (ScopeSnapshotBase & { valid: true; config: AutoReviewConfigFile; }) | (ScopeSnapshotBase & { valid: false; issue: ConfigIssue; }); type ConfigMutationResult = { ok: true; loadResult: LoadConfigResult; snapshot: AutoReviewScopeSnapshot; } | { ok: false; message: string; }; interface AutoReviewConfigFileSystem { readFile: (path: string) => string | undefined; writeFile: (path: string, source: string) => void; rename: (sourcePath: string, destinationPath: string) => void; mkdir: (path: string) => void; unlink: (path: string) => void; } interface AutoReviewConfigStoreOptions { agentDir?: string; fileSystem?: AutoReviewConfigFileSystem; } declare class AutoReviewConfigStore { readonly agentDir: string; private readonly fileSystem; constructor(options?: AutoReviewConfigStoreOptions); getPaths(cwd: string): AutoReviewConfigPaths; load(cwd: string): LoadConfigResult; readScope(cwd: string, scope: AutoReviewConfigScope): AutoReviewScopeSnapshot; save(snapshot: AutoReviewScopeSnapshot, draft: AutoReviewConfigFile): ConfigMutationResult; reset(snapshot: AutoReviewScopeSnapshot): ConfigMutationResult; private loadWithOverride; private serialize; private checkForConflict; private cleanupTempFile; } //#endregion //#region src/extension.d.ts interface SessionRuntime { registry: ModelRegistry; sessionManager: Pick; } interface ReviewerFactoryOptions extends SessionRuntime { config: AutoReviewConfig; circuitBreaker: DenialCircuitBreaker; sessionSignal: AbortSignal; } interface AutoReviewExtensionDependencies { configStore?: AutoReviewConfigStore; getPermissionsService?: (sessionId: string) => PermissionsService | undefined; createReviewer?: (options: ReviewerFactoryOptions) => Authorizer["authorize"]; } declare function createAutoReviewExtension(pi: ExtensionAPI, dependencies?: AutoReviewExtensionDependencies): void; //#endregion //#region src/index.d.ts declare function permissionAutoReviewExtension(pi: ExtensionAPI): void; //#endregion export { AUTHORIZER_NAME, type AutoReviewConfig, CONFIG_SCHEMA_URL, type ConfigIssue, DEFAULT_MODEL, DEFAULT_PROVIDER, DEFAULT_TIMEOUT_MS, EXTENSION_ID, type LoadConfigOptions, type LoadConfigResult, autoReviewConfigSchema, buildAutoReviewJsonSchema, createAutoReviewExtension, permissionAutoReviewExtension as default, loadAutoReviewConfig }; //# sourceMappingURL=index.d.ts.map