/** * integrity-guard.ts * * Extension: Integrity Guard * Triggers: on_input, before_agent_start * * Monitors user input for academic integrity risk patterns. * Skill routing (safe vs. graded) is driven by the active RubricSpec's * integrityProfile — set via setIntegrityProfile() when a domain package loads * its rubric. Falls back to Core defaults when no rubric is active: * safeSkills: [], gradedSkills: ["attempt"] * * Also reinforces graded-mode constraints on every agent turn when a session * has been flagged as graded (see graded-session.ts). */ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"; export type IntegrityRisk = "none" | "low" | "medium" | "high"; export interface IntegrityCheckResult { risk: IntegrityRisk; reason?: string; warning?: string; shouldAskUser?: boolean; isJailbreak?: boolean; } export interface PromptInjectionResult { detected: boolean; warning?: string; } export declare function setIntegrityProfile(profile: { safeSkills: string[]; gradedSkills: string[]; }): void; export declare function resetIntegrityProfile(): void; export declare function detectPromptInjection(content: string): PromptInjectionResult; export declare function checkIntegrityRisk(userInput: string, skillName: string, strictness?: "strict" | "balanced" | "relaxed"): IntegrityCheckResult; export default function (pi: ExtensionAPI): void; export declare function run(context: { skillName: string; userInput: string; strictness?: "strict" | "balanced" | "relaxed"; }): { block: boolean; inject: string; }; //# sourceMappingURL=integrity-guard.d.ts.map