import type { CodaliRuntimeAppToolContract, CodaliRuntimeAppToolGatewayContract, CodaliRuntimeDocdexInput, CodaliRuntimeToolManifest } from "../runtime/CodaliRuntime.js"; import type { CodaliGatewayPolicy, CodaliGatewayToolRiskCategory } from "./CodaliGatewayTypes.js"; export type CodaliGatewayToolCapabilityKind = "actual" | "virtual" | "app_contract" | "app_gateway" | "builtin"; export type CodaliGatewayToolCapabilityStatus = "allowed" | "denied" | "skipped"; export interface CodaliGatewayCompilerIssue { code: string; message: string; tool?: string; severity: "warning" | "error"; details?: Record; } export interface CodaliGatewaySkippedTool { name: string; reason: string; details?: Record; } export interface CodaliGatewayCompiledToolCapability { name: string; kind: CodaliGatewayToolCapabilityKind; status: CodaliGatewayToolCapabilityStatus; readOnly: boolean; riskCategory: CodaliGatewayToolRiskCategory; approvalRequired: boolean; backingTools: string[]; reasons: string[]; } export interface ToolCapabilityCompilerInput { policy: CodaliGatewayPolicy; /** * Tools whose read-only status has been declared by policy rather than * inferred from their name. See {@link classifyCapabilityRisk}. */ declaredReadOnlyTools?: string[]; docdex?: CodaliRuntimeDocdexInput; tools?: CodaliRuntimeToolManifest; requiredDocdexOperations?: string[]; allowedBackingTools?: string[]; } export interface ToolCapabilityCompilation { allowedTools: string[]; deniedTools: string[]; visibleTools: string[]; appVirtualTools: string[]; appToolContracts: Record; appToolGateway?: CodaliRuntimeAppToolGatewayContract; capabilities: CodaliGatewayCompiledToolCapability[]; skippedTools: CodaliGatewaySkippedTool[]; warnings: CodaliGatewayCompilerIssue[]; errors: CodaliGatewayCompilerIssue[]; requiredDocdexOperations: string[]; } export declare const CODALI_GATEWAY_READ_ONLY_BACKING_TOOLS: readonly ["docdex_search", "docdex_batch_search", "docdex_open", "docdex_files", "docdex_tree", "docdex_stats"]; export declare const CODALI_GATEWAY_RESERVED_TOOL_ARG_KEYS: readonly ["apiKey", "api_key", "baseUrl", "base_url", "credentialSource", "credential_source", "docdex", "repo", "repoId", "repo_id", "repoRoot", "repo_root", "tenant", "tenantId", "tenant_id"]; export declare const compileToolCapabilities: (input: ToolCapabilityCompilerInput) => ToolCapabilityCompilation; //# sourceMappingURL=ToolCapabilityCompiler.d.ts.map