| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- //! Core runtime primitives for the `claw` CLI and supporting crates.
- //!
- //! This crate owns session persistence, permission evaluation, prompt assembly,
- //! MCP plumbing, tool-facing file operations, and the core conversation loop
- //! that drives interactive and one-shot turns.
- mod bash;
- pub mod bash_validation;
- mod bootstrap;
- mod compact;
- mod config;
- mod conversation;
- mod file_ops;
- pub mod green_contract;
- mod hooks;
- mod json;
- mod lane_events;
- pub mod lsp_client;
- mod mcp;
- mod mcp_client;
- pub mod mcp_lifecycle_hardened;
- mod mcp_stdio;
- pub mod mcp_tool_bridge;
- mod oauth;
- pub mod permission_enforcer;
- mod permissions;
- pub mod plugin_lifecycle;
- mod policy_engine;
- mod prompt;
- pub mod recovery_recipes;
- mod remote;
- pub mod sandbox;
- mod session;
- pub mod session_control;
- mod sse;
- pub mod stale_branch;
- pub mod summary_compression;
- pub mod task_packet;
- pub mod task_registry;
- pub mod team_cron_registry;
- pub mod trust_resolver;
- mod usage;
- pub mod worker_boot;
- pub use bash::{execute_bash, BashCommandInput, BashCommandOutput};
- pub use bootstrap::{BootstrapPhase, BootstrapPlan};
- pub use compact::{
- compact_session, estimate_session_tokens, format_compact_summary,
- get_compact_continuation_message, should_compact, CompactionConfig, CompactionResult,
- };
- pub use config::{
- ConfigEntry, ConfigError, ConfigLoader, ConfigSource, McpConfigCollection,
- McpManagedProxyServerConfig, McpOAuthConfig, McpRemoteServerConfig, McpSdkServerConfig,
- McpServerConfig, McpStdioServerConfig, McpTransport, McpWebSocketServerConfig, OAuthConfig,
- ResolvedPermissionMode, RuntimeConfig, RuntimeFeatureConfig, RuntimeHookConfig,
- RuntimePermissionRuleConfig, RuntimePluginConfig, ScopedMcpServerConfig,
- CLAW_SETTINGS_SCHEMA_NAME,
- };
- pub use conversation::{
- auto_compaction_threshold_from_env, ApiClient, ApiRequest, AssistantEvent, AutoCompactionEvent,
- ConversationRuntime, PromptCacheEvent, RuntimeError, StaticToolExecutor, ToolError,
- ToolExecutor, TurnSummary,
- };
- pub use file_ops::{
- edit_file, glob_search, grep_search, read_file, write_file, EditFileOutput, GlobSearchOutput,
- GrepSearchInput, GrepSearchOutput, ReadFileOutput, StructuredPatchHunk, TextFilePayload,
- WriteFileOutput,
- };
- pub use hooks::{
- HookAbortSignal, HookEvent, HookProgressEvent, HookProgressReporter, HookRunResult, HookRunner,
- };
- pub use lane_events::{
- LaneEvent, LaneEventBlocker, LaneEventName, LaneEventStatus, LaneFailureClass,
- };
- pub use mcp::{
- mcp_server_signature, mcp_tool_name, mcp_tool_prefix, normalize_name_for_mcp,
- scoped_mcp_config_hash, unwrap_ccr_proxy_url,
- };
- pub use mcp_client::{
- McpClientAuth, McpClientBootstrap, McpClientTransport, McpManagedProxyTransport,
- McpRemoteTransport, McpSdkTransport, McpStdioTransport,
- };
- pub use mcp_lifecycle_hardened::{
- McpDegradedReport, McpErrorSurface, McpFailedServer, McpLifecyclePhase, McpLifecycleState,
- McpLifecycleValidator, McpPhaseResult,
- };
- pub use mcp_stdio::{
- spawn_mcp_stdio_process, JsonRpcError, JsonRpcId, JsonRpcRequest, JsonRpcResponse,
- ManagedMcpTool, McpDiscoveryFailure, McpInitializeClientInfo, McpInitializeParams,
- McpInitializeResult, McpInitializeServerInfo, McpListResourcesParams, McpListResourcesResult,
- McpListToolsParams, McpListToolsResult, McpReadResourceParams, McpReadResourceResult,
- McpResource, McpResourceContents, McpServerManager, McpServerManagerError, McpStdioProcess,
- McpTool, McpToolCallContent, McpToolCallParams, McpToolCallResult, McpToolDiscoveryReport,
- UnsupportedMcpServer,
- };
- pub use oauth::{
- clear_oauth_credentials, code_challenge_s256, credentials_path, generate_pkce_pair,
- generate_state, load_oauth_credentials, loopback_redirect_uri, parse_oauth_callback_query,
- parse_oauth_callback_request_target, save_oauth_credentials, OAuthAuthorizationRequest,
- OAuthCallbackParams, OAuthRefreshRequest, OAuthTokenExchangeRequest, OAuthTokenSet,
- PkceChallengeMethod, PkceCodePair,
- };
- pub use permissions::{
- PermissionContext, PermissionMode, PermissionOutcome, PermissionOverride, PermissionPolicy,
- PermissionPromptDecision, PermissionPrompter, PermissionRequest,
- };
- pub use plugin_lifecycle::{
- DegradedMode, DiscoveryResult, PluginHealthcheck, PluginLifecycle, PluginLifecycleEvent,
- PluginState, ResourceInfo, ServerHealth, ServerStatus, ToolInfo,
- };
- pub use policy_engine::{
- evaluate, DiffScope, GreenLevel, LaneBlocker, LaneContext, PolicyAction, PolicyCondition,
- PolicyEngine, PolicyRule, ReconcileReason, ReviewStatus,
- };
- pub use prompt::{
- load_system_prompt, prepend_bullets, ContextFile, ProjectContext, PromptBuildError,
- SystemPromptBuilder, FRONTIER_MODEL_NAME, SYSTEM_PROMPT_DYNAMIC_BOUNDARY,
- };
- pub use recovery_recipes::{
- attempt_recovery, recipe_for, EscalationPolicy, FailureScenario, RecoveryContext,
- RecoveryEvent, RecoveryRecipe, RecoveryResult, RecoveryStep,
- };
- pub use remote::{
- inherited_upstream_proxy_env, no_proxy_list, read_token, upstream_proxy_ws_url,
- RemoteSessionContext, UpstreamProxyBootstrap, UpstreamProxyState, DEFAULT_REMOTE_BASE_URL,
- DEFAULT_SESSION_TOKEN_PATH, DEFAULT_SYSTEM_CA_BUNDLE, NO_PROXY_HOSTS, UPSTREAM_PROXY_ENV_KEYS,
- };
- pub use sandbox::{
- build_linux_sandbox_command, detect_container_environment, detect_container_environment_from,
- resolve_sandbox_status, resolve_sandbox_status_for_request, ContainerEnvironment,
- FilesystemIsolationMode, LinuxSandboxCommand, SandboxConfig, SandboxDetectionInputs,
- SandboxRequest, SandboxStatus,
- };
- pub use session::{
- ContentBlock, ConversationMessage, MessageRole, Session, SessionCompaction, SessionError,
- SessionFork,
- };
- pub use sse::{IncrementalSseParser, SseEvent};
- pub use stale_branch::{
- apply_policy, check_freshness, BranchFreshness, StaleBranchAction, StaleBranchEvent,
- StaleBranchPolicy,
- };
- pub use task_packet::{validate_packet, TaskPacket, TaskPacketValidationError, ValidatedPacket};
- pub use trust_resolver::{TrustConfig, TrustDecision, TrustEvent, TrustPolicy, TrustResolver};
- pub use usage::{
- format_usd, pricing_for_model, ModelPricing, TokenUsage, UsageCostEstimate, UsageTracker,
- };
- pub use worker_boot::{
- Worker, WorkerEvent, WorkerEventKind, WorkerEventPayload, WorkerFailure, WorkerFailureKind,
- WorkerPromptTarget, WorkerReadySnapshot, WorkerRegistry, WorkerStatus, WorkerTrustResolution,
- };
- #[cfg(test)]
- pub(crate) fn test_env_lock() -> std::sync::MutexGuard<'static, ()> {
- static LOCK: std::sync::OnceLock<std::sync::Mutex<()>> = std::sync::OnceLock::new();
- LOCK.get_or_init(|| std::sync::Mutex::new(()))
- .lock()
- .unwrap_or_else(std::sync::PoisonError::into_inner)
- }
|