Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

MrScripty/Pantograph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

413 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pantograph

banner_3

Pantograph is a local-first desktop app that turns sketches and prompts into editable Svelte UI.

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

Build Desktop App

npm run build:desktop

Launcher Script

./launcher.sh --help

Vision Backend Options

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

Development

Prerequisites

  • Node.js + npm
  • Rust toolchain
  • Tauri system dependencies (above)

Useful Commands

# Lint (configured scope)
npm run lint

# Full lint scan
npm run lint:full

# Critical anti-pattern gate (src/ + packages/)
npm run lint:critical

# Type check
npm run typecheck

# Tests
npm test

# Runtime separation guard (no compile-time Python linkage)
npm run test:runtime-separation

# All quality gates
npm run check

Runtime Separation

Python-backed model execution is intentionally out-of-process and externally provisioned. See docs/python-runtime-separation.md for configuration and migration details. For a local diffusion worker smoke path, run:

./.venv/bin/python scripts/diffusion_cli_smoketest.py --model-path /path/to/tiny-sd-turbo

Headless Workflow API

Pantograph exposes a Rust-first headless workflow API for host integrations through crates/pantograph-workflow-service:

  • workflow_run
  • workflow_get_capabilities
  • workflow_get_io
  • workflow_preflight
  • create_workflow_session
  • run_workflow_session
  • close_workflow_session
  • workflow_get_session_status
  • workflow_list_session_queue
  • workflow_cancel_session_queue_item
  • workflow_reprioritize_session_queue_item
  • workflow_set_session_keep_alive

Integration boundary:

  • Headless hosts should integrate with the core API/service crate directly.
  • src-tauri commands are desktop app transport adapters, not the headless API.
  • HTTP binding exports are opt-in frontend adapters for modular standalone GUI hosting (frontend-http in UniFFI and Rustler).
  • Recommended headless flow: workflow_get_io -> workflow_preflight -> workflow_run.

Reference docs:

  • Contract: docs/headless-embedding-api-v1.md
  • Migration guide: docs/headless-embedding-migration.md
  • Service boundary ADR: docs/adr/ADR-001-headless-embedding-service-boundary.md
  • Implementation notes: docs/headless-embedding-implementation-notes.md

Project Structure

Path Description
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/ Architecture and process documentation

Contributing

  1. Create a focused branch for one logical change.
  2. Follow coding, tooling, accessibility, and documentation standards.
  3. Run npm run check and relevant targeted Rust tests before opening a PR.
  4. Use Conventional Commits for all commits.

License

Workspace crates declare MIT OR Apache-2.0 in Cargo metadata. Review individual package metadata for any exceptions.

About

Embedded AI workflows

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors