agentos_native_sidecar/
lib.rs1#![forbid(unsafe_code)]
2
3pub(crate) mod bootstrap;
6pub(crate) mod bridge;
7pub(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}