Skip to main content

agentos_native_sidecar/
lib.rs

1#![forbid(unsafe_code)]
2
3//! Native sidecar scaffold that composes the kernel and execution crates.
4
5pub(crate) mod bootstrap;
6pub(crate) mod bridge;
7// Pure-Rust AES cipher primitives (RustCrypto) replacing the OpenSSL `Crypter`.
8pub(crate) mod crypto_cipher;
9pub(crate) mod execution;
10pub mod extension;
11pub(crate) mod filesystem;
12#[allow(dead_code)]
13pub(crate) mod json_rpc;
14pub mod limits;
15#[cfg(target_os = "macos")]
16pub(crate) mod macos_fs;
17pub(crate) mod metadata;
18pub mod package_projection;
19pub(crate) mod plugins;
20pub mod service;
21pub(crate) mod state;
22pub mod stdio;
23pub(crate) mod tools;
24pub(crate) mod vm;
25pub use agentos_sidecar_protocol::{generated_protocol, protocol, wire};
26
27pub use extension::{
28    Extension, ExtensionContext, ExtensionFuture, ExtensionInterruptRequest,
29    ExtensionInterruptResponse, ExtensionResponse,
30};
31pub use service::{DispatchResult, NativeSidecar, NativeSidecarConfig, SidecarError};
32pub use state::EventSinkTransport;
33pub use state::SidecarRequestTransport;
34
35use wire::{DEFAULT_MAX_FRAME_BYTES, PROTOCOL_NAME, PROTOCOL_VERSION};
36
37pub trait NativeSidecarBridge: agentos_bridge::HostBridge {}
38
39impl<T> NativeSidecarBridge for T where T: agentos_bridge::HostBridge {}
40
41#[derive(Debug, Clone, Copy, PartialEq, Eq)]
42pub struct SidecarScaffold {
43    pub package_name: &'static str,
44    pub binary_name: &'static str,
45    pub kernel_package: &'static str,
46    pub execution_package: &'static str,
47    pub protocol_name: &'static str,
48    pub protocol_version: u16,
49    pub max_frame_bytes: usize,
50}
51
52pub fn scaffold() -> SidecarScaffold {
53    let kernel = agentos_kernel::scaffold();
54    let execution = agentos_execution::scaffold();
55
56    SidecarScaffold {
57        package_name: env!("CARGO_PKG_NAME"),
58        binary_name: env!("CARGO_PKG_NAME"),
59        kernel_package: kernel.package_name,
60        execution_package: execution.package_name,
61        protocol_name: PROTOCOL_NAME,
62        protocol_version: PROTOCOL_VERSION,
63        max_frame_bytes: DEFAULT_MAX_FRAME_BYTES,
64    }
65}