#![allow(clippy::use_self)]
#![allow(clippy::doc_markdown)]
#![allow(clippy::needless_raw_string_hashes)]
#![allow(clippy::needless_borrows_for_generic_args)]
#![allow(clippy::if_same_then_else)]
#![allow(clippy::map_unwrap_or)]
#![allow(clippy::unused_self)]
#![allow(clippy::too_many_arguments)]
#![allow(clippy::struct_excessive_bools)]
#![allow(clippy::cast_possible_wrap)]
#![allow(clippy::only_used_in_recursion)]
#![allow(clippy::self_only_used_in_recursion)]
#![allow(clippy::redundant_pub_crate)]
#![allow(clippy::manual_is_variant_and)]
#![allow(clippy::unnecessary_literal_bound)]
mod code_executor;
pub mod config;
mod explanation;
mod graphql;
pub mod handler;
mod token;
mod types;
pub mod validation;
pub mod templates;
pub mod schema_exposure;
pub mod policy;
pub mod policy_annotations;
#[cfg(test)]
pub mod cedar_validation;
#[cfg(feature = "openapi-code-mode")]
mod javascript;
#[cfg(feature = "sql-code-mode")]
pub mod sql;
#[cfg(feature = "avp")]
pub mod avp;
#[cfg(feature = "js-runtime")]
pub mod executor;
#[cfg(feature = "js-runtime")]
mod eval;
pub use async_trait::async_trait;
pub use code_executor::CodeExecutor;
pub use config::{resolve_server_id_from_env, CodeModeConfig};
pub use explanation::{ExplanationGenerator, TemplateExplanationGenerator};
pub use graphql::{GraphQLOperationType, GraphQLQueryInfo, GraphQLValidator};
#[cfg(feature = "openapi-code-mode")]
pub use javascript::{
ApiCall, HttpMethod, JavaScriptCodeInfo, JavaScriptValidator, OutputDeclaration,
SafetyViolation, SafetyViolationType,
};
#[cfg(feature = "sql-code-mode")]
pub use sql::{SqlStatementInfo, SqlStatementType, SqlValidator};
#[cfg(feature = "js-runtime")]
pub use executor::{
filter_blocked_fields, find_blocked_fields_in_output, ApiCallLog, ArrayMethodCall,
BinaryOperator, BuiltinFunction, CompileError, ExecutionConfig, ExecutionPlan, ExecutionResult,
HttpExecutor, JsExecutor, MockExecutionMode, MockHttpExecutor, MockedCall, PathPart,
PathTemplate, PlanCompiler, PlanExecutor, PlanMetadata, PlanStep, SdkExecutor, UnaryOperator,
ValueExpr,
};
#[cfg(feature = "js-runtime")]
pub use code_executor::{JsCodeExecutor, SdkCodeExecutor};
#[cfg(feature = "mcp-code-mode")]
pub use executor::McpExecutor;
#[cfg(feature = "mcp-code-mode")]
pub use code_executor::McpCodeExecutor;
pub use token::{
canonicalize_code, compute_context_hash, hash_code, ApprovalToken, HmacTokenGenerator,
TokenGenerator, TokenSecret,
};
pub use types::{
CodeLanguage, CodeLocation, CodeType, Complexity, ExecutionError, PolicyViolation, RiskLevel,
SecurityAnalysis, SecurityIssue, SecurityIssueType, TokenError, UnifiedAction, ValidationError,
ValidationMetadata, ValidationResult,
};
pub use validation::{ValidationContext, ValidationPipeline};
pub use templates::TemplateContext;
pub use handler::{
format_error_response, format_execution_error, CodeModeHandler, CodeModeToolBuilder,
ExecuteCodeInput, ValidateCodeInput, ValidationResponse,
};
pub use policy::{
get_baseline_policies, get_code_mode_schema_json, AuthorizationDecision, NoopPolicyEvaluator,
OperationEntity, PolicyEvaluationError, PolicyEvaluator, ServerConfigEntity,
};
#[cfg(feature = "openapi-code-mode")]
pub use policy::{
get_openapi_baseline_policies, get_openapi_code_mode_schema_json, normalize_operation_format,
normalize_path_to_pattern, OpenAPIServerEntity, ScriptEntity,
};
#[cfg(feature = "sql-code-mode")]
pub use policy::{
get_sql_baseline_policies, get_sql_code_mode_schema_json, SqlServerEntity, StatementEntity,
};
#[cfg(feature = "cedar")]
pub use policy::cedar::CedarPolicyEvaluator;
#[cfg(feature = "avp")]
pub use avp::{AvpClient, AvpConfig, AvpError, AvpPolicyEvaluator};
pub use schema_exposure::{
CodeModeExposurePolicy, DerivationMetadata, DerivationStats, DerivedSchema, ExposureMode,
FilterReason, FilteredOperation, GlobalBlocklist, McpExposurePolicy, MethodExposurePolicy,
Operation, OperationCategory, OperationDetails, OperationParameter, OperationRiskLevel,
SchemaDeriver, SchemaFormat, SchemaMetadata, SchemaSource, ToolExposurePolicy, ToolOverride,
};