1#![forbid(unsafe_code)]
21#![allow(dead_code, clippy::unused_async, unused_attributes)]
22#![allow(
24 clippy::must_use_candidate,
25 clippy::doc_markdown,
26 clippy::missing_errors_doc,
27 clippy::missing_panics_doc,
28 clippy::module_name_repetitions,
29 clippy::similar_names,
30 clippy::wildcard_imports
31)]
32
33extern crate self as pi;
36
37#[cfg(all(feature = "jemalloc", not(target_env = "msvc")))]
40#[global_allocator]
41static GLOBAL_ALLOCATOR: tikv_jemallocator::Jemalloc = tikv_jemallocator::Jemalloc;
42
43pub mod agent;
44pub mod agent_cx;
45pub mod app;
46pub mod auth;
47pub mod autocomplete;
48pub mod buffer_shim;
49pub mod cli;
50pub mod compaction;
51pub mod compaction_worker;
52pub mod config;
53pub mod conformance;
54pub mod conformance_shapes;
55pub mod connectors;
56pub mod crypto_shim;
57pub mod doctor;
58pub mod error;
59pub mod error_hints;
60pub mod extension_conformance_matrix;
61pub mod extension_dispatcher;
62pub mod extension_events;
63pub mod extension_inclusion;
64pub mod extension_index;
65pub mod extension_license;
66pub mod extension_popularity;
67pub mod extension_preflight;
68pub mod extension_replay;
69pub mod extension_scoring;
70pub mod extension_tools;
71pub mod extension_validation;
72pub mod extensions;
73pub mod extensions_js;
74pub mod flake_classifier;
75pub mod hostcall_amac;
76pub mod hostcall_io_uring_lane;
77pub mod hostcall_queue;
78pub mod hostcall_rewrite;
79pub mod hostcall_s3_fifo;
80pub mod hostcall_superinstructions;
81pub mod hostcall_trace_jit;
82pub mod http;
83pub mod http_shim;
84pub mod interactive;
85pub mod keybindings;
86pub mod migrations;
87pub mod model;
88pub mod model_selector;
89pub mod models;
90pub mod package_manager;
91pub mod perf_build;
92pub mod permissions;
93#[cfg(feature = "wasm-host")]
94pub mod pi_wasm;
95pub mod provider;
96pub mod provider_metadata;
97pub mod providers;
98pub mod resources;
99pub mod rpc;
100pub mod scheduler;
101pub mod sdk;
102pub mod session;
103pub mod session_index;
104pub mod session_metrics;
105pub mod session_picker;
106#[cfg(feature = "sqlite-sessions")]
107pub mod session_sqlite;
108pub mod session_store_v2;
109pub mod sse;
110pub mod terminal_images;
111pub mod theme;
112pub mod tools;
113pub mod tui;
114pub mod vcr;
115pub mod version_check;
116
117pub use error::{Error, Result as PiResult};
118pub use extension_dispatcher::ExtensionDispatcher;
119
120#[cfg(feature = "fuzzing")]
125pub mod fuzz_exports {
126 pub use crate::config::Config;
134 pub use crate::model::{
135 AssistantMessage, ContentBlock, Message, StreamEvent, TextContent, ThinkingContent,
136 ToolCall, ToolResultMessage, Usage, UserContent, UserMessage,
137 };
138 pub use crate::session::{Session, SessionEntry, SessionHeader, SessionMessage};
139 pub use crate::sse::{SseEvent, SseParser};
140 pub use crate::tools::{fuzz_normalize_dot_segments, fuzz_resolve_path};
141
142 pub use crate::providers::anthropic::fuzz::Processor as AnthropicProcessor;
144 pub use crate::providers::azure::fuzz::Processor as AzureProcessor;
145 pub use crate::providers::cohere::fuzz::Processor as CohereProcessor;
146 pub use crate::providers::gemini::fuzz::Processor as GeminiProcessor;
147 pub use crate::providers::openai::fuzz::Processor as OpenAIProcessor;
148 pub use crate::providers::openai_responses::fuzz::Processor as OpenAIResponsesProcessor;
149 pub use crate::providers::vertex::fuzz::Processor as VertexProcessor;
150}