mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-29 01:42:19 +00:00
* refactor(rust): extract litellm-host-native as the shared Rust host driver Move service and hook dispatch out of host-http into a Driver that owns the machine and Rust handlers, returning at completion or a stream boundary and holding the demand reply until the consumer advances. Move the in-process runner onto the same driver. host-http now layers encoding, SSE, body polling and lifecycle observation over it. host-python keeps driving litellm-host directly Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * fix(rust): interrupt the machine when the in-process stream consumer fails Restores the pre-refactor interruption path for StreamConsumer errors via Driver::fail and ports the generic run lifecycle tests into host-native. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * refactor(rust): separate the machine contract from coroutine execution * auth update * refactor(rust): use standard flow control for host requests * style(rust): keep host driver imports formatted * chores * mostly relocation * refactor(rust): separate interceptors from queued observers * refactor(rust): centralize legacy callback mappings and lifecycle * docs: define Python host boundaries and migration plan * refactor: enforce Python host and bridge boundaries * refactor(rust): separate operations from callback composition * refactor(rust): compose SDK policy through call hooks --------- Co-authored-by: Yujong Lee <yujong@berri.ai> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
24 lines
908 B
Rust
24 lines
908 B
Rust
//! The legacy `@client` wrapper as the native call sees it: litellm's `Logging` object, the
|
|
//! sync and async callback registries it fans out to, the deployment hooks and the deferred
|
|
//! proxy release. All of it sits behind one
|
|
//! [`PythonCallHooks`](litellm_host_python::PythonCallHooks), so the driver, the routes and
|
|
//! core never learn which Python object is on the other end.
|
|
//!
|
|
//! Legacy callbacks receive the caller's own objects and may mutate them. [`PublicCall`]
|
|
//! is where those objects live.
|
|
|
|
mod adapter;
|
|
mod call;
|
|
mod callbacks;
|
|
mod deferred;
|
|
mod logger;
|
|
mod mapping;
|
|
mod python;
|
|
pub use adapter::LegacyLogging;
|
|
pub use call::PublicCall;
|
|
pub(crate) use callbacks::{LegacyCallbacks, is_internal_call};
|
|
pub(crate) use logger::{DeploymentHooks, PythonLogger, finalize, setup};
|
|
pub use mapping::{CallBoundary, CallbackMapping, Dispatch, callback_mappings};
|
|
|
|
#[cfg(test)]
|
|
mod test_support;
|