Graph execution engine for agentic AI workflows.
Project description
Graphon (Under Construction)
This repository is still being organized.
Development Workflow
By default, use make for routine development commands in this repository.
That is the recommended path because:
- it reflects the repository's intended workflow
- it keeps formatting, linting, and testing commands consistent
- it reduces command drift across contributors and CI
If you know exactly what you are doing, using ruff, pytest, or prek directly is still your choice. Those tools remain fully available, but they should be treated as the lower-level interface rather than the default one.
Commit and PR Title Convention
All commit messages must follow the Conventional Commits specification.
This is a repository requirement, not a suggestion.
The required commit types are:
featfixdocsstylerefactorperftestbuildcichorerevert
Use the Conventional Commits structure consistently, for example:
feat: add graph snapshot export
fix(runtime): avoid duplicate node completion events
docs(readme): document development workflow
refactor(variable-pool): simplify selector lookup
test(encoders): cover nested dataclass encoding
feat!: drop legacy workflow payload format
refactor(api)!: remove deprecated runtime entrypoint
Pull request titles must follow the exact same convention.
If a change is breaking, the commit message and the PR title must include !.
Examples:
feat!: remove deprecated graph initialization path
fix(parser)!: change selector parsing semantics
In other words:
- every commit message should use Conventional Commits
- every PR title should also use Conventional Commits
- every breaking change must be marked with
! - the PR title must stay aligned with the final change being merged
Do not use free-form PR titles that diverge from the commit message standard.
Quick Start
Prerequisites
uvmakegit
Initial Setup
This project uses uv for dependency and virtual environment management.
make dev
source .venv/bin/activate
make dev will:
- run
uv sync - ensure
prekhooks are installed
After that, the repository will have a local .venv, the project will be installed in editable mode, and Git hooks will be ready.
Recommended Commands
Use these commands by default:
make dev: runuv syncand ensureprekis installedmake format: runruff formatmake lint: runruff check --fixmake check: runruff format --check && ruff checkmake test: runuv run --frozen pytestmake build: build the package distributionsmake pre: runformat,lint, andtestin sequencemake clean: remove build artifacts, caches, and__pycache__
Recommended Daily Flow
For normal development, the expected flow is:
make dev
make pre
For day-to-day iteration, the usual commands are:
make format
make lint
make test
Tooling Details
uv
uv is responsible for environment and dependency management.
Common commands:
uv sync
uv run pytest
uv run ruff check
uv run prek run -a
Use uv when you need to:
- create or refresh the local virtual environment
- install project and development dependencies
- run low-level commands without activating
.venv
make
make is the default command surface for this repository.
If you are unsure which command to use, start with make.
This is especially true for:
- initial setup
- formatting
- linting
- running the test suite
- running the standard pre-check flow
ruff
ruff handles both formatting and linting.
Direct usage is supported, but it is secondary to make.
Common direct commands:
ruff format
ruff check --fix
ruff format --check
ruff check
Prefer direct ruff usage when:
- you want to target a specific file or rule
- you are debugging a particular lint issue
- you intentionally want something more precise than the
Makefilewrapper
pytest
pytest runs the test suite.
Common direct commands:
uv run pytest
uv run pytest tests
uv run pytest tests/utils/test_condition_processor.py
uv run pytest -k condition
Notes:
- the current default configuration includes
-n auto testpathsis set totestsmake testis the default wrapper and should be preferred unless you need a more specific invocation
prek
prek manages Git hooks for this repository. Its configuration is stored in prek.toml.
Common direct commands:
uv run prek install
uv run prek run -a
uv run prek list
uv run prek validate-config
Notes:
uv run prek install: install Git hooks into.git/hooks/uv run prek run -a: run hooks against all files in the repository- the current configuration mainly includes:
- built-in cleanup and validation hooks
- local
make format/make linthooks
Direct Tool Usage
If you know what you are doing, direct tool usage is completely acceptable.
The important distinction is:
- default recommendation: use
make - advanced or targeted usage: use
ruff,pytest, orprekdirectly
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file graphon-0.1.2.tar.gz.
File metadata
- Download URL: graphon-0.1.2.tar.gz
- Upload date:
- Size: 214.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2210629f93258ad2e7cbe85b5d4c6826814f6c679aa2a23ca100511363b9240
|
|
| MD5 |
67ae7241f590f67bf49906a5b625d96a
|
|
| BLAKE2b-256 |
33fc0a5342a1c29bc367c2254c170ef130a84a60d8cd1c9cc84a7a85e96c1042
|
Provenance
The following attestation bundles were made for graphon-0.1.2.tar.gz:
Publisher:
pypi_publish.yml on langgenius/graphon
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
graphon-0.1.2.tar.gz -
Subject digest:
a2210629f93258ad2e7cbe85b5d4c6826814f6c679aa2a23ca100511363b9240 - Sigstore transparency entry: 1189379162
- Sigstore integration time:
-
Permalink:
langgenius/graphon@2439910ab00a71d0f82c56fb57648f1693ecc7c3 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/langgenius
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi_publish.yml@2439910ab00a71d0f82c56fb57648f1693ecc7c3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file graphon-0.1.2-py3-none-any.whl.
File metadata
- Download URL: graphon-0.1.2-py3-none-any.whl
- Upload date:
- Size: 314.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79f0c7796de7b8642d070730bb8bdaf1c68ccdfcecac38e0b2282e0543f0a6db
|
|
| MD5 |
31a849e1627d4363d37b2608b97de3c3
|
|
| BLAKE2b-256 |
d54665b5e366ec2d7017b6d6448e2635b3772d86840a6f7297277471b1bfbfbd
|
Provenance
The following attestation bundles were made for graphon-0.1.2-py3-none-any.whl:
Publisher:
pypi_publish.yml on langgenius/graphon
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
graphon-0.1.2-py3-none-any.whl -
Subject digest:
79f0c7796de7b8642d070730bb8bdaf1c68ccdfcecac38e0b2282e0543f0a6db - Sigstore transparency entry: 1189379176
- Sigstore integration time:
-
Permalink:
langgenius/graphon@2439910ab00a71d0f82c56fb57648f1693ecc7c3 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/langgenius
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi_publish.yml@2439910ab00a71d0f82c56fb57648f1693ecc7c3 -
Trigger Event:
push
-
Statement type: