custom
code
sovereign-compute
perplexity-macro-vm / README.md
SNAPKITTYWEST's picture
docs: replace with actual GitHub README
108cd52 verified
|
Raw
History Blame Contribute Delete
6.65 kB
metadata
license: other
license_name: sovereign-source-license-v2
library_name: custom
tags:
  - code
  - sovereign-compute

Perplexity Macro VM

Sovereign Source License v1.0 β€” Copyright (c) 2026 Ahmad Ali Parr + Jessica Westerhoff, BEL ESPRIT D ACCORD TRUST HOLDINGS INC. Patent Pending.

Deterministic 16-bit research VM that runs Perplexity-style planning, search, evidence, critique, and synthesis compiled to ROM. Elixir GenServer OTP + Phoenix LiveView streams every retired instruction. Host does web/model/code work behind typed capability boundaries; VM owns control flow.

Live Agent Console β€” https://snapkittywest.github.io/perplexity-macro-vm/

Features

  • Ollama / OpenAI / OpenRouter model integration (local or cloud)
  • Python execution via Pyodide (runs in browser, no server needed)
  • Web search via DuckDuckGo (client-side)
  • Terminal tools (client-side simulation, backend-ready)
  • Tool calling protocol β€” model can invoke tools automatically
  • Deterministic VM β€” 16-bit, 65K words, typed capabilities, transcript hashing

Architecture

                Phoenix LiveView (trace | regs | memory | graph)
                              ^ PubSub
                     TraceHub (ring buffer 50k)
                              ^ {:retired, trace}
MacroVM GenServer β€” fetch/decode/execute -> commit -> emit one trace
      ^ capability request | host result v
ResearchBroker (search/fetch/LLM/evidence)   Compiler (.pqm -> ROM)

VM owns control flow and acceptance policy. Host returns typed evidence records to a waiting RQ instruction.

VM Contract

Word: 16 bits, 65,536 words
ROM: $0000-$1FFF  RAM: $2000-$DFFF  MMIO: $E000-$E0FF  Stack: descending, RAM-backed
Regs: A,B,C,D, PC, SP=0xDFFF, BP, FLAGS
Cycles: fixed per opcode
State: %State{rom, ram, regs, cycles, retired, halted?, waiting?, fuel=128, transcript_hash, breakpoints, watches, trace_seq}

Instruction Set

Op Mnemonic Cyc Meaning
00 NOP 1
01 LDI r,imm16 2
02 LD r,[addr] 3
03 ST [addr],r 3
04 ADD rd,rs 1
05 XOR rd,rs 1
06 CMP ra,rb 1
07 JMP addr 2
08 JZ addr 2/3
09 CALL addr 3
0A RET 3
0B DEC r 1
0C HALT code 1
20 RQ cap,ptr,len 4 capability request
21 POLL rd 2 status
22 READ rd,off 3 host result word
23 VERIFY ptr,len 6 schema/CRC
24 EVIDENCE claim,src 3 provenance
25 COVERAGE rd 4 cited-claim coverage
26 DISAGREE rd 5 contradiction flags
27 HASH ptr,len 8+ transcript hash
28 FUEL 1 trap at zero
29 EMIT kind,ptr,len 3 checkpoint
2A CONFIRM cap 2 one-shot auth

Capabilities: 01=search 02=fetch 03=browser 04=code 05=local_model 06=file_read 07=file_write 08=calendar 09=email β€” sensitive require CONFIRM + expiring token.

Agent Console

Live: https://snapkittywest.github.io/perplexity-macro-vm/

Clean chat interface with tool calling:

  1. Connect β€” Pick provider (Ollama/OpenRouter/OpenAI), enter credentials
  2. Chat β€” Ask anything, model can call tools automatically
  3. Tools β€” Python (Pyodide), web search (DuckDuckGo), terminal
  4. Terminal panel β€” Toggle to see tool execution log
Onboarding -> Provider Selection -> Chat Interface
                                         |
                              Tool Detection (```python, ```search, ```terminal)
                                         |
                              Tool Execution (Pyodide / API / simulated)
                                         |
                              Result -> Model -> Answer

Tool Calling

The model can invoke tools by emitting fenced code blocks:

# Python execution (Pyodide, runs in browser)
import numpy as np
print(np.mean([1, 2, 3, 4, 5]))
WebGPU latest news 2025
ls -la

Results are fed back to the model for synthesis.

Run locally

# Just open the HTML file
open docs/agent-console/index.html

# Or serve with Python
cd docs/agent-console && python -m http.server 8080

Macro Language .pqm

programs/research_loop.pqm β€” declarative research logic compiled to ROM.

program research_loop
const fuel_budget=12, min_sources=3
entry: fuel fuel_budget
plan:  request search, query("topic decomposition") -> await -> verify -> branch_invalid retry_plan
search: request search, subquestion batch -> await -> verify -> evidence -> coverage -> branch_lt min_sources, search
read: request fetch, selected -> await -> verify -> evidence -> disagreement -> branch_true critique
synthesize: request local_model, render_cited_answer -> await -> verify -> emit final -> halt
critique: request search, counterevidence -> await -> verify -> jump synthesize

Compiler: lexer -> parser -> typed AST -> policy checker -> CFG -> label resolution -> opcode selection -> .pqr + .pqmap + manifest.json.

API Endpoints (Research Host)

All via ResearchBroker -> Adapters.*. Every adapter returns normalized TLV-compatible maps with source_hash.

  • Tavily Adapters.Search β€” POST https://api.tavily.com/search
  • Wikipedia Adapters.Wikipedia β€” GET https://en.wikipedia.org/w/api.php
  • Mathematica Adapters.Mathematica β€” POST https://api.wolframalpha.com/v1/query
  • Dictionary Adapters.Dictionary β€” GET https://api.dictionaryapi.dev/api/v2/entries/en/<word>
  • Fetch Adapters.Fetch β€” generic GET with allowlist
  • Browser Adapters.Browser β€” Playwright automation
  • Code Adapters.Code β€” sandboxed Python/JS
  • Local Model Adapters.LocalModel β€” Ollama/LM Studio

Run (Elixir Backend)

mix deps.get
mix test
iex -S mix
# Phoenix at http://localhost:4000
mix compile.pqm programs/research_loop.pqm --out priv/rom/

Layout

cfg/macro_rom.cfg
asm/crc16.s
docs/agent-console/          # Frontend (static, GitHub Pages)
apps/AgentConsole/           # Swift frontend
java-sdk/                    # Java SDK (Maven)
lib/perplexity_macro/        # Elixir backend
proofs/MacroProtocol.lean    # Verification
programs/research_loop.pqm   # VM programs
priv/rom/                    # Compiled ROM

License

Sovereign Source License v1.0

Copyright (c) 2026 Ahmad Ali Parr + Jessica Westerhoff BEL ESPRIT D ACCORD TRUST HOLDINGS INC.

This software is provided under the Sovereign Source License. Use, modification, and distribution are permitted only as authorized by the copyright holders. Patent Pending.