/** * Foreground policy: registered tools full code mode keeps declared to the * model beside fabric_exec. It changes visibility only; a direct call takes * the same tool_call hooks and approval risk as `extensions.`. */ export type FabricForegroundReason = "turn-steering" | "human-input" | "context-control" | "skill-loading"; export interface FabricForegroundTool { name: string; owner: string; reason: FabricForegroundReason; } export interface FabricForegroundConfig { tools: FabricForegroundTool[]; maxTools: number; } export type FabricForegroundRefusalReason = "enforce" | "managed-host" | "core" | "builtin" | "unknown" | "inactive" | "not-allowed" | "duplicate" | "cap"; export interface FabricForegroundResolution { tools: readonly string[]; refused: readonly { name: string; reason: FabricForegroundRefusalReason; }[]; } export declare const MAX_FOREGROUND_TOOLS = 8; /** Parse `foreground`. Malformed entries are hard config errors, never dropped. */ export declare const foregroundConfigValue: (value: unknown) => FabricForegroundConfig; export declare const NO_FOREGROUND: FabricForegroundResolution; /** Resolve the declared set in policy order; every skipped entry is reported. */ export declare const resolveForegroundTools: (input: { policy: FabricForegroundConfig; mode: "full-code" | "enforce" | "orchestration"; managedHost?: boolean; managedForeground?: readonly string[] | undefined; registered: readonly { name: string; exposure?: string; sourceInfo?: { source: string; }; }[]; active: ReadonlySet; allowlist?: { has(name: string): boolean; } | undefined; }) => FabricForegroundResolution; /** One line for the session notice and `/fabric status`. */ export declare const formatForeground: ({ tools, refused }: FabricForegroundResolution) => string; //# sourceMappingURL=foreground-tools.d.ts.map