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};
31pub use python::{
32 CreatePythonContextRequest, PythonContext, PythonExecution, PythonExecutionEngine,
33 PythonExecutionError, PythonExecutionEvent, PythonExecutionLimits, PythonExecutionResult,
34 PythonVfsRpcMethod, PythonVfsRpcRequest, PythonVfsRpcResponder, PythonVfsRpcResponsePayload,
35 PythonVfsRpcStat, StartPythonExecutionRequest,
36};
37pub use signal::{NodeSignalDispositionAction, NodeSignalHandlerRegistration};
38pub use wasm::{
39 CreateWasmContextRequest, NativeBinaryFormat, StartWasmExecutionRequest, WasmContext,
40 WasmExecution, WasmExecutionEngine, WasmExecutionError, WasmExecutionEvent,
41 WasmExecutionLimits, WasmExecutionResult, WasmPermissionTier,
42};
43
44pub trait NativeExecutionBridge: agentos_bridge::ExecutionBridge {}
45
46impl<T> NativeExecutionBridge for T where T: agentos_bridge::ExecutionBridge {}
47
48#[derive(Debug, Clone, Copy, PartialEq, Eq)]
49pub struct ExecutionScaffold {
50 pub package_name: &'static str,
51 pub kernel_package: &'static str,
52 pub target: &'static str,
53 pub planned_guest_runtimes: [GuestRuntime; 2],
54}
55
56pub fn scaffold() -> ExecutionScaffold {
57 ExecutionScaffold {
58 package_name: env!("CARGO_PKG_NAME"),
59 kernel_package: "agentos-kernel",
60 target: "native",
61 planned_guest_runtimes: [GuestRuntime::JavaScript, GuestRuntime::WebAssembly],
62 }
63}