import type { RiskLevel, ToolCall } from "../types.js"; import type { SessionInput, SessionTransportKind } from "../interactive-session/types.js"; import { type EngagementScope } from "../store/scope.js"; export interface RiskDecision { level: RiskLevel; reason: string; } export declare function isPrivateIpv4(value: string): boolean; export declare function isPentestToolCall(call: ToolCall): boolean; export interface ClassifyOptions { scope?: EngagementScope | undefined; } export declare function scopeTargetForToolCall(call: ToolCall): string | undefined; export declare function scopeHint(target: string | undefined): string; /** * Classify a raw shell command line into safe / confirm / block. Shared by * shell.exec and shell.start so starting a service/server is as frictionless * as running it inline, while genuinely mutating/destructive commands still * gate behind a confirmation. */ export declare function classifyShellCommand(command: string, options?: ClassifyOptions): RiskDecision; export interface InteractiveInputPolicyContext { readonly ownerId: string; readonly sessionId: string; readonly transport: SessionTransportKind; readonly input: SessionInput; readonly scope?: EngagementScope | undefined; } export declare function classifyInteractiveInput(context: InteractiveInputPolicyContext): RiskDecision; export declare function classifyToolCall(call: ToolCall, options?: ClassifyOptions): RiskDecision;