custom
code
sovereign-compute
File size: 1,723 Bytes
92d9567
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# 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.