Skip to content

Latest commit

 

History

4,173 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pantograph

banner_3

Pantograph is a local-first, Rust-native framework with an optional desktop app. It provides unified local inference, node-based workflows, resource-aware runtime scheduling, real-time observability, and diagnostic tracing for AI pipelines. Host integrations consume the native Rust interface or projections through UniFFI, Rustler, and optional HTTP adapters.

Application gallery

Review branch: PR #71. These assets are tracked on the demo branch pending review and merge. All captures use the actual Svelte application in Chromium, connected to a persistent Rust workflow service through an explicit loopback HTTP host. These are not native Tauri windows. The host executes the deterministic graph, serves live diagnostic queries and retained artifact bytes, and reads an isolated Pumas library. No service mocks or recorded-response injection are used.

Workflow graph

Actual workflow canvas with Selection Input, JSON Filter, and Text Output

This historical capture from 7fc3584c renders the JSON demo before editor submission support. The follow-up host also provides editor-demo, a saved Text Input → Text Output workflow with real edit/save/validate/submit APIs. Its HTTP integration tests pass; a new browser capture is pending a permitted Chromium sandbox. See the demo guide.

Execution ledger and diagnostics

Actual Diagnostics page querying the live native workflow service

The Diagnostics page queries real run facts, node status and ledger events from the running Rust service. The matching native response preserves the capture evidence; the application does not replay that file.

Actual native events in the live Diagnostics scheduler timeline

The node-status view reports both executed tasks completed and all three small payloads retained.

Workflow-run inspection

Actual I/O Inspector reading the retained output of the deterministic workflow run

The I/O Inspector queries the backend run graph and resolved I/O, then reads the actual retained text through the artifact API. No model inference is claimed.

Model library

Actual Library page reading the isolated empty Pumas model catalog

The Library page reads a real, isolated empty Pumas catalog and usage ledger. This limited host disables model search/download/delete with an explanation. No models were invented or downloaded and no private user library was accessed.

Scope

The sidebar's Node Editor is a separate Node Lab page whose authoring API, local agent and runtime publishing remain unavailable in current source. It is not the workflow Graph canvas. This change fixes browser transport and inspection, not node authoring or editor-to-model inference. Native Tauri capture still requires GTK/WebKit dependencies unavailable in this environment.

Demonstration and research

A small deterministic workflow now exercises the native scheduler without model weights: Selection Input → JSON Filter → Text Output. It validates a graph, submits an execution session, extracts text from JSON, and records task lifecycle and I/O diagnostics in SQLite. Try both successful extraction and a missing path:

python3 examples/scheduler-demo/serve.py

Open http://127.0.0.1:8765. See the demo guide for prerequisites, exact scope, raw execution records, and screenshot reproduction.

Real native scheduler execution shown in the local demo host

This is real deterministic Rust execution, not model inference. The minimal browser host is separate from the desktop editor.

The GitHub Pages presentation source combines screenshots, an interactive viewer of recorded scheduler events, inference ownership boundaries, and readable research editions. It is prepared for local preview and review; Pages has not been enabled or deployed by this change.

Area Research
Nodes and extensions Node Execution and Dynamic Extensions
Scheduling A Resource Safe Learning Scheduler and v2 simulation evaluation
Inference backends Designing Compatible Inference Backends
Diagnostics and provenance Execution Ledger and Provenance

These are source audits, research proposals, and separately labeled simulations; they do not establish production or GPU performance. The research index records their pinned editions and limits.

Architecture

See ARCHITECTURE.md for the current module map, target scheduler-owned task execution model, ownership rules, active transition, and links to authoritative ADRs and implementation status.

The current standards audit records the repository-wide compliance baseline and routes its findings into focused follow-up audits. Its remediation portfolio coordinates the resulting implementation plans.

Quick Start

  1. Clone the repository.
  2. Install dependencies:
    npm install
  3. Run the desktop app:
    npm run dev:desktop

Installation

Prerequisites

  • Node.js (for npm)
  • Rust toolchain (cargo, rustc)
  • Tauri system libraries for your OS

Install Rust:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"

Install Tauri system dependencies:

# Debian/Ubuntu
sudo apt install pkg-config libsoup2.4-dev libjavascriptcoregtk-4.0-dev

# Fedora
sudo dnf install pkgconf-pkg-config libsoup-devel javascriptcoregtk4.0-devel

# Arch
sudo pacman -S pkgconf libsoup2 webkit2gtk

Install project dependencies:

npm install

Usage

Desktop Mode (recommended)

npm run dev:desktop

Web Preview

npm run dev

The Vite dev server binds to 127.0.0.1 by default. For an intentional LAN preview, set PANTOGRAPH_VITE_HOST=0.0.0.0 when starting the server.

Build Desktop App

npm run build:desktop

Launcher Script

./launcher.sh --help
./launcher.sh --test
./launcher.sh --release-smoke

Vision Backend Options

  • External OpenAI-compatible server (for example LM Studio)
  • Bundled llama.cpp sidecar with local model files

Development

Prerequisites

  • Node.js + npm matching .node-version and package.json
  • Rust toolchain matching rust-toolchain.toml
  • Python matching .python-version for Python-backed smoke paths
  • Tauri system dependencies (above)

See Development for toolchain ownership, setup caveats, and the current verification status.

Useful Commands

# Frontend type and configured test checks
npm run typecheck
npm run test:frontend

# Rust workspace checks
cargo fmt --all -- --check
cargo check --workspace --no-default-features

These commands prove only their stated scopes. Pantograph does not currently have one green repository-wide compliance command; see the verification audit.

Runtime Separation

Python-backed model execution is out-of-process and externally provisioned. See Runtime Operations for interpreter selection, runtime inspection, recovery, and current security/lifecycle limitations.

Headless Workflow API

Pantograph exposes a Rust-first service with UniFFI, Rustler, and optional HTTP projections. See Headless Workflow Integration for the supported ownership model, session flow, exact contract sources, and known transition boundaries.

Project Structure

Path Description
ARCHITECTURE.md Current architecture, target execution model, ownership, and status entry points
src/ Frontend Svelte app, UI components, stores, and services
src-tauri/src/ Tauri backend commands and runtime wiring
crates/ Shared Rust crates (inference, node-engine, workflow-nodes, bindings)
packages/svelte-graph/src/ Reusable graph editor package modules
scripts/ Validation and tooling scripts
docs/ Current guides, decisions, audits, and implementation plans

Contributing

  1. Create a focused branch for one logical change.
  2. Follow coding, tooling, accessibility, and documentation standards.
  3. Run the smallest checks that decide the affected behavior and contracts.
  4. Use Conventional Commits for all commits.

License

The repository currently contains Apache-2.0 license material while Cargo metadata declares MIT OR Apache-2.0. Resolve that mismatch before distribution; see Release.

Releases

Packages

Used by

Contributors

Languages