#![forbid(unsafe_code)]
#![allow(dead_code, clippy::unused_async, unused_attributes)]
#![cfg_attr(
test,
allow(
unused_variables,
clippy::assertions_on_constants,
clippy::match_same_arms,
clippy::uninlined_format_args,
clippy::missing_const_for_fn,
clippy::collapsible_if
)
)]
#![allow(
clippy::must_use_candidate,
clippy::doc_markdown,
clippy::missing_errors_doc,
clippy::missing_panics_doc,
clippy::module_name_repetitions,
clippy::similar_names,
clippy::wildcard_imports
)]
extern crate self as pi;
#[cfg(all(feature = "jemalloc", not(target_env = "msvc")))]
#[global_allocator]
static GLOBAL_ALLOCATOR: tikv_jemallocator::Jemalloc = tikv_jemallocator::Jemalloc;
pub mod acp;
pub mod agent;
pub mod agent_cx;
pub mod app;
pub mod auth;
pub mod autocomplete;
pub mod buffer_shim;
pub mod cli;
pub mod compaction;
pub mod compaction_worker;
pub mod config;
pub mod conformance;
pub mod conformance_shapes;
pub mod connectors;
pub mod crypto_shim;
pub mod doctor;
pub mod error;
pub mod error_hints;
pub mod extension_conformance_matrix;
pub mod extension_dispatcher;
pub mod extension_events;
pub mod extension_inclusion;
pub mod extension_index;
pub mod extension_license;
pub mod extension_popularity;
pub mod extension_preflight;
pub mod extension_replay;
pub mod extension_scoring;
pub mod extension_tools;
pub mod extension_validation;
pub mod extensions;
pub mod extensions_js;
pub mod flake_classifier;
pub mod hostcall_amac;
pub mod hostcall_io_uring_lane;
pub mod hostcall_queue;
pub mod hostcall_rewrite;
pub mod hostcall_s3_fifo;
pub mod hostcall_superinstructions;
pub mod hostcall_trace_jit;
pub mod http;
pub mod http_shim;
pub mod interactive;
pub mod keybindings;
pub mod migrations;
pub mod model;
pub mod model_selector;
pub mod models;
pub mod package_manager;
pub mod perf_build;
pub mod permissions;
#[cfg(feature = "wasm-host")]
pub mod pi_wasm;
pub mod platform;
pub mod provider;
pub mod provider_metadata;
pub mod providers;
pub mod resources;
pub mod rpc;
pub mod scheduler;
pub mod sdk;
pub mod session;
pub mod session_index;
pub mod session_metrics;
pub mod session_picker;
#[cfg(feature = "sqlite-sessions")]
pub mod session_sqlite;
pub mod session_store_v2;
pub mod sse;
pub mod terminal_images;
pub mod theme;
pub mod tools;
pub mod tui;
pub mod vcr;
pub mod version_check;
pub use error::{Error, Result as PiResult};
pub use extension_dispatcher::ExtensionDispatcher;
#[cfg(feature = "fuzzing")]
pub mod fuzz_exports {
pub use crate::config::Config;
pub use crate::model::{
AssistantMessage, ContentBlock, Message, StreamEvent, TextContent, ThinkingContent,
ToolCall, ToolResultMessage, Usage, UserContent, UserMessage,
};
pub use crate::session::{Session, SessionEntry, SessionHeader, SessionMessage};
pub use crate::sse::{SseEvent, SseParser};
pub use crate::tools::{fuzz_normalize_dot_segments, fuzz_resolve_path};
pub use crate::providers::anthropic::fuzz::Processor as AnthropicProcessor;
pub use crate::providers::azure::fuzz::Processor as AzureProcessor;
pub use crate::providers::cohere::fuzz::Processor as CohereProcessor;
pub use crate::providers::gemini::fuzz::Processor as GeminiProcessor;
pub use crate::providers::openai::fuzz::Processor as OpenAIProcessor;
pub use crate::providers::openai_responses::fuzz::Processor as OpenAIResponsesProcessor;
pub use crate::providers::vertex::fuzz::Processor as VertexProcessor;
}