lib.rs 5.4 KB

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