1#![allow(clippy::use_self)]
7#![allow(clippy::doc_markdown)]
8#![allow(clippy::needless_raw_string_hashes)]
9#![allow(clippy::needless_borrows_for_generic_args)]
10#![allow(clippy::if_same_then_else)]
11#![allow(clippy::map_unwrap_or)]
12#![allow(clippy::unused_self)]
13#![allow(clippy::too_many_arguments)]
14#![allow(clippy::struct_excessive_bools)]
15#![allow(clippy::cast_possible_wrap)]
16#![allow(clippy::only_used_in_recursion)]
17#![allow(clippy::self_only_used_in_recursion)]
18#![allow(clippy::redundant_pub_crate)]
19#![allow(clippy::manual_is_variant_and)]
20#![allow(clippy::unnecessary_literal_bound)]
21
22mod code_executor;
59
60pub mod config;
61mod explanation;
62mod graphql;
63pub mod handler;
64mod token;
65mod types;
66pub mod validation;
67
68pub mod templates;
70
71pub mod schema_exposure;
73
74pub mod policy;
76
77pub mod policy_annotations;
79
80#[cfg(test)]
82pub mod cedar_validation;
83
84#[cfg(feature = "openapi-code-mode")]
86mod javascript;
87
88#[cfg(feature = "sql-code-mode")]
90pub mod sql;
91
92#[cfg(feature = "avp")]
94pub mod avp;
95
96#[cfg(feature = "js-runtime")]
98pub mod executor;
99
100#[cfg(feature = "js-runtime")]
113pub mod eval;
114
115pub use async_trait::async_trait;
117
118pub use code_executor::CodeExecutor;
120
121pub use config::{resolve_server_id_from_env, CodeModeConfig};
123
124pub use explanation::{ExplanationGenerator, TemplateExplanationGenerator};
125
126pub use graphql::{GraphQLOperationType, GraphQLQueryInfo, GraphQLValidator};
127
128#[cfg(feature = "openapi-code-mode")]
130pub use javascript::{
131 ApiCall, HttpMethod, JavaScriptCodeInfo, JavaScriptValidator, OutputDeclaration,
132 SafetyViolation, SafetyViolationType,
133};
134
135#[cfg(feature = "sql-code-mode")]
137pub use sql::{SqlStatementInfo, SqlStatementType, SqlValidator};
138
139#[cfg(feature = "js-runtime")]
141pub use executor::{
142 filter_blocked_fields, find_blocked_fields_in_output, ApiCallLog, ArrayMethodCall,
143 BinaryOperator, BuiltinFunction, CompileError, ExecutionConfig, ExecutionPlan, ExecutionResult,
144 HttpExecutor, JsExecutor, MockExecutionMode, MockHttpExecutor, MockedCall, PathPart,
145 PathTemplate, PlanCompiler, PlanExecutor, PlanMetadata, PlanStep, SdkExecutor, UnaryOperator,
146 ValueExpr,
147};
148
149#[cfg(feature = "js-runtime")]
151pub use code_executor::{JsCodeExecutor, SdkCodeExecutor};
152
153#[cfg(feature = "mcp-code-mode")]
155pub use executor::McpExecutor;
156
157#[cfg(feature = "mcp-code-mode")]
158pub use code_executor::McpCodeExecutor;
159
160pub use token::{
161 canonicalize_code, compute_context_hash, hash_code, ApprovalToken, HmacTokenGenerator,
162 TokenGenerator, TokenSecret,
163};
164
165pub use types::{
166 CodeLanguage, CodeLocation, CodeType, Complexity, ExecutionError, PolicyViolation, RiskLevel,
167 SecurityAnalysis, SecurityIssue, SecurityIssueType, TokenError, UnifiedAction, ValidationError,
168 ValidationMetadata, ValidationResult,
169};
170
171pub use validation::{ValidationContext, ValidationPipeline};
172
173pub use templates::TemplateContext;
175
176pub use handler::{
178 format_error_response, format_execution_error, CodeModeHandler, CodeModeToolBuilder,
179 ExecuteCodeInput, ValidateCodeInput, ValidationResponse,
180};
181
182pub use policy::{
184 get_baseline_policies, get_code_mode_schema_json, AuthorizationDecision, NoopPolicyEvaluator,
185 OperationEntity, PolicyEvaluationError, PolicyEvaluator, ServerConfigEntity,
186};
187
188#[cfg(feature = "openapi-code-mode")]
189pub use policy::{
190 get_openapi_baseline_policies, get_openapi_code_mode_schema_json, normalize_operation_format,
191 normalize_path_to_pattern, OpenAPIServerEntity, ScriptEntity,
192};
193
194#[cfg(feature = "sql-code-mode")]
195pub use policy::{
196 get_sql_baseline_policies, get_sql_code_mode_schema_json, SqlServerEntity, StatementEntity,
197};
198
199#[cfg(feature = "cedar")]
201pub use policy::cedar::CedarPolicyEvaluator;
202
203#[cfg(feature = "avp")]
205pub use avp::{AvpClient, AvpConfig, AvpError, AvpPolicyEvaluator};
206
207pub use schema_exposure::{
209 CodeModeExposurePolicy, DerivationMetadata, DerivationStats, DerivedSchema, ExposureMode,
210 FilterReason, FilteredOperation, GlobalBlocklist, McpExposurePolicy, MethodExposurePolicy,
211 Operation, OperationCategory, OperationDetails, OperationParameter, OperationRiskLevel,
212 SchemaDeriver, SchemaFormat, SchemaMetadata, SchemaSource, ToolExposurePolicy, ToolOverride,
213};