/** * Honeypot decoy credentials. * * When the org enables honeypots (fleet settings → delivered via the runtime * bundle), the daemon plants a small set of decoy credential files in * locations a credential-hunting agent would search. No legitimate tool ever * reads these files, so ANY tool call touching one is a near-zero-false- * positive compromise signal: the deterministic guard blocks it on-device and * the resulting event (categoryId "honeypot") lets the backend auto-contain * the machine. * * Safety rules: * - A decoy is only created where NO file exists. If a real file is already * at a decoy path we skip it and never track it — we must never overwrite * or later delete a user's real file. * - Only files recorded in the state file (i.e. files WE created) are ever * removed when the feature is disabled. */ export interface HoneypotDecoyState { path: string; itemId: string; } export interface HoneypotState { version: 1; enabled: boolean; plantedAt: string; decoys: HoneypotDecoyState[]; } export interface PlantResult { planted: string[]; existing: string[]; skipped: string[]; } /** * Plant (or re-plant) decoys. Idempotent — safe to call on every bundle poll. * Never overwrites a file we did not create. */ export declare function plantHoneypots(): PlantResult; /** Remove decoys WE planted (state-tracked only) and clear the state file. */ export declare function removeHoneypots(): string[]; /** * Absolute paths of active decoys, for the deterministic guard. Fast (one * small JSON read), never throws — enforcement surfaces call this per scan. */ export declare function getHoneypotPaths(): string[];