| # Perplexity Macro VM β Java SDK | |
| Java execution runtime for the Perplexity Macro VM. Compiles to WASM via TeaVM (open) or CheerpJ (full JDK fallback). | |
| ## Structure | |
| ``` | |
| java-sdk/ | |
| βββ pom.xml β Maven build (TeaVM 0.9.2, Java 17) | |
| βββ src/main/java/vm/ | |
| β βββ Main.java β Entry point + execute() ABI | |
| β βββ Capability.java β WASM import bridge (search, file, clock) | |
| β βββ Wasm.java β WASM memory introspection | |
| βββ src/test/java/vm/ | |
| βββ MainTest.java β Unit tests | |
| ``` | |
| ## Build | |
| ```bash | |
| # Local JAR | |
| mvn package | |
| # WASM (TeaVM) | |
| mvn package -P teavm | |
| # Emits: target/macro-vm-java.wasm + target/macro-vm-java.js | |
| ``` | |
| ## Toolchain | |
| | Tool | Version | Purpose | | |
| |------|---------|---------| | |
| | TeaVM | 0.9.2 | Java bytecode β JS/WASM (open, no JDK needed) | | |
| | CheerpJ | 3.0 | Full JDK in browser (fallback) | | |
| | Java | 17 | Source level | | |
| ## Flow | |
| ``` | |
| Main.java + Capability.java + Wasm.java | |
| β javac (Maven) | |
| β TeaVM / CheerpJ | |
| target/macro-vm-java.wasm + .js | |
| β fetch + WebAssembly.instantiate | |
| Browser WASM runtime | |
| β stdout/result via Capability bridge | |
| Agent Console (Swift or JS frontend) | |
| ``` | |
| ## Runtime Imports (WASM β Browser) | |
| Capability bridge provides typed imports: | |
| - `vm_request(cap, json)` β tool/capability request | |
| - `file_read(path)` / `file_write(path, content)` | |
| - `clock_now()` β ISO8601 timestamp | |
| - `random_bytes(n)` β hex random | |
| - `memory_size()` β WASM pages | |
| - `stdout(msg)` / `stderr(msg)` | |
| ## License | |
| BEL ESPRIT D ACCORD TRUST HOLDINGS INC. Patent Pending. | |