lib.rs 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. mod bash;
  2. pub mod bash_validation;
  3. mod bootstrap;
  4. mod compact;
  5. mod config;
  6. mod conversation;
  7. mod file_ops;
  8. mod hooks;
  9. mod json;
  10. pub mod lsp_client;
  11. mod mcp;
  12. mod mcp_client;
  13. pub mod mcp_lifecycle_hardened;
  14. mod mcp_stdio;
  15. pub mod mcp_tool_bridge;
  16. mod oauth;
  17. pub mod permission_enforcer;
  18. mod permissions;
  19. mod prompt;
  20. mod remote;
  21. pub mod sandbox;
  22. mod session;
  23. mod sse;
  24. pub mod task_registry;
  25. pub mod team_cron_registry;
  26. mod usage;
  27. pub mod worker_boot;
  28. pub use bash::{execute_bash, BashCommandInput, BashCommandOutput};
  29. pub use bootstrap::{BootstrapPhase, BootstrapPlan};
  30. pub use compact::{
  31. compact_session, estimate_session_tokens, format_compact_summary,
  32. get_compact_continuation_message, should_compact, CompactionConfig, CompactionResult,
  33. };
  34. pub use config::{
  35. ConfigEntry, ConfigError, ConfigLoader, ConfigSource, McpConfigCollection,
  36. McpManagedProxyServerConfig, McpOAuthConfig, McpRemoteServerConfig, McpSdkServerConfig,
  37. McpServerConfig, McpStdioServerConfig, McpTransport, McpWebSocketServerConfig, OAuthConfig,
  38. ResolvedPermissionMode, RuntimeConfig, RuntimeFeatureConfig, RuntimeHookConfig,
  39. RuntimePermissionRuleConfig, RuntimePluginConfig, ScopedMcpServerConfig,
  40. CLAW_SETTINGS_SCHEMA_NAME,
  41. };
  42. pub use conversation::{
  43. auto_compaction_threshold_from_env, ApiClient, ApiRequest, AssistantEvent, AutoCompactionEvent,
  44. ConversationRuntime, PromptCacheEvent, RuntimeError, StaticToolExecutor, ToolError,
  45. ToolExecutor, TurnSummary,
  46. };
  47. pub use file_ops::{
  48. edit_file, glob_search, grep_search, read_file, write_file, EditFileOutput, GlobSearchOutput,
  49. GrepSearchInput, GrepSearchOutput, ReadFileOutput, StructuredPatchHunk, TextFilePayload,
  50. WriteFileOutput,
  51. };
  52. pub use hooks::{
  53. HookAbortSignal, HookEvent, HookProgressEvent, HookProgressReporter, HookRunResult, HookRunner,
  54. };
  55. pub use mcp::{
  56. mcp_server_signature, mcp_tool_name, mcp_tool_prefix, normalize_name_for_mcp,
  57. scoped_mcp_config_hash, unwrap_ccr_proxy_url,
  58. };
  59. pub use mcp_client::{
  60. McpClientAuth, McpClientBootstrap, McpClientTransport, McpManagedProxyTransport,
  61. McpRemoteTransport, McpSdkTransport, McpStdioTransport,
  62. };
  63. pub use mcp_lifecycle_hardened::{
  64. McpDegradedReport, McpErrorSurface, McpFailedServer, McpLifecyclePhase, McpLifecycleState,
  65. McpLifecycleValidator, McpPhaseResult,
  66. };
  67. pub use mcp_stdio::{
  68. spawn_mcp_stdio_process, JsonRpcError, JsonRpcId, JsonRpcRequest, JsonRpcResponse,
  69. ManagedMcpTool, McpDiscoveryFailure, McpInitializeClientInfo, McpInitializeParams,
  70. McpInitializeResult, McpInitializeServerInfo, McpListResourcesParams, McpListResourcesResult,
  71. McpListToolsParams, McpListToolsResult, McpReadResourceParams, McpReadResourceResult,
  72. McpResource, McpResourceContents, McpServerManager, McpServerManagerError, McpStdioProcess,
  73. McpTool, McpToolCallContent, McpToolCallParams, McpToolCallResult, McpToolDiscoveryReport,
  74. UnsupportedMcpServer,
  75. };
  76. pub use oauth::{
  77. clear_oauth_credentials, code_challenge_s256, credentials_path, generate_pkce_pair,
  78. generate_state, load_oauth_credentials, loopback_redirect_uri, parse_oauth_callback_query,
  79. parse_oauth_callback_request_target, save_oauth_credentials, OAuthAuthorizationRequest,
  80. OAuthCallbackParams, OAuthRefreshRequest, OAuthTokenExchangeRequest, OAuthTokenSet,
  81. PkceChallengeMethod, PkceCodePair,
  82. };
  83. pub use permissions::{
  84. PermissionContext, PermissionMode, PermissionOutcome, PermissionOverride, PermissionPolicy,
  85. PermissionPromptDecision, PermissionPrompter, PermissionRequest,
  86. };
  87. pub use prompt::{
  88. load_system_prompt, prepend_bullets, ContextFile, ProjectContext, PromptBuildError,
  89. SystemPromptBuilder, FRONTIER_MODEL_NAME, SYSTEM_PROMPT_DYNAMIC_BOUNDARY,
  90. };
  91. pub use remote::{
  92. inherited_upstream_proxy_env, no_proxy_list, read_token, upstream_proxy_ws_url,
  93. RemoteSessionContext, UpstreamProxyBootstrap, UpstreamProxyState, DEFAULT_REMOTE_BASE_URL,
  94. DEFAULT_SESSION_TOKEN_PATH, DEFAULT_SYSTEM_CA_BUNDLE, NO_PROXY_HOSTS, UPSTREAM_PROXY_ENV_KEYS,
  95. };
  96. pub use sandbox::{
  97. build_linux_sandbox_command, detect_container_environment, detect_container_environment_from,
  98. resolve_sandbox_status, resolve_sandbox_status_for_request, ContainerEnvironment,
  99. FilesystemIsolationMode, LinuxSandboxCommand, SandboxConfig, SandboxDetectionInputs,
  100. SandboxRequest, SandboxStatus,
  101. };
  102. pub use session::{
  103. ContentBlock, ConversationMessage, MessageRole, Session, SessionCompaction, SessionError,
  104. SessionFork,
  105. };
  106. pub use sse::{IncrementalSseParser, SseEvent};
  107. pub use usage::{
  108. format_usd, pricing_for_model, ModelPricing, TokenUsage, UsageCostEstimate, UsageTracker,
  109. };
  110. pub use worker_boot::{
  111. Worker, WorkerEvent, WorkerEventKind, WorkerFailure, WorkerFailureKind, WorkerReadySnapshot,
  112. WorkerRegistry, WorkerStatus,
  113. };
  114. #[cfg(test)]
  115. pub(crate) fn test_env_lock() -> std::sync::MutexGuard<'static, ()> {
  116. static LOCK: std::sync::OnceLock<std::sync::Mutex<()>> = std::sync::OnceLock::new();
  117. LOCK.get_or_init(|| std::sync::Mutex::new(()))
  118. .lock()
  119. .unwrap_or_else(std::sync::PoisonError::into_inner)
  120. }