1#![forbid(unsafe_code)]
2
3mod common;
6mod host_node;
7mod node_import_cache;
8mod runtime_support;
9mod signal;
10pub mod v8_host;
11pub mod v8_ipc;
12pub mod v8_runtime;
13
14pub mod benchmark;
15#[allow(dead_code, unused_imports)]
16pub mod javascript;
17pub mod python;
18pub mod wasm;
19
20pub use agentos_bridge::GuestRuntime;
21pub use agentos_v8_runtime::bridge::EMULATED_OPENSSL_VERSION;
22pub use agentos_v8_runtime::execution::GuestModuleReader;
23pub use javascript::{
24 record_sync_bridge_request_enqueued, record_sync_bridge_request_observed,
25 CreateJavascriptContextRequest, GuestRuntimeConfig, JavascriptContext, JavascriptExecution,
26 JavascriptExecutionEngine, JavascriptExecutionError, JavascriptExecutionEvent,
27 JavascriptExecutionLimits, JavascriptExecutionResult, JavascriptSyncRpcRequest,
28 LocalModuleResolutionCache, LocalResolvedModuleFormat, ModuleFsReader, ModuleResolveMode,
29 ModuleResolver, StartJavascriptExecutionRequest,
30};
31#[doc(hidden)]
32pub use node_import_cache::bundled_typescript_assets;
33pub use python::{
34 CreatePythonContextRequest, PythonContext, PythonExecution, PythonExecutionEngine,
35 PythonExecutionError, PythonExecutionEvent, PythonExecutionLimits, PythonExecutionResult,
36 PythonVfsRpcMethod, PythonVfsRpcRequest, PythonVfsRpcResponder, PythonVfsRpcResponsePayload,
37 PythonVfsRpcStat, StartPythonExecutionRequest,
38};
39pub use signal::{NodeSignalDispositionAction, NodeSignalHandlerRegistration};
40pub use wasm::{
41 CreateWasmContextRequest, NativeBinaryFormat, StartWasmExecutionRequest, WasmContext,
42 WasmExecution, WasmExecutionEngine, WasmExecutionError, WasmExecutionEvent,
43 WasmExecutionLimits, WasmExecutionResult, WasmPermissionTier,
44};
45
46pub trait NativeExecutionBridge: agentos_bridge::ExecutionBridge {}
47
48impl<T> NativeExecutionBridge for T where T: agentos_bridge::ExecutionBridge {}
49
50#[derive(Debug, Clone, Copy, PartialEq, Eq)]
51pub struct ExecutionScaffold {
52 pub package_name: &'static str,
53 pub kernel_package: &'static str,
54 pub target: &'static str,
55 pub planned_guest_runtimes: [GuestRuntime; 2],
56}
57
58pub fn scaffold() -> ExecutionScaffold {
59 ExecutionScaffold {
60 package_name: env!("CARGO_PKG_NAME"),
61 kernel_package: "agentos-kernel",
62 target: "native",
63 planned_guest_runtimes: [GuestRuntime::JavaScript, GuestRuntime::WebAssembly],
64 }
65}