1pub mod context;
84pub mod crdt;
85pub mod server;
86pub mod storage;
87pub mod sync;
88
89pub mod core;
91
92pub mod api;
96
97#[path = "watcher_legacy/mod.rs"]
99pub mod watcher_legacy;
100
101pub mod orchestrator;
103pub mod watcher;
104
105pub mod version;
107pub mod patterns;
108pub mod injection;
109pub mod error;
110
111pub mod auto_update;
113pub mod profiler;
114pub mod cache;
115
116pub use core::{
121 Forge, ForgeConfig,
122 LifecycleEvent, ToolId, ToolStatus,
123 EditorInfo, EditorType, OutputStrategy,
124 GeneratedFileInfo,
125};
126
127pub use orchestrator::{
132 Conflict, DxTool, ExecutionContext, Orchestrator, OrchestratorConfig, ToolOutput,
133 TrafficAnalyzer, TrafficBranch,
134};
135
136pub use watcher::{ChangeKind, ChangeSource, DualWatcher, FileChange, FileWatcher, LspWatcher};
137
138pub use context::{ComponentStateManager, UpdateResult};
143pub use crdt::{Operation, OperationType, Position};
144pub use storage::{Database, OperationLog};
145
146pub use version::{
151 ToolInfo, ToolRegistry, ToolSource, Version, VersionReq,
152 Snapshot, SnapshotId, SnapshotManager, Branch, ToolState, FileSnapshot, SnapshotDiff,
153};
154pub use patterns::{DxToolType, PatternDetector, PatternMatch};
155pub use injection::{CacheStats, ComponentMetadata, InjectionManager};
156pub use error::{categorize_error, EnhancedError, EnhancedResult, ErrorCategory, RetryPolicy, ToEnhanced, with_retry};
157
158#[deprecated(since = "1.0.0", note = "use `Forge` instead")]
163pub use watcher::DualWatcher as ForgeWatcher;
164
165pub const VERSION: &str = env!("CARGO_PKG_VERSION");
167
168pub use api::lifecycle::{
174 initialize_forge, register_tool, get_tool_context, shutdown_forge,
175};
176
177pub use api::version::{
179 declare_tool_version, enforce_exact_version, require_forge_minimum,
180 current_forge_version, query_active_package_variant, activate_package_variant,
181};
182
183pub use api::pipeline::{
185 execute_pipeline, execute_tool_immediately, get_resolved_execution_order,
186 temporarily_override_pipeline_order, restart_current_pipeline,
187 suspend_pipeline_execution, resume_pipeline_execution,
188};
189
190pub use api::reactivity::{
192 trigger_realtime_event, trigger_debounced_event, trigger_idle_event,
193 begin_batch_operation, end_batch_operation,
194};
195
196pub use api::branching::{
198 apply_changes, apply_changes_with_preapproved_votes, apply_changes_force_unchecked,
199 preview_proposed_changes, automatically_accept_green_conflicts,
200 prompt_review_for_yellow_conflicts, automatically_reject_red_conflicts,
201 revert_most_recent_application, submit_branching_vote,
202 register_permanent_branching_voter, query_predicted_branch_color,
203 is_change_guaranteed_safe, issue_immediate_veto, reset_branching_engine_state,
204 BranchColor, BranchingVote,
205};
206pub use api::events::{
210 publish_event, subscribe_to_event_stream, emit_tool_started_event,
211 emit_tool_completed_event, emit_pipeline_started_event, emit_pipeline_completed_event,
212 emit_package_installation_begin, emit_package_installation_success,
213 emit_security_violation_detected, emit_magical_config_injection, ForgeEvent,
214};
215
216pub use api::config::{
218 get_active_config_file_path, reload_configuration_manifest,
219 enable_live_config_watching, inject_full_config_section_at_cursor,
220 expand_config_placeholder, jump_to_config_section, validate_config_in_realtime,
221 provide_config_completion_suggestions, auto_format_config_file,
222 perform_config_schema_migration, inject_style_tooling_config,
223 inject_authentication_config, inject_ui_framework_config,
224 inject_icon_system_config, inject_font_system_config,
225 inject_media_pipeline_config, inject_package_specific_config,
226};
227
228pub use api::cicd::{
230 trigger_ci_cd_pipeline, register_ci_stage, query_current_ci_status,
231 abort_running_ci_job, synchronize_monorepo_workspace, detect_workspace_root,
232 list_all_workspace_members, broadcast_change_to_workspace,
233};
234
235pub use api::dx_directory::{
237 get_dx_directory_path, get_dx_binary_storage_path, cache_tool_offline_binary,
238 load_tool_offline_binary, commit_current_dx_state, checkout_dx_state,
239 list_dx_history, show_dx_state_diff, push_dx_state_to_remote,
240 pull_dx_state_from_remote,
241};
242
243pub use api::offline::{
245 detect_offline_mode, force_offline_operation, download_missing_tool_binaries,
246 verify_binary_integrity_and_signature, update_tool_binary_atomically,
247};
248
249pub use api::cart::{
251 stage_item_in_cart, commit_entire_cart, commit_cart_immediately,
252 clear_cart_completely, remove_specific_cart_item, get_current_cart_contents,
253 export_cart_as_shareable_json, import_cart_from_json, CartItem,
254};
255
256pub use api::packages::{
258 install_package_with_variant, uninstall_package_safely, update_package_intelligently,
259 list_all_installed_packages, search_dx_package_registry, pin_package_to_exact_version,
260 fork_existing_variant, publish_your_variant, PackageInfo,
261};
262
263pub use api::codegen::{
265 mark_code_region_as_dx_generated, is_region_dx_generated,
266 allow_safe_manual_edit_of_generated_code, claim_full_ownership_of_file,
267 release_ownership_of_file,
268};
269
270pub use api::dx_experience::{
272 project_root_directory, path_to_forge_manifest, dx_global_cache_directory,
273 create_watcher_ignored_scratch_file, log_structured_tool_action,
274 schedule_task_for_idle_time, await_editor_idle_state, request_user_attention_flash,
275 open_file_and_reveal_location, display_inline_code_suggestion,
276 apply_user_accepted_suggestion, show_onboarding_welcome_tour,
277 execute_full_security_audit, generate_comprehensive_project_report,
278 display_dx_command_palette, open_embedded_dx_terminal,
279 trigger_ai_powered_suggestion, apply_ai_generated_completion,
280 open_dx_explorer_sidebar, update_dx_status_bar_indicator,
281};
282
283